From 3dd16320d38f6312e7f5d7164b6bb7a4e14790fa Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Fri, 9 Feb 2024 15:35:32 -0500 Subject: Benchmark updates --- benchmarks/irs_bench.cpp | 4 +- benchmarks/pgm_bench.cpp | 123 +++++++++++++++++++++++++++++++++++++++++++++++ benchmarks/ts_bench.cpp | 123 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 248 insertions(+), 2 deletions(-) create mode 100644 benchmarks/pgm_bench.cpp create mode 100644 benchmarks/ts_bench.cpp diff --git a/benchmarks/irs_bench.cpp b/benchmarks/irs_bench.cpp index ddb4220..49b1630 100644 --- a/benchmarks/irs_bench.cpp +++ b/benchmarks/irs_bench.cpp @@ -17,7 +17,7 @@ #include "psu-util/timer.h" -typedef de::Record Rec; +typedef de::Record Rec; typedef de::ISAMTree ISAM; typedef de::irs::Query Q; typedef de::DynamicExtension Ext; @@ -73,7 +73,7 @@ void insert_records(Ext *extension, size_t start, int main(int argc, char **argv) { if (argc < 4) { - fprintf(stderr, "insert_query_tput reccnt datafile queryfile\n"); + fprintf(stderr, "irs_bench reccnt datafile queryfile\n"); exit(EXIT_FAILURE); } diff --git a/benchmarks/pgm_bench.cpp b/benchmarks/pgm_bench.cpp new file mode 100644 index 0000000..72d3b52 --- /dev/null +++ b/benchmarks/pgm_bench.cpp @@ -0,0 +1,123 @@ +/* + * + */ + +#define ENABLE_TIMER + +#include + +#include "framework/DynamicExtension.h" +#include "shard/PGM.h" +#include "query/rangecount.h" +#include "framework/interface/Record.h" +#include "include/data-proc.h" + +#include + +#include "psu-util/timer.h" + + +typedef de::Record Rec; +typedef de::PGM S; +typedef de::rc::Query Q; +typedef de::DynamicExtension Ext; +typedef de::rc::Parms QP; + +void run_queries(Ext *extension, std::vector &queries, gsl_rng *rng) { + size_t total; + for (size_t i=0; iquery(q); + auto r = res.get(); + total += r.size(); + } + + fprintf(stderr, "%ld\n", total); +} + +size_t g_deleted_records = 0; +double delete_proportion = 0.05; + +void insert_records(Ext *extension, size_t start, + size_t stop, + std::vector &records, + std::vector &to_delete, + size_t &delete_idx, + bool delete_records, + gsl_rng *rng) { + size_t reccnt = 0; + Rec r; + for (size_t i=start; iinsert(r)) { + usleep(1); + } + + if (delete_records && gsl_rng_uniform(rng) <= delete_proportion && to_delete[delete_idx] <= i) { + r.key = records[to_delete[delete_idx]]; + r.value = (int64_t) (to_delete[delete_idx]); + while (!extension->erase(r)) { + usleep(1); + } + delete_idx++; + g_deleted_records++; + } + } +} + +int main(int argc, char **argv) { + + if (argc < 4) { + fprintf(stderr, "pgm_bench reccnt datafile queryfile\n"); + exit(EXIT_FAILURE); + } + + size_t n = atol(argv[1]); + std::string d_fname = std::string(argv[2]); + std::string q_fname = std::string(argv[3]); + + auto extension = new Ext(12000, 12001, 8, 0, 64); + gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937); + + auto data = read_sosd_file(d_fname, n); + std::vector to_delete(n * delete_proportion); + size_t j=0; + for (size_t i=0; i(q_fname, .001); + + /* warmup structure w/ 10% of records */ + size_t warmup = .1 * n; + size_t delete_idx = 0; + insert_records(extension, 0, warmup, data, to_delete, delete_idx, false, rng); + + extension->await_next_epoch(); + + TIMER_INIT(); + + TIMER_START(); + insert_records(extension, warmup, data.size(), data, to_delete, delete_idx, true, rng); + TIMER_STOP(); + + auto insert_latency = TIMER_RESULT(); + size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); + + TIMER_START(); + run_queries(extension, queries, rng); + TIMER_STOP(); + + auto query_latency = TIMER_RESULT() / queries.size(); + + fprintf(stdout, "T\t%ld\t%ld\t%ld\n", insert_throughput, query_latency, g_deleted_records); + + gsl_rng_free(rng); + delete extension; + fflush(stderr); +} + diff --git a/benchmarks/ts_bench.cpp b/benchmarks/ts_bench.cpp new file mode 100644 index 0000000..3df3371 --- /dev/null +++ b/benchmarks/ts_bench.cpp @@ -0,0 +1,123 @@ +/* + * + */ + +#define ENABLE_TIMER + +#include + +#include "framework/DynamicExtension.h" +#include "shard/TrieSpline.h" +#include "query/rangecount.h" +#include "framework/interface/Record.h" +#include "include/data-proc.h" + +#include + +#include "psu-util/timer.h" + + +typedef de::Record Rec; +typedef de::TrieSpline TS; +typedef de::rc::Query Q; +typedef de::DynamicExtension Ext; +typedef de::rc::Parms QP; + +void run_queries(Ext *extension, std::vector &queries, gsl_rng *rng) { + size_t total; + for (size_t i=0; iquery(q); + auto r = res.get(); + total += r.size(); + } + + fprintf(stderr, "%ld\n", total); +} + +size_t g_deleted_records = 0; +double delete_proportion = 0.05; + +void insert_records(Ext *extension, size_t start, + size_t stop, + std::vector &records, + std::vector &to_delete, + size_t &delete_idx, + bool delete_records, + gsl_rng *rng) { + size_t reccnt = 0; + Rec r; + for (size_t i=start; iinsert(r)) { + usleep(1); + } + + if (delete_records && gsl_rng_uniform(rng) <= delete_proportion && to_delete[delete_idx] <= i) { + r.key = records[to_delete[delete_idx]]; + r.value = (int64_t) (to_delete[delete_idx]); + while (!extension->erase(r)) { + usleep(1); + } + delete_idx++; + g_deleted_records++; + } + } +} + +int main(int argc, char **argv) { + + if (argc < 4) { + fprintf(stderr, "ts_bench reccnt datafile queryfile\n"); + exit(EXIT_FAILURE); + } + + size_t n = atol(argv[1]); + std::string d_fname = std::string(argv[2]); + std::string q_fname = std::string(argv[3]); + + auto extension = new Ext(12000, 12001, 8, 0, 64); + gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937); + + auto data = read_sosd_file(d_fname, n); + std::vector to_delete(n * delete_proportion); + size_t j=0; + for (size_t i=0; i(q_fname, .001); + + /* warmup structure w/ 10% of records */ + size_t warmup = .1 * n; + size_t delete_idx = 0; + insert_records(extension, 0, warmup, data, to_delete, delete_idx, false, rng); + + extension->await_next_epoch(); + + TIMER_INIT(); + + TIMER_START(); + insert_records(extension, warmup, data.size(), data, to_delete, delete_idx, true, rng); + TIMER_STOP(); + + auto insert_latency = TIMER_RESULT(); + size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); + + TIMER_START(); + run_queries(extension, queries, rng); + TIMER_STOP(); + + auto query_latency = TIMER_RESULT() / queries.size(); + + fprintf(stdout, "T\t%ld\t%ld\t%ld\n", insert_throughput, query_latency, g_deleted_records); + + gsl_rng_free(rng); + delete extension; + fflush(stderr); +} + -- cgit v1.2.3 From 90194cb5be5c7b80bfa21a353a75920e932d54d8 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Mon, 12 Feb 2024 10:39:52 -0500 Subject: Added structure state vector w/ scratch version for reconstruction This approach should allow us to "simulate" a reconstruction to monitor the future state of the structure. The idea being that we can then add pre-emptive reconstructions to load balance and further smooth the tail latency curve. If a given reconstruction is significantly smaller than the next one will be, we can move some of the next one's work preemptively into the current one. The next phase is to do the simulation within the scratch_vector and then do a second pass examining the state of that reconstruction. In principle, we could look arbitrarily far ahead using this technique. --- include/framework/structure/ExtensionStructure.h | 144 ++++++++++++++--------- 1 file changed, 89 insertions(+), 55 deletions(-) diff --git a/include/framework/structure/ExtensionStructure.h b/include/framework/structure/ExtensionStructure.h index 4802bc1..823a66b 100644 --- a/include/framework/structure/ExtensionStructure.h +++ b/include/framework/structure/ExtensionStructure.h @@ -27,6 +27,16 @@ class ExtensionStructure { typedef S Shard; typedef BufferView BuffView; + typedef struct { + size_t reccnt; + size_t reccap; + + size_t shardcnt; + size_t shardcap; + } level_state; + + typedef std::vector state_vector; + public: ExtensionStructure(size_t buffer_size, size_t scale_factor, double max_delete_prop) : m_scale_factor(scale_factor) @@ -59,6 +69,7 @@ public: } new_struct->m_refcnt = 0; + new_struct->m_current_state = m_current_state; return new_struct; } @@ -95,8 +106,8 @@ public: * takes a structure as input. */ inline bool flush_buffer(BuffView buffer) { - assert(can_reconstruct_with(0, buffer.get_record_count())); - + state_vector tmp = m_current_state; + assert(can_reconstruct_with(0, buffer.get_record_count(), tmp)); flush_buffer_into_l0(std::move(buffer)); return true; @@ -200,8 +211,16 @@ public: return m_levels; } + /* + * NOTE: This cannot be simulated, because tombstone cancellation is not + * cheaply predictable. It is possible that the worst case number could + * be used instead, to allow for prediction, but compaction isn't a + * major concern outside of sampling; at least for now. So I'm not + * going to focus too much time on it at the moment. + */ std::vector get_compaction_tasks() { std::vector tasks; + state_vector scratch_state = m_current_state; /* if the tombstone/delete invariant is satisfied, no need for compactions */ if (validate_tombstone_proportion()) { @@ -219,9 +238,9 @@ public: assert(violation_idx != -1); - level_index base_level = find_reconstruction_target(violation_idx); + level_index base_level = find_reconstruction_target(violation_idx, scratch_state); if (base_level == -1) { - base_level = grow(); + base_level = grow(scratch_state); } for (level_index i=base_level; i>0; i--) { @@ -239,7 +258,7 @@ public: */ size_t reccnt = m_levels[i - 1]->get_record_count(); if constexpr (L == LayoutPolicy::LEVELING) { - if (can_reconstruct_with(i, reccnt)) { + if (can_reconstruct_with(i, reccnt, scratch_state)) { reccnt += m_levels[i]->get_record_count(); } } @@ -254,46 +273,28 @@ public: /* * */ - std::vector get_reconstruction_tasks(size_t buffer_reccnt) { - std::vector reconstructions; + std::vector get_reconstruction_tasks(size_t buffer_reccnt, + state_vector scratch_state={}) { + /* + * If no scratch state vector is provided, use a copy of the + * current one. The only time an empty vector could be used as + * *real* input to this function is when the current state is also + * empty, so this should would even in that case. + */ + if (scratch_state.size() == 0) { + scratch_state = m_current_state; + } /* * The buffer flush is not included so if that can be done without any * other change, just return an empty list. */ - if (can_reconstruct_with(0, buffer_reccnt)) { + std::vector reconstructions; + if (can_reconstruct_with(0, buffer_reccnt, scratch_state)) { return std::move(reconstructions); } - level_index base_level = find_reconstruction_target(0); - if (base_level == -1) { - base_level = grow(); - } - - for (level_index i=base_level; i>0; i--) { - ReconstructionTask task = {i-1, i}; - - /* - * The amount of storage required for the reconstruction accounts - * for the cost of storing the new records, along with the - * cost of retaining the old records during the process - * (hence the 2x multiplier). - * - * FIXME: currently does not account for the *actual* size - * of the shards, only the storage for the records - * themselves. - */ - size_t reccnt = m_levels[i-1]->get_record_count(); - if constexpr (L == LayoutPolicy::LEVELING) { - if (can_reconstruct_with(i, reccnt)) { - reccnt += m_levels[i]->get_record_count(); - } - } - //task.m_size = 2* reccnt * sizeof(R); - - reconstructions.push_back(task); - } - + reconstructions = get_reconstruction_tasks_from_level(0, scratch_state); return std::move(reconstructions); } @@ -301,12 +302,12 @@ public: /* * */ - std::vector get_reconstruction_tasks_from_level(level_index source_level) { + std::vector get_reconstruction_tasks_from_level(level_index source_level, state_vector &scratch_state) { std::vector reconstructions; - level_index base_level = find_reconstruction_target(source_level); + level_index base_level = find_reconstruction_target(source_level, scratch_state); if (base_level == -1) { - base_level = grow(); + base_level = grow(scratch_state); } for (level_index i=base_level; i>source_level; i--) { @@ -323,7 +324,7 @@ public: */ size_t reccnt = m_levels[i-1]->get_record_count(); if constexpr (L == LayoutPolicy::LEVELING) { - if (can_reconstruct_with(i, reccnt)) { + if (can_reconstruct_with(i, reccnt, scratch_state)) { reccnt += m_levels[i]->get_record_count(); } } @@ -332,7 +333,7 @@ public: reconstructions.push_back(task); } - return reconstructions; + return std::move(reconstructions); } /* @@ -342,7 +343,10 @@ public: * tombstone ordering invariant may be violated. */ inline void reconstruction(level_index base_level, level_index incoming_level) { + + size_t shard_capacity; if constexpr (L == LayoutPolicy::LEVELING) { + shard_capacity = 1; /* if the base level has a shard, merge the base and incoming together to make a new one */ if (m_levels[base_level]->get_shard_count() > 0) { m_levels[base_level] = InternalLevel::reconstruction(m_levels[base_level].get(), m_levels[incoming_level].get()); @@ -350,13 +354,23 @@ public: } else { m_levels[base_level] = m_levels[incoming_level]; } + } else { + shard_capacity = m_scale_factor; m_levels[base_level]->append_level(m_levels[incoming_level].get()); m_levels[base_level]->finalize(); } /* place a new, empty level where the incoming level used to be */ m_levels[incoming_level] = std::shared_ptr>(new InternalLevel(incoming_level, (L == LayoutPolicy::LEVELING) ? 1 : m_scale_factor)); + + /* + * Update the state vector to match the *real* stage following + * the reconstruction + */ + m_current_state[base_level] = {m_levels[base_level]->get_record_count(), + calc_level_record_capacity(base_level), m_levels[base_level]->get_shard_count(), shard_capacity}; + m_current_state[incoming_level] = {0, calc_level_record_capacity(incoming_level), 0, shard_capacity}; } bool take_reference() { @@ -393,14 +407,26 @@ private: std::vector>> m_levels; + /* + * A pair of for each level in the + * structure. Record counts may be slightly inaccurate due to + * deletes. + */ + state_vector m_current_state; + /* * Add a new level to the structure and return its index. */ - inline level_index grow() { + inline level_index grow(state_vector &scratch_state) { level_index new_idx = m_levels.size(); - size_t new_shard_cnt = (L == LayoutPolicy::LEVELING) ? 1 : m_scale_factor; + size_t new_shard_cap = (L == LayoutPolicy::LEVELING) ? 1 : m_scale_factor; + + m_levels.emplace_back(std::shared_ptr>(new InternalLevel(new_idx, new_shard_cap))); - m_levels.emplace_back(std::shared_ptr>(new InternalLevel(new_idx, new_shard_cnt))); + m_current_state.push_back({0, calc_level_record_capacity(new_idx), + 0, new_shard_cap}); + scratch_state.push_back({0, calc_level_record_capacity(new_idx), + 0, new_shard_cap}); return new_idx; } @@ -411,17 +437,21 @@ private: * returns -1 if idx==0, and no such level exists, to simplify * the logic of the first buffer flush. */ - inline level_index find_reconstruction_target(level_index idx) { + inline level_index find_reconstruction_target(level_index idx, state_vector &state) { - if (idx == 0 && m_levels.size() == 0) return -1; + /* + * this handles the very first buffer flush, when the state vector + * is empty. + */ + if (idx == 0 && state.size() == 0) return -1; - size_t incoming_rec_cnt = get_level_record_count(idx); - for (level_index i=idx+1; iappend_buffer(std::move(buffer)); } + + /* update the state vector */ + m_current_state[0].reccnt = m_levels[0]->get_record_count(); + m_current_state[0].shardcnt = m_levels[0]->get_shard_count(); } /* @@ -475,15 +509,15 @@ private: * Determines if a level can sustain a reconstruction with incoming_rec_cnt * additional records without exceeding its capacity. */ - inline bool can_reconstruct_with(level_index idx, size_t incoming_rec_cnt) { - if (idx >= m_levels.size() || !m_levels[idx]) { + inline bool can_reconstruct_with(level_index idx, size_t incoming_rec_cnt, state_vector &state) { + if (idx >= state.size()) { return false; } if (L == LayoutPolicy::LEVELING) { - return m_levels[idx]->get_record_count() + incoming_rec_cnt <= calc_level_record_capacity(idx); + return state[idx].reccnt + incoming_rec_cnt <= state[idx].reccap; } else { - return m_levels[idx]->get_shard_count() < m_scale_factor; + return state[idx].shardcnt < state[idx].shardcap; } /* unreachable */ -- cgit v1.2.3 From 5c229093f9af21514b17cf778dbec7ac657e31d2 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Mon, 12 Feb 2024 11:42:18 -0500 Subject: Refactored Reconstruction Tasks Added a ReconVector type to make it easier to do load balancing by shifting tasks around, and clean up a few interfaces. --- include/framework/DynamicExtension.h | 2 +- include/framework/scheduling/Task.h | 2 +- include/framework/structure/ExtensionStructure.h | 23 +++----- include/framework/util/Configuration.h | 3 -- include/util/types.h | 67 ++++++++++++++++++++++++ 5 files changed, 77 insertions(+), 20 deletions(-) diff --git a/include/framework/DynamicExtension.h b/include/framework/DynamicExtension.h index 7ea5370..3e1ce50 100644 --- a/include/framework/DynamicExtension.h +++ b/include/framework/DynamicExtension.h @@ -488,7 +488,7 @@ private: Structure *vers = args->epoch->get_structure(); for (ssize_t i=0; imerges.size(); i++) { - vers->reconstruction(args->merges[i].second, args->merges[i].first); + vers->reconstruction(args->merges[i].target, args->merges[i].source); } /* diff --git a/include/framework/scheduling/Task.h b/include/framework/scheduling/Task.h index d5d4266..bd53090 100644 --- a/include/framework/scheduling/Task.h +++ b/include/framework/scheduling/Task.h @@ -26,7 +26,7 @@ namespace de { template S, QueryInterface Q, LayoutPolicy L> struct ReconstructionArgs { Epoch *epoch; - std::vector merges; + ReconstructionVector merges; std::promise result; bool compaction; void *extension; diff --git a/include/framework/structure/ExtensionStructure.h b/include/framework/structure/ExtensionStructure.h index 823a66b..f1c7535 100644 --- a/include/framework/structure/ExtensionStructure.h +++ b/include/framework/structure/ExtensionStructure.h @@ -218,8 +218,8 @@ public: * major concern outside of sampling; at least for now. So I'm not * going to focus too much time on it at the moment. */ - std::vector get_compaction_tasks() { - std::vector tasks; + ReconstructionVector get_compaction_tasks() { + ReconstructionVector tasks; state_vector scratch_state = m_current_state; /* if the tombstone/delete invariant is satisfied, no need for compactions */ @@ -244,8 +244,6 @@ public: } for (level_index i=base_level; i>0; i--) { - ReconstructionTask task = {i-1, i}; - /* * The amount of storage required for the reconstruction accounts * for the cost of storing the new records, along with the @@ -262,9 +260,7 @@ public: reccnt += m_levels[i]->get_record_count(); } } - //task.m_size = 2* reccnt * sizeof(R); - - tasks.push_back(task); + tasks.add_reconstruction(i-i, i, reccnt); } return tasks; @@ -273,7 +269,7 @@ public: /* * */ - std::vector get_reconstruction_tasks(size_t buffer_reccnt, + ReconstructionVector get_reconstruction_tasks(size_t buffer_reccnt, state_vector scratch_state={}) { /* * If no scratch state vector is provided, use a copy of the @@ -289,7 +285,7 @@ public: * The buffer flush is not included so if that can be done without any * other change, just return an empty list. */ - std::vector reconstructions; + ReconstructionVector reconstructions; if (can_reconstruct_with(0, buffer_reccnt, scratch_state)) { return std::move(reconstructions); } @@ -302,8 +298,8 @@ public: /* * */ - std::vector get_reconstruction_tasks_from_level(level_index source_level, state_vector &scratch_state) { - std::vector reconstructions; + ReconstructionVector get_reconstruction_tasks_from_level(level_index source_level, state_vector &scratch_state) { + ReconstructionVector reconstructions; level_index base_level = find_reconstruction_target(source_level, scratch_state); if (base_level == -1) { @@ -311,7 +307,6 @@ public: } for (level_index i=base_level; i>source_level; i--) { - ReconstructionTask task = {i - 1, i}; /* * The amount of storage required for the reconstruction accounts * for the cost of storing the new records, along with the @@ -328,9 +323,7 @@ public: reccnt += m_levels[i]->get_record_count(); } } -// task.m_size = 2* reccnt * sizeof(R); - - reconstructions.push_back(task); + reconstructions.add_reconstruction(i-1, i, reccnt); } return std::move(reconstructions); diff --git a/include/framework/util/Configuration.h b/include/framework/util/Configuration.h index 65ca181..55cc682 100644 --- a/include/framework/util/Configuration.h +++ b/include/framework/util/Configuration.h @@ -43,7 +43,4 @@ enum class DeletePolicy { TAGGING }; -typedef ssize_t level_index; -typedef std::pair ReconstructionTask; - } diff --git a/include/util/types.h b/include/util/types.h index a13bd95..e22fd18 100644 --- a/include/util/types.h +++ b/include/util/types.h @@ -19,6 +19,8 @@ #include #include +#include +#include namespace de { @@ -69,4 +71,69 @@ struct ShardID { /* A placeholder for an invalid shard--also used to indicate the mutable buffer */ const ShardID INVALID_SHID = {-1, -1}; +typedef ssize_t level_index; + +typedef struct { + level_index source; + level_index target; + size_t reccnt; +} ReconstructionTask; + +class ReconstructionVector { +public: + ReconstructionVector() + : total_reccnt(0) {} + + ~ReconstructionVector() = default; + + ReconstructionTask operator[](size_t idx) { + return m_tasks[idx]; + } + + void add_reconstruction(level_index source, level_index target, size_t reccnt) { + m_tasks.push_back({source, target, reccnt}); + total_reccnt += reccnt; + } + + ReconstructionTask remove_reconstruction(size_t idx) { + assert(idx < m_tasks.size()); + auto task = m_tasks[idx]; + + m_tasks.erase(m_tasks.begin() + idx); + total_reccnt -= task.reccnt; + + return task; + } + + ReconstructionTask remove_smallest_reconstruction() { + size_t min_size = m_tasks[0].reccnt; + size_t idx = 0; + for (size_t i=1; i m_tasks; + size_t total_reccnt; +}; + } -- cgit v1.2.3 From 61f8bd422aed3301850c4502e9f5b7f33dff2e12 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Mon, 12 Feb 2024 12:38:29 -0500 Subject: MutableBuffer: Allow hwm to equal lwm The high watermark and low watermark can now be equal, to allow for blocking reconstruction without requiring odd buffer sizes. --- include/framework/structure/MutableBuffer.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/framework/structure/MutableBuffer.h b/include/framework/structure/MutableBuffer.h index 415c95a..c0c87cc 100644 --- a/include/framework/structure/MutableBuffer.h +++ b/include/framework/structure/MutableBuffer.h @@ -57,7 +57,7 @@ public: , m_active_head_advance(false) { assert(m_cap > m_hwm); - assert(m_hwm > m_lwm); + assert(m_hwm >= m_lwm); } ~MutableBuffer() { -- cgit v1.2.3 From 6d7067b4cef51e92d8cb54bb502d6133269728a9 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Mon, 12 Feb 2024 12:52:12 -0500 Subject: ExtensionStructure: Added simulated reconstruction lookahead The reconstruction task procedure can now simulate future reconstructions to a specified depth. --- include/framework/structure/ExtensionStructure.h | 116 +++++++++++++++++------ 1 file changed, 88 insertions(+), 28 deletions(-) diff --git a/include/framework/structure/ExtensionStructure.h b/include/framework/structure/ExtensionStructure.h index f1c7535..0e2118e 100644 --- a/include/framework/structure/ExtensionStructure.h +++ b/include/framework/structure/ExtensionStructure.h @@ -107,6 +107,11 @@ public: */ inline bool flush_buffer(BuffView buffer) { state_vector tmp = m_current_state; + + if (tmp.size() == 0) { + grow(tmp); + } + assert(can_reconstruct_with(0, buffer.get_record_count(), tmp)); flush_buffer_into_l0(std::move(buffer)); @@ -281,16 +286,34 @@ public: scratch_state = m_current_state; } - /* - * The buffer flush is not included so if that can be done without any - * other change, just return an empty list. - */ ReconstructionVector reconstructions; - if (can_reconstruct_with(0, buffer_reccnt, scratch_state)) { - return std::move(reconstructions); + size_t LOOKAHEAD = 2; + for (size_t i=0; isource_level; i--) { + size_t recon_reccnt = scratch_state[i-1].reccnt; + size_t base_reccnt = recon_reccnt; + /* - * The amount of storage required for the reconstruction accounts - * for the cost of storing the new records, along with the - * cost of retaining the old records during the process - * (hence the 2x multiplier). - * - * FIXME: currently does not account for the *actual* size - * of the shards, only the storage for the records - * themselves. + * If using Leveling, the total reconstruction size will be the + * records in *both* base and target, because they will need to + * be merged (assuming that target isn't empty). */ - size_t reccnt = m_levels[i-1]->get_record_count(); if constexpr (L == LayoutPolicy::LEVELING) { - if (can_reconstruct_with(i, reccnt, scratch_state)) { - reccnt += m_levels[i]->get_record_count(); + if (can_reconstruct_with(i, base_reccnt, scratch_state)) { + recon_reccnt += scratch_state[i].reccnt; } } - reconstructions.add_reconstruction(i-1, i, reccnt); + reconstructions.add_reconstruction(i-1, i, recon_reccnt); + + /* + * The base level will be emptied and its records moved to + * the target. + */ + scratch_state[i-1].reccnt = 0; + scratch_state[i-1].shardcnt = 0; + + /* + * The target level will have the records from the base level + * added to it, and potentially gain a shard if the LayoutPolicy + * is tiering or the level currently lacks any shards at all. + */ + scratch_state[i].reccnt += base_reccnt; + if (L == LayoutPolicy::TEIRING || scratch_state[i].shardcnt == 0) { + scratch_state[i].shardcnt += 1; + } } return std::move(reconstructions); @@ -336,10 +382,16 @@ public: * tombstone ordering invariant may be violated. */ inline void reconstruction(level_index base_level, level_index incoming_level) { + size_t shard_capacity = (L == LayoutPolicy::LEVELING) ? 1 : m_scale_factor; + + if (base_level >= m_levels.size()) { + m_levels.emplace_back(std::shared_ptr>(new InternalLevel(base_level, shard_capacity))); + + m_current_state.push_back({0, calc_level_record_capacity(base_level), + 0, shard_capacity}); + } - size_t shard_capacity; if constexpr (L == LayoutPolicy::LEVELING) { - shard_capacity = 1; /* if the base level has a shard, merge the base and incoming together to make a new one */ if (m_levels[base_level]->get_shard_count() > 0) { m_levels[base_level] = InternalLevel::reconstruction(m_levels[base_level].get(), m_levels[incoming_level].get()); @@ -349,7 +401,6 @@ public: } } else { - shard_capacity = m_scale_factor; m_levels[base_level]->append_level(m_levels[incoming_level].get()); m_levels[base_level]->finalize(); } @@ -408,16 +459,17 @@ private: state_vector m_current_state; /* - * Add a new level to the structure and return its index. + * Add a new level to the scratch state and return its index. + * + * IMPORTANT: This does _not_ add a level to the extension structure + * anymore. This is handled by the appropriate reconstruction and flush + * methods as needed. This function is for use in "simulated" + * reconstructions. */ inline level_index grow(state_vector &scratch_state) { level_index new_idx = m_levels.size(); size_t new_shard_cap = (L == LayoutPolicy::LEVELING) ? 1 : m_scale_factor; - m_levels.emplace_back(std::shared_ptr>(new InternalLevel(new_idx, new_shard_cap))); - - m_current_state.push_back({0, calc_level_record_capacity(new_idx), - 0, new_shard_cap}); scratch_state.push_back({0, calc_level_record_capacity(new_idx), 0, new_shard_cap}); return new_idx; @@ -451,7 +503,15 @@ private: } inline void flush_buffer_into_l0(BuffView buffer) { - assert(m_levels[0]); + size_t shard_capacity = (L == LayoutPolicy::LEVELING) ? 1 : m_scale_factor; + + if (m_levels.size() == 0) { + m_levels.emplace_back(std::shared_ptr>(new InternalLevel(0, shard_capacity))); + + m_current_state.push_back({0, calc_level_record_capacity(0), + 0, shard_capacity}); + } + if constexpr (L == LayoutPolicy::LEVELING) { // FIXME: Kludgey implementation due to interface constraints. auto old_level = m_levels[0].get(); -- cgit v1.2.3 From e4644fec1acc429a540f358b4e7e15af75aa71a9 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Mon, 12 Feb 2024 13:09:10 -0500 Subject: ExtensionStructure: first basic test of lookahead task stealing --- include/framework/structure/ExtensionStructure.h | 11 ++++++++++- include/util/types.h | 4 ++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/include/framework/structure/ExtensionStructure.h b/include/framework/structure/ExtensionStructure.h index 0e2118e..dbfb543 100644 --- a/include/framework/structure/ExtensionStructure.h +++ b/include/framework/structure/ExtensionStructure.h @@ -275,7 +275,7 @@ public: * */ ReconstructionVector get_reconstruction_tasks(size_t buffer_reccnt, - state_vector scratch_state={}) { + state_vector scratch_state={}) { /* * If no scratch state vector is provided, use a copy of the * current one. The only time an empty vector could be used as @@ -304,6 +304,14 @@ public: */ if (i == 0) { reconstructions = local_recon; + /* + * Quick sanity test of idea: if the next reconstruction + * would be larger than this one, steal the largest + * task from it and run it now instead. + */ + } else if (local_recon.get_total_reccnt() > reconstructions.get_total_reccnt()) { + auto t = local_recon.remove_reconstruction(0); + reconstructions.add_reconstruction(t); } } @@ -312,6 +320,7 @@ public: if (L == LayoutPolicy::TEIRING || scratch_state[0].shardcnt == 0) { scratch_state[0].shardcnt += 1; } + } return std::move(reconstructions); diff --git a/include/util/types.h b/include/util/types.h index e22fd18..bac0246 100644 --- a/include/util/types.h +++ b/include/util/types.h @@ -95,6 +95,10 @@ public: total_reccnt += reccnt; } + void add_reconstruction(ReconstructionTask task) { + m_tasks.push_back(task); + } + ReconstructionTask remove_reconstruction(size_t idx) { assert(idx < m_tasks.size()); auto task = m_tasks[idx]; -- cgit v1.2.3 From 9f0c31430e76207cfa9a9418694b201d463e1489 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Mon, 12 Feb 2024 13:44:03 -0500 Subject: Updated remote for external/psudb-common --- .gitmodules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index de448fe..b4b36b7 100644 --- a/.gitmodules +++ b/.gitmodules @@ -15,7 +15,7 @@ url = https://github.com/microsoft/ALEX [submodule "external/psudb-common"] path = external/psudb-common - url = git@github.com/psu-db/psudb-common + url = https://github.com/psu-db/psudb-common [submodule "external/ctpl"] path = external/ctpl url = git@github.com:vit-vit/CTPL.git -- cgit v1.2.3 From 60c30fcfd2c4a085aa87127bfe9cae51b352d13e Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Tue, 20 Feb 2024 16:10:32 -0500 Subject: Updated watermark benchmark to shuffle data --- benchmarks/watermark_testing.cpp | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/benchmarks/watermark_testing.cpp b/benchmarks/watermark_testing.cpp index caba8ff..5fa0c0d 100644 --- a/benchmarks/watermark_testing.cpp +++ b/benchmarks/watermark_testing.cpp @@ -5,15 +5,17 @@ #define ENABLE_TIMER #include "framework/DynamicExtension.h" -#include "shard/ISAMTree.h" +#include "shard/TrieSpline.h" #include "query/rangequery.h" #include "framework/interface/Record.h" #include "psu-util/timer.h" +#include -typedef de::Record Rec; -typedef de::ISAMTree ISAM; +typedef uint64_t K; +typedef de::Record Rec; +typedef de::TrieSpline ISAM; typedef de::rq::Query Q; typedef de::DynamicExtension Ext; @@ -23,7 +25,14 @@ int main(int argc, char **argv) { std::vector hwms = {5000l, 10000l, 20000l, 50000l}; std::vector lwms = {.1, .2, .3, .4, .5, .6, .7, .8, .9}; - size_t n = 1000000; + size_t n = 1000000000; + + std::vector keys(n); + for (K i=0; iinsert(r)) { _mm_pause(); } -- cgit v1.2.3 From 49bceabf90d114b89638659141d54083c1b7f395 Mon Sep 17 00:00:00 2001 From: "Douglas B. Rumbaugh" Date: Wed, 21 Feb 2024 17:03:08 -0500 Subject: VPTree: precalculate distances to make construction more efficient --- include/shard/VPTree.h | 49 ++++++++++++++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 19 deletions(-) diff --git a/include/shard/VPTree.h b/include/shard/VPTree.h index b342fe6..62857ce 100644 --- a/include/shard/VPTree.h +++ b/include/shard/VPTree.h @@ -58,7 +58,7 @@ public: sizeof(Wrapped), (byte**) &m_data); - m_ptrs = new Wrapped*[buffer.get_record_count()]; + m_ptrs = new vp_ptr[buffer.get_record_count()]; size_t offset = 0; m_reccnt = 0; @@ -76,7 +76,7 @@ public: rec->header &= 3; m_data[m_reccnt] = *rec; - m_ptrs[m_reccnt] = &m_data[m_reccnt]; + m_ptrs[m_reccnt].ptr = &m_data[m_reccnt]; m_reccnt++; } @@ -97,7 +97,7 @@ public: m_alloc_size = psudb::sf_aligned_alloc(CACHELINE_SIZE, attemp_reccnt * sizeof(Wrapped), (byte **) &m_data); - m_ptrs = new Wrapped*[attemp_reccnt]; + m_ptrs = new vp_ptr[attemp_reccnt]; // FIXME: will eventually need to figure out tombstones // this one will likely require the multi-pass @@ -110,7 +110,7 @@ public: } m_data[m_reccnt] = *shards[i]->get_record_at(j); - m_ptrs[m_reccnt] = &m_data[m_reccnt]; + m_ptrs[m_reccnt].ptr = &m_data[m_reccnt]; m_reccnt++; } } @@ -139,8 +139,8 @@ public: } else { vpnode *node = m_root; - while (!node->leaf && m_ptrs[node->start]->rec != rec) { - if (rec.calc_distance((m_ptrs[node->start]->rec)) >= node->radius) { + while (!node->leaf && m_ptrs[node->start].ptr->rec != rec) { + if (rec.calc_distance((m_ptrs[node->start].ptr->rec)) >= node->radius) { node = node->outside; } else { node = node->inside; @@ -148,8 +148,8 @@ public: } for (size_t i=node->start; i<=node->stop; i++) { - if (m_ptrs[i]->rec == rec) { - return m_ptrs[i]; + if (m_ptrs[i].ptr->rec == rec) { + return m_ptrs[i].ptr; } } @@ -191,8 +191,12 @@ public: } private: + struct vp_ptr { + Wrapped *ptr; + double dist; + }; Wrapped* m_data; - Wrapped** m_ptrs; + vp_ptr* m_ptrs; std::unordered_map> m_lookup_map; size_t m_reccnt; size_t m_tombstone_cnt; @@ -260,6 +264,11 @@ private: auto i = start + gsl_rng_uniform_int(rng, stop - start + 1); swap(start, i); + /* for efficiency, we'll pre-calculate the distances between each point and the root */ + for (size_t i=start+1; i<=stop; i++) { + m_ptrs[i].dist = m_ptrs[start].ptr->rec.calc_distance(m_ptrs[i].ptr->rec); + } + /* * partition elements based on their distance from the start, * with those elements with distance falling below the median @@ -267,14 +276,15 @@ private: * the median in the right. This is easily done using QuickSelect. */ auto mid = (start + 1 + stop) / 2; - quickselect(start + 1, stop, mid, m_ptrs[start], rng); + quickselect(start + 1, stop, mid, m_ptrs[start].ptr, rng); /* Create a new node based on this partitioning */ vpnode *node = new vpnode(); node->start = start; /* store the radius of the circle used for partitioning the node. */ - node->radius = m_ptrs[start]->rec.calc_distance(m_ptrs[mid]->rec); + node->radius = m_ptrs[start].ptr->rec.calc_distance(m_ptrs[mid].ptr->rec); + m_ptrs[start].dist = node->radius; /* recursively construct the left and right subtrees */ node->inside = build_subtree(start + 1, mid-1, rng); @@ -285,8 +295,6 @@ private: return node; } - // TODO: The quickselect code can probably be generalized and moved out - // to psudb-common instead. void quickselect(size_t start, size_t stop, size_t k, Wrapped *p, gsl_rng *rng) { if (start == stop) return; @@ -303,13 +311,16 @@ private: // to psudb-common instead. size_t partition(size_t start, size_t stop, Wrapped *p, gsl_rng *rng) { auto pivot = start + gsl_rng_uniform_int(rng, stop - start); - double pivot_dist = p->rec.calc_distance(m_ptrs[pivot]->rec); + //double pivot_dist = p->rec.calc_distance(m_ptrs[pivot]->rec); swap(pivot, stop); size_t j = start; for (size_t i=start; irec.calc_distance(m_ptrs[i]->rec) < pivot_dist) { + if (m_ptrs[i].dist < m_ptrs[stop].dist) { + //assert(distances[i - start] == p->rec.calc_distance(m_ptrs[i]->rec)); + //if (distances[i - start] < distances[stop - start]) { + //if (p->rec .calc_distance(m_ptrs[i]->rec) < pivot_dist) { swap(j, i); j++; } @@ -332,13 +343,13 @@ private: if (node->leaf) { for (size_t i=node->start; i<=node->stop; i++) { - double d = point.calc_distance(m_ptrs[i]->rec); + double d = point.calc_distance(m_ptrs[i].ptr->rec); if (d < *farthest) { if (pq.size() == k) { pq.pop(); } - pq.push(m_ptrs[i]); + pq.push(m_ptrs[i].ptr); if (pq.size() == k) { *farthest = point.calc_distance(pq.peek().data->rec); } @@ -348,14 +359,14 @@ private: return; } - double d = point.calc_distance(m_ptrs[node->start]->rec); + double d = point.calc_distance(m_ptrs[node->start].ptr->rec); if (d < *farthest) { if (pq.size() == k) { auto t = pq.peek().data->rec; pq.pop(); } - pq.push(m_ptrs[node->start]); + pq.push(m_ptrs[node->start].ptr); if (pq.size() == k) { *farthest = point.calc_distance(pq.peek().data->rec); } -- cgit v1.2.3 From 0fcf63e9e47bae61b9f7289c157b28ec294c2e24 Mon Sep 17 00:00:00 2001 From: "Douglas B. Rumbaugh" Date: Wed, 21 Feb 2024 17:03:45 -0500 Subject: Triespline: added test to verify that crash is not due to this project --- CMakeLists.txt | 6 +++++ tests/triespline_debug.cpp | 63 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 tests/triespline_debug.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 81fdb63..31bc75a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -115,6 +115,12 @@ if (tests) target_include_directories(pgm_tests PRIVATE include external/PGM-index/include external/psudb-common/cpp/include) target_link_options(pgm_tests PUBLIC -mcx16) target_compile_options(pgm_tests PUBLIC -fopenmp) + + + add_executable(triespline_debug ${CMAKE_CURRENT_SOURCE_DIR}/tests/triespline_debug.cpp) + target_link_libraries(triespline_debug PUBLIC gsl check subunit pthread atomic) + target_link_options(triespline_debug PUBLIC -mcx16) + target_include_directories(triespline_debug PRIVATE include external/psudb-common/cpp/include external/PLEX/include) endif() if (bench) diff --git a/tests/triespline_debug.cpp b/tests/triespline_debug.cpp new file mode 100644 index 0000000..4949cd0 --- /dev/null +++ b/tests/triespline_debug.cpp @@ -0,0 +1,63 @@ +/* + * tests/internal_level_tests.cpp + * + * Unit tests for InternalLevel + * + * Copyright (C) 2023 Douglas Rumbaugh + * Dong Xie + * + * Distributed under the Modified BSD License. + * + */ + +#include +#include "ts/builder.h" + +#include + + +START_TEST(t_sequential_integers) +{ + size_t n = 4097; + auto bldr = ts::Builder(436712, 440808, 1024); + + for (size_t i=436712; i Date: Fri, 23 Feb 2024 15:40:49 -0500 Subject: Benchmark updates --- CMakeLists.txt | 27 ++- benchmarks/CMak | 0 benchmarks/include/benchmark_types.h | 50 ++++++ benchmarks/include/btree-util.h | 27 --- benchmarks/include/data-proc.h | 258 --------------------------- benchmarks/include/file_util.h | 130 ++++++++++++++ benchmarks/include/standard_benchmarks.h | 212 ++++++++++++++++++++++ benchmarks/irs_bench.cpp | 73 ++------ benchmarks/old-bench/include/bench_utility.h | 2 - benchmarks/pgm_bench.cpp | 64 ++----- benchmarks/ts_bench.cpp | 64 ++----- benchmarks/vptree_bench.cpp | 89 +++++++++ benchmarks/watermark_testing_knn.cpp | 61 +++++++ 13 files changed, 602 insertions(+), 455 deletions(-) create mode 100644 benchmarks/CMak create mode 100644 benchmarks/include/benchmark_types.h delete mode 100644 benchmarks/include/btree-util.h delete mode 100644 benchmarks/include/data-proc.h create mode 100644 benchmarks/include/file_util.h create mode 100644 benchmarks/include/standard_benchmarks.h create mode 100644 benchmarks/vptree_bench.cpp create mode 100644 benchmarks/watermark_testing_knn.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 31bc75a..08a61c1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -141,16 +141,16 @@ if (bench) target_include_directories(query_workload_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) target_link_options(query_workload_bench PUBLIC -mcx16) - add_executable(insert_query_tput ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/insert_query_tput.cpp) - target_link_libraries(insert_query_tput PUBLIC gsl pthread gomp atomic) - target_include_directories(insert_query_tput PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) - target_link_options(insert_query_tput PUBLIC -mcx16) + #add_executable(insert_query_tput ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/insert_query_tput.cpp) + #target_link_libraries(insert_query_tput PUBLIC gsl pthread gomp atomic) + #target_include_directories(insert_query_tput PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) + #target_link_options(insert_query_tput PUBLIC -mcx16) - add_executable(btree_insert_query_tput ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/btree_insert_query_tput.cpp) - target_link_libraries(btree_insert_query_tput PUBLIC gsl pthread gomp atomic) - target_include_directories(btree_insert_query_tput PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) - target_link_options(btree_insert_query_tput PUBLIC -mcx16) + #add_executable(btree_insert_query_tput ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/btree_insert_query_tput.cpp) + #target_link_libraries(btree_insert_query_tput PUBLIC gsl pthread gomp atomic) + #target_include_directories(btree_insert_query_tput PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) + #target_link_options(btree_insert_query_tput PUBLIC -mcx16) add_executable(watermark_testing ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/watermark_testing.cpp) target_link_libraries(watermark_testing PUBLIC gsl pthread gomp atomic) @@ -162,6 +162,17 @@ if (bench) target_include_directories(irs_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) target_link_options(irs_bench PUBLIC -mcx16) + add_executable(vptree_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vptree_bench.cpp) + target_link_libraries(vptree_bench PUBLIC gsl pthread gomp atomic) + target_include_directories(vptree_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) + target_link_options(vptree_bench PUBLIC -mcx16) + + + add_executable(ts_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/ts_bench.cpp) + target_link_libraries(ts_bench PUBLIC gsl pthread gomp atomic) + target_include_directories(ts_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) + target_link_options(ts_bench PUBLIC -mcx16) + #add_executable(static_dynamic_comp ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/static_dynamic_comp.cpp) #target_link_libraries(static_dynamic_comp PUBLIC gsl pthread gomp atomic) #target_include_directories(static_dynamic_comp PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) diff --git a/benchmarks/CMak b/benchmarks/CMak new file mode 100644 index 0000000..e69de29 diff --git a/benchmarks/include/benchmark_types.h b/benchmarks/include/benchmark_types.h new file mode 100644 index 0000000..85e9565 --- /dev/null +++ b/benchmarks/include/benchmark_types.h @@ -0,0 +1,50 @@ +#pragma once + +#include +#include "psu-ds/BTree.h" +#include "mtree.h" +#include "framework/interface/Record.h" + +/* TLX BTree definitions*/ +template +struct btree_record { + K key; + V value; + + inline bool operator<(const btree_record& other) const { + return key < other.key || (key == other.key && value < other.value); + } + + inline bool operator==(const btree_record& other) const { + return key == other.key && value == other.value; + } +}; + +template +struct btree_key_extract { + static const K &get(const btree_record &v) { + return v.key; + } +}; + +typedef psudb::BTree, btree_key_extract> BenchBTree; + + +/*MTree Definitions*/ + +const size_t W2V_SIZE = 300; +typedef de::EuclidPoint Word2VecRec; + +struct euclidean_distance { + double operator()(const Word2VecRec &first, const Word2VecRec &second) const { + double dist = 0; + for (size_t i=0; i MTree; + diff --git a/benchmarks/include/btree-util.h b/benchmarks/include/btree-util.h deleted file mode 100644 index 571c073..0000000 --- a/benchmarks/include/btree-util.h +++ /dev/null @@ -1,27 +0,0 @@ -#pragma once - -#include -#include "psu-ds/BTree.h" - -struct btree_record { - int64_t key; - int64_t value; - - inline bool operator<(const btree_record& other) const { - return key < other.key || (key == other.key && value < other.value); - } - - inline bool operator==(const btree_record& other) const { - return key == other.key && value == other.value; - } -}; - -struct btree_key_extract { - static const int64_t &get(const btree_record &v) { - return v.key; - } -}; - -typedef psudb::BTree BenchBTree; - - diff --git a/benchmarks/include/data-proc.h b/benchmarks/include/data-proc.h deleted file mode 100644 index 444cb94..0000000 --- a/benchmarks/include/data-proc.h +++ /dev/null @@ -1,258 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "psu-ds/BTree.h" - -#pragma once - -typedef int64_t key_type; -typedef int64_t value_type; -typedef uint64_t weight_type; - -static gsl_rng *g_rng; -static bool g_osm_data; - -struct btree_record { - key_type key; - value_type value; - - inline bool operator<(const btree_record& other) const { - return key < other.key || (key == other.key && value < other.value); - } - - inline bool operator==(const btree_record& other) const { - return key == other.key && value == other.value; - } -}; - -struct btree_key_extract { - static const key_type &get(const btree_record &v) { - return v.key; - } -}; - -typedef psudb::BTree BenchBTree; - -static key_type g_min_key = UINT64_MAX; -static key_type g_max_key = 0; - -static size_t g_max_record_cnt = 0; -static size_t g_reccnt = 0; - -static constexpr unsigned int DEFAULT_SEED = 0; - -static unsigned int get_random_seed() -{ - unsigned int seed = 0; - std::fstream urandom; - urandom.open("/dev/urandom", std::ios::in|std::ios::binary); - urandom.read((char *) &seed, sizeof(seed)); - urandom.close(); - - return seed; -} - -static key_type osm_to_key(const char *key_field) { - double tmp_key = (atof(key_field) + 180) * 10e6; - return (key_type) tmp_key; -} - -static void init_bench_rng(unsigned int seed, const gsl_rng_type *type) -{ - g_rng = gsl_rng_alloc(type); - gsl_rng_set(g_rng, seed); -} - -static void init_bench_env(size_t max_reccnt, bool random_seed, bool osm_correction=true) -{ - unsigned int seed = (random_seed) ? get_random_seed() : DEFAULT_SEED; - init_bench_rng(seed, gsl_rng_mt19937); - g_osm_data = osm_correction; - g_max_record_cnt = max_reccnt; - g_reccnt = 0; -} - -static void delete_bench_env() -{ - gsl_rng_free(g_rng); -} - - -template -static std::vector read_lookup_queries(std::string fname, double selectivity) { - std::vector queries; - - FILE *qf = fopen(fname.c_str(), "r"); - size_t start, stop; - double sel; - while (fscanf(qf, "%zu%zu%lf\n", &start, &stop, &sel) != EOF) { - if (start < stop && std::abs(sel - selectivity) < 0.1) { - QP q; - q.target_key = start; - queries.push_back(q); - } - } - fclose(qf); - - return queries; -} - -template -static std::vector read_range_queries(std::string &fname, double selectivity) { - std::vector queries; - - FILE *qf = fopen(fname.c_str(), "r"); - size_t start, stop; - double sel; - while (fscanf(qf, "%zu%zu%lf\n", &start, &stop, &sel) != EOF) { - if (start < stop && std::abs(sel - selectivity) < 0.1) { - QP q; - q.lower_bound = start; - q.upper_bound = stop; - queries.push_back(q); - } - } - fclose(qf); - - return queries; -} - -template -static std::vector read_knn_queries(std::string fname, size_t k) { - std::vector queries; - - FILE *qf = fopen(fname.c_str(), "r"); - char *line = NULL; - size_t len = 0; - - while (getline(&line, &len, qf) > 0) { - char *token; - QP query; - size_t idx = 0; - - token = strtok(line, " "); - do { - query.point.data[idx++] = atof(token); - } while ((token = strtok(NULL, " "))); - - query.k = k; - queries.emplace_back(query); - } - - free(line); - fclose(qf); - - return queries; -} - -/* - * NOTE: The QP type must have lower_bound and upper_bound attributes, which - * this function will initialize. Any other query parameter attributes must - * be manually initialized after the call. - */ -template -static bool next_vector_record(std::fstream &file, R &record, bool binary=false) { - std::string line; - if (std::getline(file, line, '\n')) { - std::stringstream line_stream(line); - for (size_t i=0; i<300; i++) { - std::string dimension; - - std::getline(line_stream, dimension, ' '); - record.data[i] = atof(dimension.c_str()); - } - - g_reccnt++; - - return true; - } - - return false; - -} - -template -static bool next_record(std::fstream &file, R &record, bool binary=false) -{ - static value_type value = 1; - if (g_reccnt >= g_max_record_cnt) return false; - - if (binary) { - if (file.good()) { - decltype(R::key) key; - - file.read((char*) &key, sizeof(key)); - record.key = key; - record.value = value; - value++; - - if (record.key < g_min_key) g_min_key = record.key; - if (record.key > g_max_key) g_max_key = record.key; - - return true; - } - - return false; - } - - std::string line; - if (std::getline(file, line, '\n')) { - std::stringstream line_stream(line); - std::string key_field; - std::string value_field; - std::string weight_field; - - std::getline(line_stream, value_field, '\t'); - std::getline(line_stream, key_field, '\t'); - std::getline(line_stream, weight_field, '\t'); - - record.key = (g_osm_data) ? osm_to_key(key_field.c_str()) : atol(key_field.c_str()); - record.value = atol(value_field.c_str()); - - if (record.key < g_min_key) g_min_key = record.key; - if (record.key > g_max_key) g_max_key = record.key; - - g_reccnt++; - - return true; - } - - return false; -} - -template -static bool build_delete_vec(std::vector &to_delete, std::vector &vec, size_t n) { - vec.clear(); - - size_t cnt = 0; - while (cnt < n) { - if (to_delete.size() == 0) { - return false; - } - - auto i = gsl_rng_uniform_int(g_rng, to_delete.size()); - vec.emplace_back(to_delete[i]); - to_delete.erase(to_delete.begin() + i); - } -td: - return true; -} - -static std::vector read_sosd_file(std::string &fname, size_t n) { - std::fstream file; - file.open(fname, std::ios::in | std::ios::binary); - - std::vector records(n); - for (size_t i=0; i +#include +#include +#include +#include +#include +#include +#include +#include + +#include "framework/interface/Record.h" +#include "query/irs.h" + +#pragma once + +template +static std::vector read_lookup_queries(std::string fname, double selectivity) { + std::vector queries; + + FILE *qf = fopen(fname.c_str(), "r"); + size_t start, stop; + double sel; + while (fscanf(qf, "%zu%zu%lf\n", &start, &stop, &sel) != EOF) { + if (start < stop && std::abs(sel - selectivity) < 0.1) { + QP q; + q.target_key = start; + queries.push_back(q); + } + } + fclose(qf); + + return queries; +} + +template +static std::vector read_range_queries(std::string &fname, double selectivity) { + std::vector queries; + + FILE *qf = fopen(fname.c_str(), "r"); + size_t start, stop; + double sel; + while (fscanf(qf, "%zu%zu%lf\n", &start, &stop, &sel) != EOF) { + if (start < stop && std::abs(sel - selectivity) < 0.1) { + QP q; + q.lower_bound = start; + q.upper_bound = stop; + + queries.push_back(q); + } + } + fclose(qf); + + return queries; +} + +template +static std::vector read_knn_queries(std::string fname, size_t k) { + std::vector queries; + + FILE *qf = fopen(fname.c_str(), "r"); + char *line = NULL; + size_t len = 0; + + while (getline(&line, &len, qf) > 0) { + char *token; + QP query; + size_t idx = 0; + + token = strtok(line, " "); + do { + query.point.data[idx++] = atof(token); + } while ((token = strtok(NULL, " "))); + + query.k = k; + queries.emplace_back(query); + } + + free(line); + fclose(qf); + + return queries; +} + +template +static std::vector read_sosd_file(std::string &fname, size_t n) { + std::fstream file; + file.open(fname, std::ios::in | std::ios::binary); + + std::vector records(n); + for (size_t i=0; i +static std::vector read_vector_file(std::string &fname, size_t n) { + std::fstream file; + file.open(fname, std::ios::in); + + std::vector records; + records.reserve(n); + + for (size_t i=0; i + * + * All rights reserved. Published under the Modified BSD License. + * + */ +#pragma once + +#include +#include +#include + +#include "framework/DynamicExtension.h" +#include "framework/interface/Query.h" +#include "psu-util/progress.h" +#include "benchmark_types.h" + +static size_t g_deleted_records = 0; +static double delete_proportion = 0.05; + +template +static void run_queries(DE *extension, std::vector &queries, gsl_rng *rng) { + size_t total; + for (size_t i=0; iquery(q); + auto r = res.get(); + total += r.size(); + } +} + + +template +static void insert_records(DE *extension, size_t start, size_t stop, + std::vector &records, std::vector &to_delete, + size_t &delete_idx, bool delete_records, gsl_rng *rng) { + + psudb::progress_update(0, "Insert Progress"); + size_t reccnt = 0; + for (size_t i=start; iinsert(records[i])) { + psudb::progress_update((double) i / (double)(stop - start), "Insert Progress"); + usleep(1); + } + + if (delete_records && gsl_rng_uniform(rng) <= + delete_proportion && to_delete[delete_idx] <= i) { + + while (!extension->erase(records[to_delete[delete_idx]])) { + usleep(1); + } + + delete_idx++; + g_deleted_records++; + } + } + + psudb::progress_update(1, "Insert Progress"); +} + +template +static bool insert_tput_bench(DE &de_index, std::fstream &file, size_t insert_cnt, + double delete_prop, gsl_rng *rng, std::vector &to_delete, bool binary=false) { + + size_t delete_cnt = insert_cnt * delete_prop; + + size_t applied_deletes = 0; + size_t applied_inserts = 0; + + std::vector insert_vec; + std::vector delete_vec; + insert_vec.reserve(BATCH); + delete_vec.reserve(BATCH*delete_prop); + + size_t delete_idx = 0; + + bool continue_benchmark = true; + + size_t total_time = 0; + + while (applied_inserts < insert_cnt && continue_benchmark) { + continue_benchmark = build_insert_vec(file, insert_vec, BATCH, delete_prop, to_delete, binary); + if (applied_deletes < delete_cnt) { + build_delete_vec(to_delete, delete_vec, BATCH*delete_prop); + delete_idx = 0; + } + + if (insert_vec.size() == 0) { + break; + } + + if constexpr (PROGRESS) { + psudb::progress_update((double) applied_inserts / (double) insert_cnt, "inserting:"); + } + + auto insert_start = std::chrono::high_resolution_clock::now(); + for (size_t i=0; i) { + de_index.erase_one(delete_vec[delete_idx++].key); + } else if constexpr (std::is_same_v) { + de_index.remove(delete_vec[delete_idx++]); + } else { + de_index.erase(delete_vec[delete_idx++]); + } + applied_deletes++; + } + + // insert the record; + if constexpr (std::is_same_v) { + de_index.add(insert_vec[i]); + } else { + de_index.insert(insert_vec[i]); + } + applied_inserts++; + } + auto insert_stop = std::chrono::high_resolution_clock::now(); + + total_time += std::chrono::duration_cast(insert_stop - insert_start).count(); + } + + if constexpr (PROGRESS) { + psudb::progress_update(1.0, "inserting:"); + } + + size_t throughput = (((double) (applied_inserts + applied_deletes) / (double) total_time) * 1e9); + + fprintf(stdout, "%ld\t", throughput); + + return continue_benchmark; +} + +template +static bool query_latency_bench(DE &de_index, std::vector queries, size_t trial_cnt=1) { + char progbuf[25]; + if constexpr (PROGRESS) { + sprintf(progbuf, "querying:"); + } + + size_t total_time = 0; + size_t total_results = 0; + + for (size_t i=0; i(stop - start).count(); + } + + psudb::progress_update(1.0, progbuf); + + size_t query_latency = total_time / (trial_cnt * queries.size()); + + fprintf(stdout, "%ld\t", query_latency); + fflush(stdout); + + return true; +} + + +template Q, bool PROGRESS=true> +static bool static_latency_bench(Shard *shard, std::vector queries, size_t trial_cnt=100) { + char progbuf[25]; + if constexpr (PROGRESS) { + sprintf(progbuf, "querying:"); + } + + size_t total_time = 0; + size_t total_results = 0; + + for (size_t i=0; i states(1); + + auto start = std::chrono::high_resolution_clock::now(); + for (size_t j=0; j(stop - start).count(); + } + + psudb::progress_update(1.0, progbuf); + + size_t query_latency = total_time / (trial_cnt * queries.size()); + + fprintf(stdout, "%ld\t", query_latency); + fflush(stdout); + + return true; +} diff --git a/benchmarks/irs_bench.cpp b/benchmarks/irs_bench.cpp index 49b1630..9895295 100644 --- a/benchmarks/irs_bench.cpp +++ b/benchmarks/irs_bench.cpp @@ -4,76 +4,32 @@ #define ENABLE_TIMER -#include - #include "framework/DynamicExtension.h" #include "shard/ISAMTree.h" #include "query/irs.h" #include "framework/interface/Record.h" -#include "include/data-proc.h" +#include "include/file_util.h" #include #include "psu-util/timer.h" +#include "include/standard_benchmarks.h" typedef de::Record Rec; -typedef de::ISAMTree ISAM; -typedef de::irs::Query Q; -typedef de::DynamicExtension Ext; +typedef de::ISAMTree Shard; +typedef de::irs::Query Q; +typedef de::DynamicExtension Ext; typedef de::irs::Parms QP; -void run_queries(Ext *extension, std::vector &queries, gsl_rng *rng) { - size_t total; - for (size_t i=0; irng = rng; - q->sample_size = 1000; - - auto res = extension->query(q); - auto r = res.get(); - total += r.size(); - } - - fprintf(stderr, "%ld\n", total); -} - -size_t g_deleted_records = 0; -double delete_proportion = 0.05; - -void insert_records(Ext *extension, size_t start, - size_t stop, - std::vector &records, - std::vector &to_delete, - size_t &delete_idx, - bool delete_records, - gsl_rng *rng) { - size_t reccnt = 0; - Rec r; - for (size_t i=start; iinsert(r)) { - usleep(1); - } - - if (delete_records && gsl_rng_uniform(rng) <= delete_proportion && to_delete[delete_idx] <= i) { - r.key = records[to_delete[delete_idx]]; - r.value = (int64_t) (to_delete[delete_idx]); - while (!extension->erase(r)) { - usleep(1); - } - delete_idx++; - g_deleted_records++; - } - } +void usage(char *progname) { + fprintf(stderr, "%s reccnt datafile queryfile", progname); } int main(int argc, char **argv) { if (argc < 4) { - fprintf(stderr, "irs_bench reccnt datafile queryfile\n"); + usage(argv[0]); exit(EXIT_FAILURE); } @@ -84,7 +40,7 @@ int main(int argc, char **argv) { auto extension = new Ext(12000, 12001, 8, 0, 64); gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937); - auto data = read_sosd_file(d_fname, n); + auto data = read_sosd_file(d_fname, n); std::vector to_delete(n * delete_proportion); size_t j=0; for (size_t i=0; i(q_fname, .001); + for (auto q : queries) { + q.sample_size = 1000; + q.rng = rng; + } /* warmup structure w/ 10% of records */ size_t warmup = .3 * n; size_t delete_idx = 0; - insert_records(extension, 0, warmup, data, to_delete, delete_idx, false, rng); + insert_records(extension, 0, warmup, data, to_delete, delete_idx, false, rng); extension->await_next_epoch(); TIMER_INIT(); TIMER_START(); - insert_records(extension, warmup, data.size(), data, to_delete, delete_idx, true, rng); + insert_records(extension, warmup, data.size(), data, to_delete, delete_idx, true, rng); TIMER_STOP(); auto insert_latency = TIMER_RESULT(); size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); TIMER_START(); - run_queries(extension, queries, rng); + run_queries(extension, queries, rng); TIMER_STOP(); auto query_latency = TIMER_RESULT() / queries.size(); diff --git a/benchmarks/old-bench/include/bench_utility.h b/benchmarks/old-bench/include/bench_utility.h index e33b93d..f495f18 100644 --- a/benchmarks/old-bench/include/bench_utility.h +++ b/benchmarks/old-bench/include/bench_utility.h @@ -79,8 +79,6 @@ struct cosine_similarity { } }; -typedef tlx::BTree TreeMap; -typedef mt::mtree MTree; template static bool build_insert_vec(std::fstream &file, std::vector &vec, size_t n, diff --git a/benchmarks/pgm_bench.cpp b/benchmarks/pgm_bench.cpp index 72d3b52..3643abb 100644 --- a/benchmarks/pgm_bench.cpp +++ b/benchmarks/pgm_bench.cpp @@ -10,7 +10,8 @@ #include "shard/PGM.h" #include "query/rangecount.h" #include "framework/interface/Record.h" -#include "include/data-proc.h" +#include "include/file_util.h" +#include "include/standard_benchmarks.h" #include @@ -18,60 +19,19 @@ typedef de::Record Rec; -typedef de::PGM S; -typedef de::rc::Query Q; -typedef de::DynamicExtension Ext; +typedef de::PGM Shard; +typedef de::rc::Query Q; +typedef de::DynamicExtension Ext; typedef de::rc::Parms QP; -void run_queries(Ext *extension, std::vector &queries, gsl_rng *rng) { - size_t total; - for (size_t i=0; iquery(q); - auto r = res.get(); - total += r.size(); - } - - fprintf(stderr, "%ld\n", total); -} - -size_t g_deleted_records = 0; -double delete_proportion = 0.05; - -void insert_records(Ext *extension, size_t start, - size_t stop, - std::vector &records, - std::vector &to_delete, - size_t &delete_idx, - bool delete_records, - gsl_rng *rng) { - size_t reccnt = 0; - Rec r; - for (size_t i=start; iinsert(r)) { - usleep(1); - } - - if (delete_records && gsl_rng_uniform(rng) <= delete_proportion && to_delete[delete_idx] <= i) { - r.key = records[to_delete[delete_idx]]; - r.value = (int64_t) (to_delete[delete_idx]); - while (!extension->erase(r)) { - usleep(1); - } - delete_idx++; - g_deleted_records++; - } - } +void usage(char *progname) { + fprintf(stderr, "%s reccnt datafile queryfile", progname); } int main(int argc, char **argv) { if (argc < 4) { - fprintf(stderr, "pgm_bench reccnt datafile queryfile\n"); + usage(argv[0]); exit(EXIT_FAILURE); } @@ -82,7 +42,7 @@ int main(int argc, char **argv) { auto extension = new Ext(12000, 12001, 8, 0, 64); gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937); - auto data = read_sosd_file(d_fname, n); + auto data = read_sosd_file(d_fname, n); std::vector to_delete(n * delete_proportion); size_t j=0; for (size_t i=0; i(extension, 0, warmup, data, to_delete, delete_idx, false, rng); extension->await_next_epoch(); TIMER_INIT(); TIMER_START(); - insert_records(extension, warmup, data.size(), data, to_delete, delete_idx, true, rng); + insert_records(extension, warmup, data.size(), data, to_delete, delete_idx, true, rng); TIMER_STOP(); auto insert_latency = TIMER_RESULT(); size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); TIMER_START(); - run_queries(extension, queries, rng); + run_queries(extension, queries, rng); TIMER_STOP(); auto query_latency = TIMER_RESULT() / queries.size(); diff --git a/benchmarks/ts_bench.cpp b/benchmarks/ts_bench.cpp index 3df3371..3dc619e 100644 --- a/benchmarks/ts_bench.cpp +++ b/benchmarks/ts_bench.cpp @@ -10,7 +10,8 @@ #include "shard/TrieSpline.h" #include "query/rangecount.h" #include "framework/interface/Record.h" -#include "include/data-proc.h" +#include "include/file_util.h" +#include "include/standard_benchmarks.h" #include @@ -18,60 +19,19 @@ typedef de::Record Rec; -typedef de::TrieSpline TS; -typedef de::rc::Query Q; -typedef de::DynamicExtension Ext; +typedef de::TrieSpline PGM; +typedef de::rc::Query Q; +typedef de::DynamicExtension Ext; typedef de::rc::Parms QP; -void run_queries(Ext *extension, std::vector &queries, gsl_rng *rng) { - size_t total; - for (size_t i=0; iquery(q); - auto r = res.get(); - total += r.size(); - } - - fprintf(stderr, "%ld\n", total); -} - -size_t g_deleted_records = 0; -double delete_proportion = 0.05; - -void insert_records(Ext *extension, size_t start, - size_t stop, - std::vector &records, - std::vector &to_delete, - size_t &delete_idx, - bool delete_records, - gsl_rng *rng) { - size_t reccnt = 0; - Rec r; - for (size_t i=start; iinsert(r)) { - usleep(1); - } - - if (delete_records && gsl_rng_uniform(rng) <= delete_proportion && to_delete[delete_idx] <= i) { - r.key = records[to_delete[delete_idx]]; - r.value = (int64_t) (to_delete[delete_idx]); - while (!extension->erase(r)) { - usleep(1); - } - delete_idx++; - g_deleted_records++; - } - } +void usage(char *progname) { + fprintf(stderr, "%s reccnt datafile queryfile", progname); } int main(int argc, char **argv) { if (argc < 4) { - fprintf(stderr, "ts_bench reccnt datafile queryfile\n"); + usage(argv[0]); exit(EXIT_FAILURE); } @@ -82,7 +42,7 @@ int main(int argc, char **argv) { auto extension = new Ext(12000, 12001, 8, 0, 64); gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937); - auto data = read_sosd_file(d_fname, n); + auto data = read_sosd_file(d_fname, n); std::vector to_delete(n * delete_proportion); size_t j=0; for (size_t i=0; i(extension, 0, warmup, data, to_delete, delete_idx, false, rng); extension->await_next_epoch(); TIMER_INIT(); TIMER_START(); - insert_records(extension, warmup, data.size(), data, to_delete, delete_idx, true, rng); + insert_records(extension, warmup, data.size(), data, to_delete, delete_idx, true, rng); TIMER_STOP(); auto insert_latency = TIMER_RESULT(); size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); TIMER_START(); - run_queries(extension, queries, rng); + run_queries(extension, queries, rng); TIMER_STOP(); auto query_latency = TIMER_RESULT() / queries.size(); diff --git a/benchmarks/vptree_bench.cpp b/benchmarks/vptree_bench.cpp new file mode 100644 index 0000000..f4c7d0e --- /dev/null +++ b/benchmarks/vptree_bench.cpp @@ -0,0 +1,89 @@ +/* + * + */ + +#define ENABLE_TIMER + +#include "framework/DynamicExtension.h" +#include "shard/VPTree.h" +#include "query/knn.h" +#include "framework/interface/Record.h" +#include "include/file_util.h" +#include "include/standard_benchmarks.h" + +#include + +#include "psu-util/timer.h" + + +typedef Word2VecRec Rec; + +typedef de::VPTree Shard; +typedef de::knn::Query Q; +typedef de::DynamicExtension Ext; +typedef de::knn::Parms QP; + +void usage(char *progname) { + fprintf(stderr, "%s reccnt datafile queryfile", progname); +} + +int main(int argc, char **argv) { + + if (argc < 4) { + usage(argv[0]); + exit(EXIT_FAILURE); + } + + size_t n = atol(argv[1]); + std::string d_fname = std::string(argv[2]); + std::string q_fname = std::string(argv[3]); + + auto extension = new Ext(100, 1000, 8, 0, 64); + gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937); + + fprintf(stderr, "[I] Reading data file...\n"); + auto data = read_vector_file(d_fname, n); + + fprintf(stderr, "[I] Generating delete vector\n"); + std::vector to_delete(n * delete_proportion); + size_t j=0; + for (size_t i=0; i(q_fname, 10); + + fprintf(stderr, "[I] Warming up structure...\n"); + /* warmup structure w/ 10% of records */ + size_t warmup = .1 * n; + size_t delete_idx = 0; + insert_records(extension, 0, warmup, data, to_delete, delete_idx, false, rng); + + extension->await_next_epoch(); + + TIMER_INIT(); + + fprintf(stderr, "[I] Running Insertion Benchmark\n"); + TIMER_START(); + insert_records(extension, warmup, data.size(), data, to_delete, delete_idx, true, rng); + TIMER_STOP(); + + auto insert_latency = TIMER_RESULT(); + size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); + + fprintf(stderr, "[I] Running Query Benchmark\n"); + TIMER_START(); + run_queries(extension, queries, rng); + TIMER_STOP(); + + auto query_latency = TIMER_RESULT() / queries.size(); + + fprintf(stdout, "T\t%ld\t%ld\t%ld\n", insert_throughput, query_latency, g_deleted_records); + + gsl_rng_free(rng); + delete extension; + fflush(stderr); +} + diff --git a/benchmarks/watermark_testing_knn.cpp b/benchmarks/watermark_testing_knn.cpp new file mode 100644 index 0000000..7cea594 --- /dev/null +++ b/benchmarks/watermark_testing_knn.cpp @@ -0,0 +1,61 @@ +/* + * + */ + +#define ENABLE_TIMER + +#include "framework/DynamicExtension.h" +#include "shard/VPTree.h" +#include "query/knn.h" +#include "framework/interface/Record.h" + +#include "psu-util/timer.h" + +constexpr size_t D = 100; + +typedef de::EuclidPoint Rec; +typedef de::VPTree Shard; +typedef de::knn::Query Q; +typedef de::DynamicExtension Ext; + +int main(int argc, char **argv) { + std::vector hwms = {1000l, 2000l, 4000l, 10000l}; + std::vector lwms = {.1, .2, .3, .4, .5, .6, .7, .8, .9}; + + size_t n = 1000000; + + std::vector records(n); + for (size_t i=0; iinsert(records[i])) { + _mm_pause(); + } + } + TIMER_STOP(); + + auto insert_time = TIMER_RESULT(); + double insert_throughput = (double) n / (double) insert_time * 1e9; + + fprintf(stdout, "%ld\t%ld\t%lf\n", lwm, hwm, insert_throughput); + extension->print_scheduler_statistics(); + + fflush(stdout); + delete extension; + } + } +} + -- cgit v1.2.3 From 70beb2516e7d37558103371bf459a91321a55658 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Thu, 14 Mar 2024 12:35:09 -0400 Subject: Updated version of psudb-common --- external/psudb-common | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/psudb-common b/external/psudb-common index fc23de5..ef14fe0 160000 --- a/external/psudb-common +++ b/external/psudb-common @@ -1 +1 @@ -Subproject commit fc23de575c11f3881358c8997b9949bb096d2ad9 +Subproject commit ef14fe0f5c1ec52107b187dbe803f472767bd68c -- cgit v1.2.3 From 481df63c0152e1b643ec0bd16500c4aca0716404 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Thu, 14 Mar 2024 14:47:23 -0400 Subject: Benchmarking tweaks --- CMakeLists.txt | 8 +++--- benchmarks/insert_query_tput.cpp | 59 ++++++++++++++++++++++------------------ 2 files changed, 37 insertions(+), 30 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 08a61c1..1bffafc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -141,10 +141,10 @@ if (bench) target_include_directories(query_workload_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) target_link_options(query_workload_bench PUBLIC -mcx16) - #add_executable(insert_query_tput ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/insert_query_tput.cpp) - #target_link_libraries(insert_query_tput PUBLIC gsl pthread gomp atomic) - #target_include_directories(insert_query_tput PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) - #target_link_options(insert_query_tput PUBLIC -mcx16) + add_executable(insert_query_tput ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/insert_query_tput.cpp) + target_link_libraries(insert_query_tput PUBLIC gsl pthread gomp atomic) + target_include_directories(insert_query_tput PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) + target_link_options(insert_query_tput PUBLIC -mcx16) #add_executable(btree_insert_query_tput ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/btree_insert_query_tput.cpp) diff --git a/benchmarks/insert_query_tput.cpp b/benchmarks/insert_query_tput.cpp index ce05264..29043af 100644 --- a/benchmarks/insert_query_tput.cpp +++ b/benchmarks/insert_query_tput.cpp @@ -10,7 +10,8 @@ #include "shard/ISAMTree.h" #include "query/irs.h" #include "framework/interface/Record.h" -#include "include/data-proc.h" +#include "include/file_util.h" +#include #include @@ -25,6 +26,8 @@ typedef de::irs::Parms QP; std::atomic inserts_done = false; +struct timespec delay = {0, 500}; + void query_thread(Ext *extension, std::vector *queries) { gsl_rng *rng = gsl_rng_alloc(gsl_rng_mt19937); size_t total = 0; @@ -39,7 +42,7 @@ void query_thread(Ext *extension, std::vector *queries) { auto res = extension->query(&q); auto r = res.get(); total += r.size(); - usleep(1); + nanosleep(&delay, nullptr); } fprintf(stderr, "%ld\n", total); @@ -47,47 +50,39 @@ void query_thread(Ext *extension, std::vector *queries) { gsl_rng_free(rng); } -void insert_thread(Ext *extension, size_t start, std::vector *records) { - size_t reccnt = 0; - Rec r; - for (size_t i=start; isize(); i++) { - r.key = (*records)[i]; - r.value = i; - - while (!extension->insert(r)) { - usleep(1); +void insert_thread(Ext *extension, size_t start, size_t stop, std::vector *records) { + fprintf(stderr, "%ld\t%ld\n", start, stop); + for (size_t i=start; iinsert((*records)[i])) { + nanosleep(&delay, nullptr); } } - - inserts_done.store(true); } int main(int argc, char **argv) { - if (argc < 5) { - fprintf(stderr, "insert_query_tput reccnt query_threads datafile queryfile\n"); + if (argc < 6) { + fprintf(stderr, "Usage:\n"); + fprintf(stderr, "%s reccnt insert_threads query_threads datafile queryfile\n", argv[0]); exit(EXIT_FAILURE); } size_t n = atol(argv[1]); - size_t qthread_cnt = atol(argv[2]); - std::string d_fname = std::string(argv[3]); - std::string q_fname = std::string(argv[4]); + size_t ithread_cnt = atol(argv[2]); + size_t qthread_cnt = atol(argv[3]); + std::string d_fname = std::string(argv[4]); + std::string q_fname = std::string(argv[5]); auto extension = new Ext(1000, 12000, 8, 0, 64); gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937); - auto data = read_sosd_file(d_fname, n); + auto data = read_sosd_file(d_fname, n); auto queries = read_range_queries(q_fname, .001); /* warmup structure w/ 10% of records */ size_t warmup = .1 * n; - Rec r; for (size_t i=0; iinsert(r)) { + while (!extension->insert(data[i])) { usleep(1); } } @@ -96,14 +91,26 @@ int main(int argc, char **argv) { TIMER_INIT(); + std::vector ithreads(ithread_cnt); std::vector qthreads(qthread_cnt); TIMER_START(); - std::thread i_thrd(insert_thread, extension, warmup, &data); + size_t start = warmup; + size_t per_thread = (n - warmup) / ithread_cnt; + for (size_t i=0; i Date: Tue, 19 Mar 2024 11:10:02 -0400 Subject: FST Shard w/ tests Needs some debugging--some methods currently fail within the library itself. The build system doesn't currently build the FST library. To compile, you'll first need to manually build it, and then place the libFST.so file in your LIBRARY_PATH and LD_LIBRARY_PATH. --- .gitmodules | 3 + CMakeLists.txt | 9 +- external/fast-succinct-trie | 1 + include/shard/FSTrie.h | 266 ++++++++++++++++++++++++++++++++++++++++++++ tests/fst_tests.cpp | 55 +++++++++ 5 files changed, 333 insertions(+), 1 deletion(-) create mode 160000 external/fast-succinct-trie create mode 100644 include/shard/FSTrie.h create mode 100644 tests/fst_tests.cpp diff --git a/.gitmodules b/.gitmodules index b4b36b7..38345a8 100644 --- a/.gitmodules +++ b/.gitmodules @@ -19,3 +19,6 @@ [submodule "external/ctpl"] path = external/ctpl url = git@github.com:vit-vit/CTPL.git +[submodule "external/fast-succinct-trie"] + path = external/fast-succinct-trie + url = git@github.com:efficient/fast-succinct-trie.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 1bffafc..65afc9f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,7 +6,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED True) set(namespace "de") project("Practical Dynamic Extension" VERSION 0.1.0) -set(debug false) +set(debug true) set(tests True) set(bench true) set(old_bench False) @@ -117,10 +117,17 @@ if (tests) target_compile_options(pgm_tests PUBLIC -fopenmp) + add_executable(triespline_debug ${CMAKE_CURRENT_SOURCE_DIR}/tests/triespline_debug.cpp) target_link_libraries(triespline_debug PUBLIC gsl check subunit pthread atomic) target_link_options(triespline_debug PUBLIC -mcx16) target_include_directories(triespline_debug PRIVATE include external/psudb-common/cpp/include external/PLEX/include) + + + add_executable(fst_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/fst_tests.cpp) + target_link_libraries(fst_tests PUBLIC gsl check subunit pthread atomic FST) + target_link_options(fst_tests PUBLIC -mcx16) + target_include_directories(fst_tests PRIVATE include external/psudb-common/cpp/include external/PLEX/include external/fast-succinct-trie/fst/include) endif() if (bench) diff --git a/external/fast-succinct-trie b/external/fast-succinct-trie new file mode 160000 index 0000000..2ff7d98 --- /dev/null +++ b/external/fast-succinct-trie @@ -0,0 +1 @@ +Subproject commit 2ff7d982f567c128312ea80457fd95dc75acd347 diff --git a/include/shard/FSTrie.h b/include/shard/FSTrie.h new file mode 100644 index 0000000..11a232d --- /dev/null +++ b/include/shard/FSTrie.h @@ -0,0 +1,266 @@ +/* + * include/shard/FSTrie.h + * + * Copyright (C) 2023 Douglas B. Rumbaugh + * + * Distributed under the Modified BSD License. + * + * A shard shim around the FSTrie learned index. + * + * TODO: The code in this file is very poorly commented. + */ +#pragma once + + +#include + +#include "framework/ShardRequirements.h" +#include "FST.hpp" +#include "psu-ds/BloomFilter.h" +#include "util/bf_config.h" +#include "util/SortedMerge.h" + +using psudb::CACHELINE_SIZE; +using psudb::BloomFilter; +using psudb::PriorityQueue; +using psudb::queue_record; +using psudb::byte; + +namespace de { + +template +class FSTrie { +private: + typedef decltype(R::key) K; + typedef decltype(R::value) V; + + static_assert(std::is_same_v || std::is_same_v, + "FST requires either string or uint64_t keys"); + +public: + FSTrie(BufferView buffer) + : m_data(nullptr) + , m_reccnt(0) + , m_alloc_size(0) + { + m_alloc_size = psudb::sf_aligned_alloc(CACHELINE_SIZE, + buffer.get_record_count() * + sizeof(Wrapped), + (byte**) &m_data); + size_t cnt = 0; + std::vector keys; + keys.reserve(buffer.get_record_count()); + + std::vector values; + values.reserve(buffer.get_record_count()); + + size_t longest_key = 0; + + /* + * Copy the contents of the buffer view into a temporary buffer, and + * sort them. We still need to iterate over these temporary records to + * apply tombstone/deleted record filtering, as well as any possible + * per-record processing that is required by the shard being built. + */ + auto temp_buffer = (Wrapped *) psudb::sf_aligned_calloc(CACHELINE_SIZE, + buffer.get_record_count(), + sizeof(Wrapped)); + buffer.copy_to_buffer((byte *) temp_buffer); + + auto base = temp_buffer; + auto stop = base + buffer.get_record_count(); + std::sort(base, stop, std::less>()); + + for (size_t i=0; i) { + if (m_data[cnt].rec.key.size() > longest_key) { + longest_key = m_data[cnt].rec.key.size(); + } + } + + cnt++; + } + + m_reccnt = cnt; + m_fst = FST(); + if constexpr (std::is_same_v) { + m_fst.load(keys, values, longest_key); + } else { + m_fst.load(keys, values); + } + + free(temp_buffer); + } + + FSTrie(std::vector &shards) + : m_data(nullptr) + , m_reccnt(0) + , m_alloc_size(0) + { + size_t attemp_reccnt = 0; + size_t tombstone_count = 0; + auto cursors = build_cursor_vec(shards, &attemp_reccnt, &tombstone_count); + + m_alloc_size = psudb::sf_aligned_alloc(CACHELINE_SIZE, + attemp_reccnt * sizeof(Wrapped), + (byte **) &m_data); + + std::vector keys; + keys.reserve(attemp_reccnt); + + std::vector values; + values.reserve(attemp_reccnt); + + size_t longest_key = 0; + // FIXME: For smaller cursor arrays, it may be more efficient to skip + // the priority queue and just do a scan. + PriorityQueue> pq(cursors.size()); + for (size_t i=0; i 1 ? pq.peek(1) : queue_record>{nullptr, 0}; + /* + * if the current record is not a tombstone, and the next record is + * a tombstone that matches the current one, then the current one + * has been deleted, and both it and its tombstone can be skipped + * over. + */ + if (!now.data->is_tombstone() && next.data != nullptr && + now.data->rec == next.data->rec && next.data->is_tombstone()) { + + pq.pop(); pq.pop(); + auto& cursor1 = cursors[now.version]; + auto& cursor2 = cursors[next.version]; + if (advance_cursor(cursor1)) pq.push(cursor1.ptr, now.version); + if (advance_cursor(cursor2)) pq.push(cursor2.ptr, next.version); + } else { + auto& cursor = cursors[now.version]; + /* skip over records that have been deleted via tagging */ + if (!cursor.ptr->is_deleted()) { + m_data[m_reccnt] = *cursor.ptr; + keys.push_back(m_data[m_reccnt].rec.key); + values.push_back(m_data[m_reccnt].rec.value); + + if constexpr (std::is_same_v) { + if (m_data[m_reccnt].rec.key.size() > longest_key) { + longest_key = m_data[m_reccnt].rec.key.size(); + } + } + + m_reccnt++; + } + pq.pop(); + + if (advance_cursor(cursor)) pq.push(cursor.ptr, now.version); + } + } + + if (m_reccnt > 0) { + m_fst = FST(); + if constexpr (std::is_same_v) { + m_fst.load(keys, values, longest_key); + } else { + m_fst.load(keys, values); + } + } + } + + ~FSTrie() { + free(m_data); + } + + Wrapped *point_lookup(const R &rec, bool filter=false) { + size_t idx; + bool res; + if constexpr (std::is_same_v) { + res = m_fst.lookup(rec.key.c_str(), rec.key.size(), idx); + } else { + res = m_fst.lookup(rec.key, idx); + } + + if (res) { + return m_data + idx; + } + + return nullptr; + } + + Wrapped* get_data() const { + return m_data; + } + + size_t get_record_count() const { + return m_reccnt; + } + + size_t get_tombstone_count() const { + return 0; + } + + const Wrapped* get_record_at(size_t idx) const { + if (idx >= m_reccnt) return nullptr; + return m_data + idx; + } + + + size_t get_memory_usage() { + return m_fst.mem() + m_alloc_size; + } + + size_t get_aux_memory_usage() { + return 0; + } + + size_t get_lower_bound(const K& key) { + auto itr = FSTIter(); + + const K temp_key = key; + + bool res; + if constexpr (std::is_same_v) { + res = m_fst.lowerBound(temp_key.c_str(), key.size(), itr); + } else { + res = m_fst.lowerBound(temp_key, itr); + } + + return itr.value(); + } + + size_t get_upper_bound(const K& key) { + auto itr = FSTIter(); + + const K temp_key = key; + + bool res; + if constexpr (std::is_same_v) { + res = m_fst.lowerBound(temp_key.c_str(), key.size(), itr); + } else { + res = m_fst.lowerBound(temp_key, itr); + } + + size_t idx = itr.value(); + while (idx < m_reccnt && m_data[idx].rec.key <= key) { + idx++; + } + + return idx; + } + +private: + + Wrapped* m_data; + size_t m_reccnt; + size_t m_alloc_size; + FST m_fst; +}; +} diff --git a/tests/fst_tests.cpp b/tests/fst_tests.cpp new file mode 100644 index 0000000..298c104 --- /dev/null +++ b/tests/fst_tests.cpp @@ -0,0 +1,55 @@ +/* + * tests/isam_tests.cpp + * + * Unit tests for ISAM Tree shard + * + * Copyright (C) 2023 Douglas Rumbaugh + * Dong Xie + * + * Distributed under the Modified BSD License. + * + */ + +#include "shard/FSTrie.h" +#include "include/testing.h" +#include + +using namespace de; + +typedef Rec R; +typedef FSTrie Shard; + +#include "include/shard_standard.h" +#include "include/rangequery.h" + +Suite *unit_testing() +{ + Suite *unit = suite_create("Fast-succinct Trie Shard Unit Testing"); + + inject_rangequery_tests(unit); + inject_shard_tests(unit); + + return unit; +} + + +int shard_unit_tests() +{ + int failed = 0; + Suite *unit = unit_testing(); + SRunner *unit_shardner = srunner_create(unit); + + srunner_run_all(unit_shardner, CK_NORMAL); + failed = srunner_ntests_failed(unit_shardner); + srunner_free(unit_shardner); + + return failed; +} + + +int main() +{ + int unit_failed = shard_unit_tests(); + + return (unit_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE; +} -- cgit v1.2.3 From 9fe190f5d500e22b0894095e7c917f9c652e0a64 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Wed, 20 Mar 2024 17:30:14 -0400 Subject: Updates/progress towards succinct trie support --- .gitignore | 1 + .gitmodules | 3 + external/louds-patricia | 1 + include/framework/interface/Record.h | 12 +- include/framework/structure/MutableBuffer.h | 5 +- include/shard/FSTrie.h | 39 +- tests/data/kjv-sorted.txt | 12275 ++++++++++++++++++ tests/data/kjv-wordlist.txt | 12275 ++++++++++++++++++ tests/data/summa-sorted.txt | 17825 ++++++++++++++++++++++++++ tests/data/summa-wordlist.txt | 17825 ++++++++++++++++++++++++++ tests/fst_tests.cpp | 8 +- tests/include/shard_standard.h | 6 +- tests/include/shard_string.h | 168 + tests/include/testing.h | 59 +- tests/mutable_buffer_tests.cpp | 2 +- 15 files changed, 60474 insertions(+), 30 deletions(-) create mode 160000 external/louds-patricia create mode 100644 tests/data/kjv-sorted.txt create mode 100644 tests/data/kjv-wordlist.txt create mode 100644 tests/data/summa-sorted.txt create mode 100644 tests/data/summa-wordlist.txt create mode 100644 tests/include/shard_string.h diff --git a/.gitignore b/.gitignore index bfc4acd..5b0656b 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ build/* lib/* bin/* data +.cache tests/data diff --git a/.gitmodules b/.gitmodules index 38345a8..1b0adfe 100644 --- a/.gitmodules +++ b/.gitmodules @@ -22,3 +22,6 @@ [submodule "external/fast-succinct-trie"] path = external/fast-succinct-trie url = git@github.com:efficient/fast-succinct-trie.git +[submodule "external/louds-patricia"] + path = external/louds-patricia + url = git@github.com:s-yata/louds-patricia.git diff --git a/external/louds-patricia b/external/louds-patricia new file mode 160000 index 0000000..f21a3af --- /dev/null +++ b/external/louds-patricia @@ -0,0 +1 @@ +Subproject commit f21a3af7377371abf48e6074627505d29fc45d8a diff --git a/include/framework/interface/Record.h b/include/framework/interface/Record.h index 5b9f307..f4105c6 100644 --- a/include/framework/interface/Record.h +++ b/include/framework/interface/Record.h @@ -97,9 +97,17 @@ template struct Record { K key; V value; - uint32_t header = 0; - inline bool operator<(const Record& other) const { + Record &operator=(const Record &other) { + this->key = K(); + + this->key = other.key; + this->value = other.value; + + return *this; + } + + inline bool operator<(const Record& other) const { return key < other.key || (key == other.key && value < other.value); } diff --git a/include/framework/structure/MutableBuffer.h b/include/framework/structure/MutableBuffer.h index c0c87cc..1ed0200 100644 --- a/include/framework/structure/MutableBuffer.h +++ b/include/framework/structure/MutableBuffer.h @@ -50,7 +50,8 @@ public: , m_tail(0) , m_head({0, 0}) , m_old_head({high_watermark, 0}) - , m_data((Wrapped *) psudb::sf_aligned_alloc(CACHELINE_SIZE, m_cap * sizeof(Wrapped))) + //, m_data((Wrapped *) psudb::sf_aligned_alloc(CACHELINE_SIZE, m_cap * sizeof(Wrapped))) + , m_data(new Wrapped[m_cap]()) , m_tombstone_filter(new psudb::BloomFilter(BF_FPR, m_hwm, BF_HASH_FUNCS)) , m_tscnt(0) , m_old_tscnt(0) @@ -61,7 +62,7 @@ public: } ~MutableBuffer() { - free(m_data); + delete[] m_data; delete m_tombstone_filter; } diff --git a/include/shard/FSTrie.h b/include/shard/FSTrie.h index 11a232d..62aa0b7 100644 --- a/include/shard/FSTrie.h +++ b/include/shard/FSTrie.h @@ -43,10 +43,9 @@ public: , m_reccnt(0) , m_alloc_size(0) { - m_alloc_size = psudb::sf_aligned_alloc(CACHELINE_SIZE, - buffer.get_record_count() * - sizeof(Wrapped), - (byte**) &m_data); + m_data = new Wrapped[buffer.get_record_count()](); + m_alloc_size = sizeof(Wrapped) * buffer.get_record_count(); + size_t cnt = 0; std::vector keys; keys.reserve(buffer.get_record_count()); @@ -62,10 +61,15 @@ public: * apply tombstone/deleted record filtering, as well as any possible * per-record processing that is required by the shard being built. */ + /* auto temp_buffer = (Wrapped *) psudb::sf_aligned_calloc(CACHELINE_SIZE, buffer.get_record_count(), sizeof(Wrapped)); - buffer.copy_to_buffer((byte *) temp_buffer); + */ + auto temp_buffer = new Wrapped[buffer.get_record_count()](); + for (size_t i=0; i) { @@ -88,6 +94,10 @@ public: cnt++; } + for (size_t i=0; i) { @@ -96,7 +106,7 @@ public: m_fst.load(keys, values); } - free(temp_buffer); + delete[] temp_buffer; } FSTrie(std::vector &shards) @@ -108,9 +118,8 @@ public: size_t tombstone_count = 0; auto cursors = build_cursor_vec(shards, &attemp_reccnt, &tombstone_count); - m_alloc_size = psudb::sf_aligned_alloc(CACHELINE_SIZE, - attemp_reccnt * sizeof(Wrapped), - (byte **) &m_data); + m_data = new Wrapped[attemp_reccnt](); + m_alloc_size = attemp_reccnt * sizeof(Wrapped); std::vector keys; keys.reserve(attemp_reccnt); @@ -165,6 +174,10 @@ public: } } + for (size_t i=0; i 0) { m_fst = FST(); if constexpr (std::is_same_v) { @@ -176,18 +189,22 @@ public: } ~FSTrie() { - free(m_data); + delete[] m_data; } Wrapped *point_lookup(const R &rec, bool filter=false) { size_t idx; bool res; if constexpr (std::is_same_v) { - res = m_fst.lookup(rec.key.c_str(), rec.key.size(), idx); + res = m_fst.lookup((uint8_t*)rec.key.c_str(), rec.key.size(), idx); } else { res = m_fst.lookup(rec.key, idx); } + if (res && m_data[idx].rec.key != rec.key) { + fprintf(stderr, "ERROR!\n"); + } + if (res) { return m_data + idx; } diff --git a/tests/data/kjv-sorted.txt b/tests/data/kjv-sorted.txt new file mode 100644 index 0000000..e209231 --- /dev/null +++ b/tests/data/kjv-sorted.txt @@ -0,0 +1,12275 @@ +7414 a +305 aaron +1 aaronites +29 aarons +1 abagtha +1 abana +4 abarim +3 abase +4 abased +1 abasing +6 abated +3 abba +1 abda +1 abdeel +3 abdi +1 abdiel +8 abdon +13 abednego +13 abel +2 abelbethmaachah +1 abelmaim +1 abelmeholah +1 abelshittim +1 abez +18 abhor +15 abhorred +2 abhorrest +4 abhorreth +1 abhorring +1 abi +4 abia +4 abiah +1 abialbon +1 abiasaph +25 abiathar +6 abib +2 abida +5 abidan +80 abide +29 abideth +8 abiding +3 abiel +5 abiezer +2 abiezrites +16 abigail +5 abihail +12 abihu +1 abihud +20 abijah +5 abijam +1 abilene +7 ability +2 abimael +61 abimelech +2 abimelechs +13 abinadab +4 abinoam +10 abiram +5 abishag +24 abishai +2 abishalom +5 abishua +2 abishur +2 abital +1 abitub +2 abiud +144 able +57 abner +1 abners +1 aboard +66 abode +1 abodest +1 abolish +5 abolished +19 abominable +1 abominably +60 abomination +70 abominations +18 abound +5 abounded +3 aboundeth +3 abounding +562 about +190 above +221 abraham +19 abrahams +54 abram +7 abrams +75 abroad +101 absalom +5 absaloms +2 absence +11 absent +6 abstain +1 abstinence +61 abundance +11 abundant +30 abundantly +3 abuse +1 abused +1 abusers +1 abusing +1 accad +24 accept +23 acceptable +1 acceptably +1 acceptance +2 acceptation +26 accepted +1 acceptest +3 accepteth +1 accepting +3 access +1 accho +4 accompanied +1 accompany +1 accompanying +13 accomplish +23 accomplished +1 accomplishing +1 accomplishment +16 accord +718 according +1 accordingly +16 account +12 accounted +1 accounting +1 accounts +18 accursed +10 accusation +16 accuse +14 accused +1 accuser +8 accusers +1 accusing +1 accustomed +1 aceldama +11 achaia +1 achaicus +6 achan +1 achar +2 achaz +6 achbor +2 achim +20 achish +1 achmetha +5 achor +5 achsah +3 achshaph +4 achzib +15 acknowledge +3 acknowledged +1 acknowledgement +3 acknowledging +1 acquaint +11 acquaintance +2 acquainted +1 acquainting +1 acquit +1 acre +1 acres +3 act +1 actions +1 activity +64 acts +1 adadah +8 adah +9 adaiah +1 adalia +26 adam +1 adamah +2 adamant +1 adami +1 adams +9 adar +2 adbeel +30 add +1 addar +14 added +3 adder +1 adders +4 addeth +1 addicted +1 addition +2 additions +1 ader +2 adiel +4 adin +1 adina +1 adithaim +5 adjure +2 adjured +1 adlai +4 admah +1 administered +1 administration +1 administrations +2 admiration +1 admired +2 admonish +5 admonished +1 admonishing +3 admonition +2 adna +2 adnah +1 ado +3 adonibezek +26 adonijah +3 adonikam +2 adonizedek +3 adoption +1 adoraim +2 adoram +2 adorn +4 adorned +1 adorning +3 adrammelech +1 adramyttium +1 adria +2 adriel +8 adullam +3 adullamite +3 adulterer +8 adulterers +5 adulteress +2 adulteresses +4 adulteries +4 adulterous +37 adultery +1 adummim +4 advanced +4 advantage +1 advantaged +1 advantageth +2 adventure +1 adventured +31 adversaries +22 adversary +2 adversities +9 adversity +2 advertise +8 advice +3 advise +2 advised +1 advocate +2 aeneas +1 aenon +49 afar +8 affairs +2 affect +1 affected +1 affecteth +6 affection +1 affectionately +1 affectioned +2 affections +3 affinity +3 affirm +3 affirmed +31 afflict +50 afflicted +1 afflictest +73 affliction +13 afflictions +1 affright +9 affrighted +2 afoot +7 afore +1 aforehand +7 aforetime +181 afraid +1 afresh +1107 after +1 afternoon +64 afterward +12 afterwards +2 agabus +8 agag +4 agagite +632 again +1547 against +2 agar +3 agate +1 agates +37 age +9 aged +1 agee +4 ages +13 ago +1 agone +1 agony +7 agree +8 agreed +4 agreement +1 agreeth +12 agrippa +1 aground +1 ague +1 agur +15 ah +8 aha +86 ahab +2 ahabs +1 aharah +1 aharhel +1 ahasai +1 ahasbai +26 ahasuerus +3 ahava +39 ahaz +35 ahaziah +1 ahban +1 aher +2 ahi +4 ahiah +2 ahiam +1 ahian +6 ahiezer +2 ahihud +18 ahijah +19 ahikam +3 ahilud +11 ahimaaz +3 ahiman +14 ahimelech +1 ahimelechs +1 ahimoth +1 ahinadab +6 ahinoam +6 ahio +5 ahira +1 ahiram +1 ahiramites +3 ahisamach +1 ahishahar +1 ahishar +19 ahithophel +15 ahitub +1 ahlab +2 ahlai +1 ahoah +2 ahohite +4 aholah +5 aholiab +5 aholibah +7 aholibamah +1 ahumai +1 ahuzam +1 ahuzzath +33 ai +4 aiah +1 aiath +1 aided +7 aijalon +1 aijeleth +6 aileth +6 ain +39 air +3 ajalon +1 akan +7 akkub +2 akrabbim +3 alabaster +1 alameth +1 alammelech +2 alamoth +10 alarm +20 alas +2 albeit +3 alemeth +1 aleph +6 alexander +3 alexandria +1 alexandrians +3 algum +1 aliah +1 alian +4 alien +1 alienate +7 alienated +3 aliens +8 alike +79 alive +5166 all +1 alleging +1 allegory +4 alleluia +1 allied +2 allon +1 allonbachuth +3 allow +2 allowance +1 allowed +1 alloweth +1 allure +50 almighty +2 almodad +1 almon +2 almond +2 almondiblathaim +6 almonds +11 almost +13 alms +1 almsdeeds +3 almug +4 aloes +95 alone +26 along +1 aloof +1 aloth +18 aloud +4 alpha +4 alphaeus +26 already +1620 also +347 altar +51 altars +4 altaschith +4 alter +2 altered +2 altereth +14 although +22 altogether +2 alush +1 alvah +1 alvan +22 alway +55 always +416 am +1 amad +1 amal +21 amalek +3 amalekite +24 amalekites +1 amam +1 amana +15 amariah +14 amasa +5 amasai +1 amashai +1 amasiah +21 amazed +2 amazement +39 amaziah +4 ambassador +7 ambassadors +1 ambassage +3 amber +7 ambush +1 ambushes +2 ambushment +1 ambushments +78 amen +6 amend +1 amends +1 amerce +3 amethyst +1 ami +1 amiable +2 aminadab +4 amiss +2 amittai +1 ammah +1 ammi +6 ammiel +10 ammihud +13 amminadab +1 amminadib +5 ammishaddai +1 ammizabad +85 ammon +9 ammonite +21 ammonites +4 ammonitess +24 amnon +3 amnons +2 amok +19 amon +837 among +2 amongst +12 amorite +65 amorites +7 amos +12 amoz +1 amphipolis +1 amplias +14 amram +1 amramites +1 amrams +2 amraphel +2 amzi +1502 an +2 anab +11 anah +1 anaharath +2 anaiah +8 anak +9 anakims +2 anamim +1 anammelech +1 anan +1 anani +2 ananiah +11 ananias +2 anath +1 anathema +13 anathoth +1 ancestors +1 anchor +3 anchors +21 ancient +10 ancients +1 ancle +1 ancles +46778 and +13 andrew +1 andronicus +1 anem +3 aner +1 anethothite +194 angel +93 angels +205 anger +1 angered +2 angle +40 angry +16 anguish +1 aniam +1 anim +1 anise +1 anna +4 annas +33 anoint +90 anointed +1 anointest +24 anointing +2 anon +392 another +5 anothers +116 answer +1 answerable +468 answered +2 answeredst +6 answerest +11 answereth +31 answering +3 answers +1 ant +4 antichrist +1 antichrists +18 antioch +1 antipatris +1 antothijah +2 antothite +1 ants +1 anub +699 any +2 apace +23 apart +1 apelles +2 apes +1 apharsachites +7 aphek +1 aphekah +1 aphiah +1 aphik +1 aphrah +1 aphses +6 apiece +1 apollonia +9 apollos +1 apollyon +18 apostle +56 apostles +4 apostleship +2 apothecaries +4 apothecary +2 appaim +27 apparel +2 apparelled +1 apparently +2 appeal +4 appealed +53 appear +29 appearance +2 appearances +69 appeared +9 appeareth +6 appearing +1 appease +2 appeased +1 appeaseth +1 appertain +1 appertaineth +4 appetite +1 apphia +1 appii +7 apple +3 apples +3 applied +3 apply +34 appoint +111 appointed +1 appointeth +4 appointment +2 apprehend +3 apprehended +15 approach +2 approached +1 approacheth +2 approaching +3 approve +8 approved +1 approvest +1 approveth +1 approving +2 aprons +3 apt +5 aquila +5 ar +1 ara +1 arab +2 arabah +8 arabia +4 arabian +5 arabians +4 arad +4 arah +9 aram +1 aramitess +1 aramnaharaim +1 aramzobah +2 aran +2 ararat +8 araunah +1 arba +1 arbah +2 arbathite +1 arbite +2 archangel +1 archelaus +1 archer +11 archers +8 arches +1 archi +2 archippus +4 archite +2 arcturus +2 ard +1 ardon +1547 are +2 areli +1 arelites +1 areopagite +1 areopagus +1 aretas +4 argob +1 arguing +1 arguments +1 aridai +1 aridatha +1 arieh +6 ariel +4 aright +4 arimathaea +7 arioch +1 arisai +137 arise +10 ariseth +1 arising +5 aristarchus +1 aristobulus +215 ark +2 arkite +62 arm +1 armageddon +26 armed +2 armenia +1 armholes +39 armies +1 armoni +23 armour +17 armourbearer +3 armoury +26 arms +76 army +1 arnan +17 arnon +1 arod +1 arodi +1 arodites +13 aroer +1 aroerite +169 arose +2 arpad +1 arphad +9 arphaxad +30 array +11 arrayed +1 arrived +3 arrogancy +12 arrow +35 arrows +232 art +13 artaxerxes +1 artemas +2 artificer +1 artificers +1 artillery +1 arts +1 aruboth +1 arumah +2 arvad +2 arvadite +2856 as +54 asa +16 asahel +2 asahiah +6 asaiah +38 asaph +1 asaphs +1 asareel +1 asarelah +1 asas +13 ascend +19 ascended +2 ascendeth +5 ascending +4 ascent +3 ascribe +2 ascribed +3 asenath +2 aser +1 ash +113 ashamed +4 ashan +1 ashbea +3 ashbel +1 ashbelites +2 ashchenaz +20 ashdod +1 ashdothites +3 ashdothpisgah +37 asher +1 asherites +38 ashes +1 ashima +9 ashkelon +1 ashkenaz +2 ashnah +1 ashpenaz +1 ashriel +11 ashtaroth +1 ashterathite +1 ashteroth +3 ashtoreth +2 ashur +1 ashurites +1 ashvath +21 asia +66 aside +1 asiel +103 ask +113 asked +3 askelon +3 askest +9 asketh +6 asking +16 asleep +1 asnah +1 asnappar +1 asp +1 aspatha +3 asps +80 ass +1 assault +1 assaulted +1 assay +4 assayed +1 assaying +19 assemble +33 assembled +5 assemblies +1 assembling +44 assembly +1 assent +1 assented +52 asses +8 asshur +1 asshurim +2 assigned +5 assir +1 assist +1 associate +2 assos +4 asss +2 assur +6 assurance +1 assure +3 assured +8 assuredly +2 asswaged +115 assyria +12 assyrian +10 assyrians +1 astaroth +9 astonied +32 astonished +20 astonishment +22 astray +1 astrologer +6 astrologers +19 asunder +1 asuppim +1 asyncritus +1410 at +2 atad +5 ataroth +1 atarothaddar +3 ate +5 ater +1 athach +1 athaiah +17 athaliah +1 athenians +5 athens +4 athirst +1 athlai +74 atonement +1 atonements +1 atroth +4 attai +5 attain +10 attained +1 attalia +10 attend +4 attendance +3 attended +1 attending +1 attent +4 attentive +1 attentively +3 attire +1 attired +12 audience +1 augment +4 augustus +2 aul +1 aunt +2 austere +2 author +1 authorities +37 authority +4 availeth +3 aven +16 avenge +15 avenged +9 avenger +2 avengeth +3 avenging +1 averse +1 avim +1 avims +2 avites +2 avith +4 avoid +1 avoided +2 avoiding +2 avouched +1 await +40 awake +7 awaked +2 awakest +1 awaking +4 aware +854 away +3 awe +8 awoke +9 axe +7 axes +2 azaliah +1 azaniah +1 azarael +5 azareel +49 azariah +1 azaz +3 azaziah +1 azbuk +5 azekah +6 azel +2 azem +4 azgad +1 aziel +1 aziza +7 azmaveth +3 azmon +1 aznothtabor +2 azor +1 azotus +2 azriel +4 azrikam +3 azubah +1 azur +3 azzah +1 azzan +1 azzur +56 baal +5 baalah +3 baalath +2 baalberith +2 baalgad +1 baalhamon +4 baalhanan +1 baalhazor +2 baalhermon +1 baali +18 baalim +1 baalis +3 baalmeon +5 baalpeor +4 baalperazim +1 baalshalisha +1 baaltamar +4 baalzebub +3 baalzephon +2 baana +10 baanah +1 baaseiah +27 baasha +2 babbler +1 babbling +2 babblings +5 babe +2 babel +9 babes +265 babylon +3 babylonians +1 babylonish +7 babylons +1 baca +1 bachrites +139 back +1 backbiters +1 backbiteth +1 backbiting +1 backbitings +7 backs +3 backside +1 backslider +12 backsliding +3 backslidings +17 backward +16 bad +17 bade +1 badest +11 badgers +1 badness +9 bag +3 bags +1 baharumite +5 bahurim +1 bajith +1 bakbakkar +2 bakbuk +3 bakbukiah +5 bake +1 baked +1 bakemeats +5 baken +7 baker +3 bakers +60 balaam +3 balaams +1 balac +2 baladan +1 balah +41 balak +1 balaks +6 balance +8 balances +1 balancings +12 bald +7 baldness +5 balm +1 bamah +2 bamoth +1 bamothbaal +18 band +1 banded +42 bands +14 bani +2 banished +2 banishment +10 bank +2 banks +3 banner +3 banners +13 banquet +1 banqueting +1 banquetings +22 baptism +1 baptisms +14 baptist +1 baptists +9 baptize +61 baptized +1 baptizest +2 baptizeth +4 baptizing +7 bar +9 barabbas +2 barachel +1 barachias +11 barak +3 barbarian +2 barbarians +1 barbarous +1 barbed +1 barbers +172 bare +3 barefoot +3 barest +1 barhumite +1 bariah +1 barjesus +1 barjona +1 bark +1 barked +2 barkos +34 barley +4 barn +28 barnabas +1 barnfloor +4 barns +2 barrel +23 barren +1 barrenness +37 bars +2 barsabas +4 bartholomew +1 bartimaeus +26 baruch +12 barzillai +13 base +1 baser +13 bases +2 basest +51 bashan +1 bashanhavothjair +6 bashemath +21 basket +14 baskets +1 basmath +3 bason +18 basons +2 bastard +1 bastards +2 bat +5 bath +14 bathe +1 bathed +7 baths +11 bathsheba +1 bathshua +1 bats +1 battered +151 battle +1 battlement +1 battlements +6 battles +1 bavai +6 bay +1 bazlith +1 bazluth +2 bdellium +5469 be +1 beacon +1 bealiah +1 bealoth +13 beam +10 beams +1 beans +195 bear +13 beard +1 beards +1 bearers +4 bearest +23 beareth +22 bearing +2 bears +158 beast +143 beasts +33 beat +29 beaten +2 beatest +1 beateth +3 beating +1 beauties +20 beautiful +2 beautify +46 beauty +6 bebai +97 became +2 becamest +1113 because +5 becher +1 bechorath +6 beckoned +2 beckoning +119 become +15 becometh +81 bed +2 bedad +2 bedan +6 bedchamber +1 bedeiah +10 beds +1 bedstead +1 beeliada +7 beelzebub +284 been +1 beer +1 beera +1 beerah +1 beerelim +2 beeri +1 beerlahairoi +6 beeroth +4 beerothite +1 beerothites +33 beersheba +3 bees +1 beeshterah +1 beetle +7 beeves +9 befall +6 befallen +3 befalleth +4 befell +1652 before +5 beforehand +10 beforetime +2 beg +150 began +222 begat +10 beget +2 begettest +3 begetteth +2 beggar +1 beggarly +3 begged +3 begging +24 begin +94 beginning +3 beginnings +24 begotten +2 beguile +5 beguiled +1 beguiling +12 begun +13 behalf +6 behave +9 behaved +1 behaveth +3 behaviour +6 beheaded +52 beheld +1 behemoth +66 behind +1239 behold +3 beholdest +4 beholdeth +14 beholding +2 behoved +209 being +1 bekah +3 bel +12 bela +1 belah +1 belaites +1 belch +12 belial +1 belied +1 belief +137 believe +115 believed +2 believers +8 believest +45 believeth +8 believing +4 bell +1 bellies +1 bellow +1 bellows +4 bells +42 belly +2 belong +2 belonged +3 belongeth +2 belonging +96 beloved +8 belshazzar +6 belteshazzar +5 bemoan +1 bemoaned +1 bemoaning +1 ben +37 benaiah +1 benammi +6 bend +1 bending +22 beneath +1 beneberak +1 benefactors +5 benefit +2 benefits +2 benejaakan +1 benevolence +24 benhadad +1 benhail +1 beninu +150 benjamin +4 benjamins +8 benjamite +5 benjamites +2 beno +1 benoni +8 bent +1 benzoheth +1 beon +9 beor +1 bera +3 berachah +1 berachiah +1 beraiah +3 berea +4 bereave +4 bereaved +10 berechiah +2 bered +1 beri +10 beriah +1 beriites +1 berites +1 berith +3 bernice +1 berodachbaladan +1 berothah +1 berothai +1 berothite +1 berries +6 beryl +2 besai +64 beseech +3 beseeching +5 beset +108 beside +8 besides +10 besiege +22 besieged +1 besodeiah +1 besom +3 besor +44 besought +21 best +1 bestead +1 bestir +8 bestow +11 bestowed +1 betah +1 beten +1 beth +1 bethabara +3 bethanath +1 bethanoth +11 bethany +3 betharabah +1 betharam +1 betharbel +7 bethaven +1 bethazmaveth +1 bethbaalmeon +2 bethbarah +1 bethbirei +1 bethcar +2 bethdagon +1 bethdiblathaim +58 bethel +1 bethelite +1 bethemek +1 bether +1 bethesda +1 bethezel +1 bethgader +1 bethgamul +2 bethhaccerem +1 bethharan +1 bethhogla +2 bethhoglah +11 bethhoron +2 bethink +3 bethjeshimoth +1 bethjesimoth +1 bethlebaoth +38 bethlehem +4 bethlehemite +6 bethlehemjudah +2 bethmaachah +2 bethmarcaboth +1 bethmeon +2 bethnimrah +1 bethpalet +1 bethpazzez +4 bethpeor +3 bethphage +1 bethphelet +1 bethrapha +2 bethrehob +7 bethsaida +3 bethshan +3 bethshean +19 bethshemesh +2 bethshemite +1 bethshittah +1 bethtappuah +10 bethuel +1 bethul +4 bethzur +4 betimes +1 betonim +17 betray +19 betrayed +1 betrayers +1 betrayest +3 betrayeth +4 betroth +8 betrothed +106 better +1 bettered +201 between +16 betwixt +1 beulah +6 bewail +3 bewailed +25 beware +3 bewitched +1 bewray +2 bewrayeth +45 beyond +3 bezai +9 bezaleel +3 bezek +5 bezer +7 bichri +15 bid +14 bidden +1 biddeth +1 bidding +2 bier +1 bigtha +1 bigthan +1 bigthana +6 bigvai +5 bildad +1 bileam +3 bilgah +1 bilgai +10 bilhah +4 bilhan +5 bill +2 billows +2 bilshan +1 bimhal +43 bind +9 bindeth +5 binding +2 binea +7 binnui +26 bird +22 birds +1 birsha +11 birth +3 birthday +9 birthright +1 birzavith +1 bishlam +4 bishop +1 bishoprick +1 bishops +3 bit +7 bite +2 biteth +1 bithiah +1 bithron +2 bithynia +1 bits +2 bitten +32 bitter +9 bitterly +3 bittern +20 bitterness +1 bizjothjah +1 biztha +15 black +1 blacker +1 blackish +6 blackness +5 blade +2 blains +4 blame +2 blamed +15 blameless +9 blaspheme +16 blasphemed +1 blasphemer +2 blasphemers +1 blasphemest +4 blasphemeth +6 blasphemies +1 blaspheming +2 blasphemous +1 blasphemously +11 blasphemy +7 blast +5 blasted +5 blasting +1 blastus +1 blaze +1 bleating +1 bleatings +57 blemish +1 blemishes +122 bless +277 blessed +2 blessedness +2 blessest +7 blesseth +60 blessing +10 blessings +22 blew +74 blind +5 blinded +1 blindeth +1 blindfolded +7 blindness +397 blood +1 bloodguiltiness +1 bloodthirsty +15 bloody +1 bloomed +6 blossom +1 blossomed +2 blossoms +11 blot +6 blotted +1 blotteth +1 blotting +36 blow +4 bloweth +4 blowing +4 blown +36 blue +1 blueness +1 blunt +3 blush +1 boanerges +1 boar +16 board +41 boards +20 boast +2 boasted +2 boasters +4 boasteth +9 boasting +1 boastings +6 boat +1 boats +23 boaz +2 bochim +30 bodies +3 bodily +160 body +1 bodys +2 bohan +14 boil +3 boiled +1 boiling +2 boils +1 boisterous +11 bold +13 boldly +8 boldness +1 bolled +5 bolster +1 bolt +1 bolted +18 bond +37 bondage +2 bondmaid +2 bondmaids +6 bondman +17 bondmen +26 bonds +1 bondservant +1 bondservice +7 bondwoman +3 bondwomen +19 bone +89 bones +5 bonnets +180 book +7 books +2 booth +9 booths +1 booties +3 booty +2 booz +136 border +36 borders +2 bore +1 bored +139 born +28 borne +8 borrow +3 borrowed +2 borrower +1 borroweth +1 boscath +39 bosom +1 bosor +1 bosses +2 botch +289 both +14 bottle +19 bottles +14 bottom +6 bottomless +1 bottoms +3 bough +18 boughs +42 bought +100 bound +7 bounds +2 bountiful +6 bountifully +1 bountifulness +2 bounty +90 bow +74 bowed +35 bowels +3 boweth +3 bowing +13 bowl +17 bowls +1 bowmen +10 bows +8 box +1 boy +2 boys +1 bozez +1 bozkath +8 bozrah +9 bracelets +66 brake +5 brakest +4 bramble +1 brambles +34 branch +71 branches +1 brand +1 brandish +1 brands +25 brasen +104 brass +1 bravery +1 brawler +1 brawlers +2 brawling +2 bray +1 brayed +21 breach +14 breaches +324 bread +55 breadth +135 break +2 breaker +1 breakest +15 breaketh +16 breaking +1 breakings +18 breast +27 breastplate +3 breastplates +24 breasts +40 breath +4 breathe +4 breathed +1 breatheth +2 breathing +1 bred +4 breeches +2 breed +1 breeding +507 brethren +1 brethrens +2 bribe +1 bribery +3 bribes +7 brick +3 brickkiln +4 bricks +11 bride +3 bridechamber +21 bridegroom +1 bridegrooms +8 bridle +1 bridles +1 bridleth +2 briefly +2 brier +10 briers +1 brigandine +1 brigandines +23 bright +20 brightness +8 brim +14 brimstone +676 bring +5 bringest +70 bringeth +20 bringing +5 brink +22 broad +1 broader +1 broided +8 broidered +1 broiled +176 broken +1 brokenfooted +1 brokenhanded +1 brokenhearted +38 brook +15 brooks +3 broth +347 brother +2 brotherhood +6 brotherly +34 brothers +795 brought +13 broughtest +2 brow +3 brown +7 bruise +7 bruised +1 bruises +2 bruising +2 bruit +2 brute +9 brutish +1 bucket +1 buckets +9 buckler +5 bucklers +11 bud +4 budded +1 buds +2 buffet +2 buffeted +151 build +47 builded +1 buildedst +1 builder +14 builders +5 buildest +7 buildeth +32 building +3 buildings +162 built +5 bukki +2 bukkiah +1 bul +2 bull +91 bullock +43 bullocks +9 bulls +2 bulrushes +5 bulwarks +1 bunah +1 bunch +1 bunches +4 bundle +2 bundles +3 bunni +64 burden +2 burdened +21 burdens +4 burdensome +4 burial +101 buried +1 buriers +121 burn +89 burned +16 burneth +50 burning +1 burnings +1 burnished +335 burnt +9 burst +1 bursting +34 bury +4 burying +7 buryingplace +10 bush +3 bushel +3 bushes +23 business +1 busy +2 busybodies +1 busybody +3533 but +7 butler +1 butlers +1 butlership +10 butter +3 buttocks +52 buy +3 buyer +2 buyest +3 buyeth +3 buz +1 buzi +2 buzite +2401 by +1 byways +6 byword +1 cabbon +1 cabins +2 cabul +21 caesar +15 caesarea +9 caesars +2 cage +9 caiaphas +20 cain +6 cainan +8 cake +23 cakes +2 calah +3 calamities +15 calamity +2 calamus +1 calcol +4 caldron +2 caldrons +32 caleb +1 calebephratah +4 calebs +27 calf +1 calfs +2 calkers +184 call +601 called +4 calledst +3 callest +23 calleth +22 calling +6 calm +2 calneh +1 calvary +2 calve +1 calved +17 calves +1 calveth +1998 came +7 camel +49 camels +25 camest +1 camon +122 camp +1 camped +2 camphire +5 camps +215 can +4 cana +87 canaan +11 canaanite +51 canaanites +1 canaanitess +2 canaanitish +1 candace +16 candle +1 candles +39 candlestick +12 candlesticks +2 cane +1 canker +1 cankered +6 cankerworm +1 canneh +164 cannot +48 canst +16 capernaum +1 caph +1 caphthorim +3 caphtor +1 caphtorim +1 caphtorims +2 cappadocia +117 captain +107 captains +56 captive +41 captives +116 captivity +1 carbuncle +1 carbuncles +1 carcas +28 carcase +20 carcases +2 carchemish +19 care +1 careah +3 cared +7 careful +4 carefully +4 carefulness +4 careless +1 carelessly +3 cares +3 carest +5 careth +21 carmel +5 carmelite +2 carmelitess +7 carmi +1 carmites +10 carnal +4 carnally +3 carpenter +10 carpenters +1 carpus +3 carriage +3 carriages +138 carried +1 carriest +3 carrieth +82 carry +6 carrying +14 cart +10 carved +2 carving +5 case +1 casement +2 casiphia +2 casluhim +3 cassia +466 cast +1 castaway +1 castedst +3 castest +16 casteth +18 casting +9 castle +5 castles +1 castor +14 catch +3 catcheth +4 caterpiller +4 caterpillers +141 cattle +35 caught +8 caul +300 cause +89 caused +2 causeless +6 causes +1 causest +29 causeth +2 causeway +3 causing +30 cave +5 caves +66 cease +33 ceased +10 ceaseth +7 ceasing +45 cedar +21 cedars +1 cedron +3 celebrate +2 cenchrea +12 censer +8 censers +20 centurion +4 centurions +6 cephas +1 ceremonies +163 certain +27 certainly +7 certainty +1 certified +5 certify +14 chaff +12 chain +32 chains +1 chalcedony +1 chalcol +1 chaldaeans +7 chaldea +2 chaldean +62 chaldeans +13 chaldees +1 chalkstones +43 chamber +1 chambering +6 chamberlain +8 chamberlains +50 chambers +1 chameleon +1 chamois +1 champaign +3 champion +2 chanaan +5 chance +1 chancellor +1 chanceth +25 change +1 changeable +39 changed +2 changers +7 changes +1 changest +2 changeth +1 channel +3 channels +1 chant +9 chapiter +7 chapiters +1 chapmen +1 chapt +1 charashim +98 charge +5 chargeable +48 charged +1 chargedst +5 charger +3 chargers +6 charges +1 chargest +1 charging +57 chariot +103 chariots +1 charitably +28 charity +1 charmed +1 charmer +2 charmers +1 charming +2 charran +6 chase +12 chased +1 chasing +3 chaste +6 chasten +7 chastened +1 chastenest +5 chasteneth +5 chastening +8 chastise +4 chastised +3 chastisement +1 chastiseth +6 chebar +1 check +5 chedorlaomer +8 cheek +4 cheeks +10 cheer +1 cheereth +4 cheerful +1 cheerfully +1 cheerfulness +2 cheese +1 cheeses +1 chelal +1 chelluh +2 chelub +1 chelubai +1 chemarims +8 chemosh +5 chenaanah +1 chenani +2 chenaniah +1 chepharhaammonai +4 chephirah +2 cheran +1 cherethims +7 cherethites +1 cherish +1 cherished +2 cherisheth +2 cherith +18 cherub +51 cherubims +1 chesalon +1 chesed +1 chesil +2 chesnut +6 chest +1 chests +1 chesulloth +1 cheth +2 chew +1 chewed +6 cheweth +1 chezib +4 chide +1 chiding +1 chidon +306 chief +7 chiefest +3 chiefly +183 child +1 childbearing +2 childhood +1 childish +7 childless +1673 children +16 childrens +4 childs +1 chileab +2 chilion +1 chilions +4 chimham +1 chimney +3 chinnereth +2 chinneroth +2 chisleu +1 chislon +1 chislothtabor +6 chittim +1 chiun +1 chloe +2 chode +14 choice +2 choicest +2 choke +6 choked +2 choler +52 choose +1 choosest +2 chooseth +1 choosing +1 chop +2 chorazin +29 chose +107 chosen +1 chozeba +536 christ +2 christian +1 christians +16 christs +38 chronicles +1 chrysolite +1 chrysoprasus +1 chub +1 chun +76 church +35 churches +2 churl +1 churning +4 chushanrishathaim +1 chuza +3 cieled +1 cieling +7 cilicia +3 cinnamon +1 cinneroth +3 circuit +1 circuits +9 circumcise +37 circumcised +2 circumcising +33 circumcision +1 circumspect +1 circumspectly +1 cis +4 cistern +2 cisterns +398 cities +2 citizen +1 citizens +789 city +2 clad +1 clamour +6 clap +2 clapped +1 clappeth +1 clauda +1 claudia +3 claudius +14 clave +2 claws +30 clay +114 clean +5 cleanness +30 cleanse +36 cleansed +3 cleanseth +10 cleansing +13 clear +1 clearer +5 clearly +1 clearness +28 cleave +3 cleaved +12 cleaveth +2 cleft +4 clefts +1 clemency +1 clement +1 cleopas +1 cleophas +1 cliff +1 clift +2 clifts +4 climb +2 climbed +1 climbeth +6 clods +6 cloke +10 close +10 closed +1 closer +1 closest +2 closet +1 closets +16 cloth +12 clothe +68 clothed +95 clothes +13 clothing +4 cloths +101 cloud +45 clouds +6 cloudy +1 clouted +2 clouts +2 cloven +2 clovenfooted +5 cluster +5 clusters +1 cnidus +3 coal +19 coals +57 coast +46 coasts +20 coat +14 coats +12 cock +3 cockatrice +1 cockatrices +1 cockcrowing +1 cockle +3 coffer +1 coffin +1 cogitations +15 cold +2 colhozeh +1 collar +3 collection +1 college +1 collops +1 colony +1 colosse +12 colour +1 coloured +6 colours +14 colt +3 colts +1840 come +5 comeliness +12 comely +1 comers +22 comest +242 cometh +60 comfort +2 comfortable +5 comfortably +33 comforted +1 comfortedst +6 comforter +5 comforters +4 comforteth +1 comfortless +2 comforts +93 coming +1 comings +102 command +418 commanded +4 commandedst +1 commander +3 commandest +12 commandeth +3 commanding +168 commandment +155 commandments +7 commend +1 commendation +6 commended +4 commendeth +1 commending +1 commission +1 commissions +72 commit +90 committed +1 committest +16 committeth +2 committing +1 commodious +19 common +2 commonly +1 commonwealth +1 commotion +1 commotions +8 commune +18 communed +4 communicate +2 communicated +6 communication +2 communications +2 communing +4 communion +1 compact +1 compacted +1 companied +14 companies +11 companion +19 companions +75 company +1 comparable +4 compare +4 compared +2 comparing +4 comparison +36 compass +41 compassed +1 compassest +4 compasseth +36 compassion +2 compassions +5 compel +6 compelled +1 compellest +4 complain +1 complained +1 complainers +1 complaining +8 complaint +1 complaints +3 complete +1 composition +1 compound +1 compoundeth +2 comprehend +3 comprehended +1 conaniah +5 conceal +2 concealed +2 concealeth +5 conceit +2 conceits +14 conceive +45 conceived +1 conceiving +3 conception +2 concern +200 concerning +1 concision +1 conclude +2 concluded +1 conclusion +1 concord +2 concourse +21 concubine +17 concubines +3 concupiscence +22 condemn +10 condemnation +20 condemned +1 condemnest +3 condemneth +1 condemning +1 condescend +1 conditions +3 conduct +2 conducted +4 conduit +1 coney +1 confection +3 confederacy +3 confederate +1 conference +4 conferred +26 confess +7 confessed +3 confesseth +3 confessing +6 confession +37 confidence +1 confidences +8 confident +1 confidently +12 confirm +2 confirmation +13 confirmed +1 confirmeth +3 confirming +1 confiscation +2 conflict +1 conformable +2 conformed +5 confound +47 confounded +1 confused +24 confusion +1 congealed +1 congratulate +347 congregation +3 congregations +2 coniah +2 conies +1 cononiah +1 conquer +1 conquering +1 conquerors +28 conscience +1 consciences +13 consecrate +12 consecrated +9 consecration +3 consecrations +13 consent +4 consented +1 consentedst +2 consenting +64 consider +15 considered +2 considerest +8 considereth +3 considering +1 consist +1 consisteth +14 consolation +3 consolations +1 consorted +10 conspiracy +1 conspirators +18 conspired +1 constant +3 constantly +1 constellations +1 constrain +5 constrained +2 constraineth +1 constraint +1 consult +1 consultation +13 consulted +1 consulter +1 consulteth +54 consume +88 consumed +4 consumeth +2 consuming +1 consummation +5 consumption +7 contain +4 contained +1 containeth +1 containing +1 contemn +4 contemned +1 contemneth +10 contempt +4 contemptible +1 contemptuously +13 contend +6 contended +1 contendest +2 contendeth +1 contending +15 content +9 contention +4 contentions +5 contentious +1 contentment +31 continual +76 continually +4 continuance +35 continue +27 continued +5 continueth +4 continuing +1 contradicting +2 contradiction +3 contrariwise +24 contrary +1 contribution +5 contrite +1 controversies +11 controversy +9 convenient +1 conveniently +2 conversant +17 conversation +1 conversion +2 convert +9 converted +1 converteth +1 converts +1 convey +1 conveyed +2 convince +3 convinced +1 convinceth +8 convocation +2 convocations +2 cook +2 cool +1 coos +1 copied +1 copper +1 coppersmith +2 copulation +7 copy +2 coral +6 cord +22 cords +1 core +1 coriander +6 corinth +2 corinthians +4 cormorant +83 corn +10 cornelius +35 corner +34 corners +7 cornet +2 cornets +1 cornfloor +1 corpse +4 corpses +7 correct +2 corrected +2 correcteth +12 correction +29 corrupt +12 corrupted +2 corrupters +1 corrupteth +6 corruptible +1 corrupting +21 corruption +2 corruptly +3 cost +1 costliness +5 costly +1 cotes +2 cottage +1 cottages +7 couch +2 couched +2 couches +1 coucheth +1 couching +1 couchingplace +150 could +5 couldest +1 coulter +1 coulters +22 council +2 councils +132 counsel +4 counselled +12 counseller +17 counsellers +10 counsels +24 count +37 counted +45 countenance +2 countenances +1 countervail +3 counteth +47 countries +160 country +1 countrymen +8 couple +11 coupled +2 coupleth +9 coupling +1 couplings +17 courage +5 courageous +1 courageously +19 course +17 courses +106 court +1 courteous +1 courteously +20 courts +1 cousin +1 cousins +270 covenant +1 covenantbreakers +4 covenanted +2 covenants +64 cover +93 covered +2 coveredst +2 coverest +24 covereth +40 covering +2 coverings +2 covers +9 covert +8 covet +3 coveted +2 coveteth +9 covetous +16 covetousness +5 cow +1 cows +1 coz +1 cozbi +1 crackling +1 cracknels +5 craft +5 craftiness +1 craftsman +6 craftsmen +4 crafty +1 crag +2 crane +1 crashing +1 craved +1 craveth +8 create +45 created +1 createth +6 creation +4 creator +23 creature +11 creatures +2 creditor +1 creek +6 creep +14 creepeth +26 creeping +1 crept +1 crescens +5 crete +1 cretes +5 crew +2 crib +193 cried +1 cries +5 criest +16 crieth +1 crime +2 crimes +4 crimson +1 cripple +1 crisping +2 crispus +1 crookbackt +13 crooked +1 crop +1 cropped +28 cross +1 crossway +1 crouch +1 croucheth +7 crow +61 crown +6 crowned +1 crownedst +1 crownest +1 crowneth +1 crowning +8 crowns +37 crucified +13 crucify +15 cruel +4 cruelty +3 crumbs +7 cruse +3 crush +7 crushed +173 cry +29 crying +4 crystal +28 cubit +133 cubits +2 cuckow +2 cucumbers +8 cud +1 cumbered +1 cumbereth +1 cumbrance +1 cumi +4 cummin +27 cunning +1 cunningly +61 cup +1 cupbearer +2 cupbearers +6 cups +1 curdled +5 cure +4 cured +1 cures +10 curious +1 curiously +1 current +93 curse +63 cursed +1 cursedst +8 curses +1 cursest +9 curseth +10 cursing +1 cursings +22 curtain +26 curtains +8 cush +1 cushan +9 cushi +4 custody +19 custom +6 customs +296 cut +1 cuth +1 cuttest +6 cutteth +5 cutting +3 cuttings +1 cymbal +15 cymbals +1 cypress +8 cyprus +4 cyrene +2 cyrenian +1 cyrenians +1 cyrenius +20 cyrus +1 dabareh +1 dabbasheth +2 daberath +3 dagger +11 dagon +1 dagons +54 daily +3 dainties +3 dainty +1 dalaiah +2 dale +1 daleth +1 dalmanutha +1 dalmatia +1 dalphon +4 dam +6 damage +1 damaris +1 damascenes +55 damascus +1 damnable +11 damnation +3 damned +37 damsel +11 damsels +69 dan +8 dance +6 danced +6 dances +7 dancing +7 danger +1 dangerous +81 daniel +3 danites +1 danjaan +1 dannah +1 dara +1 darda +5 dare +25 darius +39 dark +1 darken +19 darkened +1 darkeneth +1 darkly +152 darkness +2 darkon +2 darling +3 dart +4 darts +7 dash +5 dashed +2 dasheth +9 dathan +1 daub +5 daubed +299 daughter +236 daughters +1016 david +49 davids +2 dawn +5 dawning +1524 day +825 days +1 daysman +2 dayspring +6 daytime +2 deacon +2 deacons +338 dead +6 deadly +1 deadness +13 deaf +53 deal +1 dealer +2 dealers +1 dealest +9 dealeth +1 dealing +2 dealings +14 deals +55 dealt +6 dear +9 dearly +7 dearth +344 death +4 deaths +1 debase +4 debate +1 debates +14 debir +9 deborah +6 debt +4 debtor +5 debtors +2 debts +2 decapolis +1 decay +2 decayed +2 decayeth +2 decease +2 deceased +29 deceit +18 deceitful +10 deceitfully +3 deceitfulness +2 deceits +1 deceivableness +27 deceive +32 deceived +3 deceiver +3 deceivers +6 deceiveth +2 deceiving +1 deceivings +1 decently +2 decision +2 deck +6 decked +2 deckedst +1 decketh +3 declaration +87 declare +39 declared +3 declareth +4 declaring +4 decline +3 declined +2 declineth +2 decrease +1 decreased +46 decree +5 decreed +3 decrees +11 dedan +1 dedanim +4 dedicate +23 dedicated +2 dedicating +11 dedication +18 deed +33 deeds +1 deemed +59 deep +4 deeper +3 deeply +1 deepness +4 deeps +1 deer +1 defamed +1 defaming +2 defeat +17 defence +8 defenced +11 defend +1 defended +1 defendest +1 defending +3 defer +3 deferred +1 deferreth +5 defied +36 defile +65 defiled +1 defiledst +8 defileth +4 defraud +3 defrauded +5 defy +1 degenerate +5 degree +24 degrees +1 dekar +6 delaiah +3 delay +2 delayed +2 delayeth +1 delicacies +5 delicate +4 delicately +1 delicateness +1 delicates +2 deliciously +47 delight +12 delighted +1 delightest +12 delighteth +6 delights +1 delightsome +6 delilah +272 deliver +13 deliverance +1 deliverances +280 delivered +3 deliveredst +8 deliverer +2 deliverest +13 delivereth +2 delivering +1 delusion +1 delusions +4 demand +7 demanded +3 demas +3 demetrius +1 demonstration +17 den +16 denied +4 denieth +1 denounce +7 dens +20 deny +4 denying +116 depart +207 departed +7 departeth +11 departing +2 departure +1 deposed +3 deprived +12 depth +16 depths +2 deputies +4 deputy +4 derbe +1 deride +2 derided +15 derision +10 descend +17 descended +1 descendeth +8 descending +3 descent +3 describe +2 described +2 describeth +1 descry +40 desert +6 deserts +1 deserving +3 desirable +98 desire +46 desired +2 desiredst +3 desires +2 desirest +13 desireth +11 desiring +6 desirous +135 desolate +41 desolation +11 desolations +3 despair +1 despaired +2 desperate +1 desperately +37 despise +51 despised +2 despisers +1 despisest +16 despiseth +1 despising +2 despite +3 despiteful +3 despitefully +7 destitute +243 destroy +159 destroyed +7 destroyer +4 destroyers +4 destroyest +8 destroyeth +13 destroying +84 destruction +3 destructions +2 detain +1 determinate +1 determination +29 determined +5 detestable +4 deuel +10 device +15 devices +59 devil +1 devilish +55 devils +16 devise +8 devised +8 deviseth +1 devote +5 devoted +1 devotions +67 devour +51 devoured +1 devourer +1 devourest +8 devoureth +5 devouring +8 devout +30 dew +4 diadem +2 dial +3 diamond +4 diana +1 diblaim +1 diblath +8 dibon +2 dibongad +1 dibri +916 did +1 diddest +107 didst +3 didymus +301 die +197 died +1 diest +2 diet +27 dieth +1 differ +10 difference +1 differences +1 differeth +1 differing +12 dig +36 digged +1 diggedst +3 diggeth +2 dignities +4 dignity +2 diklah +1 dilean +9 diligence +14 diligent +34 diligently +8 dim +7 diminish +5 diminished +1 diminishing +1 dimnah +2 dimness +2 dimon +1 dimonah +6 dinah +1 dinahs +3 dine +1 dined +2 dinhabah +4 dinner +1 dionysius +1 diotrephes +10 dip +9 dipped +2 dippeth +10 direct +3 directed +3 directeth +2 directly +3 dirt +1 disallow +4 disallowed +3 disannul +1 disannulled +1 disannulleth +1 disannulling +1 disappoint +1 disappointed +1 disappointeth +14 discern +4 discerned +1 discerner +1 discerneth +2 discerning +29 disciple +234 disciples +1 discipline +1 disclose +9 discomfited +1 discomfiture +1 discontented +1 discontinue +2 discord +1 discourage +6 discouraged +12 discover +21 discovered +2 discovereth +1 discovering +2 discreet +1 discreetly +9 discretion +2 disdained +13 disease +8 diseased +13 diseases +1 disfigure +1 disgrace +3 disguise +5 disguised +1 disguiseth +3 dish +5 dishan +2 dishes +7 dishon +2 dishonest +1 dishonesty +11 dishonour +1 dishonourest +3 dishonoureth +1 disinherit +23 dismayed +1 dismaying +3 dismissed +6 disobedience +13 disobedient +1 disobeyed +3 disorderly +1 dispatch +4 dispensation +8 disperse +10 dispersed +1 dispersions +1 displayed +5 displease +22 displeased +5 displeasure +4 disposed +1 disposing +1 disposition +2 dispossess +2 dispossessed +1 disputation +1 disputations +1 dispute +5 disputed +1 disputer +5 disputing +2 disputings +1 disquiet +4 disquieted +1 disquietness +3 dissembled +1 dissemblers +1 dissembleth +3 dissension +2 dissimulation +1 dissolve +6 dissolved +1 dissolvest +1 dissolving +1 distaff +1 distant +2 distil +1 distinction +1 distinctly +1 distracted +1 distraction +30 distress +10 distressed +8 distresses +5 distribute +6 distributed +1 distributeth +1 distributing +1 distribution +5 ditch +1 ditches +28 divers +6 diverse +3 diversities +43 divide +61 divided +1 divider +7 divideth +6 dividing +11 divination +1 divinations +11 divine +7 diviners +1 divineth +1 divining +6 division +12 divisions +1 divorce +4 divorced +4 divorcement +1 dizahab +1231 do +1 doctor +2 doctors +50 doctrine +5 doctrines +2 dodanim +1 dodavah +3 dodo +3 doeg +7 doer +7 doers +43 doest +81 doeth +13 dog +24 dogs +34 doing +48 doings +1 doleful +54 dominion +2 dominions +513 done +166 door +1 doorkeeper +2 doorkeepers +60 doors +2 dophkah +7 dor +2 dorcas +53 dost +6 doted +182 doth +3 dothan +1 doting +23 double +2 doubled +1 doubletongued +11 doubt +4 doubted +1 doubteth +2 doubtful +4 doubting +7 doubtless +2 doubts +8 dough +16 dove +10 doves +1046 down +1 downsitting +5 downward +4 dowry +2 drag +1 dragging +18 dragon +16 dragons +6 drams +18 drank +5 draught +12 drave +70 draw +1 drawer +3 drawers +11 draweth +1 drawing +24 drawn +9 dread +9 dreadful +69 dream +20 dreamed +4 dreamer +2 dreamers +21 dreams +2 dregs +8 dress +7 dressed +1 dresser +1 dressers +1 dresseth +79 drew +1 drewest +37 dried +1 driedst +3 drieth +341 drink +1 drinkers +16 drinketh +19 drinking +52 drive +46 driven +2 driver +4 driveth +4 driving +3 dromedaries +1 dromedary +14 drop +7 dropped +1 droppeth +3 dropping +4 drops +1 dropsy +8 dross +9 drought +11 drove +1 droves +2 drown +4 drowned +1 drowsiness +27 drunk +4 drunkard +6 drunkards +30 drunken +7 drunkenness +1 drusilla +59 dry +1 dryshod +24 due +1 dues +35 duke +7 dukes +3 dulcimer +2 dull +4 dumah +28 dumb +25 dung +12 dungeon +6 dunghill +1 dunghills +1 dura +2 durable +1 dureth +9 durst +102 dust +7 duty +1 dwarf +306 dwell +6 dwelled +3 dwellers +18 dwellest +48 dwelleth +47 dwelling +3 dwellingplace +4 dwellingplaces +15 dwellings +210 dwelt +4 dyed +6 dying +36 each +23 eagle +10 eagles +115 ear +1 eared +2 earing +80 early +8 earnest +16 earnestly +2 earneth +4 earring +10 earrings +136 ears +919 earth +10 earthen +5 earthly +14 earthquake +3 earthquakes +1 earthy +19 ease +2 eased +7 easier +2 easily +141 east +1 easter +36 eastward +4 easy +605 eat +96 eaten +3 eater +1 eaters +3 eatest +51 eateth +23 eating +8 ebal +6 ebed +6 ebedmelech +3 ebenezer +13 eber +3 ebiasaph +1 ebony +2 ebronah +1 edar +17 eden +3 eder +52 edge +4 edges +4 edification +2 edified +3 edifieth +3 edify +8 edifying +77 edom +4 edomite +13 edomites +8 edrei +12 effect +1 effected +5 effectual +2 effectually +1 effeminate +2 egg +6 eggs +2 eglah +1 eglaim +12 eglon +572 egypt +21 egyptian +97 egyptians +1 ehi +10 ehud +73 eight +16 eighteen +11 eighteenth +35 eighth +1 eightieth +3 eighty +34 either +1 eker +21 ekron +2 ekronites +1 eladah +16 elah +28 elam +2 elamites +2 elasah +5 elath +1 elbethel +2 eldaah +1 eldad +19 elder +169 elders +13 eldest +1 elead +4 elealeh +4 eleasah +67 eleazar +17 elect +5 election +3 elects +1 eleloheisrael +4 elements +1 eleph +15 eleven +18 eleventh +4 elhanan +33 eli +19 eliab +1 eliabs +3 eliada +1 eliadah +2 eliah +2 eliahba +15 eliakim +2 eliam +29 elias +6 eliasaph +16 eliashib +2 eliathah +1 elidad +9 eliel +1 elienai +13 eliezer +1 elihoenai +1 elihoreph +11 elihu +66 elijah +1 elika +6 elim +4 elimelech +1 elimelechs +8 elioenai +1 eliphal +2 eliphalet +12 eliphaz +2 elipheleh +6 eliphelet +1 elis +8 elisabeth +1 elisabeths +1 eliseus +53 elisha +3 elishah +17 elishama +1 elishaphat +1 elisheba +2 elishua +2 eliud +4 elizaphan +5 elizur +21 elkanah +1 elkoshite +2 ellasar +1 elms +1 elnaam +6 elnathan +2 eloi +7 elon +1 elonbethhanan +1 elonites +2 eloquent +3 eloth +3 elpaal +1 elpalet +1 elparan +37 else +2 eltekeh +1 eltekon +2 eltolad +1 elul +1 eluzai +1 elymas +2 elzabad +2 elzaphan +1 embalm +3 embalmed +1 emboldened +1 emboldeneth +8 embrace +3 embraced +2 embracing +1 embroider +2 embroiderer +5 emerald +1 emeralds +6 emerods +3 emims +4 eminent +1 emmanuel +1 emmaus +1 emmor +1 empire +1 employed +1 employment +8 emptied +1 emptiers +1 emptiness +35 empty +1 emulation +1 emulations +1 enabled +1 enam +5 enan +11 encamp +32 encamped +1 encampeth +1 encamping +1 enchanter +1 enchanters +2 enchantment +10 enchantments +1 encountered +4 encourage +5 encouraged +273 end +1 endamage +1 endanger +1 endangered +1 endeavour +2 endeavoured +1 endeavouring +1 endeavours +20 ended +1 endeth +1 ending +2 endless +2 endor +1 endow +43 ends +5 endued +26 endure +8 endured +10 endureth +1 enduring +249 enemies +98 enemy +3 enemys +1 enflaming +1 engaged +3 engannim +5 engedi +2 engines +1 engrafted +2 engrave +3 engraver +5 engravings +1 enhaddah +1 enhazor +1 enjoin +3 enjoined +12 enjoy +1 enjoyed +10 enlarge +10 enlarged +2 enlargeth +1 enlighten +6 enlightened +1 enlightening +1 enmishpat +8 enmity +11 enoch +6 enos +1 enosh +26 enough +2 enrich +2 enriched +1 enrichest +1 enrimmon +4 enrogel +3 ensample +3 ensamples +2 enshemesh +8 ensign +1 ensigns +1 ensnared +1 ensue +1 entangle +3 entangled +1 entangleth +1 entappuah +143 enter +101 entered +20 entereth +39 entering +1 enterprise +1 entertain +1 entertained +7 entice +3 enticed +1 enticeth +2 enticing +1 entire +11 entrance +1 entrances +2 entreat +7 entreated +1 entreateth +1 entries +14 entry +6 envied +1 envies +1 enviest +1 envieth +4 envious +1 environ +20 envy +5 envying +2 envyings +1 epaenetus +3 epaphras +2 epaphroditus +36 ephah +1 ephai +3 epher +1 ephesdammim +1 ephesian +2 ephesians +16 ephesus +2 ephlal +47 ephod +1 ephphatha +151 ephraim +1 ephraimite +3 ephraimites +2 ephraims +1 ephrain +5 ephratah +3 ephrath +2 ephrathite +1 ephrathites +13 ephron +1 epicureans +13 epistle +21 equal +2 equality +1 equally +1 equals +9 equity +11 er +1 eran +1 eranites +3 erastus +8 ere +1 erech +1 erected +2 eri +1 erites +22 err +3 errand +12 erred +1 erreth +12 error +3 errors +21 esaias +3 esarhaddon +80 esau +10 esaus +53 escape +55 escaped +5 escapeth +1 escaping +1 eschew +1 eschewed +2 escheweth +1 esek +2 eshbaal +2 eshban +6 eshcol +1 eshean +1 eshek +1 eshkalonites +7 eshtaol +1 eshtaulites +5 eshtemoa +1 eshtemoh +2 eshton +5 especially +1 espied +2 espousals +5 espoused +1 espy +2 esrom +43 establish +70 established +3 establisheth +1 establishment +17 estate +1 estates +5 esteem +10 esteemed +3 esteemeth +1 esteeming +46 esther +3 esthers +2 estimate +18 estimation +1 estimations +5 estranged +4 etam +47 eternal +1 eternity +4 etham +8 ethan +1 ethanim +1 ethbaal +2 ether +19 ethiopia +8 ethiopian +13 ethiopians +1 ethnan +1 ethni +1 eubulus +1 eunice +6 eunuch +16 eunuchs +1 euodias +21 euphrates +1 euroclydon +1 eutychus +1 evangelist +1 evangelists +4 eve +730 even +53 evening +2 eveningtide +1 event +5 eventide +443 ever +88 everlasting +26 evermore +1077 every +2 evi +7 evidence +2 evidences +5 evident +2 evidently +574 evil +1 evildoer +12 evildoers +1 evilmerodach +9 evils +7 ewe +3 ewes +7 exact +2 exacted +1 exaction +1 exactions +1 exactors +24 exalt +63 exalted +1 exaltest +9 exalteth +1 examination +5 examine +6 examined +1 examining +8 example +1 examples +3 exceed +3 exceeded +1 exceedest +1 exceedeth +57 exceeding +37 exceedingly +5 excel +1 excelled +24 excellency +31 excellent +1 excellest +3 excelleth +71 except +1 excepted +3 excess +5 exchange +1 exchangers +1 exclude +1 excluded +3 excuse +2 excused +1 excusing +1 execration +30 execute +19 executed +1 executedst +1 executest +5 executeth +3 executing +1 execution +1 executioner +1 exempted +10 exercise +6 exercised +1 exerciseth +15 exhort +10 exhortation +3 exhorted +1 exhorteth +3 exhorting +2 exile +1 exorcists +12 expectation +1 expected +2 expecting +7 expedient +2 expel +4 expelled +2 expences +4 experience +1 experiment +5 expert +9 expired +1 expound +4 expounded +1 express +6 expressed +2 expressly +2 extend +2 extended +2 extinct +4 extol +2 extolled +2 extortion +3 extortioner +3 extortioners +1 extreme +1 extremity +108 eye +1 eyebrows +2 eyed +9 eyelids +453 eyes +1 eyesalve +2 eyeservice +1 eyesight +2 eyewitnesses +1 ezbai +2 ezbon +2 ezekias +2 ezekiel +1 ezel +1 ezem +10 ezer +3 eziongaber +4 eziongeber +24 ezra +2 ezrahite +1 ezri +5 fables +384 face +63 faces +5 fade +6 fadeth +57 fail +9 failed +18 faileth +2 failing +2 fain +38 faint +11 fainted +1 faintest +3 fainteth +3 fainthearted +1 faintness +41 fair +3 fairer +2 fairest +6 fairs +239 faith +74 faithful +7 faithfully +16 faithfulness +4 faithless +232 fall +77 fallen +1 fallest +22 falleth +14 falling +3 fallow +1 fallowdeer +61 false +12 falsehood +21 falsely +1 falsifying +23 fame +17 familiar +160 families +109 family +87 famine +3 famines +1 famish +2 famished +9 famous +8 fan +1 fanners +156 far +3 fare +1 fared +4 farewell +1 farm +1 farther +3 farthing +1 farthings +12 fashion +4 fashioned +3 fashioneth +1 fashioning +1 fashions +80 fast +15 fasted +4 fasten +14 fastened +1 fastening +1 fastest +17 fasting +4 fastings +116 fat +2 fatfleshed +907 father +40 fatherless +645 fathers +1 fathoms +1 fatling +4 fatlings +15 fatness +2 fats +4 fatted +1 fatter +2 fattest +17 fault +2 faultless +2 faults +2 faulty +66 favour +4 favourable +12 favoured +1 favourest +1 favoureth +374 fear +70 feared +3 fearest +17 feareth +9 fearful +1 fearfully +3 fearfulness +8 fearing +3 fears +116 feast +1 feasted +5 feasting +26 feasts +2 feathered +6 feathers +29 fed +18 feeble +1 feebleminded +1 feebleness +1 feebler +77 feed +2 feedest +8 feedeth +7 feeding +7 feel +2 feeling +229 feet +2 feign +3 feigned +1 feignedly +1 feignest +9 felix +231 fell +1 felled +1 feller +1 fellest +1 felling +10 fellow +1 fellowcitizens +1 fellowdisciples +1 fellowheirs +1 fellowhelpers +2 fellowlabourer +1 fellowlabourers +2 fellowprisoner +1 fellowprisoners +12 fellows +6 fellowservant +4 fellowservants +17 fellowship +2 fellowsoldier +1 fellowworkers +4 felt +23 female +1 fence +33 fenced +1 fens +1 ferret +1 ferry +7 fervent +2 fervently +13 festus +28 fetch +17 fetched +1 fetcheth +1 fetcht +9 fetters +9 fever +62 few +1 fewest +1 fewness +1 fidelity +264 field +49 fields +40 fierce +12 fierceness +1 fiercer +15 fiery +21 fifteen +17 fifteenth +50 fifth +8 fifties +4 fiftieth +143 fifty +39 fig +103 fight +3 fighteth +3 fighting +18 figs +7 figure +3 figures +1 file +44 fill +150 filled +2 filledst +2 filleted +6 filleth +1 fillets +1 filling +4 filth +14 filthiness +15 filthy +6 finally +143 find +2 findest +23 findeth +9 finding +92 fine +1 finer +2 finest +23 finger +12 fingers +1 fining +10 finish +42 finished +1 finisher +5 fins +17 fir +484 fire +2 firebrand +3 firebrands +3 firepans +1 fires +1 firkins +7 firm +16 firmament +384 first +1 firstbegotten +104 firstborn +2 firstfruit +31 firstfruits +12 firstling +6 firstlings +4 firstripe +34 fish +1 fishermen +6 fishers +26 fishes +1 fishhooks +1 fishing +1 fishs +1 fist +1 fists +6 fit +4 fitches +4 fitly +3 fitted +1 fitteth +293 five +5 fixed +1 flag +1 flagon +3 flagons +3 flags +1 flakes +31 flame +3 flames +8 flaming +5 flanks +1 flash +4 flat +2 flatter +6 flattereth +3 flatteries +7 flattering +2 flattery +10 flax +3 flay +2 flea +137 fled +1 fleddest +95 flee +8 fleece +3 fleeing +8 fleeth +382 flesh +2 fleshhook +4 fleshhooks +3 fleshly +1 fleshy +2 flew +3 flies +5 flieth +7 flight +5 flint +1 flinty +1 floats +99 flock +73 flocks +42 flood +19 floods +19 floor +1 floors +51 flour +12 flourish +1 flourished +2 flourisheth +2 flourishing +13 flow +2 flowed +17 flower +10 flowers +12 floweth +10 flowing +4 flute +1 fluttereth +1 flux +23 fly +9 flying +3 foal +1 foals +1 foam +2 foameth +2 foaming +1 fodder +7 foes +8 fold +1 foldeth +3 folding +5 folds +4 folk +1 folks +79 follow +104 followed +1 followedst +8 followers +15 followeth +41 following +31 folly +46 food +57 fool +48 foolish +12 foolishly +17 foolishness +40 fools +85 foot +11 footmen +4 footsteps +13 footstool +7957 for +41 forasmuch +5 forbad +3 forbare +18 forbear +2 forbearance +2 forbeareth +4 forbearing +36 forbid +3 forbidden +1 forbiddeth +4 forbidding +1 forborn +16 force +7 forced +14 forces +1 forcible +2 forcing +1 ford +3 fords +2 forecast +2 forefathers +10 forefront +15 forehead +8 foreheads +2 foreigner +2 foreigners +1 foreknew +1 foreknow +2 foreknowledge +3 foremost +1 foreordained +2 forepart +1 forerunner +1 foresaw +1 foreseeing +1 foreseeth +1 foreship +9 foreskin +5 foreskins +36 forest +3 forests +1 foretell +2 foretold +1 forewarn +1 forewarned +1 forfeited +8 forgat +5 forgave +2 forgavest +1 forged +53 forget +2 forgetful +1 forgetfulness +2 forgettest +4 forgetteth +1 forgetting +52 forgive +40 forgiven +7 forgiveness +1 forgivenesses +2 forgiveth +3 forgiving +1 forgot +44 forgotten +1 forks +22 form +28 formed +42 former +2 formeth +2 forms +35 fornication +3 fornications +2 fornicator +3 fornicators +58 forsake +70 forsaken +5 forsaketh +2 forsaking +1 forsomuch +22 forsook +2 forsookest +1 forswear +6 fort +836 forth +10 forthwith +4 fortieth +3 fortified +5 fortify +13 fortress +2 fortresses +6 forts +1 fortunatus +143 forty +1 fortys +1 forum +43 forward +2 forwardness +62 fought +4 foul +1 fouled +1 fouledst +377 found +45 foundation +30 foundations +8 founded +3 founder +1 foundest +33 fountain +15 fountains +284 four +2 fourfold +3 fourfooted +28 fourscore +7 foursquare +21 fourteen +24 fourteenth +65 fourth +31 fowl +2 fowler +1 fowlers +54 fowls +2 fox +8 foxes +7 fragments +5 frame +4 framed +2 frameth +13 frankincense +1 frankly +2 fraud +2 fray +48 free +2 freed +2 freedom +17 freely +17 freewill +2 freewoman +1 frequent +4 fresh +1 fresher +6 fret +1 fretted +1 fretteth +1 fretting +2 fried +50 friend +2 friendly +45 friends +2 friendship +2 fringe +2 fringes +24 fro +14 frogs +3335 from +1 front +1 frontiers +3 frontlets +6 frost +19 froward +1 frowardly +3 frowardness +1 frozen +185 fruit +33 fruitful +37 fruits +2 frustrate +1 frustrateth +1 fryingpan +5 fuel +2 fugitive +3 fugitives +21 fulfil +78 fulfilled +3 fulfilling +240 full +1 fuller +4 fullers +13 fully +24 fulness +5 furbished +4 furious +2 furiously +5 furlongs +25 furnace +2 furnaces +4 furnish +6 furnished +8 furniture +1 furrow +8 furrows +22 further +2 furtherance +1 furthered +14 furthermore +64 fury +9 gaal +4 gaash +1 gaba +1 gabbai +1 gabbatha +3 gabriel +66 gad +3 gadarenes +1 gaddest +1 gaddi +1 gaddiel +2 gadi +1 gadite +14 gadites +1 gaham +2 gahar +27 gain +10 gained +1 gains +1 gainsay +1 gainsayers +3 gainsaying +5 gaius +3 galal +6 galatia +1 galatians +1 galbanum +2 galeed +2 galilaean +5 galilaeans +72 galilee +13 gall +1 gallant +4 galleries +1 galley +2 gallim +2 gallio +8 gallows +6 gamaliel +1 gammadims +1 gamul +1 gap +2 gaped +1 gaps +49 garden +1 gardener +12 gardens +3 gareb +1 garlands +1 garlick +83 garment +95 garments +1 garmite +2 garner +1 garners +1 garnish +4 garnished +10 garrison +6 garrisons +20 gat +3 gatam +241 gate +132 gates +31 gath +153 gather +253 gathered +1 gatherer +1 gatherest +14 gathereth +9 gathering +1 gatherings +1 gathhepher +4 gathrimmon +425 gave +30 gavest +1 gay +18 gaza +1 gazathites +1 gaze +2 gazer +2 gazez +1 gazing +2 gazingstock +2 gazzam +13 geba +2 gebal +2 geber +1 gebim +30 gedaliah +1 gedeon +1 geder +1 gederah +1 gederathite +2 gederoth +1 gederothaim +7 gedor +12 gehazi +1 geliloth +1 gemalli +5 gemariah +2 gender +1 gendered +2 gendereth +7 genealogies +14 genealogy +1 general +1 generally +92 generation +99 generations +3 gennesaret +2 gentile +123 gentiles +5 gentle +4 gentleness +1 gently +2 genubath +9 gera +4 gerahs +10 gerar +1 gergesenes +4 gerizim +14 gershom +16 gershon +1 gershonite +9 gershonites +1 geshan +3 geshem +8 geshur +2 geshuri +5 geshurites +111 get +2 gether +2 gethsemane +8 getteth +3 getting +1 geuel +12 gezer +1 gezrites +109 ghost +1 giah +7 giant +13 giants +1 gibbar +5 gibbethon +1 gibea +42 gibeah +1 gibeathite +36 gibeon +2 gibeonite +6 gibeonites +1 giblites +2 giddalti +4 giddel +35 gideon +5 gideoni +1 gidom +2 gier +50 gift +50 gifts +5 gihon +1 gilalai +8 gilboa +89 gilead +9 gileadite +4 gileadites +1 gileads +39 gilgal +2 giloh +2 gilonite +1 gimel +1 gimzo +3 gin +2 ginath +1 ginnetho +2 ginnethon +2 gins +26 gird +30 girded +1 girdedst +3 girdeth +1 girding +33 girdle +6 girdles +1 girgashite +5 girgashites +1 girgasite +1 girl +1 girls +3 girt +1 gispa +1 gittahhepher +2 gittaim +7 gittite +2 gittites +3 gittith +811 give +454 given +2 giver +12 givest +112 giveth +27 giving +1 gizonite +86 glad +7 gladly +45 gladness +8 glass +1 glasses +9 glean +6 gleaned +5 gleaning +1 gleanings +1 glede +2 glistering +1 glitter +6 glittering +2 gloominess +1 gloriest +3 glorieth +47 glorified +1 glorifieth +24 glorify +3 glorifying +39 glorious +3 gloriously +369 glory +4 glorying +2 glutton +2 gluttonous +2 gnash +2 gnashed +3 gnasheth +7 gnashing +1 gnat +1 gnaw +1 gnawed +1404 go +1 goad +1 goads +32 goat +1 goath +87 goats +1 goatskins +2 gob +4080 god +4 goddess +3 godhead +15 godliness +15 godly +242 gods +3 godward +41 goest +118 goeth +9 gog +79 going +23 goings +3 golan +345 gold +57 golden +3 goldsmith +3 goldsmiths +3 golgotha +5 goliath +6 gomer +16 gomorrah +5 gomorrha +199 gone +616 good +1 goodliest +26 goodly +6 goodman +42 goodness +38 goods +1 gopher +1 gore +2 gored +1 gorgeous +2 gorgeously +13 goshen +96 gospel +3 gospels +7 got +24 gotten +5 gourd +1 gourds +3 govern +3 government +1 governments +54 governor +23 governors +3 gozan +156 grace +30 gracious +4 graciously +1 graff +5 graffed +7 grain +1 grandmother +22 grant +11 granted +5 grape +1 grapegatherer +2 grapegatherers +1 grapegleanings +28 grapes +52 grass +3 grasshopper +6 grasshoppers +6 grate +62 grave +1 graveclothes +2 graved +3 gravel +43 graven +19 graves +1 graveth +2 graving +1 gravings +2 gravity +6 gray +3 grayheaded +1 grease +864 great +70 greater +20 greatest +79 greatly +27 greatness +1 greaves +2 grecia +4 grecians +2 greece +3 greedily +1 greediness +4 greedy +10 greek +14 greeks +38 green +1 greenish +15 greet +1 greeteth +3 greeting +3 greetings +28 grew +1 greyhound +24 grief +1 griefs +5 grieve +38 grieved +2 grieveth +33 grievous +5 grievously +2 grievousness +7 grind +1 grinders +3 grinding +4 grisled +6 groan +1 groaned +1 groaneth +9 groaning +3 groanings +5 grope +1 gropeth +4 gross +171 ground +2 grounded +15 grove +22 groves +36 grow +13 groweth +18 grown +2 growth +3 grudge +1 grudging +1 grudgingly +48 guard +1 guards +2 gudgodah +1 guest +2 guestchamber +5 guests +21 guide +4 guided +2 guides +11 guile +1 guiltiness +9 guiltless +23 guilty +1 gulf +4 guni +1 gunites +1 gurbaal +1 gush +5 gushed +1 gutter +2 gutters +2 ha +1 haahashtari +2 habaiah +2 habakkuk +1 habaziniah +2 habergeon +1 habergeons +1 habitable +54 habitation +19 habitations +3 habor +2 hachaliah +3 hachilah +1 hachmoni +1863 had +14 hadad +9 hadadezer +1 hadadrimmon +2 hadar +10 hadarezer +1 hadashah +1 hadassah +1 hadattah +3 hadid +1 hadlai +4 hadoram +1 hadrach +18 hadst +1 haft +1 hagab +1 hagaba +1 hagabah +11 hagar +1 hagarenes +3 hagarites +11 haggai +1 haggeri +2 haggi +1 haggiah +1 haggites +5 haggith +2 hai +35 hail +2 hailstones +35 hair +11 hairs +3 hairy +1 hakkatan +1 hakkoz +2 hakupha +3 halah +1 halak +1 hale +113 half +1 halhul +1 hali +1 haling +8 hall +1 hallohesh +13 hallow +21 hallowed +1 halohesh +5 halt +2 halted +2 halteth +16 ham +47 haman +3 hamans +26 hamath +2 hamathite +1 hamathzobah +1 hammath +4 hammedatha +2 hammelech +5 hammer +3 hammers +1 hammoleketh +2 hammon +1 hammothdor +1 hamonah +2 hamongog +12 hamor +1 hamors +1 hamuel +3 hamul +1 hamulites +3 hamutal +4 hanameel +9 hanan +4 hananeel +10 hanani +28 hananiah +1346 hand +1 handbreadth +7 handful +4 handfuls +1 handkerchiefs +9 handle +3 handled +1 handles +3 handleth +2 handling +42 handmaid +1 handmaiden +3 handmaidens +8 handmaids +417 hands +1 handstaves +1 handwriting +1 handywork +1 hanes +19 hang +30 hanged +2 hangeth +17 hanging +12 hangings +1 haniel +13 hannah +1 hannathon +1 hanniel +4 hanoch +1 hanochites +11 hanun +1 hap +1 hapharaim +6 haply +3 happen +11 happened +4 happeneth +1 happier +22 happy +1 hara +2 haradah +16 haran +5 hararite +1 harbona +1 harbonah +40 hard +12 harden +32 hardened +4 hardeneth +2 harder +1 hardhearted +8 hardly +7 hardness +1 hare +1 hareph +1 hareth +1 harhaiah +1 harhas +2 harhur +11 harim +2 hariph +36 harlot +10 harlots +16 harm +3 harmless +1 harnepher +4 harness +1 harnessed +1 harod +2 harodite +1 haroeh +1 harorite +3 harosheth +30 harp +1 harped +2 harpers +1 harping +20 harps +1 harrow +2 harrows +2 harsha +9 hart +2 harts +1 harum +1 harumaph +1 haruphite +1 haruz +54 harvest +2 harvestman +1 hasadiah +1 hasenuah +13 hashabiah +1 hashabnah +2 hashabniah +1 hashbadana +1 hashem +2 hashmonah +4 hashub +1 hashubah +5 hashum +1 hashupha +1 hassenaah +1 hasshub +993 hast +48 haste +23 hasted +6 hasten +6 hastened +1 hasteneth +7 hasteth +7 hastily +2 hasting +6 hasty +1 hasupha +4 hatach +2 hatch +84 hate +52 hated +3 hateful +1 hatefully +2 haters +5 hatest +29 hateth +2066 hath +1 hathath +3 hating +2 hatipha +2 hatita +16 hatred +1 hats +2 hattil +5 hattush +1 haughtily +4 haughtiness +8 haughty +3 haunt +2 hauran +3604 have +4 haven +1 havens +6 havilah +178 having +1 havock +2 havothjair +5 hawk +3 hay +23 hazael +1 hazaiah +1 hazaraddar +1 hazarded +3 hazarenan +1 hazargaddah +2 hazarmaveth +4 hazarshual +1 hazarsusah +1 hazarsusim +1 hazel +1 hazelelponi +1 hazerim +6 hazeroth +1 hazezontamar +1 haziel +1 hazo +18 hazor +9500 he +311 head +1 headbands +3 headlong +95 heads +1 heady +38 heal +77 healed +1 healer +4 healeth +13 healing +1 healings +16 health +35 heap +2 heaped +2 heapeth +20 heaps +522 hear +601 heard +12 heardest +2 hearer +4 hearers +11 hearest +50 heareth +35 hearing +148 hearken +80 hearkened +1 hearkenedst +1 hearkeneth +1 hearkening +764 heart +8 hearted +6 hearth +1 heartily +111 hearts +1 hearty +32 heat +1 heated +2 heath +132 heathen +24 heave +3 heaved +549 heaven +18 heavenly +125 heavens +3 heavier +2 heavily +14 heaviness +36 heavy +12 heber +1 heberites +1 hebers +23 hebrew +19 hebrews +68 hebron +3 hebronites +6 hedge +3 hedged +5 hedges +79 heed +5 heel +4 heels +3 hegai +1 hege +14 heifer +1 heifers +46 height +2 heights +18 heir +11 heirs +2 helah +1 helam +1 helbah +1 helbon +44 held +1 heldai +1 heleb +1 heled +1 helek +1 helekites +2 helem +1 heleph +4 helez +1 heli +1 helkai +2 helkath +49 hell +1 helm +7 helmet +1 helmets +4 helon +115 help +22 helped +8 helper +7 helpers +4 helpeth +2 helping +2 helps +1 helve +6 hem +1 hemam +14 heman +3 hemath +1 hemdan +2 hemlock +1 hems +2 hen +3 hena +3 henadad +28 hence +31 henceforth +2 henceforward +2 henoch +8 hepher +1 hepherites +2 hephzibah +1784 her +1 herald +15 herb +16 herbs +21 herd +1 herdman +7 herdmen +31 herds +131 here +14 hereafter +13 hereby +9 herein +2 hereof +1 heres +1 heresh +3 heresies +1 heresy +1 heretick +7 heretofore +1 hereunto +2 herewith +25 heritage +1 heritages +1 hermas +1 hermes +1 hermogenes +13 hermon +1 hermonites +40 herod +3 herodians +6 herodias +1 herodion +4 herods +2 heron +4 hers +33 herself +1 hesed +35 heshbon +1 heshmon +14 heth +1 hethlon +12 hew +12 hewed +1 hewer +9 hewers +2 heweth +15 hewn +1 hezeki +124 hezekiah +1 hezion +2 hezir +1 hezrai +1 hezro +15 hezron +2 hezronites +1 hezrons +120 hid +1 hiddai +1 hiddekel +14 hidden +78 hide +5 hidest +13 hideth +6 hiding +1 hiel +1 hierapolis +1 higgaion +374 high +20 higher +17 highest +5 highly +3 highminded +2 highness +15 highway +10 highways +1 hilen +33 hilkiah +1 hilkiahs +68 hill +2 hillel +60 hills +5951 him +456 himself +18 hin +3 hind +14 hinder +5 hindered +1 hindereth +2 hindermost +3 hindmost +6 hinds +9 hinnom +1 hip +2 hirah +22 hiram +1 hirams +22 hire +27 hired +9 hireling +1 hires +1 hirest +7567 his +9 hiss +7 hissing +2 hit +60 hither +18 hitherto +24 hittite +19 hittites +8 hivite +14 hivites +1 hizkiah +1 hizkijah +4 ho +3 hoar +1 hoarfrost +4 hoary +1 hobab +1 hobah +1 hod +1 hodaiah +2 hodaviah +1 hodesh +1 hodevah +1 hodiah +5 hodijah +4 hoglah +1 hoham +1 hoised +173 hold +11 holden +4 holdest +9 holdeth +9 holding +21 holds +9 hole +12 holes +1 holier +3 holiest +1 holily +41 holiness +9 hollow +3 holon +5 holpen +519 holy +2 holyday +1 homam +41 home +1 homeborn +9 homer +6 honest +3 honestly +1 honesty +51 honey +6 honeycomb +136 honour +26 honourable +9 honoured +1 honourest +9 honoureth +1 honours +1 hoods +9 hoof +6 hoofs +5 hook +6 hooks +117 hope +10 hoped +1 hopes +1 hopeth +4 hophni +2 hoping +12 hor +1 horam +14 horeb +1 horem +2 horhagidgad +4 hori +2 horims +1 horite +3 horites +8 hormah +30 horn +2 hornet +1 hornets +56 horns +3 horonaim +3 horonite +6 horrible +2 horribly +3 horror +41 horse +4 horseback +1 horsehoofs +1 horseleach +2 horseman +56 horsemen +99 horses +5 hosah +6 hosanna +3 hosea +1 hosen +3 hoshaiah +1 hoshama +10 hoshea +4 hospitality +173 host +2 hostages +272 hosts +29 hot +1 hotham +1 hothan +2 hothir +1 hotly +1 hottest +1 hough +2 houghed +90 hour +3 hours +1860 house +52 household +3 householder +7 households +119 houses +6 housetop +5 housetops +481 how +64 howbeit +28 howl +1 howled +6 howling +1 howlings +3 howsoever +1 huge +1 hukkok +1 hukok +2 hul +1 huldah +24 humble +26 humbled +1 humbledst +1 humbleness +7 humbleth +1 humbly +1 humiliation +7 humility +1 humtah +524 hundred +7 hundredfold +27 hundreds +3 hundredth +22 hunger +1 hungerbitten +2 hungered +9 hungred +29 hungry +8 hunt +1 hunted +3 hunter +1 hunters +2 huntest +1 hunteth +1 hunting +1 hupham +1 huphamites +1 huppah +2 huppim +16 hur +1 hurai +12 huram +1 huri +1 hurl +1 hurleth +56 hurt +3 hurtful +1 hurting +102 husband +7 husbandman +21 husbandmen +2 husbandry +24 husbands +1 hushah +13 hushai +4 husham +4 hushathite +3 hushim +2 husk +1 husks +1 huz +1 huzzab +2 hymenaeus +2 hymn +2 hymns +1 hypocrisies +6 hypocrisy +7 hypocrite +20 hypocrites +2 hypocritical +11 hyssop +8178 i +3 ibhar +3 ibleam +1 ibneiah +1 ibnijah +1 ibri +2 ibzan +3 ice +1 ichabod +1 ichabods +5 iconium +1 idalah +13 iddo +8 idle +3 idleness +9 idol +2 idolater +5 idolaters +1 idolatries +1 idolatrous +4 idolatry +100 idols +1 idumaea +4 idumea +1413 if +2 igal +1 igdaliah +1 igeal +1 ignominy +17 ignorance +14 ignorant +4 ignorantly +2 iim +2 ijeabarim +3 ijon +2 ikkesh +1 ilai +12 ill +1 illuminated +1 illyricum +83 image +1 imagery +66 images +13 imagination +6 imaginations +11 imagine +3 imagined +1 imagineth +2 imla +2 imlah +2 immanuel +55 immediately +8 immer +1 immortal +5 immortality +1 immutability +1 immutable +1 imna +2 imnah +2 impart +2 imparted +1 impediment +1 impenitent +1 imperious +1 implacable +1 implead +1 importunity +1 impose +8 impossible +4 impotent +1 impoverish +2 impoverished +1 imprisoned +2 imprisonment +1 imprisonments +3 impudent +3 impute +8 imputed +1 imputeth +1 imputing +1 imrah +2 imri +11373 in +9 inasmuch +118 incense +2 incensed +15 incline +13 inclined +1 inclineth +1 inclose +7 inclosed +2 inclosings +1 incontinency +1 incontinent +4 incorruptible +4 incorruption +82 increase +47 increased +1 increasest +15 increaseth +1 increasing +1 incredible +3 incurable +1 indebted +66 indeed +1 india +37 indignation +1 inditing +1 industrious +1 inexcusable +1 infallible +2 infamy +2 infant +3 infants +4 inferior +2 infidel +3 infinite +11 infirmities +9 infirmity +1 inflame +2 inflammation +1 influences +1 infolding +1 inform +5 informed +2 ingathering +10 inhabit +32 inhabitant +184 inhabitants +29 inhabited +2 inhabiters +1 inhabitest +2 inhabiteth +1 inhabiting +56 inherit +210 inheritance +1 inheritances +6 inherited +1 inheriteth +1 inheritor +52 iniquities +246 iniquity +1 injured +1 injurious +4 ink +3 inkhorn +5 inn +33 inner +2 innermost +5 innocency +33 innocent +2 innocents +7 innumerable +1 inordinate +46 inquire +29 inquired +1 inquirest +2 inquiry +3 inquisition +1 inscription +1 inside +20 insomuch +1 inspiration +6 instant +1 instantly +33 instead +9 instruct +16 instructed +1 instructer +1 instructing +29 instruction +1 instructor +1 instructors +8 instrument +42 instruments +5 insurrection +13 integrity +1 intelligence +3 intend +1 intended +1 intendest +3 intending +11 intent +2 intents +7 intercession +1 intercessions +1 intercessor +1 intermeddle +1 intermeddleth +1 intermission +7 interpret +40 interpretation +1 interpretations +11 interpreted +3 interpreter +1 interpreting +1906 into +15 intreat +17 intreated +1 intreaties +1 intreaty +1 intruding +2 invade +5 invaded +1 invasion +1 invent +1 invented +5 inventions +1 inventors +5 invisible +3 invited +22 inward +2 inwardly +15 inwards +1 iphedeiah +1 ir +5 ira +2 irad +2 iram +1 iri +2 irijah +1 irnahash +86 iron +1 irons +1 irpeel +1 irshemesh +1 iru +3080 is +123 isaac +4 isaacs +31 isaiah +1 iscah +10 iscariot +1 ishbah +2 ishbak +1 ishbibenob +10 ishbosheth +4 ishi +1 ishiah +1 ishijah +39 ishmael +2 ishmaelites +1 ishmaels +1 ishmaiah +1 ishmeelite +4 ishmeelites +1 ishmerai +1 ishod +1 ishpan +2 ishtob +1 ishuah +1 ishuai +1 ishui +9 island +7 islands +6 isle +24 isles +1 ismachiah +1 ismaiah +1 ispah +2411 israel +4 israelite +16 israelites +2 israelitish +9 israels +38 issachar +3 isshiah +35 issue +7 issued +2 issues +1 isuah +1 isui +4198 it +1 italian +4 italy +1 itch +1 itching +1 ithai +21 ithamar +3 ithiel +1 ithmah +1 ithnan +1 ithra +3 ithran +2 ithream +4 ithrite +1 ithrites +1 its +38 itself +1 ittahkazin +7 ittai +1 ituraea +3 ivah +10 ivory +1 izehar +8 izhar +2 izharites +2 izrahiah +1 izri +1 jaakan +1 jaakobah +1 jaala +1 jaalah +3 jaalam +1 jaanai +1 jaareoregim +1 jaasau +1 jaasiel +4 jaazaniah +2 jaazer +2 jaaziah +1 jaaziel +1 jabal +6 jabbok +12 jabesh +11 jabeshgilead +4 jabez +7 jabin +1 jabins +2 jabneel +1 jabneh +1 jachan +8 jachin +1 jachinites +2 jacinth +332 jacob +17 jacobs +2 jada +1 jadau +3 jaddua +1 jadon +6 jael +1 jagur +1 jah +6 jahath +4 jahaz +3 jahazah +1 jahaziah +6 jahaziel +1 jahdai +1 jahdo +2 jahleel +1 jahleelites +1 jahmai +1 jahzah +2 jahzeel +1 jahzeelites +1 jahzerah +1 jahziel +1 jailor +9 jair +1 jairite +2 jairus +1 jakan +1 jakeh +2 jakim +1 jalon +1 jambres +41 james +5 jamin +1 jaminites +1 jamlech +1 jangling +1 jannes +1 janoah +2 janohah +1 janum +11 japheth +5 japhia +3 japhlet +1 japhleti +1 japho +2 jarah +2 jareb +5 jared +1 jaresiah +2 jarha +2 jarib +7 jarmuth +1 jaroah +1 jashen +2 jasher +1 jashobeam +3 jashub +1 jashubilehem +1 jashubites +1 jasiel +5 jason +6 jasper +1 jathniel +4 jattir +6 javan +7 javelin +2 jaw +3 jawbone +5 jaws +10 jazer +15 jealous +32 jealousy +1 jearim +1 jeaterai +1 jeberechiah +3 jebus +2 jebusi +12 jebusite +22 jebusites +1 jecamiah +1 jecholiah +2 jechonias +1 jecoliah +7 jeconiah +13 jedaiah +6 jediael +1 jedidah +1 jedidiah +15 jeduthun +1 jeezer +1 jeezerites +1 jegarsahadutha +1 jehaleleel +1 jehalelel +2 jehdeiah +1 jehezekel +1 jehiah +16 jehiel +2 jehieli +1 jehizkiah +2 jehoadah +2 jehoaddan +23 jehoahaz +17 jehoash +6 jehohanan +10 jehoiachin +1 jehoiachins +48 jehoiada +37 jehoiakim +2 jehoiarib +2 jehonadab +3 jehonathan +23 jehoram +2 jehoshabeath +82 jehoshaphat +1 jehosheba +2 jehoshua +2 jehovah +1 jehovahjireh +1 jehovahnissi +1 jehovahshalom +4 jehozabad +2 jehozadak +51 jehu +1 jehubbah +1 jehucal +1 jehud +3 jehudi +1 jehudijah +1 jehush +11 jeiel +2 jekameam +2 jekamiah +1 jekuthiel +1 jemima +2 jemuel +1 jeoparded +4 jeopardy +29 jephthah +16 jephunneh +2 jerah +8 jerahmeel +1 jerahmeelites +2 jered +1 jeremai +140 jeremiah +1 jeremiahs +1 jeremias +5 jeremoth +2 jeremy +1 jeriah +1 jeribai +59 jericho +1 jeriel +8 jerimoth +97 jeroboam +2 jeroboams +10 jeroham +13 jerubbaal +1 jerubbesheth +1 jeruel +742 jerusalem +3 jerusalems +1 jerusha +1 jerushah +2 jesaiah +5 jeshaiah +1 jeshanah +1 jesharelah +1 jeshebeab +1 jesher +6 jeshimon +1 jeshishai +1 jeshohaiah +29 jeshua +2 jeshurun +2 jesiah +1 jesimiel +41 jesse +1 jesting +1 jesui +1 jesuites +1 jesurun +962 jesus +7 jether +2 jetheth +1 jethlah +10 jethro +3 jetur +1 jeuel +6 jeush +1 jeuz +26 jew +2 jewel +22 jewels +2 jewess +1 jewish +3 jewry +245 jews +2 jezaniah +20 jezebel +1 jezebels +3 jezer +1 jezerites +1 jeziah +1 jeziel +1 jezliah +1 jezoar +1 jezrahiah +32 jezreel +7 jezreelite +5 jezreelitess +1 jibsam +1 jidlaph +1 jimna +1 jimnah +1 jimnites +1 jiphtah +2 jiphthahel +133 joab +6 joabs +9 joah +1 joahaz +2 joanna +47 joash +2 joatham +53 job +9 jobab +1 jobs +1 jochebed +1 jod +1 joed +20 joel +1 joelah +1 joezer +2 jogbehah +1 jogli +2 joha +26 johanan +131 john +2 johns +3 joiada +4 joiakim +5 joiarib +11 join +41 joined +1 joining +1 joinings +4 joint +1 jointheirs +5 joints +1 jokdeam +1 jokim +1 jokmeam +4 jokneam +4 jokshan +6 joktan +2 joktheel +1 jona +10 jonadab +19 jonah +12 jonas +112 jonathan +3 jonathans +1 jonathelemrechokim +13 joppa +1 jorah +1 jorai +28 joram +179 jordan +1 jorkoam +1 josabad +2 josaphat +6 josedech +213 joseph +21 josephs +6 joses +1 joshah +1 joshaphat +1 joshaviah +2 joshbekashah +209 joshua +53 josiah +2 josias +1 josibiah +1 josiphiah +1 jot +1 jotbah +1 jotbath +2 jotbathah +23 jotham +51 journey +32 journeyed +3 journeying +1 journeyings +9 journeys +152 joy +1 joyed +25 joyful +3 joyfully +2 joyfulness +1 joying +3 joyous +9 jozabad +1 jozachar +5 jozadak +1 jubal +19 jubile +1 jucal +9 juda +41 judaea +761 judah +4 judahs +29 judas +1 jude +1 judea +183 judge +62 judged +46 judges +8 judgest +17 judgeth +6 judging +267 judgment +112 judgments +1 judith +1 juice +1 julia +1 julius +1 jumping +1 junia +4 juniper +3 jupiter +1 jurisdiction +1 jushabhesed +80 just +27 justice +3 justification +42 justified +1 justifier +3 justifieth +11 justify +2 justifying +1 justle +3 justly +2 justus +2 juttah +3 kabzeel +15 kadesh +9 kadeshbarnea +7 kadmiel +1 kadmonites +1 kallai +3 kanah +12 kareah +1 karkaa +1 karnaim +1 kartah +1 kartan +1 kattath +12 kedar +2 kedemah +4 kedemoth +11 kedesh +1 kedeshnaphtali +341 keep +18 keeper +19 keepers +3 keepest +42 keepeth +11 keeping +2 kehelathah +18 keilah +1 kelaiah +3 kelita +3 kemuel +1 kenan +2 kenath +11 kenaz +3 kenezite +6 kenite +7 kenites +1 kenizzites +161 kept +1 kerchiefs +1 kerenhappuch +4 kerioth +1 kernels +2 keros +1 kettle +4 keturah +6 key +2 keys +1 kezia +1 keziz +5 kibrothhattaavah +1 kibzaim +3 kick +1 kicked +41 kid +14 kidneys +11 kidron +8 kids +118 kill +61 killed +2 killedst +1 killest +21 killeth +4 killing +7 kin +1 kinah +39 kind +18 kindle +60 kindled +3 kindleth +10 kindly +42 kindness +26 kindred +8 kindreds +10 kinds +24 kine +2139 king +317 kingdom +53 kingdoms +1 kingly +555 kings +2 kinsfolk +3 kinsfolks +13 kinsman +7 kinsmen +3 kinswoman +4 kir +1 kirharaseth +1 kirhareseth +1 kirharesh +2 kirheres +4 kiriathaim +3 kirjathaim +4 kirjatharba +1 kirjatharim +1 kirjathbaal +1 kirjathhuzoth +16 kirjathjearim +1 kirjathsannah +4 kirjathsepher +19 kish +1 kishi +1 kishion +6 kishon +1 kison +19 kiss +24 kissed +1 kisses +2 kite +1 kithlish +1 kitron +2 kittim +2 knead +3 kneaded +2 kneadingtroughs +6 knee +2 kneel +8 kneeled +3 kneeling +29 knees +156 knew +10 knewest +6 knife +6 knit +4 knives +4 knock +1 knocked +3 knocketh +1 knocking +9 knop +6 knops +690 know +82 knowest +97 knoweth +50 knowing +148 knowledge +208 known +1 koa +30 kohath +12 kohathites +2 kolaiah +1 koph +32 korah +1 korahite +1 korahites +1 korathites +4 kore +4 korhites +4 koz +1 kushaiah +1 laadah +4 laadan +48 laban +4 labans +78 labour +17 laboured +2 labourer +7 labourers +5 laboureth +4 labouring +12 labours +4 lace +22 lachish +14 lack +11 lacked +2 lackest +4 lacketh +8 lacking +30 lad +1 ladder +3 lade +4 laded +5 laden +1 ladeth +1 ladies +1 lading +2 lads +4 lady +1 lael +1 lahad +2 lahairoi +1 lahmam +1 lahmi +247 laid +1 laidst +5 lain +6 laish +10 lake +1 lakum +2 lama +97 lamb +79 lambs +22 lame +12 lamech +1 lamed +15 lament +1 lamentable +22 lamentation +3 lamentations +11 lamented +12 lamp +33 lamps +1 lance +1 lancets +1579 land +2 landed +1 landing +4 landmark +43 lands +1 lanes +22 language +6 languages +5 languish +1 languished +6 languisheth +1 languishing +1 lanterns +4 laodicea +2 laodiceans +3 lap +1 lapidoth +2 lapped +2 lappeth +2 lapwing +18 large +1 largeness +6 lasciviousness +1 lasea +1 lasha +1 lasharon +78 last +1 lasted +1 lasting +4 latchet +2 late +1 lately +2 latin +37 latter +3 lattice +1 laud +17 laugh +11 laughed +1 laugheth +1 laughing +6 laughter +1 launch +4 launched +14 laver +5 lavers +1 lavish +492 law +39 lawful +2 lawfully +4 lawgiver +1 lawless +18 laws +2 lawyer +5 lawyers +210 lay +1 layedst +2 layest +15 layeth +13 laying +15 lazarus +52 lead +2 leader +3 leaders +1 leadest +12 leadeth +10 leaf +15 league +25 leah +5 leahs +9 lean +6 leaned +2 leaneth +3 leanfleshed +1 leaning +5 leanness +9 leap +8 leaped +4 leaping +30 learn +21 learned +9 learning +2 leasing +34 least +1 leathern +98 leave +1 leaved +23 leaven +14 leavened +2 leaveneth +11 leaves +5 leaveth +4 leaving +1 lebana +1 lebanah +58 lebanon +1 lebaoth +1 lebbaeus +1 lebonah +1 lecah +67 led +5 leddest +2 ledges +1 leeks +4 lees +309 left +1 leftest +1 lefthanded +1 leg +3 legion +1 legions +19 legs +2 lehabim +2 lehi +1 leisure +1 lemuel +16 lend +2 lender +2 lendeth +53 length +2 lengthen +1 lengthened +1 lengthening +7 lent +3 lentiles +5 leopard +2 leopards +15 leper +6 lepers +33 leprosy +5 leprous +2 leshem +23 less +2 lesser +218 lest +1382 let +33 letter +27 letters +3 lettest +2 letteth +1 letting +1 letushim +1 leummim +66 levi +4 leviathan +23 levite +239 levites +1 levitical +6 levy +3 lewd +1 lewdly +16 lewdness +12 liar +7 liars +5 liberal +2 liberality +2 liberally +1 libertines +26 liberty +18 libnah +5 libni +1 libnites +3 libya +2 libyans +6 lice +2 licence +4 lick +4 licked +1 lid +145 lie +4 lied +3 lien +10 liers +43 lies +5 liest +43 lieth +3 lieutenants +415 life +3 lifetime +99 lift +137 lifted +1 lifter +4 liftest +9 lifteth +8 lifting +243 light +9 lighted +5 lighten +5 lightened +2 lighteneth +2 lighter +1 lightest +3 lighteth +2 lighting +6 lightly +3 lightness +13 lightning +14 lightnings +10 lights +1 lign +2 ligure +531 like +3 likeminded +9 liken +6 likened +25 likeness +3 liketh +99 likewise +1 likhi +2 liking +9 lilies +5 lily +1 lime +1 limited +1 limiteth +27 line +1 lineage +86 linen +2 lines +2 lingered +1 lingereth +2 lintel +1 lintels +1 linus +83 lion +1 lioness +1 lionesses +2 lionlike +39 lions +3 lip +107 lips +1 liquor +1 liquors +2 listed +1 listen +2 listeth +1 litters +215 little +223 live +57 lived +4 lively +11 liver +28 lives +3 livest +74 liveth +131 living +1 lizard +147 lo +3 loaf +1 loan +1 loathe +2 loatheth +3 loathsome +29 loaves +2 lock +2 locked +13 locks +11 locust +16 locusts +4 lod +3 lodebar +25 lodge +21 lodged +1 lodgeth +5 lodging +2 loft +1 loftily +2 loftiness +7 lofty +4 log +58 loins +1 lois +190 long +8 longed +17 longer +4 longeth +2 longing +15 longsuffering +1 longwinged +138 look +135 looked +1 lookest +30 looketh +28 looking +4 looks +12 loops +27 loose +30 loosed +2 looseth +3 loosing +1 lop +7273 lord +1 lordly +149 lords +2 lordship +2 loruhamah +24 lose +1 loseth +5 loss +31 lost +101 lot +5 lotan +2 lotans +4 lothe +2 lothed +1 lothing +25 lots +60 loud +2 louder +295 love +96 loved +1 lovedst +2 lovely +4 lover +22 lovers +4 loves +12 lovest +63 loveth +3 loving +24 lovingkindness +3 lovingkindnesses +43 low +13 lower +10 lowest +1 loweth +1 lowing +2 lowliness +5 lowly +1 lubim +2 lubims +1 lucas +1 lucifer +2 lucius +5 lucre +1 lucres +3 lud +2 ludim +2 luhith +2 luke +1 lukewarm +6 lump +2 lunatick +1 lurk +3 lurking +19 lust +4 lusted +6 lusteth +1 lusting +22 lusts +1 lusty +8 luz +2 lycaonia +1 lycia +3 lydda +3 lydia +1 lydians +49 lying +1 lysanias +3 lysias +6 lystra +3 maacah +16 maachah +1 maachathi +4 maachathite +4 maachathites +1 maadai +1 maadiah +1 maai +1 maalehacrabbim +1 maarath +25 maaseiah +1 maasiai +1 maaz +2 maaziah +26 macedonia +1 macedonian +1 machbanai +1 machbenah +1 machi +21 machir +1 machirites +1 machnadebai +4 machpelah +18 mad +2 madai +1276 made +10 madest +1 madian +2 madmannah +1 madmen +1 madmenah +8 madness +2 madon +1 magbish +1 magdala +12 magdalene +2 magdiel +1 magician +12 magicians +1 magistrate +7 magistrates +1 magnificence +18 magnified +16 magnify +5 magog +1 magormissabib +1 magpiash +1 mahalah +7 mahalaleel +3 mahalath +1 mahali +12 mahanaim +1 mahanehdan +2 maharai +3 mahath +1 mahavite +2 mahazioth +2 mahershalalhashbaz +4 mahlah +11 mahli +1 mahlites +3 mahlon +1 mahlons +1 mahol +32 maid +7 maiden +18 maidens +8 maids +14 maidservant +11 maidservants +1 mail +7 maimed +1 mainsail +10 maintain +1 maintained +1 maintainest +2 maintenance +28 majesty +1 makaz +971 make +20 maker +1 makers +24 makest +110 maketh +2 makheloth +27 making +9 makkedah +1 maktesh +1 malachi +2 malcham +9 malchiah +3 malchiel +1 malchielites +6 malchijah +1 malchiram +4 malchishua +1 malchus +43 male +1 malefactor +3 malefactors +31 males +6 malice +1 malicious +2 maliciousness +1 malignity +2 mallothi +1 mallows +6 malluch +4 mammon +8 mamre +2269 man +1 manaen +3 manahath +2 manahethites +122 manasseh +3 manassehs +2 manasses +3 manassites +6 mandrakes +1 maneh +3 manger +38 manifest +3 manifestation +10 manifested +1 manifestly +8 manifold +6 mankind +17 manna +168 manner +5 manners +17 manoah +107 mans +10 manservant +2 manservants +1 mansions +2 manslayer +1 manslayers +11 mantle +1 mantles +511 many +1 maoch +3 maon +1 maonites +5 mar +1 mara +5 marah +1 maralah +1 maranatha +3 marble +4 march +1 marched +1 marchedst +3 marcus +8 mareshah +5 mariners +1 marishes +36 mark +6 marked +1 markest +5 market +3 marketh +3 marketplace +1 marketplaces +4 markets +2 marks +1 maroth +5 marred +18 marriage +3 marriages +27 married +3 marrieth +3 marrow +21 marry +2 marrying +1 mars +1 mart +13 martha +2 martyr +1 martyrs +11 marvel +22 marvelled +22 marvellous +3 marvellously +1 marvels +54 mary +11 maschil +1 mash +1 mashal +7 masons +2 masrekah +2 massa +3 massah +2 mast +147 master +1 masterbuilder +1 masteries +42 masters +2 mastery +1 masts +2 mate +2 matred +1 matri +5 matrix +3 mattan +2 mattanah +13 mattaniah +1 mattathah +3 mattenai +64 matter +18 matters +2 matthan +5 matthew +2 matthias +8 mattithiah +2 mattock +2 mattocks +1 maul +1 maw +933 may +104 mayest +1 mazzaroth +3772 me +2 meadow +1 meadows +2 meah +9 meal +1 mealtime +16 mean +2 meanest +4 meaneth +3 meaning +31 means +2 meant +1 mearah +62 measure +44 measured +31 measures +11 measuring +263 meat +7 meats +1 mebunnai +1 mecherathite +1 medad +2 medan +4 meddle +1 meddled +1 meddling +1 mede +5 medeba +13 medes +4 media +1 median +6 mediator +2 medicine +2 medicines +13 meditate +6 meditation +15 meek +14 meekness +123 meet +2 meetest +3 meeteth +2 meeting +10 megiddo +1 megiddon +1 mehetabeel +2 mehetabel +2 mehida +1 mehir +2 meholathite +2 mehujael +1 mehuman +1 mehunim +1 mehunims +1 mejarkon +1 mekonah +1 melatiah +1 melchiah +9 melchisedec +1 melchishua +2 melchizedek +1 melech +1 melicu +1 melita +4 melody +1 melons +13 melt +13 melted +5 melteth +2 melzar +1 mem +6 member +27 members +27 memorial +6 memory +1 memphis +2 memucan +1368 men +8 menahem +1 mend +2 mending +3 mene +2 menpleasers +22 mens +10 menservants +1 menstealers +3 menstruous +23 mention +7 mentioned +1 meonenim +1 meonothai +4 mephaath +13 mephibosheth +3 merab +1 meraiah +7 meraioth +36 merari +1 merarites +1 merathaim +21 merchandise +9 merchant +2 merchantmen +26 merchants +42 mercies +33 merciful +1 mercurius +249 mercy +1 mercyseat +2 mered +6 meremoth +6 meribah +1 meribahkadesh +4 meribbaal +1 merodach +1 merodachbaladan +2 merom +2 meronothite +1 meroz +1 merrily +25 merry +1 merryhearted +1 mesech +3 mesha +13 meshach +7 meshech +3 meshelemiah +3 meshezabeel +1 meshillemith +2 meshillemoth +1 meshobab +24 meshullam +1 meshullemeth +1 mesobaite +7 mesopotamia +2 mess +6 message +31 messenger +77 messengers +1 messes +1 messiah +2 messias +43 met +6 mete +3 meted +1 meteyard +1 methegammah +2 methusael +6 methuselah +1 meunim +2 mezahab +2 miamin +1 mibhar +3 mibsam +2 mibzar +24 micah +3 micahs +18 micaiah +3 mice +2 micha +15 michael +4 michah +7 michaiah +18 michal +2 michmas +8 michmash +2 michmethah +1 michri +6 michtam +2 midday +1 middin +14 middle +2 middlemost +38 midian +1 midianite +22 midianites +2 midianitish +14 midnight +330 midst +3 midwife +7 midwives +1 migdalel +1 migdalgad +4 migdol +442 might +17 mightest +12 mightier +2 mighties +1 mightiest +10 mightily +256 mighty +1 migron +2 mijamin +3 mikloth +2 mikneiah +1 milalai +11 milcah +3 milch +3 milcom +5 mildew +1 mile +1 miletum +2 miletus +42 milk +2 mill +1 millet +1 millions +8 millo +8 millstone +2 millstones +1 mincing +87 mind +14 minded +10 mindful +1 minding +14 minds +570 mine +2 mingle +48 mingled +2 miniamin +1 minished +94 minister +37 ministered +2 ministereth +9 ministering +26 ministers +7 ministration +22 ministry +1 minni +2 minnith +2 minstrel +1 minstrels +2 mint +1 miphkad +8 miracle +27 miracles +13 mire +14 miriam +1 mirma +14 mirth +4 miry +1 miscarrying +42 mischief +3 mischiefs +5 mischievous +3 miserable +1 miserably +1 miseries +6 misery +1 misgab +8 mishael +1 mishal +1 misham +1 misheal +4 mishma +1 mishmannah +1 mishraites +1 mispar +1 mispereth +2 misrephothmaim +2 miss +2 missed +2 missing +3 mist +8 mistress +1 misused +1 mite +2 mites +2 mithcah +1 mithnite +2 mithredath +13 mitre +1 mitylene +9 mixed +1 mixt +2 mixture +1 mizar +20 mizpah +23 mizpeh +4 mizraim +2 mizzah +1 mnason +155 moab +3 moabite +18 moabites +6 moabitess +1 moabitish +1 moadiah +11 mock +19 mocked +5 mockers +1 mockest +4 mocketh +5 mocking +1 mockings +1 moderately +1 moderation +1 modest +1 moist +1 moistened +2 moisture +4 moladah +1 mole +7 molech +1 moles +1 molid +1 mollified +2 moloch +29 molten +20 moment +127 money +2 moneychangers +1 monsters +175 month +1 monthly +49 months +1 monuments +45 moon +9 moons +2 morasthite +52 mordecai +2 mordecais +618 more +3 moreh +170 moreover +1 moreshethgath +2 moriah +202 morning +96 morrow +9 morsel +1 morsels +6 mortal +1 mortality +1 mortally +1 mortar +6 morter +1 mortgaged +2 mortify +1 mosera +2 moseroth +820 moses +115 most +6 mote +10 moth +1 motheaten +225 mother +56 mothers +1 motions +2 mouldy +244 mount +132 mountain +167 mountains +1 mounted +1 mounting +3 mounts +42 mourn +22 mourned +1 mourner +4 mourners +9 mourneth +1 mournfully +46 mourning +2 mouse +392 mouth +17 mouths +12 move +1 moveable +68 moved +1 movedst +1 mover +8 moveth +4 moving +1 mower +1 mowings +1 mown +5 moza +1 mozah +261 much +1 mufflers +4 mulberry +8 mule +9 mules +43 multiplied +1 multipliedst +3 multiplieth +46 multiply +2 multiplying +223 multitude +24 multitudes +2 munition +1 muppim +9 murder +19 murderer +10 murderers +4 murders +8 murmur +19 murmured +1 murmurers +2 murmuring +7 murmurings +1 murrain +1 muse +1 mused +8 mushi +1 mushites +3 musical +54 musician +1 musicians +15 musick +1 musing +112 must +5 mustard +2 mustered +1 mustereth +1 muthlabben +1 mutter +1 muttered +1 mutual +3 muzzle +3960 my +1 myra +14 myrrh +6 myrtle +105 myself +2 mysia +5 mysteries +22 mystery +1 naam +5 naamah +16 naaman +1 naamans +4 naamathite +1 naamites +3 naarah +1 naarai +1 naaran +1 naarath +1 naashon +3 naasson +15 nabal +4 nabals +21 naboth +1 nachons +2 nachor +20 nadab +1 nagge +1 nahalal +2 nahaliel +1 nahallal +1 nahalol +1 naham +1 nahamani +2 naharai +9 nahash +4 nahath +1 nahbi +15 nahor +2 nahors +9 nahshon +1 nahum +7 nail +1 nailing +6 nails +1 nain +6 naioth +42 naked +53 nakedness +823 name +50 named +1 namely +112 names +1 nameth +19 naomi +1 naomis +2 naphish +45 naphtali +2 naphtuhim +3 napkin +1 narcissus +6 narrow +2 narrowly +41 nathan +6 nathanael +1 nathanmelech +131 nation +314 nations +1 native +6 nativity +13 natural +2 naturally +11 nature +2 naught +3 naughtiness +3 naughty +3 navel +6 navy +51 nay +1 nazarene +1 nazarenes +29 nazareth +5 nazarite +3 nazarites +1 neah +1 neapolis +181 near +2 nearer +3 neariah +1 nebai +2 nebaioth +3 nebajoth +1 neballat +22 nebat +12 nebo +58 nebuchadnezzar +30 nebuchadrezzar +1 nebushasban +14 nebuzaradan +9 necessary +3 necessities +10 necessity +3 necho +56 neck +17 necks +1 necromancer +1 nedabiah +47 need +2 needed +1 needest +6 needeth +5 needful +2 needle +1 needles +5 needlework +12 needs +33 needy +1 neesings +1 neginah +6 neginoth +4 neglect +1 neglected +1 neglecting +2 negligent +3 nehelamite +8 nehemiah +1 nehiloth +1 nehum +1 nehushta +1 nehushtan +1 neiel +99 neighbour +48 neighbours +1 neighed +1 neighing +1 neighings +781 neither +1 nekeb +4 nekoda +2 nemuel +1 nemuelites +4 nepheg +2 nephew +2 nephews +1 nephish +1 nephishesim +2 nephthalim +2 nephtoah +1 nephusim +14 ner +1 nereus +1 nergal +3 nergalsharezer +1 neri +10 neriah +14 nest +2 nests +39 net +13 nethaneel +17 nethaniah +15 nether +1 nethermost +17 nethinims +2 netophah +1 netophathi +6 netophathite +2 netophathites +9 nets +4 nettles +3 network +2 networks +81 never +94 nevertheless +139 new +1 newborn +1 newly +2 newness +1 news +55 next +2 neziah +1 nezib +1 nibhaz +1 nibshan +1 nicanor +5 nicodemus +2 nicolaitans +1 nicolas +1 nicopolis +1 niger +93 nigh +288 night +18 nights +1 nimrah +2 nimrim +4 nimrod +5 nimshi +45 nine +3 nineteen +3 nineteenth +23 ninety +1 nineve +18 nineveh +1 ninevites +26 ninth +1 nisan +2 nisroch +1 nitre +1229 no +2 noadiah +48 noah +2 noahs +6 nob +3 nobah +7 noble +3 nobleman +28 nobles +1 nod +1 nodab +4 noe +2 nogah +1 nohah +81 noise +3 noised +4 noisome +1 non +290 none +12 noon +8 noonday +1 noontide +7 noph +1 nophah +670 nor +117 north +2 northern +20 northward +11 nose +1 noses +14 nostrils +5999 not +5 notable +3 note +1 noted +201 nothing +2 notice +35 notwithstanding +33 nought +4 nourish +10 nourished +1 nourisher +1 nourisheth +1 nourishing +1 nourishment +1 novice +1298 now +162 number +113 numbered +3 numberest +2 numbering +1 numbers +30 nun +9 nurse +2 nursed +3 nursing +1 nurture +2 nuts +1 nymphas +987 o +12 oak +5 oaks +1 oar +1 oars +55 oath +4 oaths +17 obadiah +1 obal +12 obed +20 obededom +12 obedience +15 obedient +9 obeisance +64 obey +40 obeyed +2 obeyedst +2 obeyeth +2 obeying +1 object +24 oblation +5 oblations +4 oboth +1 obscure +2 obscurity +1 observation +53 observe +9 observed +1 observer +1 observers +1 observest +1 observeth +1 obstinate +14 obtain +27 obtained +2 obtaineth +1 obtaining +19 occasion +3 occasions +3 occupation +7 occupied +1 occupiers +1 occupieth +2 occupy +1 occurrent +5 ocran +1 odd +2 oded +2 odious +2 odour +5 odours +31396 of +464 off +18 offence +7 offences +23 offend +24 offended +2 offender +1 offenders +221 offer +122 offered +14 offereth +650 offering +233 offerings +45 office +10 officer +52 officers +5 offices +2 offscouring +12 offspring +11 oft +13 often +1 oftener +6 oftentimes +3 ofttimes +19 og +35 oh +2 ohad +1 ohel +179 oil +1 oiled +26 ointment +5 ointments +323 old +1 oldness +29 olive +14 olives +1 olivet +1 oliveyard +5 oliveyards +1 olympas +3 omar +4 omega +4 omer +1 omitted +1 omnipotent +18 omri +1798 on +4 onam +8 onan +57 once +1605 one +76 ones +2 onesimus +2 onesiphorus +1 onions +230 only +5 ono +1 onward +1 onycha +10 onyx +111 open +132 opened +2 openest +20 openeth +5 opening +1 openings +14 openly +3 operation +1 operations +5 ophel +12 ophir +1 ophni +7 ophrah +3 opinion +1 opinions +5 opportunity +1 oppose +1 opposed +1 opposest +1 opposeth +1 oppositions +23 oppress +32 oppressed +5 oppresseth +3 oppressing +23 oppression +3 oppressions +12 oppressor +5 oppressors +951 or +13 oracle +3 oracles +1 oration +1 orator +1 orchard +1 orchards +5 ordain +30 ordained +1 ordaineth +55 order +3 ordered +1 ordereth +1 orderings +1 orderly +27 ordinance +24 ordinances +1 ordinary +7 oreb +1 oren +3 organ +1 organs +2 orion +4 ornament +9 ornaments +12 ornan +2 orpah +1 orphans +1 osee +2 oshea +2 ospray +2 ossifrage +1 ostrich +1 ostriches +350 other +61 others +13 otherwise +1 othni +6 othniel +7 ouches +74 ought +4 oughtest +1022 our +11 ours +45 ourselves +2621 out +1 outcast +7 outcasts +4 outer +7 outgoings +1 outlandish +1 outlived +3 outmost +1 outrun +7 outside +3 outstretched +13 outward +2 outwardly +1 outwent +9 oven +1 ovens +902 over +3 overcame +1 overcharge +1 overcharged +21 overcome +11 overcometh +1 overdrive +12 overflow +2 overflowed +1 overfloweth +8 overflowing +2 overflown +29 overlaid +11 overlay +1 overlived +1 overmuch +1 overpass +2 overpast +1 overplus +1 overran +1 overrunning +2 oversee +6 overseer +5 overseers +2 overshadow +3 overshadowed +9 oversight +1 overspread +1 overspreading +17 overtake +2 overtaken +1 overtaketh +12 overthrew +18 overthrow +4 overthroweth +14 overthrown +9 overtook +4 overturn +1 overturned +3 overturneth +1 overwhelm +8 overwhelmed +1 owe +3 owed +4 owest +1 oweth +10 owl +6 owls +560 own +9 owner +4 owners +2 owneth +51 ox +86 oxen +2 ozem +2 ozias +1 ozni +1 oznites +1 paarai +1 paces +2 pacified +2 pacifieth +1 pacify +1 padan +9 padanaram +1 paddle +2 padon +5 pagiel +6 pahathmoab +4 paid +23 pain +5 pained +1 painful +1 painfulness +4 pains +2 painted +1 paintedst +4 pair +43 palace +29 palaces +1 palal +2 pale +1 paleness +3 palestina +1 palestine +3 pallu +1 palluites +24 palm +3 palmerworm +6 palms +1 palsies +13 palsy +1 palti +1 paltiel +1 paltite +5 pamphylia +6 pan +9 pangs +1 pannag +3 pans +1 pant +2 panted +3 panteth +2 paper +2 paphos +4 paps +48 parable +16 parables +3 paradise +1 parah +1 paramours +11 paran +2 parbar +5 parcel +8 parched +1 parchments +16 pardon +3 pardoned +1 pare +21 parents +5 parlour +1 parlours +1 parmashta +1 parmenas +1 parnach +5 parosh +1 parshandatha +156 part +9 partaker +21 partakers +1 partakest +12 parted +3 parteth +1 parthians +2 partial +2 partiality +2 particular +2 particularly +1 parting +2 partition +5 partly +2 partner +2 partners +1 partridge +56 parts +1 paruah +1 parvaim +1 pasach +1 pasdammim +3 paseah +14 pashur +798 pass +4 passage +5 passages +151 passed +1 passedst +3 passengers +5 passest +34 passeth +11 passing +1 passion +2 passions +75 passover +49 past +7 pastors +20 pasture +10 pastures +1 patara +1 pate +23 path +5 pathros +2 pathrusim +38 paths +33 patience +8 patient +4 patiently +1 patmos +2 patriarch +2 patriarchs +1 patrimony +1 patrobas +11 pattern +1 patterns +151 paul +5 pauls +1 paulus +7 pavement +4 pavilion +2 pavilions +2 paw +1 paweth +1 paws +36 pay +2 payed +1 payeth +1 payment +1 pe +383 peace +5 peaceable +12 peaceably +1 peacemakers +3 peacocks +1 pearl +7 pearls +6 peculiar +1 pedahel +5 pedahzur +8 pedaiah +1 pedigrees +3 peeled +1 peep +1 peeped +11 pekah +3 pekahiah +2 pekod +3 pelaiah +1 pelaliah +5 pelatiah +5 peleg +2 pelet +2 peleth +6 pelethites +3 pelican +2 pelonite +5 pen +5 pence +1 peniel +3 peninnah +9 penny +2 pennyworth +3 pentecost +8 penuel +2 penury +1964 people +6 peoples +4 peor +1 peors +29 peradventure +24 perceive +33 perceived +2 perceivest +2 perceiveth +3 perceiving +8 perdition +1 peres +1 peresh +3 perez +1 perezuzza +1 perezuzzah +89 perfect +8 perfected +2 perfecting +10 perfection +7 perfectly +1 perfectness +40 perform +2 performance +18 performed +4 performeth +2 performing +3 perfume +2 perfumed +1 perfumes +3 perga +2 pergamos +3 perhaps +1 perida +1 peril +1 perilous +1 perils +113 perish +24 perished +7 perisheth +1 perishing +3 perizzite +16 perizzites +1 perjured +1 permission +2 permit +2 permitted +1 pernicious +26 perpetual +3 perpetually +5 perplexed +3 perplexity +22 persecute +19 persecuted +6 persecutest +1 persecuting +9 persecution +5 persecutions +1 persecutor +6 persecutors +1 perseverance +26 persia +2 persian +5 persians +1 persis +44 person +48 persons +9 persuade +18 persuaded +1 persuadest +2 persuadeth +1 persuading +1 persuasion +2 pertain +2 pertained +3 pertaineth +5 pertaining +1 peruda +18 perverse +3 perversely +5 perverseness +10 pervert +3 perverted +5 perverteth +2 perverting +44 pestilence +2 pestilences +1 pestle +155 peter +4 peters +3 pethahiah +2 pethor +1 pethuel +9 petition +2 petitions +1 peulthai +1 phallu +1 phalti +1 phaltiel +1 phanuel +211 pharaoh +1 pharaohhophra +1 pharaohnecho +4 pharaohnechoh +47 pharaohs +2 phares +12 pharez +10 pharisee +89 pharisees +1 pharosh +1 pharpar +1 pharzites +1 phaseah +1 phebe +3 phenice +1 phenicia +3 phichol +2 philadelphia +1 philemon +1 philetus +32 philip +6 philippi +1 philippians +3 philips +3 philistia +1 philistim +33 philistine +236 philistines +1 philologus +1 philosophers +1 philosophy +22 phinehas +1 phlegon +3 phrygia +2 phurah +2 phut +1 phuvah +1 phygellus +1 phylacteries +6 physician +6 physicians +1 pibeseth +1 pick +3 pictures +40 piece +100 pieces +3 pierce +8 pierced +1 pierceth +1 piercing +1 piercings +1 piety +2 pigeon +10 pigeons +4 pihahiroth +53 pilate +1 pildash +1 pile +1 pileha +4 pilgrimage +2 pilgrims +43 pillar +64 pillars +2 pilled +1 pillow +1 pillows +4 pilots +1 piltai +2 pin +7 pine +1 pineth +1 pining +2 pinnacle +2 pinon +11 pins +4 pipe +4 piped +1 pipers +4 pipes +1 piram +1 pirathon +4 pirathonite +5 pisgah +2 pisidia +1 pispah +2 piss +6 pisseth +81 pit +19 pitch +80 pitched +12 pitcher +4 pitchers +1 pithom +1 pithon +5 pitied +3 pitieth +2 pitiful +6 pits +29 pity +585 place +13 placed +189 places +76 plague +5 plagued +23 plagues +67 plain +11 plainly +1 plainness +22 plains +7 plaister +2 plaistered +1 plaiting +1 planes +1 planets +3 planks +37 plant +1 plantation +37 planted +1 plantedst +1 planters +5 planteth +2 planting +1 plantings +6 plants +1 plat +3 plate +5 plates +3 platted +3 platter +16 play +18 played +2 playedst +1 player +2 players +1 playeth +6 playing +2 plea +34 plead +3 pleaded +1 pleadeth +1 pleadings +49 pleasant +34 please +62 pleased +6 pleaseth +4 pleasing +53 pleasure +7 pleasures +20 pledge +2 pledges +2 pleiades +10 plenteous +1 plenteousness +4 plentiful +3 plentifully +12 plenty +1 plotteth +1 plough +5 plow +5 plowed +1 plowers +1 ploweth +2 plowing +2 plowman +2 plowmen +3 plowshares +25 pluck +22 plucked +1 plucketh +1 pluckt +4 plumbline +3 plummet +1 plunge +2 pochereth +1 poets +7 point +1 pointed +2 points +7 poison +2 pole +1 policy +2 polished +1 polishing +3 poll +3 polled +6 polls +9 pollute +38 polluted +2 polluting +1 pollution +2 pollutions +1 pollux +10 pomegranate +14 pomegranates +1 pommels +7 pomp +2 ponder +1 pondered +3 pondereth +3 ponds +4 pontius +3 pontus +20 pool +5 pools +179 poor +1 poorer +1 poorest +1 poplar +1 poplars +2 populous +1 poratha +31 porch +2 porches +1 porcius +1 port +6 porter +29 porters +64 portion +15 portions +93 possess +37 possessed +1 possessest +2 possesseth +1 possessing +88 possession +11 possessions +2 possessor +2 possessors +15 possible +9 post +9 posterity +33 posts +19 pot +1 potentate +2 potiphar +3 potipherah +13 pots +3 potsherd +1 potsherds +5 pottage +9 potter +10 potters +10 pound +5 pounds +57 pour +83 poured +1 pouredst +7 poureth +2 pouring +1 pourtray +3 pourtrayed +15 poverty +7 powder +1 powders +245 power +14 powers +1 practices +4 practise +2 practised +1 praetorium +228 praise +20 praised +26 praises +1 praiseth +9 praising +1 pransing +2 pransings +3 prating +294 pray +65 prayed +108 prayer +23 prayers +2 prayest +6 prayeth +20 praying +48 preach +60 preached +11 preacher +1 preachest +3 preacheth +25 preaching +8 precept +22 precepts +70 precious +2 predestinate +2 predestinated +3 preeminence +1 prefer +4 preferred +2 preferring +1 premeditate +9 preparation +1 preparations +78 prepare +95 prepared +1 preparedst +3 preparest +2 prepareth +2 preparing +1 presbytery +1 prescribed +1 prescribing +108 presence +100 present +17 presented +1 presenting +4 presently +10 presents +29 preserve +16 preserved +1 preserver +2 preservest +8 preserveth +5 presidents +8 press +14 pressed +1 presses +2 presseth +2 presume +1 presumed +2 presumptuous +5 presumptuously +3 pretence +25 prevail +35 prevailed +1 prevailest +1 prevaileth +7 prevent +9 prevented +1 preventest +64 prey +28 price +1 prices +1 pricked +1 pricking +3 pricks +45 pride +465 priest +16 priesthood +418 priests +93 prince +244 princes +1 princesses +13 principal +7 principalities +2 principality +2 principles +4 print +1 printed +1 prisca +4 priscilla +1 prised +85 prison +12 prisoner +20 prisoners +3 prisons +1 private +6 privately +14 privily +3 privy +2 prize +15 proceed +8 proceeded +11 proceedeth +1 proceeding +5 process +1 prochorus +20 proclaim +16 proclaimed +1 proclaimeth +3 proclaiming +7 proclamation +2 procure +2 procured +1 procureth +1 produce +31 profane +15 profaned +1 profaneness +1 profaneth +2 profaning +3 profess +2 professed +3 professing +4 profession +33 profit +10 profitable +5 profited +6 profiteth +1 profiting +1 profound +1 progenitors +1 prognosticators +7 prolong +9 prolonged +1 prolongeth +49 promise +46 promised +3 promisedst +13 promises +1 promising +5 promote +5 promoted +2 promotion +11 pronounce +14 pronounced +1 pronouncing +5 proof +1 proofs +4 proper +1 prophecies +20 prophecy +47 prophesied +6 prophesieth +84 prophesy +6 prophesying +1 prophesyings +221 prophet +7 prophetess +228 prophets +3 propitiation +3 proportion +2 proselyte +2 proselytes +5 prospect +45 prosper +13 prospered +4 prospereth +15 prosperity +7 prosperous +2 prosperously +1 prostitute +1 protection +3 protest +3 protested +1 protesting +42 proud +8 proudly +22 prove +14 proved +7 provender +17 proverb +9 proverbs +1 proveth +11 provide +8 provided +1 providence +2 provideth +1 providing +20 province +27 provinces +2 proving +11 provision +8 provocation +3 provocations +40 provoke +31 provoked +1 provokedst +2 provoketh +6 provoking +3 prudence +19 prudent +1 prudently +2 prune +1 pruned +1 pruning +3 pruninghooks +59 psalm +1 psalmist +9 psalms +14 psalteries +13 psaltery +1 ptolemais +1 pua +3 puah +6 publican +17 publicans +1 publick +2 publickly +16 publish +10 published +4 publisheth +2 publius +1 pudens +6 puffed +3 puffeth +1 puhites +3 pul +14 pull +7 pulled +2 pulling +1 pulpit +2 pulse +31 punish +14 punished +17 punishment +1 punishments +1 punites +2 punon +2 pur +8 purchase +8 purchased +72 pure +1 purely +3 pureness +1 purer +14 purge +14 purged +1 purgeth +1 purging +8 purification +1 purifications +12 purified +1 purifier +2 purifieth +13 purify +12 purifying +5 purim +2 purity +1 purloining +32 purple +31 purpose +15 purposed +5 purposes +1 purposeth +5 purse +1 purses +29 pursue +37 pursued +1 pursuer +5 pursuers +6 pursueth +5 pursuing +1 purtenance +8 push +1 pushed +1 pushing +838 put +1 puteoli +1 putrifying +7 puttest +27 putteth +15 putting +1 pygarg +3 quails +4 quake +2 quaked +2 quaking +1 quantity +4 quarrel +2 quarries +7 quarter +8 quarters +1 quartus +1 quaternions +47 queen +3 queens +10 quench +17 quenched +11 question +3 questioned +2 questioning +13 questions +7 quick +13 quicken +6 quickened +5 quickeneth +1 quickening +36 quickly +1 quicksands +29 quiet +2 quieted +2 quietly +8 quietness +5 quit +7 quite +7 quiver +1 quivered +5 raamah +1 raamiah +1 raamses +13 rabbah +1 rabbath +8 rabbi +1 rabbith +1 rabboni +2 rabmag +3 rabsaris +16 rabshakeh +1 raca +4 race +1 rachab +39 rachel +5 rachels +1 raddai +1 rafters +14 rage +1 raged +1 rageth +1 ragged +5 raging +4 rags +1 raguel +8 rahab +1 raham +1 rail +3 railed +1 railer +4 railing +1 railings +49 raiment +94 rain +2 rainbow +9 rained +1 rainy +58 raise +80 raised +1 raiser +8 raiseth +2 raising +2 raisins +1 rakem +1 rakkath +1 rakkon +95 ram +1 rama +33 ramah +1 ramathaimzophim +1 ramathlehi +1 ramathmizpeh +4 rameses +1 ramiah +7 ramoth +19 ramothgilead +1 rampart +68 rams +59 ran +2 rang +1 range +3 ranges +6 rank +4 ranks +13 ransom +3 ransomed +2 rapha +1 raphu +1 rare +1 rase +2 rash +1 rashly +7 rasor +5 rate +51 rather +1 rattleth +1 rattling +6 raven +4 ravening +1 ravenous +5 ravens +2 ravin +7 ravished +6 raw +12 reach +7 reached +11 reacheth +2 reaching +67 read +2 readest +3 readeth +2 readiness +6 reading +89 ready +1 reaia +3 reaiah +7 realm +31 reap +4 reaped +1 reaper +9 reapers +2 reapest +4 reapeth +2 reaping +4 rear +10 reared +65 reason +1 reasonable +12 reasoned +5 reasoning +1 reasons +2 reba +27 rebekah +2 rebekahs +14 rebel +33 rebelled +2 rebellest +9 rebellion +33 rebellious +3 rebels +42 rebuke +23 rebuked +1 rebuker +2 rebukes +4 rebuketh +2 rebuking +1 recall +3 receipt +166 receive +150 received +1 receivedst +36 receiveth +6 receiving +13 rechab +4 rechabites +1 rechah +8 reckon +20 reckoned +1 reckoneth +2 reckoning +2 recommended +19 recompence +2 recompences +25 recompense +10 recompensed +1 recompensest +1 recompensing +4 reconcile +7 reconciled +8 reconciliation +2 reconciling +28 record +1 recorded +7 recorder +3 records +1 recount +19 recover +9 recovered +1 recovering +45 red +5 reddish +44 redeem +59 redeemed +15 redeemer +2 redeemeth +2 redeeming +18 redemption +1 redness +1 redound +30 reed +8 reeds +2 reel +1 reelaiah +1 refine +4 refined +1 refiner +1 refiners +1 reformation +1 reformed +9 refrain +6 refrained +1 refraineth +3 refresh +10 refreshed +1 refresheth +2 refreshing +41 refuge +26 refuse +30 refused +1 refusedst +8 refuseth +29 regard +9 regarded +4 regardest +10 regardeth +2 regarding +1 regem +1 regemmelech +2 regeneration +13 region +3 regions +3 register +5 rehabiah +4 rehearsed +10 rehob +49 rehoboam +4 rehoboth +6 rehum +1 rei +143 reign +143 reigned +13 reigneth +1 reigning +14 reins +4 reject +25 rejected +1 rejecteth +182 rejoice +46 rejoiced +1 rejoicest +17 rejoiceth +24 rejoicing +5 rekem +19 release +3 released +3 relied +1 relief +7 relieve +1 relieved +1 relieveth +5 religion +2 religious +1 rely +73 remain +6 remainder +53 remained +2 remainest +32 remaineth +11 remaining +11 remaliah +2 remaliahs +3 remedy +143 remember +55 remembered +2 rememberest +4 remembereth +2 remembering +45 remembrance +1 remembrances +1 remeth +10 remission +1 remit +1 remitted +1 remmon +1 remmonmethoar +87 remnant +42 remove +87 removed +5 removeth +5 removing +1 remphan +17 rend +30 render +4 rendered +1 renderest +1 rendereth +1 rendering +1 rending +6 renew +6 renewed +2 renewest +2 renewing +1 renounced +7 renown +3 renowned +62 rent +13 repair +43 repaired +1 repairer +7 repay +1 repayed +1 repayeth +1 repeateth +44 repent +26 repentance +32 repented +1 repentest +5 repenteth +1 repenting +1 repentings +1 repetitions +1 rephael +1 rephah +5 rephaiah +6 rephaim +2 rephaims +5 rephidim +2 replenish +4 replenished +1 repliest +28 report +11 reported +81 reproach +13 reproached +5 reproaches +1 reproachest +7 reproacheth +2 reproachfully +4 reprobate +3 reprobates +15 reproof +1 reproofs +17 reprove +10 reproved +2 reprover +4 reproveth +4 reputation +1 reputed +18 request +5 requested +1 requests +25 require +19 required +1 requirest +2 requireth +1 requiring +8 requite +2 requited +1 requiting +5 rereward +1 rescue +3 rescued +1 rescueth +1 resemblance +1 resemble +1 resembled +1 resen +3 reserve +14 reserved +1 reserveth +1 resh +1 resheph +32 residue +10 resist +2 resisted +4 resisteth +1 resolved +4 resort +5 resorted +33 respect +1 respected +1 respecter +2 respecteth +2 respite +254 rest +20 rested +1 restest +3 resteth +4 resting +1 restingplace +5 restitution +37 restore +24 restored +2 restorer +2 restoreth +2 restrain +8 restrained +1 restrainest +1 restraint +41 resurrection +6 retain +6 retained +2 retaineth +2 retire +2 retired +252 return +178 returned +7 returneth +4 returning +5 reu +66 reuben +1 reubenite +16 reubenites +8 reuel +1 reumah +5 reveal +37 revealed +1 revealer +6 revealeth +10 revelation +2 revelations +2 revellings +4 revenge +1 revenged +7 revenger +1 revengers +1 revenges +3 revenue +3 revenues +12 reverence +1 reverend +2 reverse +1 revile +6 reviled +1 revilers +1 revilest +2 revilings +8 revive +5 revived +2 reviving +3 revolt +7 revolted +2 revolters +1 revolting +76 reward +14 rewarded +1 rewarder +6 rewardeth +5 rewards +1 rezia +11 rezin +1 rezon +1 rhegium +1 rhoda +1 rhodes +1 rib +2 ribai +1 ribband +11 riblah +2 ribs +77 rich +1 richer +87 riches +2 richly +6 rid +2 riddance +9 riddle +17 ride +7 rider +4 riders +7 rideth +1 ridges +10 riding +2 rie +1 rifled +309 right +219 righteous +7 righteously +291 righteousness +2 righteousnesses +4 rightly +5 rigour +14 rimmon +2 rimmonparez +9 ring +1 ringleader +37 rings +7 ringstraked +3 rinsed +1 riot +1 rioting +2 riotous +1 rip +5 ripe +1 ripening +2 riphath +3 ripped +133 rise +50 risen +2 risest +11 riseth +34 rising +2 rissah +1 rites +2 rithmah +151 river +72 rivers +3 rizpah +1 road +18 roar +4 roared +3 roareth +12 roaring +1 roarings +5 roast +2 roasted +1 roasteth +8 rob +9 robbed +4 robber +10 robbers +7 robbery +1 robbeth +24 robe +10 robes +2 roboam +105 rock +22 rocks +77 rod +14 rode +14 rods +7 roe +4 roebuck +1 roebucks +4 roes +2 rogelim +1 rohgah +25 roll +10 rolled +1 roller +1 rolleth +1 rolling +1 rolls +2 romamtiezer +5 roman +6 romans +9 rome +19 roof +2 roofs +29 room +7 rooms +42 root +8 rooted +20 roots +1 rope +5 ropes +124 rose +1 rosh +4 rot +5 rotten +5 rottenness +7 rough +6 roughly +272 round +1 rouse +13 row +2 rowed +1 rowers +1 rowing +12 rows +26 royal +1 rubbing +2 rubbish +6 rubies +1 rudder +3 ruddy +1 rude +2 rudiments +1 rue +2 rufus +1 ruhamah +10 ruin +3 ruined +3 ruinous +2 ruins +60 rule +11 ruled +72 ruler +71 rulers +1 rulest +14 ruleth +3 ruling +1 rumah +10 rumour +2 rumours +4 rump +68 run +1 runnest +11 runneth +24 running +4 rush +2 rushed +1 rushes +1 rusheth +6 rushing +3 rust +12 ruth +2 sabachthani +2 sabaoth +119 sabbath +33 sabbaths +4 sabeans +1 sabta +1 sabtah +2 sabtecha +2 sacar +6 sack +4 sackbut +39 sackcloth +1 sackclothes +13 sacks +201 sacrifice +33 sacrificed +1 sacrificedst +69 sacrifices +2 sacrificeth +2 sacrificing +1 sacrilege +9 sad +4 saddle +8 saddled +14 sadducees +1 sadly +1 sadness +2 sadoc +9 safe +1 safeguard +20 safely +14 safety +1 saffron +3784 said +17 saidst +8 sail +14 sailed +3 sailing +1 sailors +4 saint +94 saints +1213 saith +139 sake +26 sakes +1 sala +6 salah +1 salamis +3 salathiel +2 salcah +2 salchah +3 sale +4 salem +1 salim +2 sallai +3 sallu +4 salma +5 salmon +1 salmone +2 salome +37 salt +4 salted +1 saltness +1 saltpits +1 salu +6 salutation +1 salutations +39 salute +8 saluted +4 saluteth +144 salvation +111 samaria +3 samaritan +7 samaritans +298 same +1 samech +1 samgarnebo +4 samlah +1 samothracia +33 samson +3 samsons +136 samuel +9 sanballat +5 sanctification +56 sanctified +4 sanctifieth +64 sanctify +5 sanctuaries +123 sanctuary +26 sand +2 sandals +12 sang +2 sank +1 sansannah +1 saph +1 saphir +1 sapphira +7 sapphire +3 sapphires +3 sara +37 sarah +2 sarahs +16 sarai +1 sarais +1 saraph +1 saras +1 sardine +3 sardis +1 sardites +2 sardius +1 sardonyx +1 sarepta +1 sargon +2 sarid +1 saron +1 sarsechim +181 sat +55 satan +2 satest +2 satiate +1 satiated +2 satisfaction +39 satisfied +1 satisfiest +2 satisfieth +9 satisfy +2 satisfying +1 satyr +1 satyrs +372 saul +31 sauls +209 save +102 saved +2 savest +6 saveth +10 saving +34 saviour +2 saviours +44 savour +2 savourest +1 savours +6 savoury +516 saw +20 sawest +1 sawn +2 saws +974 say +38 sayest +1332 saying +30 sayings +6 scab +1 scabbard +2 scabbed +1 scaffold +9 scales +1 scaleth +9 scall +1 scalp +1 scant +4 scapegoat +3 scarce +2 scarcely +1 scarceness +1 scarest +40 scarlet +34 scatter +66 scattered +10 scattereth +1 scattering +2 scent +11 sceptre +1 sceptres +1 schin +1 schism +2 scholar +1 school +2 schoolmaster +1 science +1 scoff +1 scoffers +1 scorch +3 scorched +15 scorn +9 scorner +4 scorners +1 scornest +4 scorneth +3 scornful +3 scorning +2 scorpion +7 scorpions +1 scoured +11 scourge +3 scourged +1 scourges +1 scourgeth +1 scourging +1 scourgings +1 scrabbled +3 scrape +2 scraped +1 screech +43 scribe +67 scribes +6 scrip +32 scripture +21 scriptures +2 scroll +3 scum +2 scurvy +1 scythian +350 sea +24 seal +26 sealed +1 sealest +3 sealeth +1 sealing +5 seals +1 seam +45 search +19 searched +2 searchest +8 searcheth +5 searching +1 searchings +1 seared +20 seas +54 season +2 seasoned +12 seasons +51 seat +1 seated +11 seats +1 seatward +4 seba +1 sebat +1 secacah +155 second +1 secondarily +63 secret +20 secretly +10 secrets +5 sect +1 secundus +6 secure +2 securely +1 security +5 sedition +1 seditions +3 seduce +3 seduced +1 seducers +1 seduceth +1 seducing +538 see +253 seed +5 seeds +1 seedtime +102 seeing +235 seek +9 seekest +41 seeketh +13 seeking +16 seem +15 seemed +24 seemeth +2 seemly +261 seen +18 seer +6 seers +34 seest +50 seeth +9 seethe +3 seething +3 segub +38 seir +1 seirath +4 seize +1 sela +75 selah +1 selahammahlekoth +2 seled +1 seleucia +6 self +15 selfsame +1 selfwill +2 selfwilled +31 sell +4 seller +1 sellers +1 sellest +6 selleth +2 selvedge +7 selves +1 semachiah +2 senaah +1 senate +1 senators +224 send +6 sendest +13 sendeth +13 sending +1 seneh +2 senir +13 sennacherib +1 sense +1 senses +2 sensual +635 sent +11 sentence +2 sentences +4 sentest +1 seorim +27 separate +29 separated +5 separateth +1 separating +23 separation +1 sephar +1 sepharad +5 sepharvaim +1 sepharvites +50 sepulchre +15 sepulchres +2 serah +18 seraiah +2 seraphims +2 sered +1 sergius +2 serjeants +36 serpent +13 serpents +5 serug +445 servant +460 servants +194 serve +70 served +1 servedst +2 servest +6 serveth +124 service +7 servile +6 serving +1 servitor +2 servitude +637 set +7 seth +1 sethur +1 setter +7 settest +21 setteth +3 setting +1 settings +7 settle +7 settled +1 settlest +433 seven +6 sevenfold +2 sevens +6 seventeen +6 seventeenth +112 seventh +54 seventy +4 sever +11 several +1 severally +1 severed +2 severity +1 sew +2 sewed +1 sewest +1 seweth +1 shaalabbin +2 shaalbim +2 shaalbonite +2 shaaph +2 shaaraim +1 shaashgaz +3 shabbethai +1 shachia +1 shade +68 shadow +3 shadowing +3 shadows +13 shadrach +2 shady +3 shaft +1 shage +1 shahar +1 shaharaim +1 shahazimah +36 shake +1 shaked +22 shaken +6 shaketh +7 shaking +1 shalem +1 shalisha +8710 shall +1 shallecheth +24 shallum +1 shallun +2 shalmai +1 shalman +2 shalmaneser +1502 shalt +1 shama +1 shamariah +1 shambles +94 shame +4 shamed +1 shamefacedness +1 shameful +3 shamefully +1 shamelessly +2 shamer +1 shameth +2 shamgar +4 shamir +1 shamma +7 shammah +6 shammai +1 shammoth +5 shammua +1 shamsherai +2 shape +1 shapen +1 shapes +1 shapham +30 shaphan +7 shaphat +2 shapher +1 sharai +1 sharaim +1 sharar +1 share +2 sharezer +4 sharon +22 sharp +2 sharpen +4 sharpened +3 sharpeneth +2 sharply +1 sharpness +1 sharuhen +1 shashai +2 shashak +7 shaul +1 shaulites +14 shave +4 shaved +1 shaveh +5 shaven +1 shavsha +887 she +8 sheaf +1 sheal +9 shealtiel +4 shear +1 shearer +3 shearers +3 shearing +1 shearjashub +8 sheath +8 sheaves +31 sheba +1 shebah +1 shebam +7 shebaniah +1 shebarim +1 sheber +6 shebna +3 shebuel +1 shecaniah +8 shechaniah +58 shechem +1 shechemites +2 shechems +45 shed +2 sheddeth +1 shedding +5 shedeur +169 sheep +2 sheepcote +1 sheepcotes +1 sheepfold +3 sheepfolds +1 sheepmaster +1 sheeps +3 sheepshearers +1 sheepskins +2 sheet +2 sheets +1 shehariah +37 shekel +43 shekels +11 shelah +1 shelanites +10 shelemiah +2 sheleph +1 shelesh +1 shelomi +9 shelomith +2 shelomoth +2 shelter +5 shelumiel +15 shem +6 shema +1 shemaah +39 shemaiah +3 shemariah +1 shemeber +2 shemer +1 shemida +3 sheminith +4 shemiramoth +3 shemuel +1 shen +1 shenazar +2 shenir +2 shepham +1 shephathiah +12 shephatiah +40 shepherd +38 shepherds +1 shephi +1 shepho +1 shephuphan +1 sherah +1 sherd +8 sherebiah +1 sherezer +2 sheriffs +2 sheshach +3 sheshai +5 sheshan +3 sheshbazzar +2 sheth +3 shetharboznai +2 sheva +213 shew +13 shewbread +125 shewed +2 shewedst +4 shewest +18 sheweth +14 shewing +1 shibboleth +1 shibmah +1 shicron +39 shield +19 shields +1 shiggaion +1 shigionoth +1 shihor +1 shihorlibnath +2 shilhi +1 shilhim +2 shillem +1 shillemites +1 shiloah +32 shiloh +1 shiloni +5 shilonite +1 shilonites +1 shilshah +5 shimea +2 shimeah +1 shimeam +2 shimeath +1 shimeathites +40 shimei +1 shimeon +1 shimhi +1 shimi +1 shimma +1 shimon +1 shimrath +3 shimri +1 shimrith +5 shimron +1 shimronites +1 shimronmeron +2 shimshai +1 shinab +7 shinar +30 shine +8 shined +8 shineth +11 shining +1 shion +68 ship +1 shiphi +1 shiphmite +1 shiphrah +1 shiphtan +2 shipmaster +3 shipmen +1 shipping +38 ships +2 shipwreck +1 shisha +7 shishak +1 shittah +23 shittim +1 shivers +1 shiza +1 shoa +4 shobab +1 shobach +2 shobai +9 shobal +1 shobek +1 shobi +1 shocho +2 shochoh +1 shock +1 shoco +4 shod +8 shoe +18 shoes +1 shoham +2 shomer +7 shone +11 shook +18 shoot +1 shooters +3 shooteth +1 shooting +1 shophach +1 shophan +17 shore +2 shorn +12 short +8 shortened +2 shorter +15 shortly +2 shoshannim +1 shoshannimeduth +14 shot +716 should +32 shoulder +4 shoulderpieces +14 shoulders +64 shouldest +34 shout +13 shouted +1 shouteth +14 shouting +1 shovel +9 shovels +2 shower +8 showers +1 shrank +1 shred +1 shrines +1 shroud +1 shrubs +2 shua +5 shuah +2 shual +3 shubael +1 shuhamites +5 shuhite +2 shulamite +1 shumathites +1 shun +8 shunammite +3 shunem +2 shuni +1 shunites +1 shunned +1 shupham +1 shuphamites +2 shuppim +5 shur +18 shushan +1 shushaneduth +93 shut +1 shuthalhites +4 shuthelah +7 shutteth +1 shutting +1 shuttle +1 sia +1 siaha +1 sibbecai +2 sibbechai +1 sibboleth +3 sibmah +1 sibraim +1 sichem +82 sick +12 sickle +1 sickly +19 sickness +4 sicknesses +3 siddim +373 side +39 sides +12 sidon +5 sidonians +15 siege +2 sieve +2 sift +1 sifted +7 sigh +3 sighed +1 sighest +1 sigheth +7 sighing +1 sighs +309 sight +1 sights +71 sign +4 signed +11 signet +1 signets +1 signification +2 signified +1 signifieth +4 signify +4 signifying +52 signs +34 sihon +3 sihor +13 silas +32 silence +8 silent +4 silk +1 silla +3 silly +1 siloah +3 siloam +4 silvanus +267 silver +1 silversmith +44 simeon +3 simeonites +10 similitude +1 similitudes +68 simon +7 simons +17 simple +5 simplicity +1 simri +411 sin +2 sina +35 sinai +63 since +2 sincere +3 sincerely +7 sincerity +2 sinew +5 sinews +8 sinful +112 sing +1 singed +2 singer +32 singers +1 singeth +26 singing +2 single +3 singleness +1 singular +1 sinim +2 sinite +6 sink +115 sinned +18 sinner +47 sinners +1 sinnest +20 sinneth +2 sinning +163 sins +8 sion +1 sippai +12 sir +1 sirah +2 sirion +7 sirs +2 sisamai +17 sisera +93 sister +24 sisters +104 sit +1 sith +1 sitnah +7 sittest +37 sitteth +43 sitting +3 situate +2 situation +184 six +2 sixscore +18 sixteen +3 sixteenth +44 sixth +11 sixty +1 sixtyfold +5 size +5 skies +5 skilful +1 skilfully +1 skilfulness +7 skill +54 skin +17 skins +1 skip +1 skipped +1 skippedst +1 skipping +10 skirt +6 skirts +5 skull +5 sky +8 slack +1 slacked +1 slackness +160 slain +2 slander +1 slandered +1 slanderers +1 slanderest +1 slandereth +1 slanderously +1 slanders +1 slang +53 slaughter +1 slaves +112 slay +19 slayer +4 slayeth +7 slaying +74 sleep +1 sleeper +4 sleepest +6 sleepeth +6 sleeping +49 slept +182 slew +1 slewest +1 slidden +2 slide +1 slideth +1 slightly +2 slime +1 slimepits +7 sling +1 slingers +1 slings +1 slingstones +5 slip +2 slipped +3 slippery +2 slippeth +1 slips +14 slothful +2 slothfulness +12 slow +1 slowly +6 sluggard +1 sluices +10 slumber +1 slumbered +1 slumbereth +1 slumberings +86 small +2 smallest +1 smart +17 smell +2 smelled +1 smelleth +3 smelling +114 smite +1 smiters +2 smitest +13 smiteth +3 smith +3 smiths +3 smiting +61 smitten +44 smoke +5 smoking +6 smooth +1 smoother +220 smote +1 smotest +2 smyrna +2 snail +44 snare +8 snared +13 snares +1 snatch +1 sneezed +1 snorting +20 snow +1 snowy +3 snuffdishes +1 snuffed +6 snuffers +1 snuffeth +1414 so +1 soaked +2 soap +11 sober +2 soberly +1 soberness +2 sobriety +1 socho +1 sochoh +1 socket +46 sockets +2 socoh +1 sod +6 sodden +1 sodi +45 sodom +1 sodoma +1 sodomite +4 sodomites +14 soever +8 soft +7 softly +1 soil +29 sojourn +11 sojourned +5 sojourner +2 sojourners +13 sojourneth +3 sojourning +1 solace +77 sold +5 soldier +27 soldiers +11 sole +24 solemn +3 solemnities +2 solemnity +2 solemnly +6 soles +1 solitarily +7 solitary +275 solomon +23 solomons +162 some +2 somebody +8 something +2 sometime +3 sometimes +17 somewhat +2133 son +65 song +20 songs +1010 sons +62 soon +2 sooner +1 soothsayer +6 soothsayers +1 soothsaying +3 sop +1 sopater +2 sophereth +2 sorcerer +6 sorcerers +1 sorceress +4 sorceries +1 sorcery +92 sore +1 sorek +2 sorely +1 sorer +4 sores +65 sorrow +2 sorrowed +1 sorroweth +17 sorrowful +2 sorrowing +21 sorrows +14 sorry +12 sort +6 sorts +1 sosipater +1 sosthenes +2 sotai +118 sought +423 soul +59 souls +85 sound +16 sounded +1 soundeth +7 sounding +2 soundness +1 sounds +5 sour +131 south +19 southward +36 sow +10 sowed +8 sower +3 sowest +15 soweth +1 sowing +31 sown +25 space +2 spain +567 spake +8 spakest +4 span +1 spanned +40 spare +11 spared +4 spareth +1 sparing +2 sparingly +2 spark +1 sparkled +2 sparks +2 sparrow +4 sparrows +1 spat +487 speak +2 speaker +16 speakest +68 speaketh +55 speaking +1 speakings +36 spear +2 spearmen +13 spears +1 special +5 specially +10 speckled +1 spectacle +1 sped +43 speech +6 speeches +3 speechless +10 speed +19 speedily +1 speedy +7 spend +1 spendest +3 spendeth +18 spent +1 spewing +5 spice +1 spiced +1 spicery +27 spices +1 spider +2 spiders +6 spied +12 spies +5 spikenard +3 spilled +3 spin +1 spindle +465 spirit +44 spirits +26 spiritual +2 spiritually +11 spit +1 spitefully +1 spitted +1 spitting +3 spittle +111 spoil +48 spoiled +8 spoiler +7 spoilers +1 spoilest +4 spoileth +4 spoiling +5 spoils +261 spoken +1 spokesman +12 spoon +10 spoons +6 sport +2 sporting +19 spot +4 spots +7 spotted +5 spouse +2 spouses +7 sprang +96 spread +1 spreadest +12 spreadeth +2 spreading +2 sprigs +23 spring +4 springeth +4 springing +15 springs +27 sprinkle +24 sprinkled +2 sprinkleth +4 sprinkling +1 sprout +8 sprung +4 spue +1 spued +2 spun +3 spunge +12 spy +2 square +1 squares +1 stability +2 stable +12 stablish +4 stablished +2 stablisheth +1 stachys +1 stacks +1 stacte +36 staff +3 stagger +1 staggered +1 staggereth +3 stain +8 stairs +2 stakes +3 stalk +1 stalks +2 stall +1 stalled +4 stalls +1 stammerers +2 stammering +2 stamp +7 stamped +1 stamping +1 stanched +257 stand +15 standard +1 standardbearer +3 standards +6 standest +28 standeth +53 standing +4 stank +14 star +1 stare +1 stargazers +48 stars +10 state +1 stately +1 station +14 stature +33 statute +125 statutes +48 staves +30 stay +29 stayed +1 stayeth +4 stays +93 stead +1 steads +1 steady +21 steal +2 stealeth +2 stealing +1 stealth +9 stedfast +9 stedfastly +2 stedfastness +4 steel +5 steep +1 stem +2 step +3 stephanas +7 stephen +1 stepped +1 steppeth +34 steps +1 stern +12 steward +4 stewards +3 stewardship +14 stick +1 sticketh +6 sticks +3 stiff +1 stiffened +1 stiffhearted +9 stiffnecked +87 still +2 stilled +1 stillest +1 stilleth +1 sting +1 stingeth +1 stings +7 stink +1 stinketh +1 stinking +20 stir +21 stirred +7 stirreth +1 stirs +8 stock +9 stocks +1 stoicks +6 stole +15 stolen +1 stomachs +173 stone +19 stoned +157 stones +1 stonesquarers +1 stonest +1 stoning +7 stony +319 stood +2 stoodest +1 stool +4 stoop +6 stooped +1 stoopeth +2 stooping +6 stop +15 stopped +4 stoppeth +20 store +2 storehouse +5 storehouses +1 stories +4 stork +12 storm +2 stormy +2 story +4 stout +2 stouthearted +1 stoutness +26 straight +42 straightway +1 strain +10 strait +1 straiten +7 straitened +1 straiteneth +1 straitest +11 straitly +4 straitness +2 straits +1 strake +1 strakes +68 strange +1 strangely +108 stranger +75 strangers +3 strangled +1 strangling +16 straw +4 strawed +11 stream +11 streams +31 street +60 streets +195 strength +31 strengthen +35 strengthened +7 strengtheneth +2 strengthening +49 stretch +68 stretched +1 stretchedst +1 stretchest +7 stretcheth +2 stretching +14 stricken +36 strife +4 strifes +10 strike +2 striker +3 striketh +2 string +3 stringed +4 strings +7 strip +2 stripe +14 stripes +1 stripling +11 stripped +1 stript +20 strive +1 strived +1 striven +2 striveth +3 striving +3 strivings +11 stroke +1 strokes +231 strong +20 stronger +1 strongest +14 strove +7 struck +1 struggled +18 stubble +4 stubborn +1 stubbornness +3 stuck +2 studieth +1 studs +2 study +16 stuff +17 stumble +6 stumbled +4 stumbleth +3 stumbling +12 stumblingblock +2 stumblingblocks +2 stumblingstone +3 stump +1 suah +8 subdue +19 subdued +1 subduedst +3 subdueth +16 subject +1 subjected +14 subjection +11 submit +3 submitted +1 submitting +1 suborned +1 subscribe +2 subscribed +43 substance +3 subtil +3 subtilly +6 subtilty +113 suburbs +2 subvert +1 subverted +2 subverting +3 succeeded +2 succeedest +1 success +18 succoth +1 succothbenoth +3 succour +2 succoured +1 succourer +201 such +19 suck +1 sucked +5 sucking +3 suckling +4 sucklings +3 sudden +41 suddenly +1 sue +89 suffer +49 suffered +1 sufferest +5 suffereth +5 suffering +8 sufferings +7 suffice +3 sufficed +1 sufficeth +2 sufficiency +11 sufficient +2 sufficiently +3 suit +1 suits +1 sukkiims +20 sum +26 summer +1 sumptuously +144 sun +7 sunder +1 sundered +1 sundry +5 sung +6 sunk +10 sunrising +3 sup +1 superfluity +3 superfluous +5 superscription +1 superstition +1 superstitious +14 supper +1 supplant +1 supplanted +1 suppliants +39 supplication +20 supplications +2 supplied +2 supplieth +3 supply +2 support +10 suppose +8 supposed +7 supposing +1 supreme +1 sur +40 sure +256 surely +1 sureties +1 suretiship +14 surety +1 surfeiting +1 surmisings +7 surname +8 surnamed +3 surprised +1 susanna +1 susi +4 sustain +3 sustained +2 sustenance +2 swaddled +2 swaddling +1 swaddlingband +21 swallow +25 swallowed +2 swalloweth +2 swan +75 sware +5 swarest +2 swarm +4 swarms +60 swear +1 swearers +8 sweareth +4 swearing +3 sweat +3 sweep +1 sweeping +88 sweet +1 sweeter +2 sweetly +5 sweetness +1 sweetsmelling +3 swell +1 swelled +7 swelling +1 swellings +4 swept +1 swerved +18 swift +6 swifter +4 swiftly +5 swim +1 swimmest +1 swimmeth +16 swine +2 swines +1 swollen +1 swoon +1 swooned +381 sword +22 swords +47 sworn +1 sycamine +1 sychar +2 sychem +5 sycomore +1 sycomores +2 syene +42 synagogue +25 synagogues +1 syntyche +1 syracuse +70 syria +1 syriack +1 syriamaachah +12 syrian +58 syrians +1 syrophenician +5 taanach +1 taanathshiloh +2 tabbaoth +1 tabbath +1 tabeal +1 tabeel +2 taberah +1 tabering +309 tabernacle +29 tabernacles +2 tabitha +66 table +46 tables +2 tablets +8 tabor +4 tabret +5 tabrets +1 tabrimon +10 taches +1 tackling +1 tacklings +2 tadmor +2 tahan +1 tahanites +1 tahapanes +6 tahath +5 tahpanhes +3 tahpenes +1 tahtimhodshi +10 tail +6 tails +805 take +307 taken +1 taker +7 takest +68 taketh +20 taking +5 tale +5 talebearer +13 talent +49 talents +2 tales +1 talitha +21 talk +41 talked +1 talkers +3 talkest +2 talketh +8 talking +5 tall +6 talmai +4 talmon +1 tamah +24 tamar +2 tame +2 tamed +1 tammuz +1 tanach +2 tanhumeth +3 tanner +2 tapestry +1 taphath +4 tappuah +2 tarah +1 taralah +4 tare +1 tarea +8 tares +3 target +2 targets +30 tarried +1 tarriest +2 tarrieth +47 tarry +2 tarrying +21 tarshish +3 tarsus +1 tartak +2 tartan +2 task +6 taskmasters +1 tasks +21 taste +7 tasted +1 tasteth +3 tatnai +1 tattlers +1 tau +77 taught +2 taunt +1 taunting +1 taverns +1 taxation +4 taxed +1 taxes +2 taxing +104 teach +6 teacher +13 teachers +8 teachest +13 teacheth +25 teaching +9 tear +6 teareth +34 tears +3 teats +1 tebah +1 tebaliah +1 tebeth +1 tedious +46 teeth +1 tehaphnehes +1 tehinnah +2 tekel +6 tekoa +3 tekoah +2 tekoite +2 tekoites +1 telabib +1 telah +1 telaim +1 telassar +2 telem +200 tell +1 tellest +6 telleth +3 telling +5 tema +11 teman +1 temani +5 temanite +1 temanites +1 temeni +1 temper +4 temperance +3 temperate +2 tempered +17 tempest +4 tempestuous +189 temple +8 temples +14 tempt +15 temptation +8 temptations +24 tempted +2 tempter +1 tempteth +7 tempting +214 ten +30 tender +2 tenderhearted +1 tenderness +6 tenons +2 tenor +4 tens +90 tent +69 tenth +1 tentmakers +62 tents +11 terah +5 teraphim +2 teresh +2 termed +1 terraces +42 terrible +3 terribleness +3 terribly +4 terrified +1 terrifiest +4 terrify +26 terror +14 terrors +1 tertius +2 tertullus +12 testament +2 testator +22 testified +2 testifiedst +5 testifieth +29 testify +3 testifying +35 testimonies +70 testimony +1 teth +7 tetrarch +2 thaddaeus +1 thahash +1 thamah +1 thamar +416 than +27 thank +3 thanked +2 thankful +1 thankfulness +69 thanks +28 thanksgiving +2 thanksgivings +1 thankworthy +4 tharshish +10717 that +58215 the +2 theatre +3 thebez +3466 thee +1 theeward +2 theft +3 thefts +3418 their +14 theirs +1 thelasar +5522 them +369 themselves +2021 then +134 thence +4 thenceforth +2 theophilus +1566 there +1 thereabout +3 thereat +20 thereby +1181 therefore +3 therefrom +181 therein +1 thereinto +739 thereof +57 thereon +1 thereout +15 thereto +9 thereunto +5 thereupon +28 therewith +1091 these +3 thessalonians +6 thessalonica +1 theudas +6709 they +37 thick +2 thicker +2 thicket +4 thickets +3 thickness +27 thief +15 thieves +19 thigh +3 thighs +1 thimnathah +8 thin +829 thine +433 thing +930 things +60 think +9 thinkest +5 thinketh +2 thinking +167 third +1 thirdly +29 thirst +2 thirsted +3 thirsteth +14 thirsty +15 thirteen +8 thirteenth +9 thirtieth +138 thirty +2 thirtyfold +2438 this +5 thistle +3 thistles +84 thither +3 thitherward +12 thomas +1 thongs +4 thorn +46 thorns +2 thoroughly +397 those +4962 thou +193 though +76 thought +52 thoughts +456 thousand +54 thousands +5 thread +1 threaten +2 threatened +1 threatening +2 threatenings +437 three +1 threefold +85 threescore +4 thresh +2 threshed +1 thresheth +8 threshing +16 threshingfloor +2 threshingfloors +1 threshingplace +11 threshold +3 thresholds +6 threw +1 threwest +15 thrice +6 throat +160 throne +9 thrones +2 throng +2 thronged +1 thronging +434 through +12 throughly +149 throughout +9 throw +1 throwing +17 thrown +47 thrust +1 thrusteth +6 thumb +3 thumbs +4 thummim +17 thunder +1 thunderbolts +4 thundered +2 thundereth +6 thunderings +7 thunders +717 thus +4193 thy +4 thyatira +1 thyine +192 thyself +3 tiberias +1 tiberius +1 tibhath +3 tibni +2 tidal +42 tidings +2 tie +5 tied +3 tiglathpileser +2 tikvah +1 tile +3 tilgathpilneser +154 till +2 tillage +2 tilled +1 tiller +1 tillest +2 tilleth +1 timaeus +26 timber +5 timbrel +5 timbrels +558 time +136 times +4 timna +5 timnah +8 timnath +1 timnathheres +2 timnathserah +1 timnite +1 timon +17 timotheus +7 timothy +3 tin +3 tingle +2 tinkling +9 tip +2 tiphsah +2 tiras +1 tirathites +1 tire +1 tired +2 tires +2 tirhakah +1 tirhanah +1 tiria +4 tirshatha +15 tirzah +6 tishbite +12 tithe +23 tithes +1 tithing +3 title +2 titles +2 tittle +11 titus +1 tizite +12291 to +1 toah +2 tob +1 tobadonijah +14 tobiah +3 tobijah +1 tochen +6 toe +5 toes +4 togarmah +451 together +1 tohu +3 toi +4 toil +1 toiled +1 toiling +12 token +4 tokens +5 tola +1 tolad +1 tolaites +260 told +6 tolerable +2 toll +3 tomb +6 tombs +5 tongs +118 tongue +33 tongues +43 too +717 took +2 tookest +2 tool +11 tooth +1 tooths +77 top +3 topaz +1 tophel +8 tophet +1 topheth +9 tops +1 torch +3 torches +11 torment +8 tormented +1 tormentors +2 torments +14 torn +1 tortoise +1 tortured +2 toss +6 tossed +1 tossings +1 tottering +2 tou +42 touch +48 touched +36 toucheth +25 touching +3 tow +303 toward +2 towel +45 tower +14 towers +13 town +1 townclerk +43 towns +1 trachonitis +4 trade +5 traded +1 trading +11 tradition +2 traditions +5 traffick +3 train +1 trained +1 traitor +1 traitors +3 trample +3 trance +1 tranquillity +1 transferred +2 transfigured +3 transformed +1 transforming +14 transgress +32 transgressed +1 transgressest +4 transgresseth +2 transgressing +43 transgression +45 transgressions +5 transgressor +19 transgressors +1 translate +3 translated +1 translation +1 transparent +4 trap +1 traps +27 travail +5 travailed +1 travailest +7 travaileth +3 travailing +1 travel +1 travelled +2 traveller +1 travellers +2 travelleth +2 travelling +1 traversing +8 treacherous +20 treacherously +1 treachery +30 tread +1 treader +1 treaders +9 treadeth +3 treading +5 treason +33 treasure +1 treasured +2 treasurer +3 treasurers +57 treasures +1 treasurest +10 treasuries +9 treasury +1 treatise +173 tree +138 trees +29 tremble +20 trembled +4 trembleth +24 trembling +8 trench +67 trespass +14 trespassed +12 trespasses +2 trespassing +5 trial +201 tribe +100 tribes +22 tribulation +4 tribulations +4 tributaries +1 tributary +31 tribute +1 trickleth +15 tried +3 triest +5 trieth +2 trimmed +1 trimmest +10 triumph +2 triumphed +2 triumphing +6 troas +26 trodden +8 trode +11 troop +7 troops +3 trophimus +103 trouble +63 troubled +1 troubledst +1 troubler +12 troubles +1 troublest +10 troubleth +2 troubling +1 troublous +1 trough +2 troughs +1 trow +1 trucebreakers +69 true +38 truly +2 trump +56 trumpet +4 trumpeters +46 trumpets +129 trust +26 trusted +2 trustedst +6 trustest +17 trusteth +1 trusting +1 trusty +225 truth +2 truths +13 try +1 trying +1 tryphena +1 tryphosa +6 tubal +2 tubalcain +1 tumbled +14 tumult +3 tumults +3 tumultuous +265 turn +257 turned +3 turnest +30 turneth +16 turning +2 turtle +3 turtledove +7 turtledoves +3 turtles +1 tutors +16 twain +17 twelfth +161 twelve +33 twentieth +245 twenty +1 twentys +16 twice +1 twigs +6 twilight +13 twined +1 twinkling +4 twins +742 two +3 twoedged +1 twofold +5 tychicus +1 tyrannus +37 tyre +20 tyrus +1 tzaddi +1 ucal +1 uel +1 ulai +4 ulam +1 ulla +1 ummah +1 unadvisedly +11 unawares +16 unbelief +4 unbelievers +5 unbelieving +2 unblameable +1 unblameably +2 uncertain +1 uncertainly +1 unchangeable +37 uncircumcised +16 uncircumcision +10 uncle +164 unclean +37 uncleanness +1 uncleannesses +6 uncles +1 unclothed +1 uncomely +2 uncondemned +1 uncorruptible +1 uncorruptness +24 uncover +17 uncovered +3 uncovereth +1 unction +6 undefiled +357 under +1 undergirding +2 undersetters +81 understand +3 understandest +9 understandeth +143 understanding +33 understood +1 undertake +1 undertook +2 undo +4 undone +2 undressed +2 unequal +1 unequally +1 unfaithful +1 unfaithfully +4 unfeigned +6 unfruitful +1 ungirded +4 ungodliness +26 ungodly +4 unholy +6 unicorn +2 unicorns +1 unite +1 united +3 unity +16 unjust +2 unjustly +3 unknown +1 unlade +2 unlawful +5 unlearned +58 unleavened +8 unless +3 unloose +3 unmarried +1 unmerciful +1 unmindful +2 unmoveable +3 unni +1 unoccupied +1 unperfect +1 unprepared +7 unprofitable +1 unprofitableness +9 unpunished +2 unquenchable +2 unreasonable +1 unrebukeable +1 unreproveable +9 unrighteous +20 unrighteousness +1 unripe +4 unruly +1 unsatiable +2 unsavoury +5 unsearchable +2 unseemly +1 unshod +1 unskilful +3 unspeakable +1 unspotted +3 unstable +1 unstopped +1 untaken +3 untempered +2 unthankful +345 until +2 untimely +8459 unto +1 untoward +3 unwalled +3 unwashen +3 unwise +2 unwittingly +2 unworthily +2 unworthy +2219 up +2 upbraid +1 upbraided +1 upbraideth +1 upharsin +2 uphaz +1 upheld +8 uphold +2 upholden +1 upholdest +4 upholdeth +1 upholding +2464 upon +24 upper +5 uppermost +55 upright +12 uprightly +18 uprightness +1 uprising +8 uproar +5 upside +54 upward +5 ur +1 urbane +1 urge +5 urged +2 urgent +8 uri +27 uriah +1 uriahs +1 urias +4 uriel +11 urijah +5 urim +1306 us +30 use +21 used +1 uses +1 usest +5 useth +2 using +1 usurer +1 usurp +22 usury +2 usward +2 uthai +10 utmost +36 utter +4 utterance +15 uttered +8 uttereth +1 uttering +91 utterly +23 uttermost +7 uz +1 uzai +2 uzal +10 uzza +4 uzzah +1 uzzensherah +10 uzzi +1 uzzia +24 uzziah +16 uzziel +1 uzzielites +3 vagabond +1 vagabonds +36 vail +1 vails +97 vain +1 vainglory +1 vainly +1 vajezatha +9 vale +26 valiant +1 valiantest +6 valiantly +122 valley +23 valleys +34 valour +7 value +3 valued +1 valuest +1 vaniah +4 vanish +2 vanished +1 vanisheth +11 vanities +74 vanity +5 vapour +3 vapours +1 variableness +2 variance +1 vashni +10 vashti +1 vau +1 vaunt +1 vaunteth +2 vehement +5 vehemently +7 veil +1 vein +38 vengeance +5 venison +1 venom +1 vent +2 venture +3 verified +137 verily +1 verity +2 vermilion +233 very +41 vessel +137 vessels +2 vestments +1 vestry +8 vesture +1 vestures +15 vex +12 vexation +21 vexed +8 vial +5 vials +11 victory +5 victual +16 victuals +4 view +4 viewed +2 vigilant +19 vile +1 viler +1 vilest +10 village +67 villages +2 villany +55 vine +4 vinedressers +11 vinegar +9 vines +62 vineyard +42 vineyards +9 vintage +2 viol +1 violated +51 violence +10 violent +8 violently +2 viols +2 viper +5 vipers +28 virgin +9 virginity +23 virgins +6 virtue +3 virtuous +1 virtuously +3 visage +1 visible +69 vision +21 visions +37 visit +15 visitation +21 visited +3 visitest +1 visiteth +1 vocation +469 voice +16 voices +22 void +2 volume +1 voluntarily +4 voluntary +8 vomit +1 vomited +1 vomiteth +1 vophsi +39 vow +15 vowed +1 vowedst +2 vowest +30 vows +1 voyage +2 vulture +2 vultures +2 wafer +4 wafers +2 wag +16 wages +2 wagging +1 wagon +9 wagons +3 wail +1 wailed +16 wailing +94 wait +32 waited +10 waiteth +7 waiting +3 wake +1 waked +2 wakened +2 wakeneth +2 waketh +1 waking +206 walk +113 walked +1 walkedst +7 walkest +35 walketh +28 walking +157 wall +3 walled +3 wallow +2 wallowed +1 wallowing +55 walls +13 wander +7 wandered +2 wanderers +1 wanderest +6 wandereth +4 wandering +1 wanderings +26 want +3 wanted +6 wanteth +6 wanting +3 wanton +2 wantonness +1 wants +209 war +20 ward +1 wardrobe +3 wards +5 ware +5 wares +5 warfare +6 warm +5 warmed +2 warmeth +1 warming +10 warn +10 warned +8 warning +9 warp +9 warred +1 warreth +3 warring +1 warrior +2 warriors +14 wars +2899 was +82 wash +42 washed +1 washest +8 washing +2 washpot +49 wast +60 waste +16 wasted +1 wasteness +2 waster +6 wastes +3 wasteth +1 wasting +56 watch +12 watched +2 watcher +2 watchers +4 watches +3 watcheth +1 watchful +6 watching +2 watchings +18 watchman +1 watchmans +11 watchmen +2 watchtower +357 water +2 watercourse +9 watered +2 waterest +5 watereth +1 waterflood +3 watering +1 waterpot +2 waterpots +247 waters +1 waterspouts +2 watersprings +30 wave +6 waved +1 wavereth +1 wavering +24 waves +21 wax +37 waxed +12 waxen +1 waxeth +1 waxing +616 way +5 wayfaring +1 waymarks +191 ways +2 wayside +1693 we +41 weak +1 weaken +3 weakened +2 weakeneth +3 weaker +7 weakness +21 wealth +2 wealthy +10 weaned +7 weapon +20 weapons +12 wear +1 weareth +13 wearied +2 wearieth +3 weariness +3 wearing +1 wearisome +36 weary +1 weasel +2 weather +2 weave +2 weaver +4 weavers +1 weavest +4 web +1 webs +7 wedding +3 wedge +1 wedlock +1 weeds +10 week +15 weeks +46 weep +3 weepest +4 weepeth +39 weeping +4 weigh +11 weighed +2 weigheth +38 weight +1 weightier +5 weights +5 welfare +224 well +6 wellbeloved +1 wellfavoured +2 wellpleasing +16 wells +1 wen +1 wench +1332 went +14 wentest +69 wept +1646 were +4 wert +60 west +1 western +21 westward +5 wet +2 whale +2 whales +880 what +130 whatsoever +47 wheat +1 wheaten +12 wheel +27 wheels +2 whelp +7 whelps +2616 when +62 whence +3 whensoever +329 where +1 whereabout +31 whereas +36 whereby +333 wherefore +140 wherein +1 whereinsoever +3 whereinto +49 whereof +21 whereon +12 wheresoever +3 whereto +27 whereunto +14 whereupon +98 wherewith +2 wherewithal +4 whet +120 whether +3567 which +201 while +10 whiles +10 whilst +2 whip +4 whips +1 whirleth +26 whirlwind +2 whirlwinds +2 whisper +1 whispered +1 whisperer +1 whisperers +1 whisperings +5 whit +52 white +2 whited +2 whiter +116 whither +28 whithersoever +830 who +230 whole +2 wholesome +26 wholly +674 whom +19 whomsoever +13 whore +22 whoredom +29 whoredoms +1 whoremonger +4 whoremongers +3 whores +18 whoring +3 whorish +242 whose +49 whoso +173 whosoever +259 why +311 wicked +22 wickedly +118 wickedness +12 wide +1 wideness +44 widow +3 widowhood +29 widows +361 wife +9 wifes +39 wild +284 wilderness +2 wiles +1 wilfully +1 wilily +3571 will +1 willeth +28 willing +24 willingly +1 willow +5 willows +229 wilt +1 wimples +2 win +115 wind +16 window +19 windows +23 winds +1 windy +207 wine +2 winebibber +1 winebibbers +2 winefat +14 winepress +3 winepresses +2 wines +6 wing +2 winged +67 wings +2 wink +1 winked +2 winketh +1 winnowed +1 winnoweth +13 winter +1 wintered +1 winterhouse +7 wipe +4 wiped +1 wipeth +205 wisdom +216 wise +13 wisely +7 wiser +6 wish +2 wished +1 wishing +11 wist +4 wit +2 witch +2 witchcraft +3 witchcrafts +5438 with +20 withal +11 withdraw +1 withdrawest +1 withdraweth +6 withdrawn +6 withdrew +11 wither +25 withered +7 withereth +6 withheld +1 withheldest +9 withhold +8 withholden +3 withholdeth +163 within +399 without +3 withs +10 withstand +6 withstood +121 witness +4 witnessed +41 witnesses +2 witnesseth +1 witnessing +1 wits +1 witty +125 wives +2 wizard +9 wizards +104 woe +1 woes +5 wolf +6 wolves +335 woman +1 womankind +6 womans +62 womb +2 wombs +159 women +1 womens +3 womenservants +2 won +13 wonder +12 wondered +17 wonderful +2 wonderfully +3 wondering +54 wonders +14 wondrous +2 wondrously +9 wont +111 wood +1 woods +9 woof +12 wool +6 woollen +662 word +511 words +360 work +1 worker +25 workers +36 worketh +1 workfellow +20 working +8 workman +6 workmanship +10 workmen +1 workmens +225 works +277 world +2 worldly +3 worlds +12 worm +7 worms +9 wormwood +25 worse +102 worship +68 worshipped +1 worshipper +7 worshippers +4 worshippeth +5 worshipping +1 worst +7 worth +1 worthies +1 worthily +64 worthy +9 wot +1 wotteth +412 would +35 wouldest +22 wound +30 wounded +1 woundedst +1 woundeth +1 wounding +13 wounds +1 wove +3 woven +1 wrap +12 wrapped +183 wrath +2 wrathful +1 wraths +1 wreath +1 wreathed +7 wreathen +1 wreaths +3 wrest +1 wrestle +3 wrestled +1 wrestlings +2 wretched +1 wretchedness +1 wring +1 wringed +1 wringing +1 wrinkle +1 wrinkles +87 write +2 writer +2 writers +2 writest +1 writeth +33 writing +1 writings +256 written +23 wrong +2 wronged +1 wrongeth +6 wrongfully +57 wrote +46 wroth +95 wrought +1 wroughtest +3 wrung +4 yarn +3680 ye +286 yea +345 year +7 yearly +1 yearn +473 years +1 yell +1 yelled +2 yellow +4 yes +6 yesterday +3 yesternight +550 yet +26 yield +7 yielded +2 yieldeth +4 yielding +55 yoke +1 yoked +1 yokefellow +4 yokes +6 yonder +2405 you +269 young +28 younger +15 youngest +1592 your +12 yours +164 yourselves +66 youth +1 youthful +2 youths +3 youward +1 zaanan +1 zaanannim +1 zaavan +8 zabad +2 zabbai +1 zabbud +6 zabdi +3 zabulon +2 zaccai +3 zacchaeus +1 zacchur +7 zaccur +4 zachariah +11 zacharias +1 zacher +47 zadok +1 zaham +1 zain +1 zair +1 zalaph +2 zalmon +2 zalmonah +10 zalmunna +1 zamzummims +5 zanoah +1 zaphnathpaaneah +1 zaphon +1 zara +1 zarah +1 zareah +1 zareathites +1 zared +2 zarephath +1 zarethshahar +4 zarhites +1 zarthan +1 zatthu +3 zattu +1 zavan +1 zaza +15 zeal +8 zealous +1 zealously +7 zebadiah +10 zebah +2 zebaim +10 zebedee +2 zebedees +1 zebina +2 zeboiim +5 zeboim +1 zebudah +6 zebul +2 zebulonite +40 zebulun +1 zebulunites +36 zechariah +2 zedad +59 zedekiah +1 zedekiahs +6 zeeb +2 zelah +2 zelek +11 zelophehad +1 zelotes +1 zelzah +2 zemaraim +2 zemarite +1 zemira +1 zenan +1 zenas +10 zephaniah +1 zephath +1 zephathah +1 zephi +2 zepho +1 zephon +1 zephonites +1 zer +18 zerah +5 zerahiah +3 zered +1 zereda +1 zeredathah +1 zererath +3 zeresh +1 zereth +1 zeri +1 zeror +21 zerubbabel +25 zeruiah +2 zetham +1 zethan +1 zethar +1 zia +9 ziba +7 zibeon +1 zibia +2 zibiah +12 zichri +1 ziddim +1 zidkijah +19 zidon +7 zidonians +2 zif +3 ziha +14 ziklag +3 zillah +6 zilpah +2 zilthai +3 zimmah +2 zimran +15 zimri +9 zin +140 zion +1 zions +1 zior +10 ziph +1 ziphah +1 ziphims +1 ziphion +2 ziphites +1 ziphron +6 zippor +3 zipporah +1 zithri +1 ziz +2 ziza +1 zizah +7 zoan +9 zoar +2 zoba +10 zobah +1 zobebah +4 zohar +1 zoheleth +1 zoheth +2 zophah +1 zophai +4 zophar +1 zophim +8 zorah +1 zorathites +1 zoreah +1 zorites +2 zorobabel +4 zuar +2 zuph +4 zur +5 zurishaddai +1 zuzims diff --git a/tests/data/kjv-wordlist.txt b/tests/data/kjv-wordlist.txt new file mode 100644 index 0000000..52343df --- /dev/null +++ b/tests/data/kjv-wordlist.txt @@ -0,0 +1,12275 @@ +2 pinnacle +1 sense +4 happeneth +10 flowers +1 unfaithful +1 jot +45 sodom +442 might +1 aceldama +1 disannulled +2 closet +3 parteth +1 miphkad +1 purses +9 homer +2 worldly +14 laver +3 jaalam +8 cush +51 eateth +1 grudgingly +26 ninth +13 healing +6 sleepeth +2 jabneel +1 behaveth +6 ammiel +15 intreat +1 shocho +2 borrower +16 twain +16 instructed +2 luke +8 impossible +1 shephi +1 delicacies +5 kibrothhattaavah +1 endeth +1 nedabiah +1 cripple +8 defileth +6 mankind +11 question +1 bera +194 angel +2 sharezer +17 conversation +7 bichri +29 widows +6 damage +1 native +4 horseback +10 whiles +3 privy +4 bloweth +1 discerneth +2 louder +6 almonds +242 gods +4 budded +12 colour +2 asahiah +2 support +1 execration +122 manasseh +1 marvels +16 asahel +5 abounded +1 hodesh +47 zadok +272 hosts +5 promote +10 pharisee +6 jeush +89 suffer +3 pul +17 highest +49 lying +14 heaviness +2 fatfleshed +1 zavan +2 eliud +8 cheek +3 jebus +17 bowls +7 turtledoves +1 inscription +1 phenicia +9 discretion +2 pertained +27 certainly +1 rachab +1 endow +2 lapwing +1 gabbai +1 plucketh +1 cousin +5 partly +5 revived +1 adina +62 arm +8 uri +1 koa +29 beaten +1 entreateth +3 coveted +2 melzar +1 ir +3 bethshan +10 published +1 constrain +1 jakan +1 cankered +5 spice +2 yellow +1 heritages +1 snorting +24 confusion +8 shineth +2 points +30 drunken +1 ishmerai +2 freed +1 obstinate +3 adonibezek +1 parnach +5 fade +2 regarding +1 crookbackt +1 abitub +1 harrow +1 laughing +1 affectioned +20 tyrus +2 brow +7 tetrarch +153 gather +4 encourage +2 growth +1 ozni +116 feast +1 rioting +2 tapestry +14 breaches +15 becometh +1 adadah +2 bochim +1 abners +2 witnesseth +2 ziphites +1 gnaw +28 carcase +37 revealed +52 buy +1 brands +61 abimelech +12 effect +1 foreseeth +87 mind +1 arguing +201 such +1 commodious +4 helpeth +2 seraphims +2 lehi +46 esther +2 possessor +1 hewer +13 ascend +8 chemosh +15 proceed +2 foameth +1 ehi +104 brass +2 foretold +4 pains +42 goodness +8 gilboa +8 sower +12 tithe +14 wars +43 lieth +7 strengtheneth +2 imparted +4 husham +2 forcing +3 amber +1016 david +46 driven +2 pitiful +9 petition +1 perfectness +40 piece +4 argob +1 sardites +53 pilate +5 zanoah +3 dainty +6 snuffers +1 gadite +1 gebim +2 romamtiezer +26 bird +2 lucius +5 confound +15 redeemer +12 stumblingblock +3 ewes +8 maids +2 laodiceans +45 foundation +25 recompense +6 yesterday +1 spanned +3 manahath +1 ishui +2 reapest +22 hire +1 samothracia +4 etam +4 breathed +1 saffron +4 salma +10 secrets +1 hurting +1 convey +2 countenances +4 gerizim +1 journeyings +72 rivers +1 worst +7 couch +9 durst +15 tirzah +1 maoch +1 allonbachuth +8 hivite +1 illuminated +1906 into +24 grief +1 abelmaim +1 fishermen +89 pharisees +5 bill +1 lahad +2 fairest +4 moladah +1 ashbelites +23 less +104 followed +11 lacked +35 hail +2 uphaz +1 mash +1 zabbud +143 enter +3 title +1 saras +10 carnal +4 web +2 aminadab +5 lawyers +2 jarib +1 holily +1 inheritances +20 secretly +307 taken +1 meshullemeth +2 forms +14 towers +15 uttered +12 gardens +9 satisfy +17 simple +3 vapours +1 shiphtan +1 harhas +13 ago +6 tubal +8 longed +2 desperate +136 times +5 excel +3 bernice +5 bukki +2 choicest +42 gibeah +92 sore +39 satisfied +17 somewhat +5 carmelite +2 joha +1 diddest +1 differing +1 unspotted +2 pergamos +44 person +13 flow +3 kanah +87 remnant +8 hall +3 understandest +6 envied +4 slayeth +91 utterly +2 populous +5 needlework +2 listed +5 oaks +2 sheets +3 consolations +10 madest +10 recompensed +3 armoury +1 remit +7 expedient +140 zion +8 moveth +3 bees +34 corners +1 shaalabbin +7 powder +6 haply +2 ashnah +829 thine +3 miserable +2 fugitive +4198 it +26 evermore +1 ramathmizpeh +263 meat +2 decrease +4 israelite +9 prolonged +4 beerothite +2 weakeneth +1 tarriest +1 bethezel +1 taralah +7 sounding +538 see +1 shalem +5 swarest +1 shebarim +1 balaks +8 brim +3 kemuel +2 manahethites +12 steward +41 following +3 commanding +2 begettest +4 sharon +2 jarah +4 unholy +12 amorite +1 settings +24 sisters +26 praises +1 handmaiden +19 custom +4 stalls +1 dabareh +2 ligure +1 hoham +60 doors +28 grew +6 fishers +24 trembling +13 hushai +3 singleness +2 peleth +14 rebel +2 egg +24 hittite +132 heathen +12 obedience +9 morsel +4 doubting +9 buckler +1 almon +22 lame +1 forgivenesses +1 ishmaels +2 nephthalim +14 builders +2 parbar +1 mowings +5469 be +47 queen +16 dove +1 shillemites +35 hair +70 syria +14 maidservant +11 kedesh +13 locks +3 disorderly +2 zedad +823 name +89 burned +309 tabernacle +32 shiloh +3 simeonites +3 idleness +1 horam +1 baharumite +1 gatherer +43 establish +2 wayside +2 netophathites +1 hurleth +20 store +36 heavy +1 naarath +26 sakes +1 twinkling +1 coulter +1 prised +1 remphan +1 sodi +1 finer +25 lots +2 labourer +1 soothsayer +7 ramoth +19 sickness +2 telem +1 killest +3 boiled +16 earnestly +36 compass +3 turnest +3 pretence +4 witnessed +1 proclaimeth +1 intercessions +1 assembling +2 shorter +12 parted +6 wandereth +1 griefs +35 continue +22 happy +3 segub +1 cornfloor +14 although +2 gilonite +46 food +3 hating +3 invited +1 purifier +2 jiphthahel +3 justly +5 chastening +2 hillel +2 abishalom +1 euroclydon +37 indignation +8 devised +6 apiece +2 meadow +1 lael +1 nehushta +1 bucket +3 bridechamber +7 forced +3 womenservants +22 jewels +3 thanked +3 apprehended +45 nine +6 abib +182 doth +1 girl +1 reaia +8 snared +1 jairite +12 spies +49 fields +1 doting +3 barbarian +2 intents +1 sichem +4 appealed +1 stem +4 abarim +2 madai +5 specially +179 poor +2 inwardly +93 shut +2 leader +3 pentecost +1 converteth +11 controversy +8 precept +76 plague +8 uproar +42 straightway +4 rehoboth +1 apparently +1 ashdothites +2 calneh +2 tabitha +3 shubael +22 forsook +6 sluggard +39 wild +1 ithrites +13 hereby +7 sling +8 elioenai +6 rushing +259 why +1 preserver +1 range +14 torn +1 moistened +2 supplied +1 scarceness +2 stakes +14 drop +4 patiently +1 magbish +8 timnath +1 gopher +2 hatch +3 deceivers +53 nakedness +3 ensamples +10 greek +2 bethshemite +2 bethrehob +4 isaacs +1 wedlock +2 commonly +16 committeth +2 scurvy +1 backbitings +3 deferred +2 sabaoth +2 evi +2 blessedness +6 stumbled +14 stripes +1 mehuman +4 priscilla +1 slackness +3 deliveredst +44 spirits +18 grown +2 shaaph +43 low +1 tammuz +1 wipeth +3 neariah +15 devices +1 shock +1 fists +1 commander +2 tilleth +2 conceits +1 nimrah +1 reigning +2 sheth +1 ibneiah +2 graved +2 minnith +3 passengers +1 mahali +1 stretchest +2 bered +32 scripture +14 falling +78 fulfilled +70 feared +86 oxen +6 belteshazzar +4 achzib +1 abelshittim +1 jerushah +96 morrow +2 horhagidgad +2 rememberest +1 crownedst +1 assaulted +1 puteoli +1 deceivings +1 pluckt +4 azgad +1 gittahhepher +5 grape +2 shaalbonite +2 ahi +1 erech +9 israels +17 bondmen +14 mirth +1 silla +1 providing +52 iniquities +1 pourtray +21 amazed +3 hosea +4 fiftieth +1 anchor +1 transgressest +8 anak +3 proclaiming +1 sailors +15 followeth +2 lycaonia +17 nethaniah +1 tarea +13 wonder +1 newborn +1 pirathon +44 measured +2 akrabbim +3 shamefully +1 weeds +1 nahalal +48 stars +4 pilots +1 childbearing +1 similitudes +1 salmone +5 criest +2 piss +5 blasted +21 ancient +3 train +1 terrifiest +2 loruhamah +3 prating +1 vophsi +1 gleanings +1 carelessly +1 nazarene +1 disallow +1 haruphite +48 guard +1 apphia +3 sighed +1 governments +41 holiness +33 nought +1 pollution +23 pain +17 stumble +1 syriamaachah +1 apharsachites +2 jada +2 perceivest +72 commit +2 lunatick +1 baptisms +1 mnason +28 elam +1 hunted +2 burdened +4 aiah +1 gaddest +18 whoring +1 resolved +5 anothers +3 greeting +1 meadows +64 howbeit +3 sheshbazzar +1 levitical +6 unicorn +1 sherah +36 toucheth +1 aniam +17 fetched +1 jehaleleel +4 rehearsed +17 necks +2 keros +2 havothjair +4 hammedatha +2 guestchamber +1 methegammah +1 minstrels +2 finest +1 elbethel +8 helper +7 akkub +5 rotten +1 wroughtest +8 vomit +10 pigeons +2 taxing +66 gad +1 skip +4 chimham +1 tabering +3 whores +3 executing +4 etham +3 hamutal +1 lancets +16 harm +4 worshippeth +18 stubble +1 heifers +1 express +2 tubalcain +14 tumult +67 led +1 arguments +75 strangers +18 request +1 nineve +2 prayest +1 shuhamites +1 malchus +2 drag +10 earthen +4 defraud +8 kneeled +2 incensed +1 graveth +4 destroyest +1 ishiah +1 eleph +7 ophrah +1 arodites +3 dissension +3 loving +40 forgiven +21 cedars +26 want +10 violent +15 visitation +66 reuben +1 thankfulness +1 hallohesh +1 leummim +3 moabite +213 joseph +11 stripped +6 fairs +1 bosor +3 habor +1 nourisher +47 joash +49 suffered +1 eluzai +425 gave +3 strivings +1 ancestors +69 dream +8 bent +1 cheth +49 camels +57 fool +1 maranatha +1 womens +33 lamps +1 hires +555 kings +12 bela +5 beforehand +240 full +1 chelal +1 allegory +2 pekod +16 avenge +1 tebeth +1 ithmah +4 ranks +257 stand +4 bell +5 amasai +2 waterpots +1 jezoar +3 buyeth +9 sad +4 demand +98 leave +69 thanks +5 purse +43 ends +1 speakings +2 shochoh +2 forecast +19 prudent +1 generally +1 malicious +39 sackcloth +1 revenged +11 submit +1 mahlons +3 mischiefs +6 blotted +20 pasture +1 answerable +3 sheshai +2 jetheth +1 presbytery +1 shiloah +1 feasted +18 feeble +3 collection +2 sheva +1 clemency +295 love +1 chasing +14 meekness +373 side +18 boughs +1 merathaim +2 buffeted +13 kinsman +3 establisheth +1 saraph +3 impudent +1 jangling +1 conditions +2 appaim +1 aground +1 distribution +12 wide +26 already +30 horn +2 earing +1 sharai +33 patience +5 chance +1 conveyed +2 unblameable +2 ruins +77 healed +1 crescens +1 distributing +4 ungodliness +93 prince +7 samaritans +14 rage +1 maadai +6 horrible +1 redness +19 pitch +2 entreat +2 nimrim +10 pastures +17 mightest +1 fens +1 manslayers +2 agabus +16 bad +1 eran +5 clearly +13 talent +4 signify +7 axes +1 broiled +1 snuffeth +267 silver +1 await +22 sharp +9 fearful +3 fornicators +1 plough +4 lothe +2 tiphsah +18 marriage +1 kartan +13 consent +4 leaping +17 wonderful +56 watch +1 muse +10 descend +10 revelation +4 hoglah +13 rechab +14 stature +2 restoreth +1 denounce +2 helkath +2 decayeth +1 handwriting +2 landed +2 innocents +1 blindeth +1 tentmakers +1 clement +288 night +125 statutes +1 japhleti +466 cast +3 oracles +1 rendering +6 wolves +2 hachaliah +2 bethnimrah +5 forbad +3 shipmen +6 craftsmen +4 attentive +21 burdens +1 claudia +3 hind +6 methuselah +3 shemuel +1 payeth +55 dealt +1 palluites +1 wailed +2 pennyworth +2 eltekeh +5 removing +11 torment +1 jasiel +1 containing +1 fathoms +3 protest +5 inventions +5 pathros +3 rescued +1 roller +14 ignorant +10 owl +28 younger +1 reaper +4 boasteth +1 mallows +1 vocation +2 smelled +8 kids +2 daberath +3 gabriel +1 inexcusable +1 enjoin +4 fleshhooks +9 robbed +1 irpeel +23 bright +5 hindered +4 leaving +1 helm +24 seal +1 raamses +3 advise +1 jochebed +1 conformable +1 ethnan +3 preacheth +1 sharpness +12 cleaveth +4 sucklings +41 forasmuch +29 stayed +1 jezliah +1 italian +12 confirm +3 adullamite +68 stretched +1 crackling +5 girgashites +1 shoa +1 overplus +77 rod +507 brethren +4 harness +2 infamy +2 ascendeth +1 deferreth +12 hew +3 lovingkindnesses +7 arioch +3 worlds +4 tributaries +5 sidonians +1 smart +1 industrious +4 furious +1 dropsy +1 ephphatha +1 urias +7 jezreelite +2 busybodies +2 stooping +10 riding +1 sethur +2 mighties +117 captain +1 powders +1 handywork +6 mediator +1 differ +1 loan +1 rowers +9 learning +2 adulteresses +1 snuffed +11 spared +1 clamour +1 nereus +3 bunni +3 sixteenth +1 hurai +149 throughout +309 sight +256 mighty +1 rulest +21 hallowed +6 creep +85 ammon +1 observer +5 immortality +1 bazluth +1 agates +16 unbelief +97 became +3 belongeth +6 pahathmoab +2 gendereth +5 gourd +1 languished +1 supreme +17 twelfth +3 sometimes +5 separateth +1 ahasbai +8 assuredly +3 defrauded +1 reasons +3 milcom +1 accordingly +164 unclean +5 pauls +5 abiezer +2 hadar +2 concluded +1 seam +2 unseemly +1 whoremonger +53 kingdoms +15 hewn +1 ash +1 intreaty +16 despiseth +1 wagon +5 ono +1 inclose +62 whence +2 jogbehah +2 foreigners +3 solemnities +1 forborn +39 vow +13 wearied +2 sooner +1 jogli +17 laugh +1 shion +2 soberly +8 fan +21 wax +1 pushed +1 abda +6 jehohanan +6 sleeping +2 pleiades +4 peor +7 commend +1 lasharon +1 abodest +2 halted +2 troubling +8 kindreds +195 bear +1 espy +1 balancings +70 greater +1 fellowheirs +5 camps +3 frowardness +2 searchest +5 displease +3 eloth +3 loathsome +2 unsavoury +22 helped +1 magormissabib +2 testator +120 hid +2 bondmaid +6 lightly +2 jaazer +132 gates +1 bethesda +1 gore +4 elimelech +2 knead +1 raphu +45 tower +1 watchful +5 decreed +9 bag +6 myrtle +1 kisses +1 dalmanutha +14 tempt +15 soweth +2 shimeah +9 vale +2 vanished +91 bullock +2 ararat +1 reelaiah +2 undressed +1 calebephratah +1 requiring +10 presents +3 witchcrafts +54 asa +7 dor +10 utmost +3 kinswoman +102 saved +4 weigh +1 cheerfulness +1 parah +1 attent +1 advocate +1 kerenhappuch +3 lydda +49 pleasant +1 neglecting +1 scalp +2 hostages +1 spoilest +1 niger +40 desert +4 kiriathaim +5 bonnets +1 jesharelah +3 doeg +8 zealous +4 hadoram +44 sixth +38 ashes +35 duke +5 ater +1 wideness +1 reproachest +1 ispah +4 stewards +6 roughly +764 heart +3 demas +18 forbear +2 unjustly +2 mouse +1 studs +2 lingered +2 azem +19 zidon +6 undefiled +2 madmannah +1 pommels +13 mitre +1 preparations +7 spend +7 doers +36 borders +119 sabbath +65 fourth +416 than +28 charity +1 consentedst +14 lightnings +4 cloths +1 uses +2 sift +1 hip +2 lengthen +2 author +1 overdrive +2 seled +9 kadeshbarnea +5 heel +1 uzzielites +26 ahasuerus +42 handmaid +160 throne +32 astonished +3 zipporah +1 mesobaite +1 siloah +33 respect +1 naashon +1 buzi +134 thence +1 inhabitest +6 bigvai +2 cloven +3 suckling +39 air +4 salem +23 dedicated +1 vagabonds +1 jashen +6 jabbok +9 ashkelon +1 damascenes +13 lower +3 wedge +1 accompanying +52 edge +18 seer +99 generations +6 oftentimes +2 gethsemane +2 viper +3 ahiman +9 persuade +2 assos +9 finding +3 flags +1 camped +19 pot +31 firstfruits +101 absalom +1 strakes +3 kirjathaim +5 azekah +7 gedor +14 boil +69 wept +5 draught +3 exceeded +5 raamah +3 chinnereth +2 payed +7 revenger +16 straw +25 prevail +2 timnathserah +1 jeberechiah +2 furiously +10 forefront +3 omar +9 drought +1 defended +10 speckled +2 travelleth +108 presence +81 never +1 monthly +29 hungry +29 causeth +1 wasteness +43 speech +1 ismachiah +23 uttermost +66 youth +7 weapon +1 machnadebai +24 fourteenth +4 handfuls +2 nephtoah +17 jehoash +24 fro +243 light +5 watereth +2 zibiah +1 isui +1 tortured +11 ours +2 lionlike +37 age +62 tents +34 shout +1 favoureth +5 market +2 grieveth +2 schoolmaster +14 horeb +1 asareel +140 wherein +6 persecutors +10 tail +4 prospereth +1 asnappar +2 lothed +15 vex +1 painful +51 altars +8 hearted +20 cyrus +4 nabals +97 vain +2 tirhakah +1 wrinkle +2 avoiding +1 lois +2 expecting +1 secondarily +6 uncles +1 dressers +39 dark +3 attire +8 menahem +1 defending +2 billows +2 meshillemoth +1 devotions +2 detain +5 abolished +57 chariot +1 tasteth +1 ninevites +163 sins +1 harod +8 sion +5 rachels +5 zurishaddai +3 colts +20 hypocrites +1 heresh +59 deep +1 breakings +25 maaseiah +1 comparable +6 bondman +30 loosed +2 cappadocia +2 kittim +524 hundred +5 rewards +1 abhorring +1 patrobas +1 juice +1 wringed +1 healings +2 dibongad +1 appii +20 seas +1 mearah +1 slingers +6 seventeenth +1 mused +1 hege +1 overspreading +1 caphtorims +1 erected +13 medes +1 observest +1 discreetly +43 substance +1 hypocrisies +68 hebron +2 onesiphorus +2 sufficiently +4 avoid +1 inordinate +14 diligent +971 make +13 region +11 mahli +1 seleucia +6 gibeonites +1 pining +2 ithream +2 meanest +5 debtors +3 causing +13 beard +1 melita +2 harvestman +80 early +1 special +3 pontus +1 gay +2 yieldeth +1 migron +2 stablisheth +2 eliahba +1 collar +1 mainsail +5 thinketh +1 sabtah +14 bidden +23 valleys +5 roman +1 ahishahar +2 sprinkleth +6 naioth +6 behave +2 sheshach +1 fence +1 appertaineth +291 righteousness +5 invaded +1 rue +1 baca +1 creek +1 neglected +3 carest +1 bether +2 zepho +6 shema +347 altar +3 translated +299 daughter +58 loins +1 palti +67 devour +1 baalhazor +1 battlement +5 absaloms +1 preachest +1 eliseus +40 fatherless +1 fashions +23 leaven +10 conspiracy +1 constraint +4 elealeh +1 novice +72 ruler +7 figure +1 charmer +6 teacher +1 preparedst +2 conflict +19 asunder +2 climbed +4 deuel +45 friends +10 harlots +123 gentiles +1 mattathah +1 tiria +135 desolate +1 cheereth +2 tidal +2 bethdagon +2 harder +12 watched +3 travailing +2 sheepcote +11 abundant +7 reproacheth +1 earthy +6 retain +1 mockings +3960 my +1 rama +1 inheriteth +9 infirmity +5 disputed +9 hinnom +8 descending +8 borrow +17 armourbearer +2 gadi +2 shamer +6 fellowservant +4 foul +1 sochoh +5 whit +1 preventest +1 slanderously +1 signets +1 shallun +8 talking +1 shalisha +3 algum +1 augment +1 ahimoth +1 intruding +7 lent +522 hear +11 granted +1 allowed +24 multitudes +933 may +1 parshandatha +1 cumbered +18 band +4 rush +1 lebaoth +1 webs +2 zoba +2 threshingfloors +1 maroth +37 ministered +487 speak +17 feareth +1 decently +284 been +3 glorieth +159 destroyed +22 marvelled +4 replenished +22 besieged +2 pouring +6 boat +6 soles +5 fixed +2 contradiction +19 ahithophel +2 asswaged +3 bel +1 nibhaz +1 blotting +2 hai +2 unmoveable +1 lading +2 eloquent +2 dodanim +2 hoping +4 rump +1 hunters +1 shameth +25 workers +1 jehovahjireh +84 prophesy +3 whensoever +4 communion +3 nineteen +52 household +7 realm +1 forum +2 apprehend +1 vails +1 fluttereth +11 coupled +2 ashchenaz +2 gnashed +8 adulterers +1 shavsha +189 temple +2 flourishing +13 hannah +2 eliathah +1 admired +1 floats +2 tablets +4 contemptible +3 bezai +59 dry +3 bough +14 cart +1 stability +1 ithnan +13 outward +10 zephaniah +7 evidence +8 parched +4 consented +1 inhabiting +4 melody +36 cleansed +1 dealing +4 uzzah +28 dumb +1 taunting +6 zilpah +1 fashioning +1 repenting +2 task +8 founded +2 fats +5 spikenard +2 retaineth +10 skirt +5 spoils +156 part +15 stopped +1 mercyseat +4 hophni +2 bewrayeth +1 jashobeam +118 incense +1 elis +4 pipe +5 jason +11 riseth +66 favour +2 theft +11 lamented +10 uzzi +2 strengthening +2 chisleu +4 transgresseth +1 tahanites +93 possess +1 carriest +1 bigthana +1 treasurest +1 repetitions +4 yielding +13 abednego +21 vexed +51 jehu +2 debts +2 tillage +7 gittite +2 forgiveth +2 tookest +1 magistrate +148 hearken +1 proveth +1 grapegatherer +55 remembered +2 impart +2 bukkiah +2 massa +1 eshtaulites +2 numbering +8 forgat +11 overcometh +1 chislon +9 joah +1 meonothai +1 threwest +1 hornets +2 lintel +10 counsels +4 scorneth +2 immanuel +1 cherish +95 garments +1 nohah +1 rabbath +7 sittest +1 itching +1 erites +7 islands +11 kenaz +10 neriah +2 longing +1 zophai +1 conclusion +6 rid +20 northward +1 ahian +19 jonah +30 hanged +1 wardrobe +3 kinsfolks +2 jasher +2 dorcas +1 bewray +1 spitted +1 anim +2 venture +2 swines +1 areopagite +1 excellest +2 pelonite +1 sinim +1 pasdammim +1 onycha +3 confesseth +4 attendance +9 anakims +2438 this +5 laden +38 polluted +2 joktheel +4 consumeth +2139 king +2 thicket +1 gedeon +1 illyricum +1 bigthan +7 yielded +39 gilgal +3 approve +15 poverty +2 gudgodah +11 harim +1 hazarsusah +4 cheerful +1 arrived +9500 he +1 playeth +7 ittai +1 tellest +1 awaking +2 areli +1 remeth +3 gozan +1 tributary +7 books +3 ashtoreth +1 joelah +2 plowmen +7 returneth +1 artemas +164 yourselves +118 goeth +8459 unto +39 ahaz +29 determined +4 ages +7 meraioth +6 rubies +5 inn +10 enlarged +1 parting +2 presumptuous +3 watering +7 kenites +1 stanched +17 den +1 jointheirs +74 faithful +350 sea +58 syrians +14 ner +1 accounts +2 baalhermon +13 amminadab +1 lengthened +19 graves +5 castles +1 horseleach +2 michmethah +1 fearfully +41 suddenly +1 jaanai +1 shun +180 book +1 outlandish +4 nahath +4 fashioned +323 old +1 igeal +1 helam +1 gimel +7 relieve +1 prisca +1 holier +16 wailing +7 elon +16 reubenites +2 ebronah +4 ammonitess +4 silk +1 mile +42 mischief +3 coffer +1 shrines +5 consumption +31 gath +8 cyprus +1 waked +4 maachathites +19 kish +112 jonathan +1 telabib +2 ekronites +2 sorcerer +1 hopes +27 ordinance +3 ijon +6 azel +1 trusty +9 throw +5 bringest +2 adnah +1 jesui +24 restored +141 east +3 alexandria +1 bethabara +2 reproachfully +236 daughters +20 condemned +25 brasen +2 bribe +4 ornament +1 mail +1 weasel +2 cottage +256 surely +1 swearers +1 mizar +1 infolding +3 affirm +4 pavilion +1 gamul +27 cunning +1 mecherathite +7 stamped +4 driveth +9 asketh +30 distress +13 aroer +1 hagab +5 skies +1 faintest +6 rewardeth +3 pourtrayed +1 acceptest +23 eagle +7 grain +1 private +11 pins +1 hotly +1 fastest +9 ammonite +384 first +3 cleanseth +11 intent +2 elishua +1 sibraim +22 broad +1 nemuelites +12 eliphaz +1 sippai +93 curse +9 rome +7 pine +7 azmaveth +1 rouse +1 hareph +3 shunem +11 bethhoron +20 heaps +3 ranges +1306 us +1 chapmen +3 despiteful +4 dowry +3 catcheth +3 treasurers +43 towns +3 cuttings +1 baptizest +102 dust +8 proceeded +1 gergesenes +2 hothir +1 geshan +2 behoved +11 divination +1 bemoaning +1 zaanannim +1 shicron +8 flaming +205 wisdom +24 isles +37 benaiah +4 compared +1 dionysius +1 ramiah +43 forward +2 ohad +6 hooks +1 interpretations +1 rolling +2 sporting +1 sabta +2 chooseth +1 vent +2 frameth +3 thumbs +66 aside +1 hems +2 feedest +2 josias +12 worm +1 dalphon +2 socoh +1 crag +2 bithynia +14 discern +26 persia +8 dim +11 sufficient +4 salted +12 backsliding +3 answers +1 seneh +1 empire +1 fowlers +12 troubles +1 samech +1 gorgeous +3 joyfully +10 bush +2 shamgar +2 driver +26 adonijah +2 saws +38 ships +14 wondrous +48 staves +49 azariah +1 hasupha +24 rejoicing +6 imaginations +1 bottoms +88 possession +2 tekoites +41 horse +1 abusing +10 zalmunna +1 crownest +1 baptists +4 galleries +1 rhodes +1860 house +8 saddled +11 leaves +8 uttereth +1 jagur +80 fast +3 constantly +57 exceeding +1 whisperings +6 bottomless +1 opposed +2 hul +85 prison +15 nabal +1 contribution +3 jahazah +1 mincing +80 esau +54 consume +1 inform +49 davids +2 geshuri +2 chorazin +2 spark +1 congratulate +147 master +2 slander +21 guide +1 trimmest +27 provinces +3 damned +2 doubled +15 bloody +3 forests +1 verity +1 mara +7 suffice +1 broader +1 imna +7273 lord +26 confess +1 aramitess +3 ripped +1 zophim +6 wish +1 moadiah +44 fill +6709 they +1 consciences +5 teraphim +1 prophesyings +1 phalti +3 amnons +1 emptiness +15 standard +1 alvan +2 moseroth +5999 not +7 magistrates +1 felling +18 magnified +16 casteth +5 jezreelitess +2 mered +1 workmens +1 kezia +8 millstone +1 forerunner +59 psalm +2 rabmag +24 begin +7 shishak +1 asarelah +19 course +93 nigh +1 strain +1524 day +3 lip +5 ahira +1 achar +23 prayers +9 jair +4 appetite +75 selah +7 binnui +123 isaac +20 supplications +6 chittim +18 aloud +36 each +2 ephesians +7 entice +4 lacketh +1 childish +1 fortys +232 art +4 bereave +8 stock +7 timothy +2 acceptation +2 trimmed +11 sixty +1 hasshub +1 parvaim +4 destroyers +7 bethsaida +13 hermon +1 shearjashub +1 temani +13 promises +1 wreaths +14 midnight +95 ram +36 mark +2 sentences +1 envieth +13 destroying +1 clearer +17 fellowship +1 organs +31 street +1 edar +12 purified +5 liberal +18 hin +1 dissolving +40 zebulun +4 refined +82 increase +1 movedst +1 dunghills +11 proceedeth +1 enflaming +5 certify +3 perfume +3 mounts +2 succoured +22 plains +1 jeshanah +2 shechems +1 fleddest +8 followers +5 endued +3 striketh +1 urbane +2 sirion +2 triumphed +3 hazarenan +1 condescend +4 caterpillers +1 imagery +1 zair +27 baasha +46 thorns +1 ashurites +29 hot +1 sia +19 persecuted +1 haziel +1 magician +1 hazelelponi +1 piltai +1 beeshterah +1 peulthai +3 nehelamite +2 melchizedek +1 frustrateth +1 troublous +1 forsomuch +4 fatted +14 proved +1 sepharvites +3 slippery +115 wind +2 brawling +1 bastards +5 admonished +1 eternity +1 garmite +9 blaspheme +1 purposeth +14 choice +3 mattenai +4 framed +1 scattering +14 offereth +9 refrain +64 afterward +1 abagtha +1 mahanehdan +1 rude +1 tolaites +2 plea +2 slothfulness +1 naamans +1 zephi +3 strangled +1 recall +4 greedy +1 lebonah +1 farther +36 merari +199 gone +1 tau +1 ragged +23 boaz +13 fully +14 shouting +5 crete +54 musician +2 feathered +33 ai +14 psalteries +1 pithom +1 wintered +48 canst +2 satisfieth +5 serug +3 ibhar +3 jerusalems +97 egyptians +1 horem +60 west +1 higgaion +1 vau +4 unbelievers +1 recorded +9 shobal +1 bithiah +1 shihor +3 caphtor +1 gazathites +1 graveclothes +12 harden +1 irnahash +987 o +19 required +48 free +1 poets +1 exceedest +3 ithran +1 geliloth +9 bindeth +7 surname +90 hour +6 thunderings +2 philadelphia +33 merciful +11 blasphemy +1 hazargaddah +5 gomorrha +2 performing +45 remembrance +27 whereunto +1 breatheth +6 glittering +2 vehement +8 refuseth +18 cherub +1 unadvisedly +4 regardest +1 horsehoofs +2 wellpleasing +4 jattir +319 stood +5 sung +42 synagogue +6 debt +48 spoiled +62 vineyard +1 slacked +3 sheepshearers +1 armholes +4 conferred +6 judging +18 dwellest +9 nurse +5 exchange +117 hope +10 endureth +1 cumbereth +3 oppressing +1 instantly +9 hungred +3 flay +4 abhorreth +64 prey +21 partakers +2 shewedst +1 abi +1 singular +43 male +1 peeped +277 world +7 butler +3 provocations +23 levite +1 uncorruptness +19 recompence +4 pihahiroth +1 folks +68 simon +2 leaveneth +1 beards +2 promotion +2 deceased +2 occupy +3 mice +1 seducing +4 dedicate +4 graciously +13 ephron +6 girdles +1 eleloheisrael +29 nazareth +6 lump +2 banishment +6 eggs +2 sewed +309 right +1 incontinent +38 vengeance +1 decketh +2 chanaan +162 number +1 woundedst +1 hilkiahs +2 rufus +4 performeth +1 attalia +1 disgrace +1 trading +17 elishama +6 hoofs +1 tedious +1 perezuzza +182 rejoice +1 masts +29 jephthah +19 habitations +1 emmanuel +46 height +4 apostleship +1 handles +3 fighteth +42 flood +2 senaah +1 tryphena +1 signifieth +36 strife +4 passage +3 nineteenth +1 puhites +1 unsatiable +16 denied +2 watercourse +1 michri +10 murderers +2 mehida +13 broughtest +8 boldness +1 affright +44 forgotten +4 contemned +10 moth +1 contendest +2 hornet +5 esteem +1 shecaniah +8 teachest +6 cankerworm +6 abstain +5 urged +1 stript +5 furbished +2 conies +11 hagar +2 blasphemers +2 gnash +8 idle +1 nailing +3 coal +1 jimnah +3 pelican +1 bigtha +1 nisan +1 gershonite +1 disobeyed +7 contain +4 trap +1 feignedly +120 whether +3 snuffdishes +1 bleatings +284 wilderness +2 jaw +1 regemmelech +1 dissolvest +1 oppositions +1 bashanhavothjair +3 calamities +3 drawers +1 benevolence +4 sicknesses +1 darkly +4 expounded +1 aznothtabor +2 reba +1 travailest +1 shimon +6 delilah +2 orpah +1 agone +3 zeresh +49 whoso +3 liketh +52 drive +21 zerubbabel +1 glitter +11 mantle +3335 from +1 susi +1 thimnathah +5 blade +1 condemning +1 ucal +1 variableness +3 talkest +14 wentest +11 signet +4 deputy +60 rule +2 salchah +3 shetharboznai +2 quaking +5 pisgah +2 rapha +1 phanuel +836 forth +3 readeth +61 cup +43 lands +2 breed +1 mortally +3 barefoot +5 opportunity +38 itself +3 flatteries +1 gederah +1 zarethshahar +2 reverse +23 creature +38 manifest +1 senators +1 buildedst +1 compacted +44 widow +47 increased +1 bountifulness +1 sheepfold +21 husbandmen +1 dissolve +2 austere +13 melted +3 jupiter +2 zabbai +3 overshadowed +1 burnings +3 prisons +75 sware +13 sending +261 much +19 slayer +45 cedar +6 division +3 lamentations +6 tishbite +4 rags +5 libni +3 bakers +17 sisera +1 hammothdor +3 engraver +2 mysia +50 doctrine +54 habitation +2 riddance +4 darts +22 calling +3 banners +1 sodoma +1 gnawed +2 players +1 smoother +5 fins +1 sweeping +1 bul +4 agagite +1 winnowed +3 happen +6 owls +9 diligence +79 heed +4 hatach +2 doctors +5 insurrection +215 little +54 governor +11 hyssop +42 finished +3 wasteth +1 ishbibenob +1 stare +76 ones +26 fishes +1 commotions +4 noe +5 graffed +230 only +1 tile +74 sleep +87 goats +4 tappuah +13 psaltery +1 riot +139 new +8 devout +1 jaasiel +8 press +1 recompensest +1 wrap +12 pitcher +1 chloe +12 flourish +12 peaceably +3 thirsteth +6 fort +1 philosophy +39 sides +1 invented +152 joy +3 excelleth +1 osee +181 sat +2 subscribed +12 fellows +4 continuance +1 agee +1 meunim +1 createth +1 exclude +5 shilonite +8 murmur +3 isshiah +32 encamped +5 flanks +1 discerner +1 kirjathbaal +1 opposest +2 perverting +2 obeyedst +4 forbidding +2 patriarch +1 aleph +1 sharar +1 tophel +1 foreordained +1 pasach +1 sufferest +6 malice +1 untaken +2 possessors +2 almodad +8 awoke +3 fears +1 ensnared +11 shelah +10 rumour +14 reins +1 athlai +1 likhi +2 stamp +39 supplication +1 arphad +6 pisseth +1 yell +1 progenitors +90 anointed +2 millstones +9 watered +4 springeth +12 nebo +4 earring +1 jozachar +8 millo +11 vanities +8 araunah +38 paths +24 meshullam +1 thereinto +1 upholdest +460 servants +12 firstling +10 robbers +7 righteously +1 senate +1 bethmeon +1 piety +1 karkaa +6 clap +1 chesed +4 resisteth +1 elul +34 appoint +3 pierce +11 wist +53 evening +1 zorites +1 oren +7567 his +48 mingled +1 zereth +1 harbona +13 repair +2 shua +1 zaza +1 salamis +6 diverse +143 fifty +1 knocking +1 windy +6 commended +3 thistles +2 hindermost +21 tarshish +1 mercurius +4 piped +7 helmet +1 sticketh +3 contrariwise +3 jawbone +2 deliciously +254 rest +52 thoughts +6 josedech +14 rode +8 dough +2 henceforward +4 landmark +6 jasper +13 iddo +12 ophir +14 obtain +19 lust +15 grove +55 next +1 medad +11 sojourned +1 overwhelm +1 acre +82 jehoshaphat +1 uzzia +1 tranquillity +329 where +1 tabeel +12 error +902 over +516 saw +3 aliens +1 giblites +1 dispute +15 approach +2 imprisonment +12 spoon +1 enduring +10 besiege +1 treasured +4 kore +2 defeat +1 stilleth +7 worth +820 moses +1 shelomi +2 concealed +1 rezia +2 eshton +2 threshed +1 joshaviah +3 berachah +6 choked +1 thankworthy +1 affected +1 singeth +2 cook +37 waxed +2 neziah +23 mizpeh +2 gorgeously +2 jebusi +1 asyncritus +1 sycomores +1 jeremias +1 jehalelel +11 oft +2 paper +1298 now +1 condemnest +1 abialbon +2 bulrushes +102 worship +3 joyous +6 nob +50 afflicted +7 zaccur +2 lotans +21 ammonites +2 troughs +5 treason +24 lose +1 discontented +2 lighteneth +46 wroth +3 askest +52 lead +2 belong +1 patara +2 almond +1 jemima +2 engines +1 potentate +4 rightly +1 blasphemously +1 deemed +9 boasting +28 grapes +1 treaders +1 heshmon +24 drawn +930 things +2 moneychangers +8 tares +15 derision +22 shaken +6 affection +2 ribai +7 bethaven +3 stewardship +1 robbeth +4 upholdeth +108 stranger +6 brotherly +29 disciple +1 compound +8 bestow +2 pestilences +6 othniel +3 carpenter +3 desirable +39 armies +3 conception +2 enrich +5 careth +220 smote +8 tophet +57 golden +1 resen +1 downsitting +11 desolations +3 pekahiah +2 weigheth +5 reddish +1 perida +1 reumah +5 balm +1 fodder +4 diadem +1 zareathites +4 jehozabad +3 amethyst +232 fall +1 sorek +5 estranged +12 shephatiah +9 stedfast +2 missed +1 gainsayers +70 forsaken +1 impenitent +37 planted +5 talebearer +29 palaces +2 casiphia +1 planes +143 remember +1 junia +1 minished +3 overcame +138 trees +3 rabsaris +13 afflictions +15 league +3 gravel +2 youths +1 eyesalve +2 estimate +33 comforted +2 harts +1 hasadiah +3 samsons +2 shilhi +2 despisers +1 swelled +111 hearts +1 flakes +4 agreement +8 caul +7 bondwoman +124 hezekiah +1 jurisdiction +2 zebaim +63 secret +1 battered +249 mercy +6 key +3 begetteth +11 remaliah +1 phaltiel +1 zidkijah +4 tabret +27 dieth +6 groan +31 profane +2 northern +3 exhorted +2 obscurity +1 accounting +2 shoshannim +17 eden +1 raged +1 seditions +2 giver +6 dunghill +1840 come +16 turning +2 answeredst +1 bethul +1 caph +1 crouch +2 taunt +1 forks +1 scabbard +2 treasurer +1 lavish +3 entangled +3 declaration +38 sayest +8710 shall +13 imagination +1 hurl +3 bethanath +16 account +2 cherith +3 kindleth +1 zephath +2 crimes +4 viewed +2 towel +2 appearances +55 oath +2 causeway +1 wavering +2 houghed +1 hakkoz +1 shaashgaz +1 costliness +1 jehovahnissi +1 excepted +2 communications +2 wrathful +1 dodavah +1 worthies +160 families +1 jedidah +8 fearing +93 coming +4 idumea +14 hinder +13 sacks +3 trample +1 peruda +3 conduct +21 steal +1 perilous +2 waterest +21 bridegroom +8 quarters +2 naturally +7 stony +16 cloth +2 correcteth +12 begun +739 thereof +3 poll +1 craved +2 pigeon +12 reverence +1 telassar +1 commotion +18 played +3 hadid +8 agag +2 bears +1 distraction +1 foundest +2 delivering +7 renown +1 ditches +1 eshkalonites +5 brakest +1 grease +9 holdeth +5 lain +3 fallow +3 sihor +1 consummation +1 strangling +1 lengthening +32 repented +805 take +9 recovered +1 phaseah +1 acquit +19 hang +415 life +2 plowman +1 floors +16 uzziel +2 dishes +6 cutteth +1 adummim +46 sockets +5 spouse +3 roareth +22 council +3 holon +1 philosophers +456 himself +1 woes +1 unperfect +2 blamed +1 maul +1 skipping +2 amongst +1 shaked +20 bitterness +2 travelling +1 rites +1 mehunims +1 markest +2 elipheleh +1 adoraim +1 aphiah +13 jedaiah +13 twined +2 cyrenian +1 avims +58 lebanon +30 stay +1 shachia +6 battles +1 jaareoregim +57 pour +2 tekoite +5 defied +2 rumours +5 traffick +2 snail +31 sauls +2 camphire +3 confirming +22 language +1 fouled +2 evidently +1 musicians +13 delivereth +2 ambushment +1 frowardly +2 antothite +3 dropping +11 scourge +1 valuest +2 dissimulation +18 matters +60 streets +6 doted +3 tiglathpileser +1 steppeth +19 eliab +1 accustomed +4 temperance +1 rakkath +1 thunderbolts +2 masrekah +31 measures +9 shelomith +1 enchanter +28 fourscore +18 antioch +1 ithai +4 reputation +2 crane +1 lucres +1 sickly +35 notwithstanding +14 ahimelech +2 sandals +8 furrows +1 onions +3 shadowing +2 serjeants +1 abused +50 almighty +2 enriched +4 carefully +5 travailed +1 incontinency +29 judas +2 mattanah +2 proselytes +7 chaldea +1 setter +11 victory +3 unwise +2 nicolaitans +12 sang +1 valiantest +1 pua +1 misheal +1 beraiah +6 ahio +1 tithing +1 melicu +14 amram +1 chancellor +1 sellest +2 feign +7 destroyer +12 reasoned +16 speakest +1 containeth +29 room +1 aphik +2 seemly +19 recover +2 fornicator +1 despaired +4 filth +2 ledges +2 dispossess +2 flattery +3 bushel +5 bucklers +5 dawning +11 dedan +1 unction +14 winepress +2 warmeth +14 pomegranates +1 gaddi +3 agate +1 manaen +1 malachi +133 joab +1 migdalel +30 tarried +2 greece +87 write +2 thanksgivings +17 rend +161 kept +5 storehouses +1 lookest +1 contradicting +36 zechariah +1 phallu +8 preserveth +14 deals +40 perform +5 contrite +1 idolatries +1 haggites +6 waved +20 treacherously +1 ebony +27 letters +1 gaze +4 fastings +1 mustereth +1 aliah +1 tooths +15 cold +70 draw +4 robber +99 flock +7 husbandman +1 chesulloth +4 edomite +50 friend +82 sick +1 esteeming +7 alienated +1 elihoenai +3 naarah +233 very +18 persuaded +1 discipline +9 instruct +2 killedst +1 bridleth +1 conquerors +2 libyans +1 pollux +37 uncircumcised +8 mule +11 troop +52 hated +3 azzah +9 virginity +2 allowance +37 latter +26 sand +1 prostitute +1 occurrent +1 maasiai +2 admonish +24 abishai +19 speedily +1 shrank +3 sup +6 bewail +2856 as +8 imputed +3 hamul +1 roebucks +2 archippus +2 biteth +11 interpreted +1 rifled +54 thousands +2 baana +1 blasphemer +3 ziha +1 raiser +2 dayspring +1 ladder +1 rail +2 feeling +1 oftener +1 rip +6 disobedience +2 somebody +52 signs +1 succothbenoth +3 wake +5 shelumiel +1 contemn +1 surmisings +4 bethpeor +3 tarsus +17 sorrowful +119 houses +13 oracle +4 ambassador +8 subdue +12 plenty +3 ponds +1 pacify +4 compare +9 cushi +26 ungodly +38 weight +15 cruel +201 tribe +9 liken +12 enjoy +1 mithnite +10 inhabit +17 reprove +6 profiteth +32 jezreel +1 plunge +1 disputation +7 zibeon +2 fellowsoldier +46778 and +2 unworthy +4 whips +11 doubt +13 melt +7 amos +4 availeth +3 scorched +20 carcases +1 shechemites +1 pulpit +3 situate +20 bringing +1 overturned +1 engrafted +18 michal +1 multipliedst +6 ebed +11 streams +16 blasphemed +7 chastened +6 causes +1 nephusim +1 seduceth +1 flourished +1 dwarf +1 jeezerites +3 wail +98 charge +6 plants +4 machpelah +10 abiram +31 punish +16 victuals +43 doest +14 thirsty +1 toiled +1 forcible +1 bats +9 gera +7 outcasts +3 occasions +1 shittah +3 honestly +1 harorite +1 esek +4 yarn +7 supposing +2 openest +10 uncle +451 together +5 baken +1 administration +6 hem +14 pressed +2 bitten +6 refrained +1 delusions +2 naphtuhim +7 sighing +19 amon +1 confection +1 exaltest +9 scall +1 severally +1 stoicks +1 eranites +1 snatch +1 hermogenes +3 babylonians +7 rideth +49 garden +4 wit +4 advanced +83 image +1 archer +3 likeminded +1 nophah +6 ain +2 eltolad +1 jaakobah +14 openly +46 tables +7 pastors +20 taking +1 companied +6 stop +2 sparrow +2 nearer +4 healeth +2 munition +1 moderately +1 patrimony +3 hunter +45 conceived +21 falsely +2 desiredst +4 lees +6 renewed +3 preeminence +10 pervert +3 elpaal +5 arabians +6 jahaziel +9 zoar +12 overflow +2 securely +2 coverings +3 extortioner +4 adulteries +5 frame +10 resist +1 pursuer +2 subverting +132 opened +1 endeavours +1 repentest +10 flowing +1693 we +2 copulation +57 coast +3 access +25 synagogues +1 wreathed +10 liers +1 overcharged +1 prescribing +14 sadducees +1 leg +2 publickly +4 meaneth +112 judgments +1 meshobab +6 knee +6 hedge +1 shahazimah +2 swaddling +41 goest +5 couldest +2 severity +136 samuel +11 sentence +50 knowing +1 commissions +1 distant +4 samlah +1 heberites +4 yes +1 lucifer +1 lanterns +3 attended +23 governors +10 alarm +3 phenice +9 treasury +2 sinew +1 remmon +1 naham +4 hearers +1 nibshan +1 beans +7 sincerity +1 diminishing +13 principal +1 nicopolis +1 gederathite +1 corrupteth +2 kenath +66 brake +13 edomites +1 heleb +4 onam +2 shipwreck +3 unwashen +1 chun +9 exalteth +239 levites +1 polishing +1 bearers +6 carrying +19 occasion +1 purloining +1 uzai +1 zenan +1 sureties +1 sheber +8 miracle +5 timbrels +2 swaddled +9 baptize +6 befallen +1 distaff +1 hottest +7 cilicia +1 disguiseth +3 descent +2 locked +10 beget +10 megiddo +4 annas +61 baptized +14 added +2 sheleph +24 lovingkindness +2 shillem +6 privately +4 omer +18 perverse +4 oboth +6 bend +18 keilah +1 josibiah +37 exceedingly +1 exchangers +2 meah +1 cockatrices +645 fathers +3 overturneth +2 confirmation +4 contained +1 churning +1 ordereth +1 affectionately +468 answered +5 pounds +1 zior +115 ear +1 transferred +3 outmost +1 zer +324 bread +30 wounded +2 michmas +2 presseth +1 assist +13 martha +4 goddess +11 heirs +39 bosom +1 marchedst +1 hamathzobah +3 reserve +4 pitchers +8 overwhelmed +1 shilhim +3 sharpeneth +1 resembled +1 halohesh +2 wagging +22 birds +83 corn +1 jashubilehem +12 pharez +4 swearing +1 revolting +32 journeyed +3 affirmed +46 decree +3 fitted +3 hedged +1 jaroah +9 scorner +3 pardoned +2 zaccai +1 ziphion +38 brook +1 aziza +4 bramble +2 enticing +1 stirs +1863 had +21 herd +1 koph +1 ant +1 vestures +1 jeremiahs +14 privily +3 palmerworm +1 prices +13 eliezer +8 sinful +184 six +1 pestle +221 abraham +2 jacinth +2 remembering +1 mounting +1 recompensing +2 jairus +20 maker +192 thyself +2 stedfastness +1 girding +1 paulus +43 bullocks +1 lop +25 abiathar +1 jehush +10 zebah +1 discourage +6 valiantly +1 gemalli +1 jeezer +6 laughter +2 clad +1 largeness +6 needeth +14 entry +3 siddim +2 benejaakan +3 revenue +14 punished +5 flint +37 salt +1 aloof +35 gideon +1 beera +1 consisteth +11 sole +8 trode +4 pleasing +16 threshingfloor +1 piercing +1592 your +1 shushaneduth +16 wasted +53 forget +1 delightest +2 purifieth +4 disposed +1 besodeiah +5 benefit +3 dishonoureth +5 aristarchus +3 temperate +1 plenteousness +1 homam +31 herds +2 phurah +2 malcham +3 esteemeth +5 parosh +17 punishment +1 odd +6 knit +27 hired +6 tahath +1 nehiloth +9 dipped +1 cuttest +58 shechem +1 citizens +1 mishmannah +1 izri +1 womankind +2 hammon +1 jokdeam +1 addar +2 aeneas +2 decision +25 joyful +1 jaaziel +2 delayed +1 emulations +3 champion +1 troublest +19 abominable +2 filleted +1 persuading +3 stain +2 waster +2 fain +3 sara +1 ahiramites +1 diggedst +27 gain +433 seven +1 resheph +1 bethelite +3 founder +224 well +10 quench +131 south +1 stern +1 dalaiah +85 threescore +6 havilah +21 taste +2 exacted +2 multiplying +1 descry +21 overcome +3 desires +70 established +1 inclineth +1 dalmatia +4 swarms +1 exempted +9 hadadezer +8 purchased +3 backslidings +102 command +2 elzabad +1 joezer +62 rent +27 spices +3 turtles +2 signified +887 she +2 discerning +44 snare +2 giloh +17 manoah +2 vigilant +7 rider +19 legs +1 shearer +3 shearers +1 timnite +11 answereth +16 abigail +4 thummim +36 spear +1 mashal +4 experience +30 shine +2 watchers +1 colosse +3 tilgathpilneser +19 whomsoever +1 steads +2 striker +115 believed +1 abilene +1 teth +6 polls +1 tzaddi +1 baalhamon +1 herdman +10 ehud +12 labours +6 prayeth +1 visible +1 dismaying +2 sheddeth +1 mahalah +29 inquired +3 owed +16 swine +13 frankincense +55 damascus +1 squares +2 sered +2 procure +1 hachmoni +35 strengthened +3 bakbukiah +2 holyday +1 phygellus +1 trickleth +10 strait +9 malchiah +1 warrior +3 tatnai +1 beth +78 hide +1 cleophas +3 convinced +1 rejoicest +1 urge +2 conducted +2 tertullus +1 olivet +2 forepart +5 suffereth +75 passover +1 fellowlabourers +1 pruning +1 gatherest +4 pharaohnechoh +2 miniamin +15 nahor +48 preach +1 hara +1 opinions +5 upside +2 forsaking +1 jahmai +2 belonged +11 shook +49 afar +17 elect +13 crucify +4 antichrist +2 harpers +16 eliashib +2 thoroughly +32 heat +2 jahleel +3 bason +3 ruling +1 korahites +3 thebez +4 cistern +201 between +28 standeth +1 embalm +1 tutors +2 turtle +4 voluntary +2 loftiness +20 higher +2 vultures +1 stacks +2 preparing +210 inheritance +1 gidom +42 remove +8 mattithiah +151 build +2 esrom +2 geber +64 shouldest +3 whereinto +1 senses +1 tottering +4 sanctifieth +2 jemuel +2 consuming +23 barren +1 sur +36 gibeon +6 assurance +6 sink +3 hoar +4 roes +1 compassest +1 pipers +1 usurer +1 enosh +1 emeralds +1 ambushments +1 consorted +1 andronicus +2 sarid +99 lift +2 shelter +7 skill +1 thamar +1 threatening +223 multitude +12 mahanaim +1 beerelim +2 renewest +1 unchangeable +2 practised +2 adorn +6 hazeroth +1 amana +1 swooned +445 servant +1 hodiah +1 jedidiah +2 beg +21 asia +10 attained +2 ponder +2 zilthai +2 gittites +7 destitute +1 patterns +1 misused +2 particular +1 closer +1 iscah +152 darkness +3 ebenezer +28 fetch +1 shamefacedness +3 adder +10 hanani +6 wellbeloved +5 housetops +5 ar +1 olympas +74 bowed +1 doubletongued +15 godly +2 avith +63 cursed +47 pharaohs +1 nachons +5 bezer +26 hamath +3 sardis +2 lawfully +1 messes +1 mishal +3 elishah +5 beguiled +3 scourged +1 jahzah +2 creditor +210 lay +10 menservants +47 ephod +1 joshaphat +7 correct +1 baali +1 zacchur +3 grudge +4 ascent +1 chelubai +1 aunt +68 hill +52 officers +330 midst +1 skilfulness +3 haunt +1 furrow +1 hadattah +2 respecteth +1 kartah +1 converts +6 cainan +3 accepteth +1 cushan +135 looked +2 targets +5 gihon +1 huldah +4 straitness +4 meribbaal +3 occupation +1 busy +1 tempteth +15 selfsame +1 scaleth +32 residue +5 hook +951 or +55 speaking +14 myrrh +1 shepho +6 goodman +2 tanhumeth +2 desirest +7 helpers +2 porches +21 learned +7 selves +3 edify +2 questioning +2 jerah +8 slack +4 drops +1 writeth +5 feasting +1 afresh +2 husk +1 balac +1 delusion +18 watchman +2 ahihud +4 clefts +37 visit +3 besor +16 gomorrah +5 sanctification +122 bless +1 frozen +6 toe +12 chased +1 machirites +1 consultation +50 heareth +7 flattering +2 saviours +1 naomis +1 rushes +2 sotai +3 azaziah +1 slang +1 jezrahiah +46 mourning +27 sprinkle +1 spectacle +1 fretteth +1 pointed +6 feathers +2 odour +12 leadeth +12 fingers +20 trembled +1 environ +4 thorn +2 giddalti +9 ministering +13 often +1 gently +1 ethbaal +1 lucas +86 ahab +4 resort +6 member +14 hivites +6 blossom +3 errors +5 mariners +2 tikvah +1 daleth +4 seller +16 maachah +1 endamage +3 thickness +87 still +2 dedicating +9 covert +6 compelled +45 believeth +1 hunting +48 doings +3 cleaved +39 kind +1 paws +1 india +16 stuff +284 four +3 jehonathan +24 willingly +1 tabbath +9 brutish +1 jethlah +1 merodach +21 fulfil +6 asaiah +28 report +3 hours +1 akan +2 ephlal +10 shelemiah +3 fleshly +8 immer +1 philippians +2 micha +20 boast +12 assyrian +6 revealeth +141 cattle +27 drunk +1 greeteth +68 strange +13 bowl +23 oppress +2 cucumbers +2 letteth +11 join +1 epaenetus +10 kinds +26 summer +34 doing +4 comparison +17 manna +1 gutter +7 michaiah +13 eldest +7 point +1 aided +1 disposition +8 raiseth +16 force +23 separation +4 grisled +3 spilled +1 wreath +5 temanite +3 grinding +2 ahlai +1 stoutness +1 azur +1 famish +1 poratha +4 toil +1 dromedary +1 joshah +7 jarmuth +1 spued +5 resorted +28 cleave +1 limiteth +19 naomi +2 winebibber +1 backbiting +5 continueth +48 charged +2 liberality +6 forts +1 zethan +214 ten +1 ashteroth +2 readiness +6 hiding +64 cover +9 beor +33 innocent +854 away +1 balah +1 striven +2 zalmon +11 plainly +7 prophetess +1 numbers +5 worshipping +1 offenders +1 slanderest +1 tire +8 approved +1 chileab +52 grass +5 devouring +11 nose +3 tow +4 neglect +3 questioned +5 doctrines +2 dimness +1 upbraided +1 bethshittah +1 foreknow +1 peresh +1 assault +19 mocked +2 syene +8 reconciliation +57 blemish +21 parents +3 harmless +1 lemuel +1 protesting +13 groweth +1 maaz +1 reproofs +1 planets +9 shovels +95 alone +1 guiltiness +2 sprigs +1 elidad +1 sapphira +1 jehiah +6 shammai +1 easter +4 flat +1 withheldest +2 meronothite +2 mikneiah +4 paps +1 carbuncles +1 felled +1 comfortedst +12 waxen +1 slideth +5 hatest +13 snares +13 base +2 washpot +11 bathsheba +7 grind +3 lodebar +5 gideoni +2 shaaraim +1 groaneth +5 buildest +13 hideth +2 savourest +1 spitting +6 fadeth +3 hay +1 partakest +4 hers +16 israelites +22 condemn +12 prisoner +1 chanceth +1 chapt +2 eyeservice +39 net +5 dishan +3 bewailed +9 consecration +21 basket +1 leaning +1 haft +1 tochen +3 golan +19 transgressors +7 labourers +26 terror +2 bruit +6 malluch +37 tyre +1 lance +18 sinner +3 hushim +1 exactions +1 brand +13 alms +1 calveth +1 wheaten +1 operations +2621 out +1 terraces +2 ezrahite +78 last +9 padanaram +6 calm +11 urijah +2 unquenchable +124 service +2 smallest +2 pacifieth +1 dimnah +5 chenaanah +22 whoredom +14 earthquake +2 forgetful +42 touch +9 lifteth +28 virgin +4 hanameel +2 zelek +1 vowedst +3 channels +7 bounds +3 marrieth +3 profess +16 locusts +5 japhia +2 waketh +1 necromancer +2 ministereth +2 ravin +1 coney +12 dungeon +6 shebna +1 tired +1 malchielites +1 pile +2 mizzah +9 stocks +1 elonbethhanan +1 intendest +511 words +6 kishon +1 crept +1 archelaus +6 lystra +1 relief +4 nekoda +2 keys +1 dissemblers +2 rebekahs +2 bethmaachah +1 handstaves +2 covenants +1 fetcht +1 expected +8 vesture +1 jeuz +4 span +113 walked +7 bar +27 making +4 nimrod +1 helbon +13 ransom +61 divided +11 possessions +29 whoredoms +1 inquirest +1 pant +7 kin +1 asaphs +1 decay +2 arvadite +15 sepulchres +26 perpetual +2 extended +53 josiah +453 eyes +3 glorifying +9 wizards +19 common +2 stealeth +21 corruption +1 jezebels +242 cometh +1 scoffers +33 circumcision +37 sitteth +151 paul +9 praising +1 dibri +635 sent +3 weakened +42 mourn +4 ignorantly +3 castest +12 oppressor +22 precepts +12 evildoers +1 drusilla +24 count +3 perga +1 averse +12 lovest +3 smiths +1 fellowworkers +2 corrupters +17 bade +1 arieh +4 burial +2 baladan +1 hepherites +1 waxeth +4 holdest +12 ruth +6 michtam +45 created +100 pieces +1 sixtyfold +2 highness +5 highly +1 joining +5 passest +2 manservants +1 amminadib +3 berea +1 chalcedony +1 endeavouring +5 assir +29 chose +5 fuel +1 sheeps +2 artificer +10 lake +1 rakem +1 worker +3 shearing +1 jeaterai +7 oreb +2 eldaah +83 lion +1 rare +2 witchcraft +1 shuphamites +79 follow +1 sucked +1 idumaea +1 submitting +2 compassions +7 quite +3 commandest +33 sabbaths +4 giddel +4 assayed +1 praiseth +3 feigned +1 loweth +1 lid +8 instrument +1 advantageth +1 ezem +2 tilled +99 horses +1 archi +2 chesnut +2 arabah +47 tarry +3 mahath +12 belial +3 decrees +57 thereon +1 injured +1 chiding +345 gold +1 acquaint +2 whale +1 zephathah +5 oppressors +3 promisedst +20 pledge +112 giveth +2 arcturus +246 iniquity +1 haruz +1502 an +1 committest +5 dare +2 babblings +5 bath +1 possessest +1 fewness +11 holden +2 flourisheth +193 though +7 backs +6 emerods +228 prophets +1 anise +2 casluhim +6 likened +23 business +3 sincerely +1 satiated +17 estate +1 allied +30 harp +5 pitied +1 lothing +12 offspring +1 judith +9 bezaleel +2 changeth +1 hotham +1 jecoliah +2 righteousnesses +27 greatness +8 foxes +3 horites +139 sake +1 enhazor +1 influences +2 coveteth +1 wellfavoured +1 curdled +10 assyrians +2 tadmor +20 moment +34 plead +2 inflammation +2 midianitish +1 ripening +716 should +7 shone +1 inheritor +10 officer +2 boils +10 esaus +21 naboth +345 year +1 spider +1 travel +14 frogs +1 sitnah +41 home +8 sheaf +2 irad +1 longwinged +225 works +2 pochereth +5 cleanness +5 achsah +1 event +1 meteyard +1 tebah +1 jahdo +1 restraint +27 miracles +2 hangeth +72 galilee +1 shimronmeron +3 gennesaret +1382 let +79 greatly +194 serve +1 lakum +369 themselves +24 makest +70 abominations +16 dragons +1 zelotes +5 needful +1 wasting +4 betimes +12 jabesh +2 zeboiim +5 gleaning +2 flatter +1 fidelity +8 haughty +3 ebiasaph +1 ohel +8 unless +1 gulf +18 gaza +2 dealings +3 birthday +7 zoan +4 diana +1 conveniently +32 goat +3 widowhood +7 thunders +6 romans +1 chambering +974 say +131 john +3 tekoah +1 elms +12 liar +1 hezrai +1 bethazmaveth +11 stroke +2 zarephath +5 ointments +178 having +3 topaz +5 lucre +2 clapped +4 sores +4 tharshish +1 mantles +1 lasea +19 elder +1 consist +1 booties +32 deceived +3 lurking +3 propitiation +2 mahershalalhashbaz +1 consult +2 rowed +2 titles +19 floods +3 sufficed +1 shobach +1 fryingpan +5 azareel +17 athaliah +2 doubts +6 javan +8 sprung +1 cymbal +2 bore +55 escaped +6 malchijah +3418 their +1 enticeth +4 blame +6 chasten +3 askelon +1 rabboni +2 firebrand +1 grandmother +5 wayfaring +5 lowly +1 boisterous +1 huz +2 achaz +52 choose +1 pleadeth +90 bow +10 ishbosheth +17 backward +1 eschewed +2 heights +1 imprisoned +12 storm +1 marched +1 bedstead +1 feller +1 susanna +28 looking +1 surfeiting +3 baalzephon +71 sign +1 wrestle +1 ziz +2 espousals +3 noised +20 gat +3 loaf +53 job +2 charmers +1 brambles +2 bethhaccerem +5 tabrets +43 sitting +8 purification +9 bracelets +7 servile +2 eglah +1 bestead +1 philologus +13 dog +2 jechonias +3 jehudi +5 matthew +2 persian +22 altogether +3571 will +3 incurable +361 wife +7 sigh +1 ungirded +6 cloudy +1 libnites +1 troubler +2 mattock +4 addeth +2 sixscore +33 fruitful +7 worshippers +1 ami +3 trophimus +2 marks +24 perished +4 communicate +2 wakened +6 honeycomb +1 enabled +51 canaanites +1 barachias +4 enrogel +1 aramnaharaim +1 lionesses +3 network +2 habaiah +26 armed +73 remain +1 shashai +1 dispatch +5 engedi +1 eschew +4 stoppeth +20 prisoners +1 galley +8 pierced +1 comfortless +4 stays +2 requited +28 borne +9 oversight +1 launch +1 amends +10 hadarezer +1 leaved +48 neighbours +5 trieth +1 anan +1 fellowprisoners +28 record +16 naaman +14 ziklag +1 chilions +357 under +42 milk +16 depths +265 turn +2 lendeth +6 honest +1 contending +9 overtook +14 bani +3 esarhaddon +1 slanders +6 cephas +160 country +1 carbuncle +1 laidst +2 messias +94 beginning +7 settest +14 miriam +1 adami +1 haggeri +27 justice +41 vessel +2 rogelim +1 beacon +2 lock +1 commendation +7 offences +3 epher +1 coulters +2 oshea +8 zorah +148 knowledge +1 blueness +1 chant +3 zacchaeus +2 jeshurun +1 charming +4 seba +3 justifieth +51 ox +99 neighbour +1 onward +2 zebulonite +1 silversmith +1 emboldened +2 huppim +10 withstand +3 queens +24 exalt +31 afflict +3 engannim +1 jannes +40 shepherd +8 defenced +7 stephen +1 mahavite +5 jared +1 traversing +9 potter +3 harosheth +1 wishing +1 phebe +1 outlived +3 turtledove +5 aholibah +23 plagues +314 nations +1 hammath +26 jew +36 forest +22 wickedly +1 ithra +1 basmath +962 jesus +1 lodgeth +3 chastisement +5 reu +2 azor +10 kindly +30 cave +13 sojourneth +3 kneeling +730 even +2 failing +1 divineth +1091 these +8 feedeth +15 herb +7 copy +1 sweetsmelling +1 arbah +55 satan +2 partition +1 selahammahlekoth +1 exaction +15 siege +17 freely +1 philistim +5 pen +6 joabs +1 yoked +40 angry +1 jeriah +1 stayeth +1 upharsin +567 spake +3 navel +32 caleb +3 fare +5 wet +14 transgress +19 thigh +2 nahors +1 hod +2 nuts +137 arise +1 walkedst +26 liberty +301 die +1 shinab +1 plantings +1 cliff +23 eating +1 beetle +4 fresh +1 betrayest +30 tender +3 shadows +3 setting +4 wert +3 maon +3 perceiving +44 held +6 wastes +163 within +3 verified +1 shamma +1 fishhooks +4 sackbut +2 satest +7 wreathen +2 roofs +11 entrance +7 divideth +2 variance +3 gatam +7 dens +4 arah +9 wot +3 leanfleshed +4 scorners +1 discomfiture +2 carving +10 rolled +4 publisheth +20 ashdod +2 soundness +53 length +1 zizah +1346 hand +8 getteth +5 cow +6 abated +4 launched +1 arelites +13 eber +2 netophah +1 sew +1 dined +2 seasoned +6 telleth +1 supplanted +1 hezrons +347 congregation +1 provokedst +1 amplias +1 cherished +2 leaneth +18 spent +1 accompany +3 remedy +3 marrow +5 shimron +1 shimi +7 maimed +31 porch +2 newness +16 eunuchs +1 ethni +1 acceptably +13 gall +4 uriel +3 striving +2 pertain +1 sweeter +1 camon +5 hedges +2 breathing +5 ravens +2 crib +68 run +1 grudging +1 agur +2 sallai +43 divide +1 treatise +1 ostrich +2 causeless +193 cried +156 grace +15 eliakim +12 candlesticks +1 sacrilege +144 salvation +1 kerchiefs +1 fining +112 slay +1 megiddon +2 fellowlabourer +1 gibea +22 further +6 daytime +4 cormorant +1 girgashite +12 bald +30 shaphan +97 knoweth +1 beninu +95 wrought +1 determinate +1 jabins +4 chushanrishathaim +11 sceptre +20 withal +1 temper +21 westward +1 ahiram +5 distribute +67 scribes +33 perceived +1 shama +111 appointed +131 nation +107 chosen +8 violently +10 manservant +2 gibeonite +2 listeth +1 soothsaying +3 greedily +2 azaliah +242 whose +35 ahaziah +1 refiner +6 workmanship +80 raised +2 durable +4 delicately +6 rank +26 yield +2 mouldy +2 storehouse +2 armenia +18 estimation +131 living +1 colony +1 deepness +159 women +13 questions +52 white +1 dara +41 weak +4 watches +4 utterance +2 eliam +8 leaped +8 bozrah +2 shulamite +1 samgarnebo +5 lighten +392 another +2 writer +10 ziph +1 eightieth +1 stammerers +18 kindle +1 object +1 bunah +1 fatter +5 iconium +18 bond +1 hashem +27 uriah +2 aran +63 exalted +7 exact +1 stool +3 avenging +13 integrity +1 charashim +3 stagger +13 mire +1 straitest +2 habergeon +12 heber +108 eye +1 hareth +1 hesed +1 sebat +309 left +6 creation +1 tacklings +31 continual +27 loose +4 eziongeber +41 desolation +2 barkos +1 sounds +9 convenient +1 activity +3 hebronites +7 departeth +3 handled +2 arkite +1 hoshama +2 convocations +4 zachariah +3 lysias +1 actions +1 cieling +605 eat +24 shallum +36 defile +2 irijah +6 physician +20 jezebel +1 atroth +6 kenite +2 mate +3 superfluous +1 backslider +1 uriahs +18 eleventh +11 jabeshgilead +2 colhozeh +1 jachinites +2 tenor +3 legion +1 soberness +6 pan +2 bondmaids +1 commending +417 hands +1 shunites +1 envies +52 mordecai +6 languages +1 morsels +7 careful +86 small +2 restrain +1 defamed +3 terribleness +4 vinedressers +1 fetcheth +1 proofs +12 roaring +3533 but +1 jashubites +80 pitched +1 maintainest +1 expound +3 spunge +27 rebekah +218 lest +2 stretching +1 renounced +1 bred +1 misgab +14 minds +9 nahshon +13 disease +10 contempt +1 ichabods +2 chinneroth +11 bud +37 circumcised +21 visited +1 pharaohhophra +1 huri +13 shouted +2 sorrowed +3 mattan +4 dispensation +1 relieved +33 fenced +1 jeshebeab +1 adventured +37 despise +48 persons +24 uncover +1 flux +3 diamond +3 anchors +1 sibboleth +1 scant +12 yours +1 arodi +3 buz +3 extortioners +3 baalmeon +1 daysman +2 churl +16 jehiel +6 elnathan +3 register +1 jehovahshalom +9 understandeth +1 mibhar +2 lappeth +2 basest +1 bored +9 fetters +1 sosthenes +1 swollen +2 apothecaries +1 buckets +1 benhail +2 achim +9 thereunto +6 nails +1 neri +1 deer +1 whispered +33 twentieth +1 chaldaeans +2 horims +3 shooteth +1 stoning +3 merab +1 erreth +1 hobab +795 brought +9 gathering +3 zabulon +1 cursest +3 arrogancy +1 plotteth +1 charitably +30 reed +14 shot +2 forwardness +36 ephah +1 nourisheth +4 wandering +5 tema +26 humbled +2 izrahiah +1 bloodthirsty +4 impotent +5 vapour +6 subtilty +7 molech +3 lightness +6 ebedmelech +3 grasshopper +2 fox +1 travellers +2 abishur +60 balaam +9 stedfastly +1 aretas +1 jotbah +1 palal +1 favourest +1 berites +4 moving +4 felt +5 executeth +2 bilshan +4 lover +3 scum +144 sun +26 ministers +2 hashabniah +209 war +10 curious +14 accused +1 hanes +2 deceits +1 refresheth +2 idolater +4 undone +9 hole +219 righteous +7 ambush +1 jabneh +2 permit +1 courteously +293 five +6 achbor +39 lions +3 ensample +4 rebuketh +5 hodijah +1 chastenest +6 appearing +1 jeshohaiah +56 parts +1 overpass +4 comforteth +3 untempered +2 bethink +7 humbleth +1 implacable +2 fray +5 loss +3 mikloth +7 beelzebub +14 powers +1 signification +3 kneaded +2 religious +11 eighteenth +15 profaned +1 benzoheth +1 repayed +1 amam +1 ezbai +1 aijeleth +2 sincere +8 provocation +8 affairs +2 overpast +1 badness +8178 i +4 kirjathsepher +19 froward +2 gins +1 hap +4 shuthelah +1 roasteth +13 fortress +8 mareshah +2 innermost +1 judea +1 gendered +8 earnest +29 pursue +2 bull +1 azzan +2 uncondemned +51 nay +1 bolled +1 frontiers +1 aridai +22 jebusites +9 vines +4 arad +1 habergeons +1 repairer +1 exhorteth +1 hosen +6 message +1 shimhi +1 sodomite +7414 a +3 meted +12 stablish +2 polluting +3 opinion +1 servedst +2 changers +35 fornication +1 engaged +20 entereth +2 besai +32 remaineth +21 fifteen +5 sycomore +8 advice +34 either +1 sealing +62 few +1 eshean +4 overthroweth +2 moisture +2 benefits +5 laboureth +1 dues +1 ashkenaz +14 clave +1 rending +3 shaft +2 concern +6 beckoned +2 shimshai +2 boasters +3 twoedged +1 amad +7 troops +1 shilonites +29 fed +80 abide +40 breath +8 alike +14 overthrown +13 consulted +1 paarai +2 ahohite +1 nahbi +2 shape +12 kedar +10 bethuel +115 sinned +1 knocked +1 impoverish +29 instruction +6 serveth +1 whisperer +3 kenezite +3 winepresses +2 single +43 pillar +2 wholesome +61 others +13 smiteth +1 zoreah +1 merarites +1 imprisonments +20 stir +5 aholiab +10 ivory +41 witnesses +1 millions +1 slowly +9 dathan +7 plaister +5 perplexed +3 hindmost +1 swaddlingband +20 envy +96 spread +33 samson +1 aiath +5 magog +89 gilead +1 asas +1 machi +4 proper +8 emptied +183 judge +6 withdrawn +742 two +1 grapegleanings +1 secundus +5 requested +3 excuse +3 ahisamach +9 adar +1 macedonian +2 miamin +1 jahzerah +173 whosoever +221 offer +9 eyelids +1 zarah +6 frost +1 assay +149 lords +1 flag +2 inhabiters +2 jehoaddan +2 abimael +7 walkest +41 james +23 shittim +1 sychar +2 mill +1 hashubah +23 calleth +125 heavens +1 hebers +3 thitherward +23 spring +1 emmor +1 geuel +9 knop +1 noted +1 abihud +1 overcharge +837 among +2 tekel +9 covetous +31 strengthen +1 lightest +3 galal +46 multiply +4 thresh +1 superstition +1 encountered +1 clauda +2 usward +1 prognosticators +35 wouldest +1 bilgai +1 increasing +1 arbite +27 giving +3 samaritan +12 depth +5 furlongs +3 palestina +5 hawk +7 duty +8 edrei +1 bemoaned +4 commendeth +68 rams +39 salute +10 scattereth +18 overthrow +93 covered +58 nebuchadnezzar +7 danger +3 lap +7 abrams +1 rabbith +41 talked +2 supplieth +118 wickedness +3 receipt +79 lambs +1 ader +30 clay +7 bruise +1 eunice +37 pursued +1 nod +2 riotous +6 gomer +1 fatling +4 dumah +2 reckoning +1 certified +1 spicery +562 about +2 memucan +3 enjoined +5 abishua +26 singing +2 husbandry +5 traded +2 tou +3 malefactors +383 peace +10 remission +2 angle +158 beast +6 beheaded +7 pavement +10 workmen +1 shamsherai +1 cows +1 reasonable +2 mattocks +1 sergius +13 giants +10 sowed +3 girdeth +3 wrestled +1 gardener +41 nathan +12 wondered +4 bethlehemite +2 recommended +30 girded +3 ice +35 hearing +8 curses +47 sinners +7 jeconiah +2 spearmen +5 peleg +1 orphans +2 meetest +1 neesings +1 orchards +17 judgeth +19 drinking +8 dross +2 wines +8 rooted +19 kiss +1 helbah +298 same +2 stouthearted +1 dissembleth +1 skipped +1 shiza +1 huge +10 nourished +12 zichri +9 hireling +1 tiberius +1 jecamiah +2 teresh +2 barbarians +102 husband +1 drinkers +14 creepeth +1 forgetting +1 zarthan +81 noise +1 transforming +6 puffed +1 lebanah +1 pudens +21 equal +69 appeared +1 unmerciful +9 ring +1 closets +9 wont +8 reckon +156 knew +2 owneth +59 souls +26 arms +22 midianites +3 sheminith +5 pained +35 issue +1 lahmam +1 idolatrous +1 slips +157 wall +1620 also +183 child +3 plate +1 parmenas +1 mutual +1 endanger +3 applied +2 bruising +418 commanded +1 restrainest +9 unpunished +11 creatures +1 hagabah +2 theophilus +2 enshemesh +1 hare +41 fair +39 glorious +1 shovel +2 epaphroditus +233 offerings +17 trusteth +81 doeth +9 felix +1 bathed +3 subtilly +24 seemeth +8 furniture +3 prudence +1 paramours +1 traitor +3 comprehended +9 guiltless +7 javelin +197 died +2 ezekias +10 uzza +1 magdala +1 azzur +1 calved +1 zacher +5 craftiness +15 youngest +5 fortify +1 median +1 battlements +6 howling +1 fouledst +84 thither +4 ahiah +2 fringes +1 hierapolis +13 anathoth +1 tenderness +1 abiasaph +21 ithamar +4 aloes +1 gurbaal +2 sophereth +1 inventors +1 examples +13 clothing +5 vipers +1 frequent +1 jathniel +38 shepherds +1 throwing +1 deadness +8 michmash +1 ancle +1 telah +3 deceiver +1 lecah +423 soul +1 rubbing +1 satyr +1 cumbrance +1 shuttle +1 elisheba +84 destruction +1 justle +1 uprising +1 masteries +3 spin +3 firebrands +3 polled +15 black +3 knocketh +2 tittle +104 mayest +1 barrenness +5 chasteneth +5 shuhite +3 perpetually +10 reared +8 accusers +18 deceitful +13 desireth +121 burn +9 bulls +4 bundle +24 perceive +3 alemeth +1 intermeddleth +8 broidered +4 cheeks +2 morasthite +24 tamar +3 lettest +9 evils +18 hitherto +1 overmuch +1 bloodguiltiness +29 olive +6 dying +24 benhadad +3 unni +7 doubtless +195 strength +1 cretes +2 hodaviah +1 arising +6 porter +7 whelps +1 maw +2 principles +8 judgest +1 persuasion +79 going +1 jorkoam +1 rejecteth +3 heresies +137 fled +1 middin +2 kneel +8 saluted +9 arphaxad +143 find +1 beguiling +209 save +51 honey +1 hiddekel +4 strawed +11 unawares +3 meeteth +10 jehoiachin +3 foremost +1 doctor +1 paltite +1 skilfully +4 drowned +11 maschil +4 thickets +13 disobedient +5 caves +2 stormy +7 hardness +1 enrichest +4 ishi +1 richer +2 hakupha +7 feel +3 grayheaded +184 inhabitants +31 sell +2 thronged +1 pelaliah +2 bethbarah +1 disannulleth +1 chidon +1 chargest +5 rephidim +46 promised +3 esthers +2 satiate +1 impose +3 plowshares +1 enjoyed +7 rasor +14 nebuzaradan +1 instructors +6 pits +2 dull +6 bethlehemjudah +601 heard +5 shedeur +110 maketh +2 committing +1 ashriel +4 gathrimmon +2 nachor +39 declared +1 woundeth +26 endure +132 counsel +3 wearing +5 tola +157 stones +5 defy +2 wished +1 kallai +32 inhabitant +2 playedst +2 faultless +1 assure +2 slipped +2 miss +1 hardhearted +1 caphthorim +54 skin +6 zippor +33 girdle +20 brightness +1 shelanites +5 mysteries +6 scab +1 armageddon +12 ill +1 muppim +1 elparan +26 straight +5 thistle +3 manger +1 masterbuilder +1 swimmeth +1 gederothaim +2 naught +1 invasion +20 centurion +2 avengeth +19 assemble +24 glorify +8 arches +1 wearisome +4 contentions +1964 people +1 faintness +1 intermeddle +94 wait +13 artaxerxes +5 emerald +6 skirts +5 transgressor +2 gutters +6 customs +1 guards +54 upward +1 bosses +2 salome +1 chalcol +1 oration +2 enchantment +1 eliphal +2 shashak +8 elisabeth +1 elead +221 prophet +2 moriah +4 wafers +11 drove +2 proving +1 barbers +168 commandment +1 forgot +1 unshod +10 iscariot +4 longeth +1 supplant +1 buriers +2 jeremy +4 derbe +29 appearance +1 hezro +3 rebels +2 avites +1 piram +6 twilight +11 sober +11 ananias +4 reapeth +6 dances +15 calamity +3 perversely +1 jekuthiel +23 goings +21 setteth +1 iphedeiah +9 seethe +11 absent +1 purer +1 fanners +211 pharaoh +2 jarha +6 examined +27 separate +1 needles +3 complete +10 hoped +4 bearest +3 alabaster +58 unleavened +2 weather +1 craveth +87 riches +42 mercies +1 betonim +5 testifieth +1 bending +2 expel +1 rampart +1 apollonia +2 despite +22 grant +6 withheld +560 own +7 buildeth +17 mouths +25 furnace +2 becamest +5 joiarib +1 heldai +3 brickkiln +154 till +1 besom +1 steady +15 tried +16 kirjathjearim +1 beateth +1 disputations +3 ibleam +7 herdmen +1 cheerfully +1 jehizkiah +1 circumspect +8 spoiler +1 perseverance +5 bolster +10 dispersed +10 direct +16 hur +7 simons +2 banished +1 socket +10 triumph +4 zuar +97 jeroboam +42 bands +1 mover +36 digged +1 philemon +3 enemys +122 valley +14 slothful +1 disquiet +2 possesseth +1 tasks +2 shenir +1 abdiel +7 genealogies +9 lean +8 quietness +1 threaten +2 habakkuk +1 gizonite +1 cabbon +11 dedication +1 zereda +2 discovereth +3 lydia +1 jehezekel +1 outrun +12 hewed +77 taught +86 glad +1113 because +42 belly +2 step +2 citizen +2 viol +4 lod +2 comfortable +3 shebuel +1 boscath +10 ceaseth +90 committed +77 fallen +15 considered +742 jerusalem +1 adria +2 firstfruit +2 winketh +2 purity +1 avim +2 pilled +4 benjamins +1 jaminites +1 cotes +1 addition +2 leasing +13 sendeth +4 unfeigned +1 betharam +1 perjured +1 exorcists +6 enos +1 ordinary +3 dainties +2 ellasar +21 josephs +3 regions +31 folly +4 nettles +18 dragon +2 upholden +14 soever +5 jozadak +2 hauran +6 dwelled +84 hate +1 zephonites +21 visions +1 revenges +3 thresholds +1 pransing +2 dawn +3 didymus +14 surety +2 abhorrest +335 burnt +1 saphir +5 thereupon +1 saron +10 cornelius +3 shabbethai +18 hazor +2 tool +16 herbs +28 whithersoever +6 threw +1 winterhouse +7 puttest +1 obtaining +3 records +2 communicated +3 azmon +1 snowy +13 wisely +2 minstrel +26 wholly +25 heritage +7 foes +29 separated +22 adversary +21 esaias +5 tied +1 mite +1 ephrain +1 narcissus +32 maid +2 tarah +1 asnah +46 desired +33 profit +2 inclosings +8 searcheth +5 devoted +1 choosing +2 fellowprisoner +22 testified +1 chislothtabor +1 mufflers +3 govern +1 joed +18 deed +1 requirest +1 bridegrooms +69 true +117 north +3 ajalon +1 sheal +8 revive +65 defiled +1 desperately +2 rebellest +1 ptolemais +1 whereinsoever +6 finally +3 sweat +3 kick +1 strangely +13 quicken +1 hizkijah +1 zeredathah +1 eker +9 nets +10 mightily +6 sport +15 breaketh +9 hart +8 glass +1 elienai +15 bid +1 malchiram +23 offend +7 settled +5 case +3 warring +7 eshtaol +1 cracknels +1 kibzaim +10 plenteous +9 expired +44 besought +1231 do +10 device +1 suretiship +5 rephaiah +30 gavest +11 bethany +2 friendship +1 gunites +181 therein +228 praise +5 escapeth +2 cleft +8 ethan +1 chesil +3 whereto +4 owners +4 continuing +1 pe +14 heman +1 bariah +1 swerved +21 holds +1 waterflood +47 thrust +4 cruelty +4 chephirah +13 goshen +1 troubledst +1 spewing +1 aaronites +1 madmenah +2 amraphel +11 provide +1 intended +4 italy +15 jeduthun +4 abia +5 profited +4 calebs +269 young +3 pethahiah +6 dear +1 road +3 stiff +20 proclaim +39 shemaiah +116 whither +43 lies +1 schism +5 suffering +3 released +3 baalath +48 dwelleth +290 none +27 continued +3 unity +1 jeshishai +2 darkon +9 thinkest +1 zions +1 despisest +26 honourable +1 manifestly +4 laadan +6 fit +3 peacocks +14 rewarded +71 except +6 grate +1 maadiah +6 meremoth +1 elika +43 too +3 groanings +1 farthings +2 needle +2 nursed +8 izhar +7 principalities +15 jealous +21 elkanah +22 wound +3 chaste +1 ferret +1 jorah +24 palm +33 needy +33 philistine +2 rebukes +12 givest +3 pertaineth +3 zillah +18 breast +12 wrapped +3 livest +2 hen +1 adithaim +3 ahilud +1 copied +171 ground +6 rehum +1 pildash +1 aforehand +11 riblah +1 travelled +1 plainness +6 zebul +52 beheld +1 hukkok +5 tongs +2 richly +2 weave +2 spain +1 wilily +1 shephuphan +1 beggarly +13 boldly +1 blemishes +10 pound +10 cursing +1 complaining +2 watersprings +1 boar +1 ziphims +1 zalaph +17 shore +3 tumults +172 bare +1 mekonah +6 troas +1 shoshannimeduth +10 baanah +14 purged +3 headlong +338 dead +5 rate +2 study +2 dignities +33 statute +39 fig +1 aroerite +30 nebuchadrezzar +1 nourishment +7 flight +4 knives +1 experiment +1 alian +3 succour +15 fasted +53 slaughter +54 mary +1 pearl +4 bells +3 enticed +2 transfigured +5166 all +1 debase +2 sina +5 perverseness +1 dedanim +2 ascribed +1 jeruel +1 cedron +1 shemida +1 tabrimon +1 alameth +4 fortieth +11 withdraw +4 disallowed +5 manners +1 reputed +16 ephesus +2 merchantmen +5 sheshan +1 ahimelechs +3 fulfilling +3 bilgah +3 government +55 vine +2 servitude +201 while +2 potiphar +2 councils +10 blessings +60 preached +4 forgetteth +5 ocran +2 martyr +1 publick +2 expences +1 accomplishment +1 salutations +176 broken +1 patmos +30 use +36 compassion +838 put +2269 man +8 temples +4 archite +1 rashly +3 crumbs +4 shear +2 escheweth +9 dearly +11 keeping +3 weaker +1 wavereth +1 zebulunites +74 ought +2 preferring +12 barzillai +1 neiel +115 help +114 smite +23 oppression +2 onesimus +28 hence +2 mithcah +1 meddling +6 prophesieth +1 pruned +36 weary +8 shined +33 anoint +1 coos +2 inquiry +12 delighted +2 bray +3 withholdeth +1 dragging +1 venom +12 audience +7 wandered +3 acknowledged +1 anem +2 gazzam +2 chilion +5 tahpanhes +289 both +1 ahoah +1 elihoreph +4 eleasah +1 goath +2 sharply +1 belch +5 downward +676 bring +1 fastening +2 hymn +2 dishonest +3 therefrom +18 abound +7 weakness +1 jesurun +1 pygarg +5 swim +3 broth +1 attending +1 piercings +1 heresy +3 imagined +616 way +2 gored +3 visitest +28 howl +33 sacrificed +20 safely +1 cockle +34 scatter +47 eternal +4 resting +1 paintedst +2 shomer +34 passeth +47 need +1 trying +33 treasure +7 veil +1 jeziah +1 drowsiness +1 bolted +7 afore +6 wanteth +11 teman +11 infirmities +1 prolongeth +2 ha +1 hasteneth +87 famine +14 coats +1 quivered +2 pilgrims +1 gileads +16 twice +24 amnon +2 jahzeel +112 names +46 teeth +1 nahalol +1 crossway +47 delight +12 foolishly +19 companions +18 mad +1 leadest +2 middlemost +1 dishonesty +22 form +1 motheaten +14 greeks +6 saveth +1 emulation +2 issues +37 adultery +16 gershon +12 uprightly +3 rust +16 haran +2 wronged +7 solitary +1 sheepmaster +36 serpent +6 comforter +1 kison +1 vanisheth +5 process +4 cummin +24 begotten +2 chenaniah +2 boys +5 tychicus +96 loved +1 thronging +4 malchishua +8 lacking +3 manassehs +1 bleating +2 oversee +5 diminished +3 wrung +1404 go +77 messengers +43 chamber +5 raging +3080 is +2 assur +1 weightier +6 jediael +2 obeyeth +5 presumptuously +30 cleanse +18 communed +5 pence +4 befell +484 fire +1010 sons +3 sustained +208 known +33 posts +1 assented +13 consecrate +1 staggered +1 jegarsahadutha +3 ofttimes +6 raven +11 locust +3 wanton +16 proclaimed +13 wander +1 ben +37 crucified +2 thirsted +4 rendered +1 ahasai +3 paradise +2 bastard +20 cain +10 enlarge +4 latchet +1 slings +5 plowed +1 printed +2 stumblingstone +7 confessed +1 ginnetho +2 uthai +5 sinews +4 hori +1 pibeseth +1 blastus +66 levi +9 fever +16 board +6 quickened +3 abdi +31 excellent +12 fashion +26 johanan +1 seatward +3 carriage +4 timna +4 gentleness +3 thereat +2 situation +1 rope +1 harnessed +6 prophesying +2 calve +2 scraped +2 alush +1 concision +31 adversaries +1 hadashah +3 infinite +2 fringe +1 berothai +2 revellings +1 iru +1 orderings +1 jaasau +1 shipping +2 stumblingblocks +8 ethiopian +1 hoarfrost +8 ensign +1 mown +124 rose +1 haahashtari +1 quickening +3 holiest +2 rang +35 eighth +5 taanach +12 gehazi +1 shimrath +1605 one +36 forbid +2 whisper +9 hiss +1 undergirding +2 redeemeth +3 confederacy +2 pavilions +2 unreasonable +5 planteth +8 penuel +3 uncovereth +1 humbledst +880 what +125 shewed +3 thighs +1 lifter +1 imputeth +6 tekoa +33 understood +1 bozez +1 tirhanah +5 ripe +7 firm +1 habitable +1 dabbasheth +6 womans +1 biddeth +22 bearing +5 clusters +2 furtherance +45 ourselves +7 wedding +1 coppersmith +2 imlah +1 mightiest +2 pethor +1 hadassah +1 garnish +38 faint +4 rameses +1 abelmeholah +1 resemble +1 evilmerodach +10 finish +21 killeth +9 caesars +392 mouth +13 behalf +4 chide +1 melchiah +1 runnest +1 inditing +2 easily +80 just +10 similitude +9 pangs +2 deacon +25 swallowed +1 thresheth +2 servest +3 mibsam +3 scornful +11 haggai +2 distil +1 hodevah +3 subdueth +1 sansannah +6 receiving +1 overran +1 scoured +1 unripe +19 keepers +3 beseeching +2 barrel +7 perfectly +5 lavers +6 beeroth +1 sycamine +1 slightly +52 asses +1 waking +2 methusael +3 begged +46 weep +2 transgressing +1 hashbadana +1 bekah +3 refresh +15 lazarus +3 embraced +20 obededom +3 epaphras +1 disfigure +2 affect +49 whereof +49 talents +1 endeavour +1 twigs +17 hanging +105 rock +50 gifts +1 discovering +1 imputing +6 sendest +23 jehoahaz +9 behaved +13 town +4 crystal +3 silly +3 demetrius +1 non +6 sunk +1 rechah +3 lattice +150 filled +18 baalim +4 sustain +16 sarai +4 dwellingplaces +6 pelethites +210 dwelt +2 manslayer +29 hateth +5 blasting +2 helps +2 murmuring +2 passions +3 golgotha +63 since +151 passed +2 sabachthani +1 izehar +1 shebam +6 joses +1 brandish +3 supply +7 prolong +1 zaphon +2 disdained +1 associate +2 naphish +118 tongue +5 lotan +12 rows +3 diversities +5 abidan +51 despised +10 manifested +6 housetop +1 tahtimhodshi +1 tertius +20 openeth +1 wrinkles +11 pronounce +1 ashpenaz +2 midday +1 cis +111 get +1 gispa +4 bethzur +1 refiners +58 raise +16 faithfulness +2 menpleasers +1 smelleth +12 move +20 harps +4 fullers +1 bribery +1 hadrach +1 clift +1 punishments +16 jephunneh +8 reeds +1 security +22 lusts +14 filthiness +3 scrape +1 bethtappuah +5 overseers +1 caphtorim +10 esteemed +272 round +4 envious +1 dresser +34 barley +1 halhul +5 restitution +68 moved +1 gabbatha +34 seest +216 wise +5 tale +6 reviled +35 sinai +1 bellows +3 operation +3 affinity +2 coniah +8 believing +1 sparing +18 faileth +2 gallim +21 concubine +7 dropped +3 flies +1 atonements +1 hannathon +2 hailstones +1 ezri +2 forsookest +1 habaziniah +1 dagons +19 bottles +1 stachys +1 hazaiah +2 wealthy +1 hunteth +2 dale +2 jesaiah +68 worshipped +6 teareth +1 sala +1 stamping +1 seducers +5 gemariah +5 leddest +1 brokenhanded +9 equity +2 refreshing +3 swell +5 vehemently +1 cropped +18 apostle +98 wherewith +1 anaharath +1 elisabeths +55 order +4 aright +5 athens +1 zebina +81 understand +10 gained +12 afterwards +1 opposeth +1 scaffold +2 forgettest +1 violated +2 wantonness +1 salu +1 nazarenes +1 handbreadth +1 myra +4 shemiramoth +17 smell +28 lives +5 degree +1 guest +1 recovering +1 afternoon +1 ahuzzath +1 muthlabben +1 voluntarily +5 marred +1 sighs +2 haradah +24 oblation +2 expressly +5 leprous +1 hezion +1 sneezed +6 cups +2 jehozadak +1 bethphelet +37 counted +24 covereth +2 spun +4 dignity +5 craft +1 fellowcitizens +9 dealeth +1 divining +2 azriel +64 portion +2 earneth +1 lusting +3 marketh +1 separating +155 second +1 accho +1 comings +1 collops +9 aram +9 barabbas +2 nephew +8 believest +1 eshtemoh +15 springs +13 andrew +34 fish +3 dart +2 frustrate +43 bind +10 waiteth +1 bimhal +23 hazael +1 accomplishing +23 ninety +5 comeliness +1 decreased +11 elihu +1 persis +1 arab +2 madon +1 kirjathsannah +1 bondservice +10 ariseth +10 reproved +2 fourfold +1 coz +2 lama +1 maai +2 planting +4 plumbline +11 several +4 herods +35 corner +1 shilshah +13 silas +6 ariel +11 hearest +1 zaphnathpaaneah +5 skilful +9 meal +2 jehonadab +116 fat +3 unmarried +9 wifes +1 marketplaces +9 curseth +1 beeliada +4 elements +3 forbare +2 chelub +1 castor +1 sith +12 cock +53 pleasure +1 mehetabeel +44 smoke +1 dryshod +241 gate +2 claws +13 lightning +1 tahapanes +32 jealousy +3 sudden +811 give +4 debate +4 naamathite +27 calf +11 acquaintance +1 shuthalhites +247 waters +1 nebushasban +2 forbearance +1 moist +57 abner +1 bajith +88 everlasting +4 swept +115 most +77 rich +21 egyptian +74 atonement +2 appeased +24 heave +1 banded +3 geshem +4 hazarshual +1 hamonah +1 feebler +40 fools +1 rafters +8 something +6 rephaim +3 pruninghooks +2 uncertain +3 pleaded +4 declaring +6 eliphelet +4 nourish +1 lasted +1 arod +2 unwittingly +16 covetousness +1 mozah +1 undertake +74 vanity +1 devourest +1 leathern +1 jod +1 headbands +4 sever +4 beholdeth +17 timotheus +23 wrong +32 korah +22 nebat +1 tortoise +7 travaileth +1 hopeth +2 publius +129 trust +1 solitarily +15 increaseth +1 miscarrying +2 gazer +45 red +1 heartily +45 shed +6 jeshimon +1 praetorium +3 lade +4 thenceforth +1 simri +74 liveth +1 humbleness +38 asaph +2 replenish +16 perizzites +1 siaha +20 courts +4 barn +2 tires +1 girdedst +1 forewarn +1 hazarsusim +3680 ye +22 usury +23 hasted +51 bashan +3 ahava +34 diligently +2 grievousness +10 leaf +3 phichol +3 scorning +3 adonikam +1 secacah +25 merry +3 booty +1 huppah +1 hapharaim +2 comprehend +1 brokenfooted +1 enmishpat +1 rely +22 tribulation +1 geder +1 stalled +1 abominably +30 learn +1 cyrenius +2 plaistered +6 scrip +6 desirous +4 farewell +19 bone +2 story +4 spoileth +130 whatsoever +1 ridges +1 profiting +7 drunkenness +18 sixteen +1 profaneth +1 bethbirei +9 famous +5 becher +1 sirah +1 shoham +9 lighted +2 reviving +116 depart +76 continually +2 alamoth +1 irshemesh +10 flax +12 huram +4 altaschith +28 cross +16 sounded +1 hashabnah +10 enchantments +1 uzzensherah +1 shooting +10 jonadab +2 ard +1 acceptance +1332 went +6 nathanael +1 ahuzam +47 wheat +17 familiar +1 unlade +2 briefly +9 wormwood +1 hazel +30 abundantly +1 tattlers +3 girt +4080 god +1 acknowledgement +1 salim +2 retired +4 crafty +1 zara +1 repentings +1 taverns +1 tizite +1 berothah +5 reasoning +1 neighing +7 pomp +3 youward +2 maaziah +2 eyewitnesses +3 cockatrice +3 azubah +1 limited +2 outwardly +1 flash +1 theudas +23 hebrew +13 ethiopians +2 sank +1 ashbea +1 zemira +11 overlay +1 tillest +7 waiting +2 contendeth +1 tiller +2 botch +1 foreseeing +5 chargeable +11 damnation +1 fared +2 lighting +7 changes +1 ismaiah +13 deliverance +1 appeaseth +1 jidlaph +29 deceit +57 fail +2 lordship +3 hateful +45 clouds +1 bowmen +1 garlick +2 cherisheth +13 spears +2899 was +4 preferred +1 seweth +8 crowns +76 reward +32 bitter +7 murmurings +28 thanksgiving +5 elath +1 check +4 cyrene +3 adrammelech +112 must +5 hattush +1 letting +2 wallowed +5 moza +12 mightier +8 workman +1 tirathites +4 incorruption +1 pricking +7 interpret +1 news +6 galatia +29 knees +7 liars +1 cuth +1 ignominy +1 chalkstones +2 deck +2 evidences +1 moabitish +11 encamp +4 view +1 approving +306 chief +1 lintels +6 hasty +5 costly +5 searching +2 describeth +1 phuvah +4 complain +6 neginoth +2 extolled +2 ossifrage +1 thongs +4 elhanan +24 offended +1 bizjothjah +10 slumber +1 shalman +3 admonition +88 sweet +22 lamentation +1 miletum +56 neck +78 labour +2 consenting +2 iram +1 handkerchiefs +7 bite +1 astaroth +1 nekeb +1 spindle +1 settlest +150 could +1 bechorath +2 jareb +19 southward +1 gropeth +89 caused +1 disappointed +3 marble +1 jaalah +1 gaba +1 ambassage +2 pisidia +1 complained +10 troubleth +22 cords +2 additions +1 revengers +1 unclothed +9 zin +3 asenath +1 harhaiah +27 wheels +21 caesar +16 parables +7 quiver +2 quaked +2 ozias +1 rhegium +3 note +9 jobab +5 rekem +5951 him +8 purchase +1 canneh +2 elzaphan +8 surnamed +1 asp +20 alas +3 intend +2 hymns +1 searchings +6 furnished +6 memory +41 refuge +3 fighting +1 chastiseth +4 stank +53 observe +1 shade +34 steps +3 seduce +2 prize +2 shady +2 nephews +6 thumb +18 performed +1 foreknew +4 alleluia +3 emims +200 concerning +2 kehelathah +78 prepare +3 fleeing +1 divinations +31 means +2 selvedge +1 regem +14 conceive +2 unlawful +1 plaiting +1 hazerim +1 adalia +60 hither +4 springing +8 aha +55 upright +14 star +2 eshbaal +10 bilhah +3 bethshean +2 testifiedst +7 mesopotamia +2 matthan +5 leaveth +19 hittites +1 jahziel +2 pledges +1 zethar +6 colours +1 sephar +7 repay +2 medicine +3 hamans +39 candlestick +632 again +1 pricked +3 thefts +2 stoodest +572 egypt +11 liver +30 looketh +1 twentys +6 watching +7 got +2 shuppim +10 spoons +9 thirtieth +23 winds +4 augustus +2 reconciling +1 hungerbitten +1 prescribed +11 badgers +4 race +5 forgave +1 kenan +3 jashub +456 thousand +13 chaldees +1 prevailest +1 enviest +1 conquering +2 offscouring +34 rising +8 complaint +83 poured +1 impediment +1 benefactors +36 receiveth +1 executioner +1 confused +1 soaked +1 naaran +1 heli +1 temeni +8 overflowing +1 mars +1 ado +24 solemn +1 doubteth +1 stiffened +1 mockest +37 asher +382 flesh +2 freedom +1 carcas +5 leahs +12 magicians +2 sparks +15 obedient +3 subtil +1 zephon +1 elymas +14 debir +3 marcus +2 coverest +1 suppliants +1 mehunim +35 walketh +1 covenantbreakers +3 borrowed +9 coupling +2 delayeth +1 rhoda +5 ware +3 nergalsharezer +16 burneth +2 partner +9 birthright +2 adamant +5 especially +2 jesiah +1 cherethims +4 tempestuous +13 natural +80 hearkened +11 achaia +6 eshcol +5 shimea +1 mede +13 laying +1 shupham +4 togarmah +5 removeth +1 intermission +8 deliverer +1 coffin +1 syriack +14 kidneys +37 thick +3 philips +1 curiously +1 observation +2 diet +9 owner +3 unstable +2 lawyer +8 jerimoth +1 foresaw +27 obtained +2 arvad +36 whereby +12 magdalene +1 hats +2 considerest +6 lasciviousness +37 damsel +1 azbuk +56 horns +11 canaanite +45 beyond +1 jehoiachins +4 heels +10 beriah +15 greet +1 wrongeth +1 suah +1 intelligence +17 freewill +2 reprover +2 succeedest +1 couplings +3 abounding +2 famished +1 rainy +15 amariah +1 meddled +16 window +3 phrygia +3 mahlon +8 handmaids +2 raisins +1 muttered +1 aharah +1 calvary +1 bethrapha +8 couple +1 shisha +5 detestable +2 aprons +1 bellies +4 steel +1 ribband +8 sweareth +2 imla +1 baalis +26 sealed +1 mehir +1 traps +2 effectually +1 shapen +1 adamah +4 ithrite +92 generation +62 chaldeans +5 soldier +12 sidon +1 pethuel +2 decapolis +2 traditions +1 nephish +18 keeper +6 withstood +13 placed +6 tombs +6 instant +1 emboldeneth +8 shortened +1 unprepared +3 drieth +1 stripling +2 bohan +25 camest +3 midwife +1 mejarkon +133 rise +7 awaked +1 zeror +1 stinketh +1 beneberak +1 jesting +2 square +1 wench +1 philetus +2 partiality +1 weaken +1 confiscation +1 stiffhearted +8 fold +1 julius +2 zorobabel +48 jehoiada +3 circuit +36 eastward +3 ransomed +1 stalks +3 pictures +2 dealers +272 deliver +2 adventure +1 gibbar +1 swoon +1 abana +2 garner +1 scarest +190 long +3 gittith +26 creeping +5 notable +15 filthy +1 ibnijah +2 termed +2 abimelechs +48 laban +1 bethpalet +7 heretofore +5 jeshaiah +206 walk +1 prochorus +1 ambushes +38 grieved +18 uprightness +1 imagineth +1 severed +2 lighter +113 half +42 bought +1 marishes +3 acknowledging +1 planters +2 savest +6 palms +1 waterpot +9 murder +2 faults +36 blue +13 shewbread +3 rinsed +3 toi +1 joinings +61 abundance +1 attentively +1 observers +151 ephraim +7 nail +2 barsabas +4 sleepest +3604 have +18 roar +1 asshurim +1 shapes +97 lamb +1 droves +1 jezerites +1 lizard +51 seat +12 agrippa +1 raca +2 mending +150 received +7 scorpions +2 win +3 telling +6 sorts +1 taxes +1 alleging +1 sprout +49 promise +2 stable +1 spokesman +229 feet +50 gift +10 forthwith +3 sealeth +166 door +2 gender +47 glorified +1 irons +11 ruled +2 untimely +3 smelling +2 henoch +1 aristobulus +374 fear +2 maintenance +1 ittahkazin +1 putrifying +1 sosipater +3 henadad +341 keep +6 chase +11 ashtaroth +1 bethharan +4 rot +4 joint +15 exhort +1 nourishing +160 slain +2 jehoshabeath +2 bakbuk +3 tomb +3 transformed +1 jehudijah +1 jona +6 morter +2 conversant +1 stomachs +1 merodachbaladan +29 preserve +22 lovers +1 willow +8 mishael +2 sevens +8 temptations +1 jaresiah +13 prospered +41 resurrection +4 apothecary +10 berechiah +2 dreamers +5 seals +1 noontide +29 peradventure +4 gross +1 jaala +3 protested +2 whiter +1 janum +2 ozem +345 until +1 shamelessly +1 assaying +46 inquire +20 reckoned +1 obal +36 shake +3 fashioneth +8 example +8 sherebiah +19 floor +1 sorcery +49 rehoboam +5 geshurites +99 likewise +1 jimnites +5 constrained +19 betrayed +9 mules +2 lovely +2 sorrowing +1 feebleness +1 azotus +10 lights +296 cut +42 masters +47 sworn +8 censers +1 pannag +11 pekah +4 baptizing +5 cluster +1 winnoweth +40 spare +33 rebelled +94 minister +62 fought +1 partridge +40 hard +1 joyed +3 peninnah +1 ituraea +12 divisions +8 abiding +1 ferry +1 ruhamah +2 mingle +30 bodies +7 wipe +2 crispus +2 revelations +17 quenched +18 drank +1 gap +16 crieth +1 eglaim +18 zerah +2 gittaim +1 tamah +17 tempest +1 couchingplace +16 rabshakeh +1 ulai +1 stately +5 roast +2 jehovah +20 praying +8 ebal +23 fly +1 employment +24 husbands +37 shekel +1 accepting +1 fleshy +2 ishtob +1 toah +1 baaltamar +1 malignity +2 bundles +4 signifying +1 presses +150 benjamin +3 puffeth +1 wring +1 writings +11 kidron +2 sinning +1 alloweth +4 ink +5 unbelieving +27 thief +1 concord +1 hiel +3 hurtful +1 fewest +3 describe +1 conquer +4 overturn +1 nameth +1 drewest +1 thereabout +189 places +9 contention +1 sinnest +2 adiel +15 hezron +5 mocking +1 ramathlehi +7 poureth +100 present +3 shemariah +2 directly +4 sabeans +257 turned +1 yelled +20 sum +1 potsherds +113 ashamed +1 untoward +20 ward +95 flee +2 heavily +1 bishops +1 soundeth +2 harrows +2 undersetters +11373 in +6 danced +16 firmament +306 dwell +1 rattleth +4 deeper +4 divorced +13 mephibosheth +7 baker +81 reproach +2 thundereth +1 practices +8 foreheads +3 beating +29 elias +1 merrily +1 wounding +9 proverbs +5 hashum +1 savours +1 stubbornness +1 dresseth +519 holy +1 lioness +8 chamberlains +1 disappointeth +107 lips +29 jeshua +2 volume +1 landing +6 navy +1 differences +1 beriites +2 canaanitish +9 persecution +2 satisfying +2 reaching +50 seeth +1 farm +5 trial +7 cruse +1 nehum +1 nethermost +1 makers +1 consulter +1 oweth +1 jehubbah +1 ahinadab +1 bursting +1 nehushtan +1 borroweth +2 ether +143 understanding +2 hariph +22 displeased +1 shemeber +2 preservest +1 scourgeth +44 redeem +33 deeds +28 nobles +1 anointest +384 face +1 coloured +1566 there +2 lapped +1 outwent +47 prophesied +830 who +7 blast +2 manasses +201 sacrifice +1 profaneness +5 rehabiah +2 mezahab +1 acquainting +1 orchard +1 clouted +3 jonathans +1 emptiers +1 reubenite +1 namely +1 gatherings +108 prayer +5 ropes +86 iron +1 boanerges +1 hermes +1 banquetings +169 arose +1 ishbah +1 maktesh +2 spouses +13 banquet +1 shimeam +1 oznites +4 lively +2 rissah +3 howsoever +4 jabez +5 jaws +1 jotbath +2 jekameam +2 belonging +160 body +1 girls +2 proselyte +3772 me +11 laughed +17 fault +4 adorned +31 lost +2 lesser +1 ezel +49 past +1 meroz +1 execution +2 concourse +4 lady +6 swifter +3 bondwomen +1 strokes +4 laded +123 sanctuary +1 athenians +25 teaching +3567 which +1 shahar +2 beggar +2 gob +2 aser +1 ammah +12 comely +3 flagons +6 cheweth +2 mehujael +3 zered +2 findest +6 astrologers +4 deaths +5 guests +5 vials +6 decked +34 brothers +1 pare +5 ordain +2 reaping +8 perfected +260 told +4 mulberry +45 naphtali +2 looseth +2 imnah +1 pillows +1 closest +2 dispossessed +11 bold +54 wonders +9 pollute +7 spoilers +14 shewing +1547 are +1 pharzites +1077 every +1 benoni +1 honesty +2 awakest +3 jaddua +3 eater +1 palestine +465 priest +7 occupied +45 prosper +2 penury +4 burdensome +23 beareth +2 notice +2 convert +1 jachan +21 ekron +2 babel +50 fifth +1 sealest +1 unrebukeable +8 tormented +23 solomons +245 twenty +1 maneh +4 helez +9 tops +2 sacrificing +17 concubines +1 hearkeneth +4 creator +6 mortal +2 choler +1 wilfully +1 blaspheming +1 fallest +24 robe +1 loftily +36 grow +49 slept +2 sabtecha +4 accompanied +23 apart +1 effeminate +5 toes +4 liftest +33 beat +100 idols +50 named +5 enan +1 enterprise +2 rephaims +1 vein +1 plat +9 groaning +1 purifications +3 perverted +2 rash +16 betwixt +31396 of +2 unworthily +1 ceremonies +1 wringing +9 circumcise +2 bountiful +18 conspired +4 eminent +1 restingplace +2 tales +2 engrave +2 vowest +2 cornets +70 testimony +11 footmen +66 behind +4 miry +4 fatlings +8 adullam +1 monsters +8 sail +1 roarings +1 nymphas +6 throat +86 linen +3 weepest +8 restrained +12 vexation +2 ezbon +1 zatthu +1 paruah +5 flieth +4 weepeth +1 purely +94 saints +9 hoof +1 renderest +8 fleeth +96 beloved +7 revolted +1 sardonyx +1 proceeding +1 magpiash +637 set +7 hypocrite +3 embalmed +5 timbrel +6 grasshoppers +6 trustest +9 riddle +2 pacified +80 ass +3 householder +25 worse +5 ataroth +3 meshelemiah +5 hosah +7 quick +1 finisher +2 tenderhearted +7 aforetime +3 fords +14 theirs +3 heaved +2 respite +6 sevenfold +1 fillets +10 profitable +1 lebbaeus +12 wool +1 degenerate +2 solemnly +22 lachish +66 abode +4 denying +1 brokenhearted +1 ostriches +1 jeremai +2 hearer +1 delightsome +1 resh +3 meaning +77 edom +94 rain +2 sheet +1 bealoth +1 shammoth +1 circumspectly +28 therewith +1 zuzims +183 wrath +20 insomuch +1 pedahel +72 pure +3 tiberias +2 dominions +1 shimrith +54 dominion +1 nephishesim +1 tossings +5 slip +1 breakest +249 enemies +2 glutton +8 diseased +4 adulterous +2 unthankful +37 jehoiakim +1 aruboth +4 hospitality +26 bonds +1 humbly +4 edification +2 ezekiel +7 dressed +3 multiplieth +2 izharites +1 goodliest +1 dimonah +1 comers +3 siloam +31 sown +10 pomegranate +5 nicodemus +1 loathe +27 deceive +20 prophecy +1 mealtime +3 abase +1 cabins +32 singers +4 expelled +1 elkoshite +1 lapidoth +7 shammah +5 pelatiah +9 wagons +22 rocks +1 tebaliah +1 migdalgad +4 revenge +1 stonest +3 beginnings +6 netophathite +4 advantage +1 instructing +1 moveable +1 extreme +1 mahlites +2 overshadow +19 shields +2 persuadeth +2 shapher +2 justifying +1 affecteth +4 looks +2 sadoc +1 kenizzites +1 jahzeelites +1 wotteth +1 parlours +14 leavened +1 chelluh +4 jokshan +1 haroeh +8 rob +8 box +137 vessels +1 adams +5 weights +1022 our +5 smoking +15 kadesh +1 timaeus +1 suborned +10 strike +1 cunningly +26 trodden +8 rahab +3 hemath +6 tossed +1 chozeba +2 spiders +1 current +4 thundered +3 sop +1 scornest +1 abez +10 lowest +2 misrephothmaim +1 blotteth +11 vinegar +35 heap +6 cord +4 blown +10 eagles +5522 them +1 kirjathhuzoth +3 surprised +2 chew +50 risen +125 wives +2 prune +32 silence +1 abolish +6 dissolved +1 ishuah +3 lifetime +1 forbiddeth +151 battle +7 beeves +2 shower +1 shaulites +3 sallu +8 confident +8 disperse +14 minded +5 holpen +2 marrying +1 zamzummims +1 barjesus +1 pharpar +12 slow +1 respected +1 hindereth +8 agreed +108 beside +1 beri +5 mustard +1 lawless +12 counseller +3 apples +41 joined +1 modest +1 hirams +3 mene +48 noah +1 screech +30 gracious +4 owest +2 haters +3 valued +2 pole +25 withered +1 slewest +2 soap +1 brigandine +1 blaze +1 murrain +2 imri +9 burst +4 fitly +1 translate +6 achan +1 hamors +13 crooked +4 juniper +3 dwellingplace +44 simeon +1 melons +42 naked +2 sisamai +3 organ +8 perdition +6 meribah +1 administered +1 brawler +1 feebleminded +1 helkai +1 heleph +3 farthing +6 beryl +1 pierceth +113 numbered +8 tabor +1 entangleth +1 rescue +2 dregs +16 mean +2 cuckow +2 johns +1 calcol +1 hothan +2 shobai +1 adramyttium +1 eutychus +13 seeking +1 scourges +1 padan +60 loud +1 humtah +10 ruin +23 jehoram +1 helekites +6 narrow +2 recompences +9 adversity +8 commune +1 maralah +6 withdrew +1 respecter +5 sect +1 estimations +1 hatefully +9 discomfited +1 kishi +36 vail +10 suppose +31 whereas +1 saph +9 castle +1 excelled +3 target +2 baalberith +2 departure +1 bakemeats +50 burning +12 correction +70 served +3 wondering +9 foreskin +6 chest +3 danites +7 aijalon +1 harping +1 mounted +1 punites +2 nahaliel +718 according +8 cud +1 calfs +1 injurious +18 shushan +3 backside +19 og +2 trump +5 mockers +4 glorying +1 conaniah +1 millet +8 rabbi +2 forbeareth +8 endured +265 babylon +6 wrongfully +4 labouring +1 sigheth +7 ouches +2 perceiveth +68 shadow +2616 when +1 revilers +15 shortly +3 dromedaries +1 anub +2 wonderfully +5 folds +1 honours +63 faces +2 apes +1 conceiving +1 goatskins +53 dost +1 hale +2 liberally +1 imperious +3 eziongaber +3 perizzite +2 ribs +3 goldsmiths +2 booz +4 fellowservants +6 dinah +60 think +1 heated +1 escaping +7 shinar +2 swan +2 horribly +118 kill +1 hethlon +12 kohathites +8 push +173 cry +1 executedst +2 whirlwinds +60 comfort +14 strove +3 marketplace +14 whereupon +1 shenazar +4 pilgrimage +15 brooks +2 wafer +60 hills +1 rageth +252 return +1 inflame +26 repentance +4 licked +39 amaziah +47 confounded +3 milch +60 abomination +1 controversies +1 zenas +1 shivers +1 oldness +1 libertines +1 flagon +1 haniel +13 footstool +5 grieve +2 shorn +9 rained +1 overfloweth +1181 therefore +1 mazzaroth +245 power +3 salathiel +3 behaviour +38 issachar +50 sepulchre +37 rings +9 honoureth +8 spakest +1 disquietness +1 dishonourest +1 nahallal +36 utter +7 noble +1 overtaketh +1 moderation +1 upheld +2 galeed +6 deadly +7 entreated +3 professing +1 excusing +107 captains +59 jericho +4 calledst +2 tarrieth +1 uncorruptible +1 kishion +22 falleth +10 earrings +1 rase +87 removed +29 molten +3 potipherah +4 admah +2 hatita +7 ministration +1 refusedst +7 reconciled +111 spoil +9 idol +18 large +8 manifold +35 arrows +3 pondereth +3 bodily +2 mustered +3 goldsmith +1 appertain +2 whales +98 enemy +155 peter +4 shamed +1 repliest +1 eyebrows +2 gloominess +53 standing +2 ziza +12 kareah +2 scabbed +2 fraud +11 nature +1 zorathites +26 whirlwind +1 antichrists +11 almost +3 awe +1 waymarks +1 burnished +3 revolt +105 myself +33 writing +23 virgins +10 vashti +6 stooped +6 asking +2 sojourners +1 bamothbaal +2 excused +17 thunder +2 striveth +7 hissing +3 highminded +1 cleopas +4 sorceries +4 chastised +1 parchments +24 waves +1 satyrs +9 inasmuch +1 jeuel +3 lien +2 risest +3 mist +1 betrayers +4 covenanted +1 liquor +1 beerlahairoi +4 amiss +1 hukok +1 occupieth +37 uncleanness +205 anger +2 mehetabel +8 abdon +397 blood +3 suit +4 saluteth +5 baalpeor +2 hatipha +45 search +65 sorrow +11 guile +3 leaders +8 ere +1 authorities +20 ended +1 chenani +434 through +2 fattest +2 janohah +1 fellowhelpers +1 entertained +17 longer +5 benjamites +3 delay +2 couches +18 omri +1 baalshalisha +492 law +1 seirath +77 feed +3 sowest +2 ospray +13 hashabiah +2 elasah +1 rohgah +41 boards +16 hatred +11 bestowed +3 chiefly +39 changed +8 pedaiah +6 jahath +2 provoketh +1 solace +1 ephraimite +21 marry +40 awake +38 heal +42 instruments +4 kedemoth +12 heardest +1 babbling +7 apple +3 necho +1 commission +1 driedst +1 thelasar +2 anath +4 edges +10 knewest +25 change +1 quartus +7 agree +24 dogs +1 joying +1 nezib +2 procured +4 reprobate +1 omitted +1 sherezer +5 venison +114 clean +1 prudently +1 pispah +10 rehob +7 value +1 shimeon +2 adjured +2 wherewithal +4 careless +4 reproveth +2 trustedst +253 gathered +1 increasest +35 oh +1 slumbered +3 betrayeth +10 highways +1 greediness +2 sustenance +1 gilalai +5 comforters +1 naarai +35 prevailed +6 pursueth +3 pricks +20 nadab +1 netophathi +245 jews +2 hymenaeus +1 sarais +8 provided +1 castaway +1 unmindful +1 railings +1 subscribe +15 thrice +17 counsellers +2 bethhoglah +11 jeiel +2 tempter +2 infant +29 pity +1 apelles +8 hormah +7 camel +9 reapers +5 eshtemoa +3 dodo +6 salutation +6 leaned +1 kirharesh +2 mess +14 terrors +3 declareth +12 loops +1 mem +8 shechaniah +20 strive +1 arba +1 hezeki +6 cloke +33 tongues +1 bakbakkar +9 mourneth +19 spot +60 kindled +1 aloth +4 dyed +2 jehoadah +137 verily +23 female +20 snow +1 goads +26 curtains +4 disquieted +59 devil +37 plant +1 artificers +1 ummah +7 masons +10 weaned +1 banqueting +30 array +1 molid +3 hegai +1 brayed +21 talk +67 trespass +7 faithfully +1 dizahab +11 companion +1 deliverances +2 grecia +1 presumed +1 jehud +3 platter +1 causest +1 executest +6 soothsayers +1 pillow +1 parthians +1 vaniah +7 fragments +66 cease +2 anaiah +21 carmel +17 ignorance +3 interpreter +5 hidest +22 astray +2 polished +16 christs +18 hadst +207 wine +1 unprofitableness +6 fret +21 breach +4 ulam +17 publicans +4 kir +1 wimples +1 berith +1 lycia +1 woods +162 built +5 haggith +1 lasting +28 walking +4 nepheg +1 hermonites +144 able +14 pronounced +2 pinon +11 weighed +1 badest +60 swear +1 trusting +112 seventh +2 pollutions +41 judaea +3 amalekite +1 sawn +1 drawing +6 seventeen +33 herself +1 pate +4 zur +2 amzi +2 merom +19 ascended +2 deliverest +2 flowed +1 menstealers +85 sound +35 churches +3 deeply +2 disputings +2 mint +137 believe +24 amalekites +1 superfluity +2 mastery +5 shuah +173 host +1 wanderest +3 ithiel +8 patient +1 chargedst +136 ears +1 ishpan +1 spat +3 sapphires +3 buildings +64 obey +6 pleaseth +20 province +1 neighings +2 tabbaoth +3 mahalath +2 phares +1 channel +17 obadiah +4 custody +1 jokmeam +6 secure +1 sela +2 writers +6 enlightened +1 fretting +1 gathhepher +1 incredible +38 goods +5 elizur +3 ascribe +3 spendeth +2 dophkah +1 devote +3 planks +3 wards +4 signed +2 beeri +2 harodite +76 church +2 smitest +2 leopards +8 bridle +15 seemed +1 bestir +3 hachilah +14 nostrils +2 hattil +14 heth +1 josabad +17 fasting +7 hastily +1 pushing +2 wiles +6 meditation +4 fasten +1 conclude +67 plain +92 fine +7 blindness +4 athirst +9 appeareth +63 loveth +3 dish +6 selleth +2 rimmonparez +9 nahash +15 ahitub +2 diklah +3 japhlet +2 helping +11 hanun +6 marked +29 crying +2 watchtower +19 ahikam +13 deaf +15 layeth +481 how +5 effectual +1 restest +1 slandered +5 lightened +40 covering +1 witty +4 kerioth +3 begging +10 regardeth +2411 israel +3 tin +6 laish +4 adin +1 temanites +15 thirteen +1 revealer +13 whore +20 sawest +6 joktan +4 aholah +19 release +5 passages +11 draweth +64 burden +3 dine +1 reverend +5 delicate +4 easy +1 sorroweth +1 washest +16 candle +6 mote +11 birth +66 indeed +7 shaphat +10 beds +1 minni +2 mithredath +1 espied +3 trance +7 zebadiah +2 apace +28 barnabas +11 hairs +558 time +53 escape +6 taskmasters +3 greetings +139 back +1 mournfully +1 parmashta +27 memorial +1 raham +2 cane +1 bedeiah +4 shod +15 vowed +1 aboard +2 obeying +1 hupham +15 zimri +1 yearn +601 called +1 halak +1 lasha +7 feeding +3 handleth +2 roboam +8 cake +95 heads +6 overseer +1 payment +1 betah +14 subjection +5 envying +18 heir +1 blossomed +1 memphis +22 void +1 pondered +6 chamberlain +1 seared +5 melteth +1 lewdly +8 fleece +9 partaker +2 threatenings +1 berodachbaladan +1 nicolas +107 didst +1 matri +35 testimonies +6 mete +1 firkins +29 corrupt +3 bethphage +3 mesha +1 meribahkadesh +1 alexandrians +34 sihon +398 cities +3 flames +15 eleven +454 given +2 wizard +1 nergal +6 tolerable +32 oppressed +1 ammi +131 here +5 compel +4 talmon +6 self +1 plowers +9 deborah +1 beon +8 proudly +1 threefold +1 file +4 terrified +19 murmured +4 blowing +2 phut +1 quaternions +4 labans +1 humiliation +3 tanner +3 stump +9 chapiter +4 rechabites +1 eliabs +3 exhorting +67 wings +5 bemoan +10 ammihud +48 parable +1 machbanai +3 proportion +6 flattereth +1 saltpits +29 inhabited +143 reign +31 males +2 altered +1 amerce +96 eaten +1 zared +2 latin +12 accounted +1 bethanoth +1 forfeited +42 root +6 gray +2405 you +1 azaniah +2 dasheth +5 pedahzur +1 accuser +11 ahimaaz +15 caesarea +1213 saith +1 refraineth +1 itch +2 ginath +2 luhith +1 zibia +412 would +2 winged +6 blasphemies +5 pagiel +1 shiloni +3 pelaiah +2 rithmah +30 execute +4 asss +37 authority +111 wood +4 forbearing +4 oaths +10 warn +1 sepharad +4 hananeel +11 dagon +6 hearth +2 gazingstock +1 staggereth +1 conference +5 encouraged +11 maidservants +1 bathshua +267 judgment +10 cleansing +2 meholathite +3 abuse +2 corruptly +24 tempted +2 thankful +13 pots +2 triumphing +1 ovens +13 abinadab +21 amalek +1 lahmi +1 jerahmeelites +1 servitor +10 maintain +2 stripe +1 agony +15 purposed +13 geba +3 libya +1 diest +1 soil +1 hamuel +1 withdrawest +1 layedst +3 triest +1 peres +3 ephraimites +1 spitefully +113 perish +1 debates +18 swift +4 abased +1 filling +4 haughtiness +1 bamah +1 maalehacrabbim +6 zabdi +1 hagaba +1 acres +1 dureth +1 spiced +1 beerah +7 ewe +8 silent +1 antipatris +1 rattling +1 laud +27 members +3 spittle +14 tobiah +2 speaker +5 binding +7 swelling +8 onan +1 unreproveable +50 chambers +418 priests +7 robbery +4 bartholomew +54 fowls +2 mast +3 chargers +616 good +3 quails +2 sparingly +1413 if +2 calah +300 cause +7 perisheth +6 deserts +2 thirtyfold +1 broided +247 laid +1 azarael +3 ruddy +789 city +1 zaham +2 zemaraim +1 watchmans +2 acquainted +2 darling +1 complaints +53 remained +2 couched +1 stretchedst +161 twelve +7 lofty +22 mystery +5 oliveyards +7 mahalaleel +4 bilhan +13 diseases +2 sweetly +3 naughtiness +369 glory +570 mine +1 scrabbled +4 lusted +1 mortgaged +4 spots +19 abrahams +1 kattath +2 requireth +3 ate +1 heled +3 sheepfolds +2 reel +2 sobriety +1 slidden +2 shelomoth +1 scoff +67 villages +12 gezer +7 crushed +11 dishonour +2 agar +2 restorer +2 thaddaeus +3 panteth +20 achish +3 hagarites +98 desire +1 nahamani +1 bellow +2 choke +16 breaking +2 tinkling +5 plagued +1 jahaziah +3 bags +1 jesimiel +3 fornications +3 counteth +1 revilest +2 leshem +6 elim +81 daniel +30 ordained +1 waterspouts +2 advised +3 condemneth +55 devils +1 winebibbers +4 zohar +36 quickly +16 lend +18 laws +3 plummet +46 coasts +13 shadrach +1 zia +32 waited +4 azrikam +1 falsifying +6 retained +5 simplicity +29 abideth +64 beseech +6 bebai +28 formed +9 preparation +12 testament +11 arrayed +36 harlot +1 othni +1 ladeth +13 reigneth +9 ziba +1 melech +4 trumpeters +1 shophan +2 hypocritical +1 fallowdeer +29 testify +1 sharaim +2 pathrusim +175 month +156 far +4 abinoam +20 deny +311 head +3 impute +76 thought +15 inwards +1107 after +1 presenting +1 ending +3 naasson +14 shave +12 reach +104 teach +4 knock +4 profession +4 strifes +2 childhood +1 healer +2 loatheth +8 chastise +1 thirdly +1 enlighten +1 hoised +53 deal +2 medan +2 described +2 redeeming +9 scales +8 hunt +7 innumerable +3 diggeth +1 kingly +1 stepped +2 approached +60 waste +3 eliada +30 tread +2 maharai +12 arrow +4 hashub +5 ira +181 near +1 groaned +1 herodion +1 ishod +140 jeremiah +2 stealing +761 judah +103 fight +66 images +1 slumbereth +15 stolen +14 pashur +1 diblath +1 rolleth +7 softly +4 vanish +12 floweth +1 slaves +7 kinsmen +7 jether +8 edifying +3 wallow +123 meet +30 lad +2 cool +2 vermilion +19 jubile +1 rusheth +1 wanderings +1579 land +2 halteth +62 soon +8 deviseth +104 woe +21 sorrows +1 rolls +1 anathema +33 rebellious +1046 down +5 jeremoth +1 fortunatus +4 footsteps +8 withholden +1 sue +4 strings +27 hundreds +2 loft +2 eliphalet +6 peoples +167 third +2 slime +1 karnaim +1 adlai +16 capernaum +235 seek +10 accusation +4 zophar +4 sharpened +3 naughty +4 tare +1 sparkled +22 marvellous +5 wares +1 discontinue +5 persians +2 layest +1 glorifieth +12 lamp +3 apt +163 certain +102 seeing +2 unequal +200 tell +3 befalleth +1 pleadings +4 flute +16 unjust +9 astonied +4 alien +2 obtaineth +2 patriarchs +16 wages +9 adaiah +3 journeying +12 fierceness +2 wombs +1 keziz +1 worthily +1 forswear +1 usest +3 beholdest +6 reading +14 trespassed +1 athaiah +2 gederoth +1 cries +11 reacheth +10 butter +1 motions +71 branches +1332 saying +4 cana +61 killed +1673 children +1 ahishar +16 childrens +19 stoned +2 cisterns +51 journey +2 hashmonah +143 beasts +20 sinneth +22 mens +3 railed +1 admonishing +29 loaves +670 nor +54 seventy +5 hammer +4 saddle +1 sumptuously +1 kitron +5 peaceable +1 bits +3 consecrations +1 tobadonijah +2 tahan +1784 her +465 spirit +1 berries +2 straits +5 rottenness +2 hammelech +87 declare +4 weavers +1 lamed +1414 so +12 consecrated +31 henceforth +4 loves +26 gird +11 titus +1 baser +1 hanniel +1 beulah +2 urgent +1 galatians +209 joshua +5 lodging +1 backbiters +1 mortality +1 hough +236 philistines +12 sort +12 abihu +1 immutability +1 whirleth +7 outside +2 gier +25 likeness +1 distracted +1 shameful +1 hadadrimmon +13 sennacherib +4 migdol +4 mammon +2 ahabs +5 daubed +6 tenons +1798 on +1 ziphah +150 began +33 eli +33 inner +10 condemnation +18 micaiah +1 stealth +1 bark +1 letushim +2 friendly +1 bachrites +1 nitre +7 rough +42 former +5 jamin +2 dimon +23 path +15 zeal +1 dealer +2 harsha +2 wanderers +12 delighteth +2 adonizedek +22 comest +23 dismayed +7 diviners +4 media +62 measure +54 daily +3 forgiving +9 caiaphas +1652 before +27 thank +1 chemarims +1 displayed +89 perfect +67 read +1 aphses +15 dwellings +1 abstinence +1 blindfolded +94 shame +2 weaver +1 blasphemest +4 caldron +9 hollow +1 cockcrowing +1 remembrances +1 amrams +20 rested +6 exercised +43 graven +7 foursquare +3 loosing +64 matter +7 shutteth +22 persecute +41 captives +3 thessalonians +1 perfumes +1 nodab +2 jehoshua +1 vajezatha +5 pottage +1 hashupha +5 oppresseth +1 thereout +4 doubted +2 impoverished +118 sought +1 wallowing +133 cubits +1 chiun +14 rods +1 bethlebaoth +7 baldness +1 ardon +2 predestinate +1 brethrens +4 spareth +5 welfare +1 gainsay +3 withs +2 moloch +4 stumbleth +3 peeled +1 diotrephes +1 nagge +2 provideth +1 chezib +4 faithless +2 adriel +9 seekest +4 presently +24 humble +662 word +11 defend +1 straiten +2 forgavest +5 foreskins +4 terrify +1 accad +33 leprosy +11 anah +2 arpad +5 leopard +1 jerusha +147 lo +6 physicians +332 jacob +12 erred +7 aholibamah +1 straiteneth +4 blasphemeth +1 unskilful +95 clothes +1 premeditate +51 violence +9 eliel +1 kernels +1 sleeper +1 jesher +4 railing +7 bruised +1 repayeth +20 stronger +26 ointment +2 deceiving +10 sunrising +113 suburbs +18 offence +1 zedekiahs +1 kushaiah +7 shebaniah +5 sour +13 meditate +1 jeziel +3 godward +1 butlers +7957 for +1 hammoleketh +7 yearly +3784 said +1 contemptuously +14 safety +1 excluded +2 pelet +1 spreadest +2 stammering +10 robes +2 discord +15 avenged +907 father +1 poplar +209 being +7 slaying +23 rebuked +8 noonday +6 delights +2 blains +1 galbanum +4 thyatira +1 careah +1 meonenim +1 doleful +5 reproaches +1 trucebreakers +1 choosest +5 superscription +3 walled +1 overspread +264 field +4 decline +4 riders +24 sprinkled +1 evildoer +1 resemblance +78 amen +12 discover +1 chesalon +1 constant +17 betray +1 ringleader +3 reprobates +2 endless +1 bishlam +9 observed +11 damsels +3 hundredth +27 apparel +1 tumbled +2 jehdeiah +13 bases +18 ahijah +1 implead +3 relied +17 saidst +2 bethmarcaboth +31 sheba +2 glistering +1 greyhound +1 fellest +3 terribly +3 gnasheth +3 figures +5 seeds +5 baalah +18 heavenly +25 dung +1 asuppim +781 neither +4 breathe +1 distinctly +15 content +2 joyfulness +1 allure +1 appease +1 harped +2 rushed +21 merchandise +2 eliah +3 claudius +4 seize +1 hobah +15 prosperity +4 favourable +11 milcah +7 forgiveness +2 blossoms +2 jaaziah +11 happened +1 encamping +9 bitterly +11 paran +1 dispersions +29 porters +1 jumping +1 ramathaimzophim +357 water +2 lads +5 wolf +27 putteth +20 dreamed +1 profound +1 harum +2 pulse +1 unstopped +2 spiritually +1 warming +1 climbeth +1 uncleannesses +1 peors +1 chewed +11 threshold +1 candace +1 alvah +3 inquisition +3 bowing +112 sing +1 amashai +1 tibhath +2 eveningtide +6 persecutest +7 pulled +6 balance +3 inkhorn +14 lack +4 ashan +2 odious +15 meek +1 bethcar +2 corinthians +2 liking +5 innocency +4 dreamer +1 defendest +4 aware +1 protection +12 wear +10 perfection +85 foot +135 break +143 reigned +19 roof +1 eubulus +1 college +36 worketh +11 seats +1 stargazers +1 possessing +2 overtaken +9 affrighted +239 faith +3 fourfooted +145 lie +6 sack +1 bazlith +1 bethgamul +4 betroth +1 messiah +1 leisure +2 sufficiency +30 nun +2 joatham +2 jotbathah +275 solomon +10 necessity +2 ishmaelites +1 warreth +4 unruly +1 shihorlibnath +347 brother +1 butlership +1 rumah +2 josaphat +40 provoke +16 play +2 shalmaneser +13 palsy +2 avouched +13 serpents +1 hiddai +1 thahash +1 arumah +23 jotham +28 conscience +1 aramzobah +1 lebana +12 ornan +33 instead +1 shophach +4 peters +1 examining +113 asked +14 gathereth +18 shoes +280 delivered +9 lilies +2 fervently +4 mahlah +2 bier +2 hezronites +1 aridatha +2 eloi +1 goad +2 adna +2 licence +1 zererath +2 zuph +1 gloriest +3 eatest +1 azaz +1 confidently +3466 thee +3 gloriously +44 repent +2 faulty +2 perfumed +40 herod +3 ruined +3 aner +1 remitted +33 hilkiah +1 permission +1 sundry +1 ishijah +4 divorcement +2 late +3 hairy +15 fiery +4 sentest +1 intreaties +8 considereth +7 ceasing +5 parcel +15 reproof +2 jewel +4 bricks +1 busybody +2 christian +1 standardbearer +3 fearest +5 proof +8 washing +3 marvellously +4 reconcile +618 more +2 beautify +7 spotted +69 dan +4 reject +8 mamre +1 haling +2 invade +1 pronouncing +2 allon +1 indebted +56 mothers +8 sheaves +1 ants +2 cheese +9 babes +19 suck +9 herein +2 bedad +27 breastplate +1 achmetha +1 tohu +1 lefthanded +116 captivity +1 paltiel +15 musick +1 toiling +1 gourds +39 rachel +4 judahs +2 anon +1 mispar +2 whited +1 nebai +12 amoz +4 jaazaniah +6 salah +9 stiffnecked +32 purple +1 chrysoprasus +6 lice +9 hanan +2 paw +6 drams +3 getting +7 sapphire +19 bethshemesh +7 easier +1 heres +6 moabitess +1 slingstones +52 forgive +31 answering +2 concealeth +1 ancles +7 provender +2 meant +1 plantedst +58 forsake +9 post +1 encampeth +4 tokens +6 bountifully +19 murderer +28 hananiah +1 lordly +9 island +49 hell +1 gammadims +1 newly +1 hathath +2 hasting +5 unlearned +1 subduedst +9 gileadite +2 shimeath +7 straitened +21 best +1 haggiah +5 mar +51 devoured +10 warned +13 abel +1 jeriel +5 parlour +3 hammers +4193 thy +2 gaped +4 gileadites +1 enchanters +294 pray +1 hoods +21 dreams +2 apparelled +2 hungered +10 zebedee +22 swords +1 barked +1 yokefellow +5 sucking +4 whet +1 kadmonites +1 shibboleth +1 melchishua +2 sheriffs +15 acknowledge +5 bake +8 nehemiah +4 jeopardy +1 shimronites +17 laboured +4 ishmeelites +2 heweth +1 ziddim +3 defer +2 harhur +3 declined +9 unrighteous +2 studieth +1 jobs +39 lawful +1 buds +4 koz +1 fires +13 inclined +169 sheep +4 furnish +56 captive +5 leanness +1 harbonah +42 kindness +1 winked +1 occupiers +4 pirathonite +2 abida +12 expectation +2 wearieth +5 forsaketh +1 porcius +2 caldrons +3 revenues +4 arabian +1 pineth +7 shaul +18 accursed +138 thirty +26 merchants +1 imrah +4 meddle +56 sanctified +1 exerciseth +2 coupleth +138 look +28 cubit +2 clovenfooted +6 stole +1 shamariah +7 cornet +4 alphaeus +2 barachel +4 lace +1 lamentable +24 micah +4 spoiling +1 neighed +3 considering +2 profaning +2 ludim +6 alexander +7 rooms +1 afflictest +2 heath +1 firstbegotten +3 zimmah +6 amend +1 madmen +30 turneth +2 orion +1 jahleelites +2 resisted +8 destroyeth +2 hamongog +1 descendeth +1 hakkatan +12 spreadeth +2 archangel +1 jeribai +1 slumberings +24 due +1 stingeth +1 exceedeth +79 drew +2 charran +2 swarm +1 blacker +9 hewers +2 padon +14 hidden +3 plentifully +473 years +1 neapolis +1 slimepits +1 linus +3 allow +43 transgression +5 mildew +2 viols +2 deckedst +46 beauty +1 babylonish +5 urim +13 teacheth +1 sukkiims +7 ringstraked +21 used +8 thin +1 jecholiah +11 divine +2 ginnethon +10 whilst +4 roebuck +7 tempting +1 ishmeelite +1 subverted +7 roe +1 interpreting +19 ramothgilead +3 destructions +14 forces +1 foretell +11 fainted +62 grave +4 hushathite +1 purging +13 beam +56 hurt +2 abital +1 makaz +15 cymbals +65 reason +3 bushes +6 drunkards +7 strip +1 howled +1 ichabod +24 accept +1 chuza +2 extend +4 crimson +2 corrected +1 copper +37 fruits +9 warp +15 thereto +1 nathanmelech +2 extinct +4 dinner +2 riphath +11 zelophehad +1 intercessor +82 wash +2 renewing +20 greatest +6 chebar +11 measuring +5 ophel +2 lines +1 changeable +1 neginah +4 baalperazim +6 unfruitful +1 brawlers +8 showers +4 hoary +107 mans +1 orator +9 psalms +1 boiling +1 shumathites +1 differeth +4 deeps +2 overflowed +5 liest +4 mocketh +1 jabal +1 boastings +3 earthquakes +56 trumpet +2 doubtful +17 courage +1 pharaohnecho +57 wrote +1 shutting +55 always +1 justifier +11 enoch +1 visiteth +1 vainglory +4 eve +1 ahlab +1 hemam +1 huzzab +3 act +13 joppa +6 tails +40 interpretation +7 meats +4 mourners +1 danjaan +2 ahiam +25 darius +11 runneth +1 rebuker +1 tabeal +67 eleazar +2 zophah +1 palsies +9 vintage +22 plucked +9 leap +2 appeal +3 jezer +7 humility +1 passedst +1 sargon +12 jonas +1 helve +9 gog +1 angered +2 nests +49 months +15 nether +3 muzzle +2 pin +1 usurp +9 tip +16 lewdness +1 bunch +1 threshingplace +2 undo +2 ijeabarim +3 ashbel +8 dibon +16 anguish +19 windows +2 absence +1229 no +3 directeth +2 shalmai +10 treasuries +1 quicksands +1 poplars +1 sowing +3 cassia +1 disposing +1646 were +100 tribes +7 doer +3 ivah +798 pass +1 remmonmethoar +12 drave +1 zealously +230 whole +73 flocks +12 noon +12 oak +191 ways +1 maachathi +13 accomplish +207 departed +7 issued +4 paid +61 crown +1 vainly +1 uttering +5438 with +1 shiphmite +14 stricken +8 arabia +1 oars +1 gains +825 days +7 pearls +62 pleased +2 roasted +2 affections +1 enrimmon +115 assyria +2 kolaiah +25 lodge +20 praised +1 exactors +64 fury +5 expert +1 outcast +11 justify +1 clearness +1 thyine +4 tribulations +3 gin +6 philippi +1 talkers +2 igal +3 concupiscence +5 quickeneth +8 jachin +46 judges +397 those +2 raising +93 stead +1 hearty +1 arisai +15 fountains +1 twofold +5 pursuing +1 moreshethgath +23 tithes +1 bithron +1 schin +4 stubborn +23 fame +1 vaunteth +2 jeroboams +993 hast +1 disputer +1 despising +38 green +170 moreover +7 proclamation +5 dashed +17 defence +1 mishraites +2 hit +1 boy +2 gether +1 complainers +101 buried +27 soldiers +3 hena +45 pride +2 quietly +136 honour +9 prevented +13 wounds +1 kettle +4 zarhites +5 ammishaddai +2 principality +3 yesternight +2 baptizeth +1 shouteth +1 stillest +7 sprang +1 bavai +1 gazing +1 zoheth +1 jonathelemrechokim +21 fourteen +2 eased +28 divers +21 discovered +7 mentioned +1 mitylene +9 oven +12 spy +2 endeavoured +1 school +3 tumultuous +104 sit +15 longsuffering +1998 came +1 hemdan +8 treacherous +5 perverteth +3 buyer +28 majesty +7 sunder +8 convocation +574 evil +2 watchings +2 genubath +1 gnat +1 redound +1 withdraweth +18 figs +1 requiting +1 minding +1 zeri +88 consumed +2 abiud +54 abram +2219 up +1 its +1 blackish +57 once +1 ahban +5 nimshi +1 rib +28 willing +43 multiplied +2 flew +1 wove +1 shambles +1 crisping +3 fugitives +1 psalmist +1 sped +2 approaching +1 armoni +1 relieveth +42 proud +6 seers +34 tears +17 foolishness +1 stacte +1 translation +6 hasten +2 grounded +103 ask +9 gaal +8 geshur +1 administrations +9 juda +1 jeoparded +1 euodias +12 wheresoever +2 extortion +11 stream +34 valour +1 cononiah +58 bethel +30 foundations +4 childs +2 hirah +18 basons +1 undertook +17 skins +34 least +109 ghost +1 shigionoth +5 bulwarks +9 obeisance +14 middle +2 serah +1 poorest +1 smotest +1 sardine +6 hastened +3 sale +1 invent +1 plantation +2401 by +6 hypocrisy +19 searched +38 bethlehem +2 ashur +7 demanded +1410 at +1 contemneth +231 strong +5 pamphylia +1 mortar +1 perils +1 jesuites +54 season +3 disannul +1 magnificence +4 leviathan +1 mosera +1547 against +184 call +33 ceased +17 fir +1 dealest +1 cnidus +2 missing +1 bethpazzez +68 taketh +1 ethanim +4 inferior +1 foals +1 furthered +2 beguile +1 disinherit +2 theatre +82 carry +8 sufferings +1 lovedst +1 rei +2 communing +2 booth +1 flinty +2 sacrificeth +2 hemlock +5 gibbethon +2 stilled +1 evangelist +22 curtain +37 restore +4 shewest +9 tear +5 marah +64 consider +51 rather +3 outstretched +1 barbarous +2 mibzar +2 matthias +2 pur +377 found +2 boasted +2 tie +45 office +1 jaakan +1 swellings +2 covers +1 helmets +513 done +2 villany +7 jabin +2 mortify +1 foam +1 miserably +1 sarsechim +1 jiphtah +1 languishing +9 penny +7 ambassadors +223 live +7 buryingplace +5 assemblies +4 elizaphan +49 wast +17 uncovered +1 ensigns +2 using +1 couching +7 intercession +1 nahum +38 seir +162 some +12 token +2 satisfaction +5 matrix +1 enhaddah +2 embracing +11 tradition +4 folk +4 jahaz +12 corrupted +7 inclosed +1 fretted +11 spit +3 abiel +77 top +2 jekamiah +14 supper +1 taphath +168 manner +5 medeba +23 armour +1 ashterathite +101 entered +5 shaven +6 firstlings +28 price +13 winter +1 damaris +1 shobek +37 confidence +1 lurk +1 shage +4 breeches +1 princesses +16 accord +12 throughly +13 clear +1 purgeth +7 midwives +2 zemarite +4 baalzebub +9 befall +111 open +1 ashima +2 filledst +2 writest +6 blackness +3 bribes +4 log +1 hirest +69 tenth +14 gershom +286 yea +1 station +47 builded +11 tooth +2 performance +16 eighteen +1 elpalet +2 adbeel +10 onyx +5 abijam +1 corrupting +1 endangered +3 cared +1 needest +2 whelp +15 ah +3 forbidden +3 joiada +1 sewest +1 milalai +2 selfwilled +11 provision +1 naamites +2 scorpion +1 composition +2 clifts +1 elonites +31 tribute +8 shunammite +4 scapegoat +5 courageous +7 unprofitable +1 amiable +17 arnon +1 shimma +17 rejoiceth +1 mourner +2 ananiah +2 joshbekashah +4 burying +6 remainder +2 adversities +1 lineage +2 handling +1 neah +1 telaim +1 midianite +2 eyed +1 stinking +1 vomiteth +1 shred +1 entappuah +1 mispereth +20 pool +1 lubim +164 cannot +30 kohath +15 putting +6 lepers +56 inherit +2 decayed +76 army +1 castedst +2 bamoth +4 rear +5 ascending +5 languish +1 ordaineth +1 josiphiah +24 running +5 victual +1 shiphrah +7 outgoings +1 gaddiel +4 gerahs +215 ark +2 jakim +4 outer +1 japho +5 gentle +2 mallothi +37 bondage +7 cherethites +5 disguised +3 wrest +3 seduced +14 rimmon +1 observeth +42 justified +1 oppose +1 foldeth +6 ahinoam +4 fitches +30 dew +1 aphekah +4 appointment +1 united +3 sojourning +4 sodomites +26 macedonia +4 pair +305 aaron +1 jadau +1 devilish +2 eri +3 erastus +1 joahaz +2 beatest +2 shual +5 steep +916 did +41 kid +24 uzziah +3 betharabah +53 appear +3 dothan +1 purtenance +10 cheer +1 arnan +43 repaired +3 bethjeshimoth +1 rendereth +1 unblameably +6 serving +1 scythian +14 hadad +13 contend +1 science +19 darkened +1 glasses +13 otherwise +24 upper +3 breastplates +132 mountain +1 bishoprick +12 trespasses +2 constraineth +2 edified +13 reproached +1 scorch +1 ploweth +1 peniel +2 anab +4 hardeneth +14 purge +1 casement +1 tormentors +1 diblaim +11 terah +6 yonder +2 discreet +3 marriages +3 carrieth +3 philistia +6 eliasaph +1 recount +11 mock +8 hepher +1 hilen +61 false +1 port +1 corpse +1 sadness +20 unrighteousness +57 treasures +1 cures +4 twins +1 seated +3 dismissed +6 talmai +2 heapeth +1 pouredst +1 chests +1 belied +16 accuse +1 youthful +3 pitieth +2 dippeth +1 devourer +1 paddle +1 clappeth +4 practise +3 smith +3 tobijah +1 dilean +3 dagger +1 front +2 makheloth +14 stick +3 errand +2 slide +1 shebah +12 syrian +3 gareb +1 ladies +12 clothe +4 gaash +1 abdeel +3 whorish +15 weeks +7 settle +1 speedy +1 charmed +5 warmed +1 breeding +1 droppeth +2 calamus +1 grinders +1 deride +15 highway +3 crush +7 carmi +2 convince +9 sanballat +75 abroad +1 eshek +1 selfwill +3 pallu +1 persecuting +2 iim +2 rudiments +12 jebusite +5 engravings +1 treader +4 roared +7 quarter +12 seasons +2 breaker +4 conduit +1 mend +3 cieled +1 shobi +2 heaped +1 shapham +5 adulteress +2 string +24 ordinances +1 almsdeeds +3 kabzeel +3 visage +137 lifted +1 reckoneth +1 bethhogla +15 incline +26 royal +1 elnaam +3 zattu +1 kithlish +2 warriors +40 sure +1 anna +1 talitha +1 subjected +1 phlegon +1 adorning +1 chepharhaammonai +2 horseman +3 renowned +2 drown +1 cursedst +6 crowned +9 aged +1 syrophenician +2 zalmonah +1 pick +16 devise +5 earthly +1 aziel +4 shamir +1 shemaah +1 sorer +5 oblations +5 idolaters +1 forged +549 heaven +1 bruises +1 paces +22 err +2 flea +6 gamaliel +1 agreeth +24 breasts +3 seething +1 cheeses +1 scourging +5 grievously +1 hearkening +29 thirst +20 astonishment +17 overtake +11 zacharias +1 birzavith +1 employed +8 fifties +2 singer +2 aul +36 staff +5 evident +5 naamah +5 thread +1 hagarenes +1 reformation +6 corruptible +1 athach +45 moon +1 havock +1 trachonitis +5 skull +167 mountains +1 skippedst +5 sky +3 folding +1 doorkeeper +1 saltness +8 create +3 aboundeth +674 whom +3 ordered +1 crowning +16 elah +6 delaiah +2 shipmaster +6 levy +1 elishaphat +60 blessing +1 howlings +15 lament +1 timnathheres +8 madness +4 attai +9 regarded +33 beersheba +2 deacons +15 forehead +1 gallant +1 jewish +39 shield +2 watcher +2 witch +1 coriander +4 guided +2 sorely +1 aharhel +68 ship +5 salmon +1 stories +1 benammi +64 worthy +1 shiggaion +1 korathites +3 testifying +47 countries +5 presidents +15 blameless +65 prayed +4 garnished +1 approveth +1 bileam +234 disciples +25 roll +122 camp +14 fastened +5 sweetness +1 seorim +6 bedchamber +17 courses +5 aquila +1 courteous +1 sellers +3 herodians +1 demonstration +1 bartimaeus +18 seraiah +61 smitten +7 sirs +1 jerubbesheth +3 intending +2 permitted +2 rebuking +1 feignest +5 eventide +1 slandereth +1 ravenous +1 chrysolite +2 torments +1 drawer +5 pertaining +95 prepared +10 mindful +4 lied +1 mebunnai +1 contentment +2 gebal +3 infants +7 dash +69 sacrifices +5 sanctuaries +1 bozkath +33 fountain +4 bishop +1 openings +3 eighty +106 better +1 asherites +1 giah +1 perishing +9 posterity +10 beams +1 success +2 jered +5 lily +3 celebrate +44 assembly +4 swiftly +2 mixture +2 foreigner +3 treading +15 portions +1 reformed +5 warfare +9 gershonites +31 provoked +3 teats +1 tanach +2 heron +12 wheel +1 gaham +1 sheepcotes +3 tibni +1 loseth +1 obscure +10 week +5 abishag +2 matred +5 brink +40 shimei +10 fellow +2 anamim +26 spiritual +1 jamlech +2 chaldean +40 fierce +4 abiah +9 avenger +5 timnah +1 eaters +21 lodged +1 shaveh +5 charger +5 reveal +1 carmites +7 hundredfold +5 invisible +2 gallio +2 bdellium +55 walls +10 closed +1 shephathiah +2 galilaean +919 earth +4 kirjatharba +1 chop +44 savour +4 saint +1 oiled +1 omnipotent +35 heshbon +7 withereth +4 korhites +2 brotherhood +179 oil +1 berachiah +2 israelitish +2 magdiel +1 semachiah +437 three +13 purify +16 pardon +2 toss +82 knowest +43 scribe +4 stoop +93 sister +3 heavier +8 dance +4 joiakim +5 quit +1 tolad +1 defiledst +1 epicureans +3 callest +1 courageously +1 ophni +1 bunches +2 retire +15 possible +1 equals +45 gladness +1 addicted +1 forewarned +1 shiphi +11 barak +6 lusteth +56 baal +2 needed +4 murders +469 voice +6 shaketh +35 caught +2 abiezrites +3 unwalled +1 divider +8 hardly +2 lahairoi +25 leah +29 sojourn +1 aspatha +9 rebellion +26 along +6 wanting +4 keturah +30 gedaliah +1 herald +1 delicates +1 syntyche +2 coveredst +5 repenteth +42 keepeth +24 ezra +8 trench +1 baked +2 helem +66 scattered +335 woman +2 foreknowledge +3 adulterer +68 speaketh +13 try +8 asshur +2 arbathite +699 any +1 singed +6 languisheth +1 weavest +30 vows +2 painted +24 kine +5 attain +1 atarothaddar +64 pillars +1 whereabout +2 sinite +1 chamois +21 stirred +26 refuse +2 ishbak +2 upbraid +6 contended +1 entertain +7 dancing +15 temptation +2 albeit +1 appointeth +1 transparent +2 professed +1 chimney +5 conceit +17 intreated +1 heady +69 vision +1 zoheleth +2 grapegatherers +7 zidonians +1 jokim +1 birsha +231 fell +34 branch +9 dread +93 angels +864 great +3 stumbling +2 hephzibah +4 compasseth +14 colt +12 eglon +10 saving +2 afoot +81 pit +6 woollen +1 asiel +1 amphipolis +3 confessing +21 machir +1 tartak +1 syracuse +5 bildad +4 counselled +4 corpses +9 shealtiel +1 byways +55 breadth +317 kingdom +4 carefulness +1 enlightening +8 vial +12 hangings +2 maliciousness +2 offender +4 tirshatha +1 orderly +179 jordan +4 quarrel +5 tall +2 whip +11 marvel +2 lehabim +3 buttocks +1 ague +10 speed +2 ibzan +1 unfaithfully +2 sibbechai +22 phinehas +1 cozbi +4 hanoch +201 nothing +4 mizraim +13 nethaneel +1 hodaiah +6 savoury +1 hanochites +7 fervent +1 emmaus +41 jesse +3 gadarenes +2 prepareth +16 magnify +4 returning +1 bloomed +3 smiting +3 barest +1 mirma +1 jubal +11 imagine +2 kedemah +3 carriages +3 kelita +1 meshillemith +1 repeateth +2 tartan +1 adders +1 strongest +1 huphamites +1 sceptres +33 grievous +7 stink +16 asleep +1 mesech +18 casting +2 panted +4 march +23 finger +1 alienate +32 hardened +11 pattern +7 gnashing +1 approvest +2 hereof +3 shimri +1 meraiah +4962 thou +2 thicker +2 cenchrea +7 poison +1 immortal +1 madian +2 narrowly +26 accepted +3 bittern +2 wakeneth +6 expressed +1 aenon +47 dwelling +9 moons +57 lived +45 transgressions +1 phylacteries +1 kirhareseth +1 zaavan +48 foolish +3 watcheth +1 worshipper +10 hoshea +416 am +1 melatiah +1 shedding +2 regeneration +24 anointing +6 distributed +1 compellest +2 truths +11 passing +3 resteth +4 caterpiller +22 prove +30 render +9 ornaments +29 aarons +27 married +1 oliveyard +1 delicateness +1 girgasite +29 overlaid +3 potsherd +12291 to +8 covet +6 hosanna +1 maonites +2 amazement +7 diminish +4 stout +30 sayings +56 apostles +1 uncomely +1 bethdiblathaim +2 nemuel +3 adoption +3 lieutenants +3 fainthearted +14 olives +1 prophecies +244 mount +2 cheran +5 informed +2 senir +7 brick +511 many +1 crop +1 barhumite +3 dulcimer +14 beholding +15 scorn +2 clouts +1 kelaiah +20 working +38 chronicles +20 coat +1 ashvath +3 firepans +106 court +2 nogah +14 consolation +18 shoot +1 shehariah +5 abihail +139 born +3 deprived +43 met +2 gahar +7 blesseth +1 elimelechs +14 furthermore +1 beerothites +1 eliadah +7 uz +7 crow +1 disappoint +1 pileha +155 moab +1 shibmah +2 buyest +1 overlived +1 mixt +1 importunity +2 ephrathite +1 shooters +4 sparrows +1 astrologer +38 truly +5 gushed +14 hereafter +51 cherubims +3 cost +5 joints +1 providence +3 stuck +1 rephah +3 tahpenes +3 weariness +2 sometime +2 foaming +3 nobah +1 instructor +6 answerest +7 giant +14 pull +2 scroll +2 traveller +1 baaseiah +4 cured +1 bidding +2 oded +1 lowing +3 dissembled +2 kinsfolk +3 foal +2 rubbish +2 vestments +4 lick +536 christ +1 ford +1 player +2 lowliness +21 wealth +1 sting +1 pernicious +20 mizpah +1 satisfiest +7 worms +5 cutting +1 mart +173 stone +1 hazo +1 listen +65 amorites +66 table +8 adah +3 succeeded +1 brigandines +399 without +1 scourgings +44 pestilence +32 chains +1 sibbecai +1 railer +3 achshaph +690 know +1 cottages +1 zelzah +1 succourer +1502 shalt +1 stings +9 thrones +13 epistle +1 raamiah +9 jozabad +4 driving +6 playing +9 flying +20 thereby +15 fatness +36 blow +29 tremble +5 achor +2 juttah +42 vineyards +4 firstripe +2 eshban +45 countenance +1 trough +13 festus +3 eder +1 traitors +41 compassed +1 jushabhesed +19 vile +1 darda +1 cousins +22 groves +1 congealed +2 tamed +717 thus +2 sarahs +11 japheth +2 equality +11 er +18 nineveh +9 warred +6 speeches +2 derided +14 shoulders +1 assent +1 dura +2 exile +1 vashni +1 bolt +1 idalah +1 infallible +1 mahol +1 dangerous +19 hebrews +5 plates +1 martyrs +42 washed +22 baptism +12 short +1 willeth +1 share +7 stretcheth +7 stirreth +1 changest +6 sorcerers +1 beauties +68 clothed +11 desiring +121 witness +4 trade +374 high +333 wherefore +96 gospel +1 commonwealth +3 numberest +1 neballat +2 calkers +1 bethjesimoth +2 sieve +7 pleasures +1 leftest +9 safe +12 dig +1 sighest +12 obed +1 shallecheth +3 disguise +11 archers +3 halah +3 manassites +6 bashemath +1 rescueth +10 jazer +213 shew +2066 hath +7 ability +1 bravery +59 redeemed +1 refine +9 makkedah +5 ur +7 reached +20 joel +77 sold +4 noisome +6 eunuch +2 jewess +2 buzite +2 threatened +2 fowler +8 betrothed +10717 that +2 inhabiteth +5 plow +2 rie +11 departing +6 garrisons +1 divorce +1 tehaphnehes +15 leper +1 entangle +1 taxation +1 hizkiah +26 enough +2 admiration +109 family +1 peacemakers +1 ara +17 proverb +5 chedorlaomer +1 western +7 handful +2021 then +3 jetur +1 trow +5 contentious +1 tackling +37 else +2 comforts +58215 the +6 deceiveth +1 eldad +1 gravings +1 bettered +37 dried +6 standest +2 beno +14 companies +2 shaalbim +1 glede +19 ease +1 beten +1 produce +39 weeping +1 deserving +1 tyrannus +4 spue +229 wilt +5 shur +3 cares +1 hali +7 shaking +63 troubled +1 misham +1 amasiah +1 ephai +23 cakes +2 quieted +36 pay +1 wrestlings +6 raw +1 sherd +4 silvanus +1 countrymen +2 haggi +717 took +2 hezir +1 ahumai +2 gazez +1 paweth +2 predestinated +32 philip +3 frontlets +3 hoshaiah +1 core +37 sarah +4 maachathite +8 sheath +1 bethgader +87 canaan +32 building +1 merryhearted +5 offices +2 sardius +2 elamites +1 passion +1 abusers +5 purim +1 torch +2 meeting +3 asps +59 ran +1 ishmaiah +1 zareah +1 oar +2 particularly +42 tidings +1 ensue +14 baskets +2 nebaioth +4 bereaved +1 bondservant +4 climb +2 wag +1 confirmeth +30 refused +2 zebedees +10 state +1 hearkenedst +1 gimzo +224 send +1 crime +4 alpha +1 sufficeth +1 jibsam +3 apply +1 jehucal +22 ministry +3 perplexity +1 jearim +10 carpenters +1 compoundeth +17 calves +101 lot +1 betharbel +14 bottle +31 messenger +2 guides +8 thirteenth +3 massah +2 decease +1 boats +29 tabernacles +1 fist +1 raddai +5 useth +1 suits +2 mahazioth +12 hamor +3 lentiles +1 laugheth +18 abhor +2 throng +1 uel +2 zimran +2 tempered +1 countervail +5 examine +31 purpose +1 haughtily +3 assured +1 shaharaim +2 binea +2 brute +17 thrown +1 paleness +1 alammelech +3 fairer +1 julia +6 byword +3 pureness +4 tens +12 needs +16 drinketh +2 wretched +138 carried +1 sadly +1 monuments +1 cogitations +101 cloud +1 mansions +1 mole +10 difference +6 discouraged +7 tasted +1 gibeathite +49 raiment +1 tehinnah +25 touching +1 aher +17 flower +1 cinneroth +8 zabad +1 persuadest +1 spendest +10 attend +1 cypress +1 shoco +10 bank +1 iri +2 partners +1 murmurers +1 sacrificedst +21 whereon +3 godhead +81 bed +1 ilai +14 bathe +4 ravening +5 fables +1 cupbearer +26 feasts +9 dreadful +6 publican +1 builder +7 maiden +8 belshazzar +143 forty +30 wave +3 nobleman +14 gadites +8 soft +3 oppressions +4 commandedst +6 virtue +62 womb +1 forgetfulness +1 musing +3 directed +1 hermas +1 ulla +5 mischievous +1 kedeshnaphtali +31 reap +2 hazarmaveth +5 nazarite +14 reserved +10 exhortation +1 zebudah +2 jehoiarib +4 ho +1 moles +2 believers +2 ephraims +7 households +18 libnah +10 jeroham +46 trumpets +7 takest +43 palace +1 zaanan +3 nursing +3 ruinous +55 yoke +49 stretch +2 overflown +5 rereward +11 bride +5 shammua +1 harumaph +2 comparing +1 beer +2 sychem +2 ikkesh +1 wretchedness +1 weareth +1 amal +9 booths +1 lign +33 letter +23 double +1 eladah +5 conceal +2 scent +13 meshach +3 dwellers +5 displeasure +25 zeruiah +5 opening +4 pipes +74 blind +5 persecutions +1 strake +3 perhaps +1 distinction +10 ezer +1 canaanitess +4 idolatry +4 discerned +1 canker +1 effected +23 findeth +6 bay +2464 upon +166 receive +11 straitly +7 prosperous +39 ishmael +23 acceptable +1 slanderers +2 scholar +12 falsehood +22 mourned +7 noph +2 freewoman +6 wing +39 entering +4 baalhanan +3 submitted +2 forefathers +2 stall +4 jokneam +222 begat +3 platted +1 lingereth +3 edifieth +16 wells +4 shaved +1 determination +10 distressed +2 noahs +7 prevent +2 carmelitess +3 puah +2 solemnity +12 sickle +73 eight +2 advertise +5 sojourner +1 prevaileth +8 requite +1 lanes +1 anani +16 publish +119 become +1 chub +1 socho +1 deposed +21 swallow +4 extol +31 isaiah +3 handmaidens +1 stonesquarers +2 punon +20 beautiful +1 waxing +21 euphrates +2 revilings +2 doorkeepers +3 abba +16 health +4 print +1 anammelech +1 extremity +2 embroiderer +6 ahiezer +2 medicines +1 ammizabad +25 rejected +4 yokes +1 wits +3 blush +31 flame +1 fishs +8 threshing +1 topheth +1 receivedst +1 ziphron +1 establishment +2 bedan +4 mishma +3 deceitfulness +1 instructer +1 sifted +2 formeth +8 shoe +1 witnessing +5 odours +1 hasenuah +1 dannah +151 river +9 journeys +1 daub +3 banner +5 babe +4 remembereth +2 ingathering +2 furnaces +2 gravity +1 reserveth +16 seem +54 harvest +8 enmity +2 noadiah +2 slippeth +1 struggled +3 congregations +650 offering +1 townclerk +4 arimathaea +1 unequally +14 bottom +1 sundered +3 reaiah +1 fitteth +1 cursings +5 rigour +1 gezrites +6 renew +3 unknown +1 shelesh +1 theeward +1 entrances +7 baths +10 zobah +1 amramites +4 haven +1 maarath +1 shimeathites +2 wondrously +443 ever +2 networks +1 bodys +225 truth +5 galilaeans +5 pursuers +3 rizpah +1368 men +1 chameleon +3 jewry +1 arts +1 jude +20 roots +14 nest +16 uncircumcision +26 trusted +14 chaff +7 chiefest +2 beckoning +2 pulling +14 sorry +2 cage +1276 made +1 damnable +2 babbler +1 owe +3 despitefully +1 nain +1 bridles +1 naam +1 viler +215 can +15 godliness +20 weapons +11 blot +94 nevertheless +2 taberah +17 ride +4 denieth +261 spoken +1 horite +4 helon +18 nights +1 garlands +1 sluices +9 mixed +3 torches +1 liquors +18 redemption +24 excellency +6 peculiar +40 scarlet +1 procureth +17 presented +4 markets +5 comfortably +3 perez +1 kicked +1 belief +2 sensual +4 lawgiver +11 remaining +11 rezin +1 gush +2 deputies +1 ishuai +3 preparest +5 election +19 care +1 jimna +75 company +3 justification +13 hallow +2 trespassing +5 zerahiah +25 pluck +8 stairs +225 mother +3 micahs +66 elijah +9 holding +2 unicorns +2 banks +1 jehosheba +7 chapiters +5 zeboim +14 sailed +1 laadah +2 envyings +2 petitions +311 wicked +1 zithri +2 blessest +3 famines +32 shoulder +3 unloose +21 scriptures +2 dial +8 uphold +1 apollyon +2 nisroch +3 lighteth +42 terrible +6 provoking +1 uncertainly +4 guni +1 miseries +2 zelah +4 laodicea +13 mattaniah +3 wanted +2 zif +4 debtor +1 jailor +6 filleth +4 centurions +1 rezon +12 overthrew +4 taxed +15 abhorred +83 garment +5 religion +5 sedition +2 shepham +17 nethinims +1 machbenah +1 voyage +7 childless +1 christians +1 wraths +4 omega +1 hadlai +3 horonite +3 despair +8 luz +2 hamathite +2 lubims +8 warning +1 rephael +2 subvert +41 seeketh +4 trembleth +90 tent +1 bealiah +136 border +2 kirheres +7 recorder +7 gladly +1 dekar +1 anethothite +29 quiet +2 cabul +4 reaped +6 knops +19 coals +24 gotten +12 thomas +1239 behold +9 axe +103 chariots +1 distributeth +1 avoided +2 partial +169 elders +3 almug +64 sanctify +1 prefer +53 elisha +1 greenish +1 darkeneth +3 bewitched +2 negligent +182 slew +1 legions +7 hasteth +41 balak +33 assembled +10 carved +1 circuits +1 craftsman +2 mordecais +1 heretick +2 mites +10 dip +1 frankly +1 persecutor +14 ruleth +344 death +2 abelbethmaachah +8 mushi +9 converted +12 commandeth +1 eared +3 brown +10 briers +3 excess +6 sodden +17 jacobs +4 sprinkling +6 clods +2 declineth +1 constellations +65 song +1 jambres +10 ancients +22 blew +5 pools +3 sibmah +1 hassenaah +2133 son +2 bounty +1 leeks +7 dearth +1 barjona +1 seedtime +26 timber +5 adjure +1 sights +8 balances +1 crowneth +1 blunt +79 alive +8 supposed +5 uppermost +1 biztha +173 tree +3 fortified +2 shuni +190 above +71 rulers +4 wiped +1 peep +2 infidel +25 preaching +6 misery +10 jethro +1 jadon +3 stalk +411 sin +12 sir +2 coral +1 kirharaseth +2 enlargeth +2 amok +3 standards +24 contrary +7 dishon +1 sharuhen +1 graff +1 mower +2 endor +1 lukewarm +2 jezaniah +3 menstruous +14 genealogy +10 taches +8 mistress +2 justus +4 shoulderpieces +2 gentile +381 sword +20 abijah +13 row +3 virtuous +3 sailing +3 paseah +34 bury +1 fuller +1 immutable +46 rejoiced +3 maacah +1 stoopeth +6 spied +1 coucheth +1 workfellow +1 rosh +17 descended +27 travail +1 hazaraddar +2 circumcising +1 policy +2 remainest +6 sticks +1 champaign +1 overrunning +14 catch +155 commandments +3 lud +3 exceed +4 stablished +3 stringed +1 carpus +1 berothite +1 jalon +1 maintained +1 sopater +4 quake +6 isle +4 killing +2 prosperously +1 darken +2 altereth +5 purposes +62 judged +5 disputing +16 priesthood +2 cupbearers +4 stork +2 brier +1 thrusteth +26 kindred +1 candles +1 jakeh +1 lime +8 embrace +1 wen +1 evangelists +8 gallows +8 devoureth +38 midian +1 havens +5 beset +22 hunger +1 husks +8 besides +3 musical +585 place +1 jucal +3 lewd +6 confession +11 watchmen +3 sweep +1 cumi +6 knife +7 wiser +13 jerubbaal +1 sackclothes +273 end +89 bones +3 gainsaying +1 trained +1 crashing +1 achaicus +1 shen +1 vaunt +1 croucheth +7 struck +2 joanna +1 conspirators +1 abasing +4 plentiful +2 sharpen +22 inward +13 confirmed +3 stephanas +6 warm +181 afraid +14 heifer +1 perezuzzah +17 fifteenth +23 guilty +6 charges +1 rudder +11 shining +2 mijamin +6 smooth +1 hazezontamar +1 revile +3 aven +25 require +11 reported +1 fresher +1 pharosh +2 assigned +30 add +5 promoted +1 ephrathites +6 jael +5 hararite +4 dam +40 obeyed +22 hiram +18 moabites +10 potters +1 fiercer +1 sarepta +3 nazarites +6 dividing +360 work +3 cinnamon +9 melchisedec +2 zetham +6 zeeb +35 bowels +3 boweth +12 chain +2 rainbow +1 sheepskins +5 unsearchable +19 ethiopia +2 kneadingtroughs +1 examination +1 lately +1 painfulness +1 conversion +2 shemer +6 thessalonica +10 beforetime +2 perfecting +1 jah +70 precious +1 kirjatharim +277 blessed +2 baalgad +2 gluttonous +1 harnepher +2 vulture +25 beware +8 distresses +34 saviour +1 unoccupied +6 gleaned +3 confederate +9 necessary +10 refreshed +2 carchemish +27 line +1 followedst +2 jehieli +3 elects +1 malefactor +6 aileth +2 dinhabah +2 conformed +7 dukes +12 censer +3 horonaim +18 sheweth +5 sepharvaim +2 adoram +2 huntest +2 spreading +1 barbed +16 voices +19 subdued +372 saul +3 pans +1 helek +2 thinking +3 woven +1 treachery +1 lysanias +1 hamulites +122 offered +1 compact +6 communication +2 quarries +1 kinah +127 money +4 shobab +13 rabbah +33 ramah +2 tiras +24 fulness +36 sow +3 dirt +2 blasphemous +3 tingle +1 ibri +9 handle +10 garrison +202 morning +1 foreship +5 cure +1 wants +34 please +1 general +1 taanathshiloh +2 herewith +1 homeborn +9 woof +100 bound +2 bat +16 subject +1 jahdai +6 corinth +8 reuel +1 honourest +2 paphos +3 manifestation +2 toll +1 isuah +1 superstitious +26 baruch +4 alter +5 crew +2 chode +18 maidens +59 zedekiah +1 virtuously +1 quantity +1 barnfloor +2 winefat +244 princes +2 amittai +1 korahite +1 mollified +26 goodly +12 purifying +433 thing +3 keepest +4 grecians +1 belaites +25 space +350 other +2 lackest +1 approacheth +1 eltekon +1 ephesian +5 ditch +4 carnally +1 areopagus +3 fainteth +1 thamah +43 shekels +1 sorceress +1 hushah +8 benjamite +2 pransings +1 eyesight +12 hor +6 inherited +2 tame +9 honoured +1 vomited +12 lamech +2 readest +35 empty +9 withhold +10 gerar +10 exercise +2 fortresses +2 presume +10 doves +185 fruit +24 kissed +5 blinded +2 graving +550 yet +32 transgressed +2 tarrying +6 hinds +1 defaming +8 dress +2 lender +1 zobebah +1 noses +1 accusing +253 seed +1 vilest +3 balaams +4 oughtest +7 seth +70 bringeth +5 gaius +13 teachers +103 trouble +1 belah +3 moreh +1 peril +1 poorer +1 ephesdammim +89 ready +7 meshech +1 hereunto +2 atad +7 kadmiel +3 unspeakable +37 bars +8 jerahmeel +1 aphrah +1 happier +10 village +48 haste +1 disclose +1 zain +1 smiters +4 whoremongers +3 vagabond +22 beneath +3 meshezabeel +256 written +1 deceivableness +4 mephaath +5 grope +1 litters +6 herodias +9 treadeth +22 alway +10 bows +3 bezek +2 buffet +15 thieves +3 horror +1 taker +23 accomplished +116 answer +1 shrubs +37 possessed +1 convinceth +4 michah +2 scarcely +3 bit +1 bethbaalmeon +1 igdaliah +3 ashdothpisgah +1 embroider +1 equally +1 mutter +3 scarce +270 covenant +14 brimstone +1 strived +16 ham +1 charging +2 uzal +1 artillery +47 haman +14 amasa +5 halt +9 glean +6 mandrakes +2 fleshhook +2 remaliahs +111 samaria +2 almondiblathaim +3 necessities +4 drunkard +3 nebajoth +1 timon +23 mention +2 talketh +1 rowing +16 preserved +1 fellowdisciples +261 seen +1 lusty +3 ephrath +1 nicanor +2 pale +1 estates +1 unite +9 failed +5 bahurim +1 fishing +1 upholding +6 nativity +1 antothijah +1 lydians +178 returned +2 kite +1 inside +3 napkin +1 enam +8 lifting +1 greaves +1 whisperers +3 fearfulness +1 mushites +1 gaps +1 inspiration +341 drink +12 holes +28 joram +1 nurture +1 backbiteth +2 plowing +2 naharai +7 ravished +1 consulteth +531 like +2 wink +2 sacar +18 succoth +5 willows +1 sod +73 affliction +1 pedigrees +1 advantaged +55 immediately +464 off +24 degrees +1 janoah +1 disannulling +7 certainty +1 vestry +2 smyrna +1 requests +1 dinahs +1 promising +3 speechless +1 swimmest +1 entire +42 rebuke +11 wither +243 destroy +7 aphek +1 shroud +1 raguel +4 incorruptible +1 hazarded +10 close +5 prospect +9 apollos +3 gospels +9 merchant +31 fowl +26 valiant +1 bethemek +26 adam +15 michael +1 upbraideth +4 barns +4 pontius +1 safeguard +1 pithon +19 executed +10 deceitfully +7 babylons +2 helah +1 attired +173 hold +1 shunned +2 won +51 flour +1 behemoth +2 miletus +29 regard +1 cyrenians +2 tob +1 entries +1 garners +20 songs +15 shem +3 malchiel +5 espoused +1 rewarder +2 fried +64 acts +5 goliath +1 jorai +1 rakkon +5 size +303 toward +104 firstborn +1 tryphosa +2 revolters +12 favoured +2 swalloweth +48 touched +56 horsemen +14 baptist +11 preacher +1 confidences +5 ephratah +2 salcah diff --git a/tests/data/summa-sorted.txt b/tests/data/summa-sorted.txt new file mode 100644 index 0000000..a146929 --- /dev/null +++ b/tests/data/summa-sorted.txt @@ -0,0 +1,17825 @@ +40690 a +627 aa +24 aaron +2 aarons +19 abandon +8 abandoned +2 abandoning +1 abandonment +3 abandons +1 abase +2 abased +8 abasement +2 abases +1 abated +7 abba +16 abbot +2 abbots +1 abdias +1 abdomen +1 abduct +1 abducting +1 abductor +1 abductors +4 abel +2 aberration +1 abet +10 abhor +1 abhorred +5 abhorrence +2 abhorreth +2 abhors +1 abiam +30 abide +31 abides +29 abideth +33 abiding +1 abidingly +32 ability +1 abiron +3 abject +1 abjured +7 ablative +378 able +1 abler +6 ablution +34 abode +2 abodes +2 abolendam +4 abolish +18 abolished +1 abolishes +10 abominable +9 abomination +1 abominationem +2 abominations +1 abortive +31 abound +10 abounded +1 aboundest +1 aboundeth +2 abounding +11 abounds +1935 about +5348 above +176 abraham +18 abrahams +1 abram +21 abroad +1 abrogate +4 abrogated +1 absalom +89 absence +57 absent +130 absolute +449 absolutely +26 absolution +2 absolutions +29 absolve +14 absolved +5 absolves +5 absolving +3 absorb +10 absorbed +1 absorbing +4 absorbs +1 absorption +54 abstain +5 abstained +2 abstainer +1 abstainers +18 abstaining +12 abstains +2 abstention +113 abstinence +2 abstinences +96 abstract +90 abstracted +5 abstractedly +10 abstracting +71 abstraction +1 abstractions +19 abstracts +52 absurd +6 absurdity +1 absurdly +61 abundance +31 abundant +15 abundantly +23 abuse +3 abused +8 abuses +4 abusing +1 abyss +1 accaron +2 acceded +3 accelerated +73 accept +62 acceptable +18 acceptance +21 acceptation +1 acceptations +35 accepted +14 accepting +16 accepts +11 access +1 accessible +3 accession +3 accessory +1 accidens +306 accident +326 accidental +271 accidentally +2 accidentals +244 accidents +1 acclinis +8 accommodated +67 accompanied +19 accompanies +2 accompaniment +15 accompany +13 accompanying +1 accomplices +54 accomplish +111 accomplished +8 accomplishes +13 accomplishing +28 accomplishment +146 accord +220 accordance +10 accorded +5715 according +695 accordingly +7 accords +1517 account +2 accountable +88 accounted +14 accounts +17 accrue +8 accrued +19 accrues +6 accruing +3 accumulate +1 accumulated +1 accumulation +2 accurate +4 accurately +16 accursed +60 accusation +1 accusationibus +2 accusations +1 accusatorum +25 accuse +60 accused +41 accuser +3 accusers +3 accuses +11 accusing +6 accustom +29 accustomed +2 accustoming +1 accustoms +1 acedia +1 acedieris +7 achab +4 achan +2 achaz +1 ache +17 achieve +13 achieved +6 achievement +5 achieves +6 achieving +2 achilles +1 achior +1 achis +1 acid +37 acknowledge +15 acknowledged +5 acknowledges +6 acknowledging +9 acknowledgment +1 acolyte +2 acquaint +4 acquaintance +3 acquaintances +7 acquainted +1 acquiesce +1 acquiesced +1 acquiesces +128 acquire +261 acquired +1 acquirements +1 acquirend +65 acquires +32 acquiring +44 acquisition +6 acquit +2 acquittal +1 acquitting +2 acrimony +2 across +4343 act +3 acta +36 acted +94 acting +1 actio +1511 action +738 actions +801 active +25 actively +4 activities +20 activity +4 actor +5 actors +1791 acts +320 actual +65 actuality +1 actualized +3 actualizes +434 actually +4 actuated +5 actuates +1 acumen +8 acute +2 acuteness +1401 ad +215 adam +2 adamant +30 adams +4 adapt +6 adaptability +4 adaptation +64 adapted +3 adapting +2 adapts +110 add +310 added +6 addeth +1 addicted +27 adding +227 addition +26 additional +3 additions +6 address +22 addressed +4 addresses +13 addressing +241 adds +12 adduced +5 adduces +16 adequate +22 adequately +52 adhere +7 adhered +9 adherence +1 adherences +1 adherent +1 adherents +31 adheres +1 adhereth +21 adhering +8 adhesion +1 adimant +5 adjacent +5 adjectival +10 adjective +1 adjectively +7 adjectives +1 adjicimus +2 adjoined +1 adjudge +1 adjudicated +8 adjunct +24 adjuration +34 adjure +3 adjured +2 adjures +4 adjuring +2 adjustability +10 adjusted +2 adjustment +1 adjutors +25 administer +16 administered +23 administering +5 administers +23 administration +1 administrative +1 administratively +1 administrator +2 administrators +3 admirable +12 admiration +2 admire +1 admired +1 admires +2 admiring +9 admissible +2 admission +91 admit +35 admits +1 admittance +74 admitted +1 admittest +10 admitting +30 admixture +2 admonere +11 admonish +13 admonished +9 admonishes +11 admonishing +4 admonishment +1 admonishments +27 admonition +10 admonitions +1 admonitory +2 ado +3 adonai +23 adopt +50 adopted +4 adopting +65 adoption +8 adoptive +6 adopts +1 adorable +126 adoration +4 adorations +61 adore +55 adored +5 adorers +3 adores +3 adoring +12 adorn +19 adorned +5 adorning +48 adornment +1 adornments +1 adorns +1 adrian +1 adrift +1 adsit +2 adulation +2 adulator +17 adult +1 adulterating +12 adulterer +4 adulterers +5 adulteress +1 adulteresses +2 adulteries +1 adulterii +10 adulterous +155 adultery +35 adults +2 adv +60 advance +30 advanced +5 advancement +6 advances +12 advancing +31 advantage +2 advantageous +2 advantageously +4 advantages +1 advenam +27 advent +8 adventitious +10 adverb +6 adversaries +10 adversary +6 adversity +2 adversus +3 advert +4 adverting +2 adverts +22 advice +3 advise +5 advised +1 adviser +1 advising +1 advocacy +46 advocate +6 advocates +1 aegyptii +1 aeneid +9 aerial +2 aeris +1 aeromancy +1 aeternae +12 aeviternal +3 aeviternities +40 aeviternity +24 afar +12 affability +2 affable +2 affair +115 affairs +46 affect +4 affectation +81 affected +10 affectibus +39 affecting +119 affection +116 affections +8 affective +3 affectively +32 affects +1 affectu +29 affinity +17 affirm +39 affirmation +3 affirmations +77 affirmative +4 affirmatively +1 affirmatives +19 affirmed +5 affirming +6 affirms +14 affixed +6 afflict +19 afflicted +4 afflicteth +5 afflicting +20 affliction +7 afflictions +4 affluence +30 afford +19 afforded +7 affording +15 affords +2 affront +3 aflame +257 aforesaid +43 afraid +1 afresh +1 african +1 africanus +1531 after +327 afterwards +1 agabus +1 agag +1088 again +1469 against +1 agamemnon +1 agapit +1 agar +3 agatha +2 agatho +2 agde +153 age +9 aged +4 agencies +7 agency +1 agens +668 agent +86 agents +3 ageruch +22 ages +1 agg +1 aggrandizement +21 aggravate +36 aggravated +26 aggravates +6 aggravating +8 aggregate +4 aggregated +1 aggregates +3 aggregation +13 aggression +2 aggressive +3 aggressor +1 aggrieved +7 agility +1 agitating +1 agnes +3 ago +9 agone +1 agonia +5 agony +116 agree +11 agreeable +4 agreeably +16 agreed +8 agreeing +44 agreement +3 agreements +61 agrees +1 agricola +2 agriculture +1 agrippa +3 ahead +1 ahias +32 aid +3 aided +8 aids +2 ail +3 ailing +10 ailment +11 ailments +1 ails +35 aim +6 aimed +11 aiming +1 aimlessly +33 aims +195 air +1 airs +1 aithein +74 akin +1 akmaiois +1 akolasia +1 akrocholoi +1 al +1 alarm +1 alarmed +1 alas +1 albans +32 albeit +5 albert +2 albertus +1 albumazar +2 alchemists +1 alchemy +2 alcuin +7 alert +1 aletheia +19 alexander +9 alexandria +1 alexis +2 algazel +1 alia +11 alien +1 alienate +1 alienated +3 alienation +1 alienations +1 alienum +1 alight +55 alike +2 alio +3 aliquid +1 aliquot +9 aliud +4 alius +25 alive +7285 all +3 allay +1 alleg +1 allegations +3 allege +12 alleged +12 allegiance +3 alleging +8 allegorical +3 allegory +1 alleluia +3 alleviated +4 alleviates +1 alleviation +1 alliance +9 allied +1 allot +3 allotment +21 allotted +1 allotting +52 allow +10 allowable +1 allowance +1 allowances +94 allowed +13 allowing +32 allows +2 allude +2 alluded +11 alludes +6 alluding +2 allure +3 allured +5 allurements +1 allures +2 alluring +3 allusion +1 almaricians +40 almighty +21 almost +210 alms +3 almsdeed +44 almsdeeds +1 almsgiver +44 almsgiving +3 aloes +8 aloft +942 alone +20 along +6 aloof +4 aloud +1 alphabet +1 alphaeus +542 already +3547 also +5 alt +154 altar +1 altare +21 altars +10 alter +1 alteram +66 alteration +5 alterations +2 alterative +16 altered +1 altering +1 alternate +2 alternately +1 alternating +1 alternation +3 alternative +1 alternatives +4 alters +3 alterum +1201 although +388 altogether +971 always +1 alypius +177 am +4 amalec +3 amalekites +1 aman +1 amand +1 amasias +1 amasius +2 amass +1 amassed +1 amassing +1 amazed +11 amazement +1 amazes +1 ambassadors +1 ambiguity +3 ambiguous +34 ambition +2 ambitione +2 ambitious +1 ambitiously +267 ambrose +3 ambroses +2 ambrosiaster +2 ambush +17 ambushes +9 amen +16 amenable +9 amend +4 amended +1 amending +21 amendment +10 amends +1 amenities +1 amiable +1 amicable +1 amicitia +2 amid +2 amidst +1 aminadab +16 amiss +1 amity +3 ammon +1 ammonite +1 ammonites +1017 among +29 amongst +2 amor +1 amoris +17 amos +68 amount +1 amounted +1 amounting +25 amounts +4 ample +1 amplified +1 amplitude +1 amply +1 amputated +1 amputates +2 amulets +2 amuse +4 amusement +1 amusements +1 amusing +7120 an +1 anaclete +5 anagogical +4 anal +6 analogical +7 analogically +1 analogies +5 analogous +11 analogy +14 analysis +1 analytic +1 analytical +2 analytics +1 analyze +7 ananias +3 anath +28 anathema +2 anathematized +8 anaxagoras +13 ancestors +1 ancestry +1 anchor +56 ancient +37 ancients +1 ancyr +39603 and +3 andragathia +3 andrew +24 andronicus +1 aneleutheria +45 anew +2 ang +968 angel +218 angelic +1798 angels +854 anger +10 angered +2 angers +8 angles +174 angry +5 anguish +12 anim +330 anima +3 animae +466 animal +1 animalibus +1 animality +2 animalium +699 animals +1 animam +27 animate +47 animated +24 animation +3 animi +1 animosity +1 animus +1 ankles +7 anna +1 annal +1 annexation +92 annexed +2 annexing +10 annihilate +16 annihilated +3 annihilation +2 anniversary +1 anno +18 announce +33 announced +13 announcement +2 announcements +2 announces +9 announcing +1 annoy +5 annoyance +1 annoyances +1 annoying +1 annual +8 annul +8 annulled +1 annuls +23 annunciation +4 annunt +9 anoint +25 anointed +16 anointing +1 anointings +1 anoints +8 anonymous +3455 another +323 anothers +32 anselm +2 anselms +2775 answer +36 answered +7 answering +47 answers +7 ant +2 antagonism +1 ante +7 antecedence +31 antecedent +19 antecedently +3 antecedents +1 anteriorum +1 anthony +1 anthropomorphites +25 antichrist +1 antichrists +2 anticipate +6 anticipated +3 anticipates +1 anticipation +2 antidote +6 antioch +2 antiochus +1 antipathy +1 antiq +1 antiquit +1 antiquity +1 anton +2 antonomasia +11 antonomastically +6 antony +2 ants +22 anxiety +6 anxious +2666 any +2 anybody +5 anyhow +531 anyone +10 anyones +907 anything +1 anythings +6 anywhere +2 aorasia +2 ap +149 apart +1 apartments +1 apathy +2 apes +1 aphilotimia +52 apoc +6 apocalypse +3 apocrypha +11 apocryphal +4 apollinaris +1 apollinarists +2 apollinarius +3 apollo +15 apost +38 apostasy +1 apostata +12 apostate +7 apostates +3 apostatize +2 apostatized +2 apostatizing +986 apostle +225 apostles +2 apostleship +15 apostolic +1 apostolicae +1 apostolici +1 apostolus +1 app +38 apparel +65 apparent +1 apparentapparent +157 apparently +27 apparition +19 apparitions +23 appeal +3 appealed +9 appealing +7 appeals +245 appear +55 appearance +9 appearances +117 appeared +2 appeareth +12 appearing +421 appears +3 appease +6 appeased +1 appeases +1 appeaseth +1 appellation +2 appellative +22 append +5 appendix +20 appertain +1 appertained +10 appertaining +23 appertains +2 appetibility +55 appetible +1191 appetite +25 appetites +1 appetition +391 appetitive +1 appetizing +1 applauded +2 applause +12 apple +1 apples +1 appliances +43 applicable +69 application +1 applications +359 applied +282 applies +198 apply +47 applying +21 appoint +170 appointed +5 appointing +22 appointment +18 appoints +3 apportioned +3 apportions +1 apposite +3 apposition +2 appraised +1 appraising +2 appreciable +6 appreciate +3 appreciated +3 appreciation +75 apprehend +159 apprehended +23 apprehending +80 apprehends +232 apprehension +5 apprehensions +99 apprehensive +149 approach +7 approached +52 approaches +20 approaching +2 approbation +46 appropriate +88 appropriated +3 appropriately +2 appropriateness +5 appropriates +1 appropriating +17 appropriation +1 appropriations +18 approval +13 approve +24 approved +9 approves +1 approveth +5 approving +1 april +45 apt +97 aptitude +4 aptly +16 aptness +1 apud +1 apuleius +1 apyrokalia +1 aquarii +4 aqueous +1 arabian +1 arabic +1 aratus +72 arb +2 arbe +6 arbit +1 arbiter +2 arbitrary +4 arbitrator +2 arbitrators +1 arbitrio +1 arbitrium +2 arch +7 archangel +20 archangels +1 archbishop +6 archdeacon +2 archdeaconry +22 archdeacons +1 arche +13 archer +1 archers +1 archetype +1 archippus +18 architect +1 architectonic +3 architects +2 architecture +17 archon +1 arctans +8 ardent +1 ardently +11 ardor +80 arduous +9 arduousness +17766 are +1 arete +1 arg +31 argue +13 argued +32 argues +8 arguing +313 argument +2 argumentative +43 arguments +5 arian +1 arianos +10 arians +1 arid +96 aright +1 arimathea +261 arise +8 arisen +326 arises +80 arising +3 arist +6 aristocracy +1 aristocratic +1 aristophanes +1 aristotelian +168 aristotle +8 aristotles +1 arithm +5 arithmetic +5 arithmetical +16 arius +28 ark +1 arles +5 arm +5 armed +8 arment +1 armentar +1 armies +6 armor +27 arms +37 army +31 arose +21 around +23 arouse +34 aroused +5 arouses +3 arousing +2 arrange +12 arranged +4 arrangement +2 arrangements +1 array +3 arrival +36 arrive +8 arrived +14 arrives +3 arriving +9 arrogance +1 arrogancy +1 arrogant +1 arrogantly +19 arrow +2 arrows +1 ars +1 arsenius +3115 art +2 arte +1 artery +1 artful +1 arthron +2794 article +606 articles +1 articulations +1 articulus +2 artifice +14 artificer +23 artificial +4 artificially +6 artisan +18 artist +1 artistic +1 artistically +3 artists +1 artless +1 artotyrytae +62 arts +1 aruspicy +32417 as +2 asa +51 ascend +53 ascended +3 ascendeth +22 ascending +9 ascends +51 ascension +7 ascent +2 ascertain +4 ascertained +1 ascertaining +1 asclep +25 ascribe +199 ascribed +42 ascribes +7 ascribing +72 ashamed +22 ashes +123 aside +181 ask +60 asked +2 askest +8 asketh +24 asking +39 asks +44 asleep +1 asp +400 aspect +44 aspects +2 aspersory +1 aspired +2 aspires +24 ass +11 assail +4 assailant +2 assailants +11 assailed +6 assailing +3 assails +1 assassins +20 assault +1 assaulted +24 assaults +1 assemble +4 assembled +14 assembly +91 assent +1 assented +5 assenting +1 assentire +31 assents +1 asseris +68 assert +44 asserted +10 asserting +49 assertion +6 assertions +36 asserts +3 asses +2 assessed +1 assessors +3 assiduity +2 assiduously +50 assign +1 assignable +1 assignation +254 assigned +8 assigning +3 assignment +56 assigns +18 assimilated +2 assimilates +19 assimilation +52 assist +90 assistance +3 assistant +10 assistants +9 assisted +6 assisting +7 assists +13 associate +17 associated +5 associates +4 associating +4 association +14 assuage +18 assuaged +12 assuages +3 assuaging +3 assuerus +1 assum +13 assumable +150 assume +423 assumed +25 assumes +38 assuming +1 assump +1 assumpt +1 assumptibility +111 assumption +1 assumptions +7 assurance +3 assure +16 assured +8 assuredly +2 assuring +1 assyrian +2 assyrians +7 astonished +2 astonishing +4 astonishment +1 astraddle +28 astray +2 astrologer +16 astrologers +1 astrology +8 astronomer +5 astronomers +2 astronomical +1 astronomy +2 astute +1 astuteness +6 asunder +1 asynetoi +2553 at +23 ate +44 athanasius +1 athenians +6 athens +1 athletes +36 atmosphere +2 atmospheric +4 atomo +5 atoms +11 atone +5 atoned +16 atonement +1 atones +2 atoning +1 atrabilious +5 attach +36 attached +22 attaches +17 attaching +15 attachment +21 attack +5 attacked +3 attacking +12 attacks +213 attain +6 attainable +88 attained +1 attainer +59 attaining +68 attainment +80 attains +17 attempt +5 attempted +2 attempting +7 attempts +26 attend +4 attendance +10 attendant +1 attendants +2 attended +7 attending +7 attends +75 attention +11 attentive +3 attentively +1 attenuate +2 attenuated +1 attenuation +14 attestation +2 attestations +5 attested +3 attests +1 attic +24 attire +1 attired +1 attitude +2 attract +2 attracted +2 attracting +4 attraction +3 attractive +6 attracts +51 attribute +275 attributed +47 attributes +8 attributing +1 attribution +3 attuned +1 attunes +1 auctoritate +1 auctoritatem +5 audacity +7 audible +2 audience +1 audientiam +1 auditorium +2 aug +10 aught +2 augment +13 augmentative +1 augurari +5 auguries +3 augury +6 august +2839 augustine +37 augustines +5 augustus +1 aulus +5 aur +13 aurea +2 aurel +1 auspice +11 austere +5 austerity +1 aut +4 autem +3 authentic +115 author +1 authoritative +8 authoritatively +23 authorities +502 authority +4 authorize +2 authorized +12 authors +13 authorship +1 autumn +6 auxerre +1 auxiliis +2 auxilium +27 avail +10 available +3 availed +3 availeth +30 avails +30 avarice +3 avaritia +1 avarus +1 avempace +8 avenge +11 avenged +4 avenger +1 avengers +3 avenges +3 avenging +1 aveo +3 average +10 averroes +1 avers +2 averse +1 averseness +65 aversion +3 averted +6 avicebron +30 avicenna +1 avicennas +1 aviditas +1 avidus +1 avit +1 avitus +2 avium +295 avoid +2 avoidable +56 avoidance +72 avoided +45 avoiding +22 avoids +5 avow +3 avowal +2 avowed +1 avowing +11 await +6 awaited +3 awaiting +8 awaits +18 awake +1 awaken +2 awakened +1 awakening +4 award +9 awarded +1 awards +15 aware +927 away +2 awe +1 awesome +1 awful +1 awhile +1 awhoring +11 axe +4 axiom +1 axioms +1 aylward +1 ayre +1 azarias +4 azymes +6 b +4 baal +1 babbler +1 babbling +1 babe +6 babes +2 baby +1 babyhood +16 babylon +1 babylonian +1 babylonians +1 bacchus +175 back +4 backbite +35 backbiter +11 backbiters +1 backbites +2 backbiteth +86 backbiting +3 backbitten +1 backed +1 backs +1 backsliding +1 backward +3 backwards +1 bactroperatae +180 bad +3 bade +1 badja +4 badly +10 badness +1 baffles +5 bag +9 bailiff +3 bailiffs +1 bait +1 bake +3 baked +1 baker +1 baking +1 bala +8 balaam +3 balance +2 balanced +1 balaneion +1 baldness +12 balm +1 balneum +1 balthasar +2 ban +1 banausia +2 band +9 bands +6 bane +2 baneful +9 banish +7 banished +12 banishes +2 banishing +2 banishment +1 banner +10 banquet +2 banquetings +2 bap +9 bapt +1352 baptism +41 baptismal +5 baptismo +17 baptisms +34 baptist +1 baptistery +1 baptists +1 baptizatur +187 baptize +601 baptized +6 baptizer +2 baptizers +17 baptizes +5 baptizeth +67 baptizing +1 baptizo +4 bar +3 barbarian +1 barbarians +1 barbarism +1 bardenhewer +10 bare +3 barefoot +1 bargain +2 barking +5 barley +3 barnabas +1 baron +1 baronius +8 barren +4 barrenness +2 barrier +1 barrister +6 bars +1 bartered +1 bartholomew +2 baruch +22 base +160 based +1 basely +2 baseness +3 baser +1 bases +1 basic +50 basil +6 basis +2 basket +1 bastards +2 bat +1 bath +1 bathe +1 bathing +6 baths +1 batten +1 battering +47 battle +3 battlefield +1 battles +1 baunos +23677 be +1 beach +3 beak +7 beam +5 beams +206 bear +7 beard +2 beards +24 bearer +7 bearers +1 beareth +93 bearing +87 bears +45 beast +66 beasts +2 beat +2 beata +11 beaten +1 beati +34 beatific +2 beatification +51 beatified +1 beatifier +3 beatifies +1 beatify +5 beating +422 beatitude +102 beatitudes +1 beats +56 beautiful +124 beauty +95 became +6506 because +2 beck +372 become +294 becomes +1 becomesthe +6 becometh +299 becoming +25 becomingly +10 becomingness +11 bed +2 beda +75 bede +4 bedecked +5 bedes +3 beds +1 beelphegor +1 beelzebub +1864 been +4 bees +10 befall +3 befallen +2 befalling +5 befalls +5 befell +21 befit +39 befits +10 befitted +123 befitting +1374 before +30 beforehand +22 beg +123 began +58 beget +76 begets +38 begetter +1 begetteth +76 begetting +2 begettor +4 beggar +1 beggars +4 beggary +1 begged +9 begging +102 begin +2 beginner +18 beginners +616 beginning +5 beginnings +157 begins +3 begone +52 begot +228 begotten +1 begotteni +1 begrudged +1 begs +1 beguiled +1 beguiles +47 begun +24 behalf +22 behave +2 behaved +15 behaves +2 behaving +22 behavior +2 beheaded +11 beheld +1 behest +2 behests +11 behind +112 behold +3 beholden +3 beholder +8 beholders +5 beholdeth +21 beholding +4 beholds +4 behoove +69 behooved +39 behooves +5 behooveth +3 behoved +4607 being +157 beings +1 bel +4 belial +1 belie +72 belief +1 belieth +440 believe +165 believed +43 believer +35 believers +46 believes +21 believeth +61 believing +6 belittle +4 belittles +1 belittling +1 bell +2 belligerents +1 bello +4 bells +13 belly +990 belong +57 belonged +2 belongeth +169 belonging +8 belongings +2322 belongs +120 beloved +75 below +3 belt +1 beltiston +1 ben +4 bench +1 benches +4 bend +64 beneath +17 benedict +1 benedictio +2 benediction +2 benedictus +26 benef +1 benefaction +4 benefactions +49 benefactor +14 benefactors +1 benefic +25 benefice +53 beneficence +10 beneficent +5 benefices +12 beneficial +7 beneficiary +2 beneficiis +80 benefit +6 benefited +1 benefiting +63 benefits +14 benevolence +1 benign +5 benignity +14 bent +4 bequeath +1 bequeathed +1 bequeaths +8 bereft +3 berengarius +1 berenice +19 bernard +1 bernards +1 bersabees +17 beseech +1 beseeches +8 beseeching +1 beseem +5 beseeming +2 beseems +3 beset +3 besets +73 beside +275 besides +2 besiege +1 besieged +1 besmear +30 besought +1 bespattered +1 bespeak +169 best +1 bested +5 bestial +7 bestiality +45 bestow +18 bestowal +227 bestowed +2 bestower +27 bestowing +57 bestows +3 betake +2 betakes +1 bethaven +2 bethink +19 bethlehem +1 bethsabee +6 betoken +18 betokened +1 betokening +8 betokens +1 betook +8 betray +1 betrayal +5 betrayed +3 betrayer +1 betrayest +2 betraying +5 betrays +4 betrothal +7 betrothed +621 better +5 bettered +3 betters +749 between +1 betwixt +2 bewailing +23 beware +1 bewitch +1 bewitched +1 bewitchment +180 beyond +3 bible +1 bicubical +4 bid +9 bidden +1 bidder +1 bidders +11 bidding +1 bide +3 bids +2 big +2 bigamy +2 bigger +9 bile +2 bilious +6 bill +94 bind +113 binding +47 binds +2 biped +11 bird +63 birds +313 birth +5 birthplace +2 birthright +1 births +184 bishop +10 bishopric +129 bishops +2 bit +4 bite +1 bites +33 bitter +2 bitterly +1 bittern +21 bitterness +3 bk +64 black +3 blacken +3 blackened +6 blackening +17 blackness +3 blade +1 blades +58 blame +37 blamed +8 blameless +1 blames +11 blameworthy +2 blaming +3 blandishments +1 blank +10 blaspheme +9 blasphemed +5 blasphemer +3 blasphemers +2 blasphemes +1 blasphemeth +2 blasphemies +4 blaspheming +4 blasphemous +1 blasphemously +120 blasphemy +3 blast +1 blazing +5 blear +12 blemish +1 blended +3 blending +1 blends +15 bless +547 blessed +5 blessedness +2 blesses +75 blessing +15 blessings +1 blest +1 blew +71 blind +16 blinded +1 blindfolded +1 blinding +4 blindly +87 blindness +4 blinds +53 bliss +2 blissful +1 blissfully +4 block +1 blocks +578 blood +1 bloodless +1 blossom +1 blossomed +12 blot +3 blots +40 blotted +14 blotting +1 blount +14 blow +1 bloweth +16 blows +1 blue +1 blunt +1 blunted +7 blush +1 blushes +3 blushing +3 board +4 boards +18 boast +1 boasted +4 boaster +1 boasters +2 boasteth +1 boastful +4 boastfulness +74 boasting +7 boasts +3 boat +1 boats +4 bodied +876 bodies +1 bodiestherefore +660 bodily +4027 body +34 bodys +122 boethius +3 boil +3 boiled +5 boiling +1 boils +8 bold +3 boldly +1 bolts +2 bon +2 bona +6 bonaventure +44 bond +22 bondage +1 bondman +1 bondmen +8 bonds +2 bondservants +2 bondsman +3 bondsmen +1 bondwoman +1 bondwomen +14 bone +48 bones +17 boni +3 bonif +3 bonifac +12 boniface +1 bonitas +34 bono +1 bonosians +1 bonum +1 bonus +224 book +28 books +5 boon +6 boons +2 boorish +2 booty +1 booz +5 borders +31 bore +482 born +86 borne +12 borrow +3 borrowed +10 borrower +2 borrowing +7 borrows +16 bosom +1832 both +2 bottles +2 bottom +1 bough +1 boughs +19 bought +1 boule +7 boulesis +907 bound +5 boundaries +9 boundary +4 bounded +2 bounden +2 boundless +34 bounds +2 bountiful +1 bountifully +8 bounty +11 bow +1 bowed +16 bowels +3 bowing +2 bows +1 boxers +1 boxing +21 boy +4 boyhood +8 boys +1 bracarens +1 brace +1 bracing +11 brackets +2 braga +16 brain +1 brains +1 brake +3 branch +7 branches +1 branded +2 brands +14 brass +80 brave +1 braved +17 bravely +3 bravery +2 braves +1 bravest +2 brawling +2 brazen +1 breach +535 bread +2 breads +10 breadth +54 break +2 breakable +1 breakableness +1 breakage +2 breaker +1 breakest +5 breaketh +38 breaking +30 breaks +26 breast +1 breastbone +4 breasts +21 breath +7 breathe +11 breathed +2 breathes +1 breatheth +9 breathing +3 breathings +4 breeches +1 breed +90 brethren +5 brev +1 breves +5 breviary +2 brevity +2 bria +2 bribe +7 bribes +1 bricks +3 bride +12 bridegroom +1 bridesman +2 bridge +9 bridle +1 bridled +3 brief +6 briefly +1 brigand +10 bright +1 brighten +1 brightly +36 brightness +1 brilliance +1 brilliancy +4 brilliant +1 brimstone +168 bring +12 bringeth +27 bringing +69 brings +1 bristle +1 brittle +31 broad +1 broadcast +4 broader +3 broadly +6 broke +52 broken +3 bronze +3 brood +1 broods +2 brook +1 brooks +135 brother +3 brotherly +36 brothers +345 brought +5 brow +2 bruise +4 bruised +3 brutal +8 brutality +1 brutalized +31 brute +16 brutes +1 buck +1 bucket +1 buckgoats +1 bud +1 buffoons +31 build +34 builder +1 builders +47 building +1 buildings +19 builds +46 built +2 bulgars +16 bulk +1 bullock +2 bullocks +1 bunches +2 bundle +48 burden +15 burdened +1 burdening +20 burdens +20 burdensome +1 burglars +1 burglary +49 burial +61 buried +18 burn +21 burned +1 burneth +31 burning +1 burnings +3 burns +37 burnt +5 burst +1 bursts +3 burthened +1 burthens +1 burthensome +12 bury +2 burying +3 bush +4 bushel +6 busied +1 busies +2 busily +78 business +1 businesses +1 businessman +25 busy +20254 but +1 butler +1 butted +1 butter +1 butting +38 buy +26 buyer +3 buyers +48 buying +1 buyings +9 buys +3 bvm +20867 by +3 bygone +2 bystanders +8 c +1 cad +1 caecitas +1 caelo +7 caenob +1 caenobiorum +1 caere +10 caesar +3 caesarea +1 caesarium +3 caesars +1 cai +3 cain +4 caiphas +4 caium +1 cajole +2 cajoled +1 cajoling +1 cakes +1 calamities +1 calamity +1 calculate +1 calculation +1 calculus +1 caldron +2 calefaction +26 calf +236 call +1987 called +7 calleth +28 calling +2 callist +139 calls +17 calm +1 calmed +1 calmer +1 calmness +3 calms +1 calumniae +2 calumniate +3 calumniating +1 calumniator +10 calumnies +1 calumnious +3 calumniously +10 calumny +3 calvary +2 calves +276 came +1 camel +2 camels +5 camest +17 camp +1 campaign +5347 can +1 cana +5 cancel +2 canceled +2 cancelled +4 candidate +1 candidates +10 candle +1 candlelight +2 candles +12 candlestick +1 candlesticks +1 cannibalism +2833 cannot +40 canon +2 canonic +24 canonical +1 canonization +1 canonry +26 canons +15 canst +16 cant +2 canterbury +5 canticle +7 canticles +126 cap +2 capabilities +20 capability +153 capable +1 capacious +1 capacities +78 capacity +1 capharnaum +186 capital +2 capitula +1 capitularies +1 caprice +4 captain +4 captains +1 captivated +1 captivating +8 captive +8 captives +5 captivity +1 capture +3 captured +2 caput +1 carcases +60 cardinal +1 cardine +206 care +44 careful +28 carefully +6 carefulness +2 careless +4 carelessly +4 carelessness +22 cares +2 caress +1 caresses +2 cargo +1 cariath +2 caring +1 carmel +2 carn +223 carnal +7 carnally +6 carpenter +1 carpentering +1 carpenters +1 carriage +64 carried +13 carries +1 carrion +48 carry +14 carrying +1 cars +4 carthage +1 carus +1 carve +1 carved +868 case +222 cases +3 cask +1 casket +12 cassian +1 cassino +9 cassiodorus +1 cassius +99 cast +1 castaway +6 casteth +16 casting +1 castrated +8 casts +1 castus +2 casu +9 casual +2 casulan +1 cataphrygae +4 cataphrygians +6 catch +2 catches +1 catching +4 catech +10 catechism +8 catechize +3 catechized +6 catechizing +5 catechumen +10 catechumens +4 categ +21 categor +3 categorematical +4 categories +1 caten +11 catena +1 cath +2 cathol +62 catholic +8 catholics +1 catholicus +8 catilin +5 cato +13 cattle +10 caught +1 cauldron +18 caus +5 causa +20 causal +56 causality +7 causally +9 causation +3280 cause +491 caused +913 causes +1 causest +1 causeth +82 causing +29 causis +30 caution +1 cautioned +2 cautious +2 cautiously +4 cave +1 cavity +2 cawing +3 cc +7 cccli +1 ccclxxiv +1 cci +1 cciv +3 ccl +4 cclxv +1 cclxxcii +1 cclxxiii +1 cclxxvii +1 cclxxxvii +1 ccvii +1 ccxciii +12 ccxi +2 ccxii +1 ccxliii +2 ccxlv +1 ccxlvii +1 ccxlviii +2 ccxxviii +1 ccxxx +136 cease +68 ceased +115 ceases +21 ceasing +1 cecilius +10 cedar +1 celant +3 celeb +2 celebr +1 celebrant +1 celebrants +35 celebrate +59 celebrated +7 celebrates +30 celebrating +57 celebration +1 celebratione +1 celebrity +15 celestial +1 celestine +3 celibacy +1 celibate +2 cellar +2 celsus +2 celts +1 cement +1 cemented +1 cemetery +3 censurable +1 censure +1 censured +2 censures +1 census +2 cent +5 center +7 centered +2 centiloquium +2 central +13 centre +4 centum +2 centuries +10 centurion +2 centurions +5 cephas +2 cereals +1 cerei +182 ceremonial +126 ceremonies +11 ceremony +2 ceres +1 cerinthus +2494 certain +33 certainly +1 certainties +80 certainty +2 certam +69 certitude +1 cesarea +1 cess +38 cessation +356 cf +18 ch +6 chain +2 chains +3 chair +1 chaire +1 chairs +6 chalcedon +1 chaldees +1 chalepoi +102 chalice +1 chalices +1 challenged +1 chalon +1 chalons +2 cham +2 chamber +1 chambers +1 champion +3 chanaan +1 chananaean +1 chananaeans +78 chance +1 chances +473 change +61 changeable +12 changeableness +282 changed +1 changeless +1 changelessness +67 changes +25 changing +1 channel +2 channels +5 chant +2 chants +1 chaos +5 chap +1 chapels +47 chapter +6 chapters +391 character +6 characteristic +1 characteristics +13 characters +1 charadrion +1 charadrius +2 charakter +51 charge +12 charged +5 charges +2 charging +5 chariot +3 chariots +1 charitably +2402 charity +1 charitys +1 charles +1 charm +1 charmer +1 charmers +1 charmeth +31 chaste +2 chastely +1 chasteneth +1 chastening +3 chastise +7 chastised +6 chastisement +1 chastises +1 chastising +163 chastity +7 chattel +3 chattels +3 chattering +1 cheap +4 cheat +3 cheating +24 check +8 checked +6 checking +4 checks +3 cheek +2 cheer +5 cheerful +1 cheerfully +3 cheerfulness +1 cheers +2 cheese +1 cheir +2 chelid +1 chelidonius +5 chemical +1 cher +1 cherish +2 cherished +3 cherub +27 cherubim +1 chest +1 chewing +1 chews +1 chickens +1 chide +1 chiding +229 chief +552 chiefly +1 chiefs +235 child +6 childbirth +9 childhood +15 childish +609 children +4 childrens +10 childs +1 chill +2 chilled +1 chiromancy +1 chisels +370 choice +1 choices +4 choir +1 choirs +1 chokes +2 choketh +1 chole +6 choleric +3 cholos +105 choose +4 chooser +49 chooses +50 choosing +6 chord +2 chordis +1 choristers +1 chorus +21 chose +119 chosen +67 chrism +5037 christ +1 christen +1 christendom +4 christi +130 christian +1 christianis +2 christianity +1 christiano +38 christians +8 christmas +1 christmastide +1926 christs +1 christus +2 chromatius +4 chronic +1 chronicles +1 chrysippus +2 chrysologus +274 chrysostom +7 chrysostoms +908 church +37 churches +69 churchs +6 ci +52 cicero +3 cii +2 ciii +1 cinders +25 circle +2 circles +2 circuit +26 circular +1 circularly +1 circulate +1 circum +2 circumcis +3 circumcise +45 circumcised +5 circumcising +184 circumcision +1 circumcisions +1 circumference +1 circumferences +1 circuminsession +2 circumlocution +1 circumscribe +9 circumscribed +1 circumscribes +7 circumscriptively +14 circumspection +1 circumspectly +192 circumstance +1 circumstanced +237 circumstances +2 circumstant +2 circumstantial +1 circumstat +1 circus +1 cisterns +9 cit +1 citation +4 cited +1 cites +16 cities +1 citing +13 citizen +38 citizens +5 citizenship +1 citron +2 citus +116 city +334 civ +10 civic +53 civil +1 civit +1 civitate +1 cix +34 claim +5 claimed +1 claiming +7 claims +4 clamor +3 clamored +1 clamorous +1 clare +3 clarified +69 clarity +1 clashes +5 clashing +1 clasping +35 class +6 classed +8 classes +1 classified +2 claws +11 clay +65 clean +4 cleanliness +17 cleanness +42 cleanse +85 cleansed +18 cleanses +75 cleansing +1 cleanthes +750 clear +7 clearer +2 clearest +234 clearly +8 clearness +1 cleavage +15 cleave +19 cleaves +10 cleaving +1 cledon +1 cleft +1 clefts +91 clemency +4 clement +12 clementia +1 cler +39 clergy +28 cleric +8 clerical +1 clerici +1 clericis +2 clericos +72 clerics +2 clericum +5 clerk +1 clever +1 cleverness +2 client +3 cliii +1 climate +18 cling +5 clinging +8 clings +1 cliv +9 cloak +1 cloaks +1 clocks +2 clog +1 clogged +1 clogs +4 cloister +24 close +33 closed +99 closely +3 closeness +9 closer +4 closes +1 closest +4 closing +11 cloth +8 clothe +32 clothed +48 clothes +1 clothiers +31 clothing +4 cloths +25 cloud +5 clouded +19 clouds +5 cloudy +3 cloven +1 clung +1 clutches +1 clvi +1 clx +1 clxii +4 clxiv +2 clxix +5 clxvii +1 clxviii +1 clxxvi +1 clxxviii +5 clxxx +3 clxxxix +5 clxxxv +2 clxxxvi +1 clxxxvii +62 co +1 coachman +1 coagitare +6 coal +1 coalition +2 coals +17 coarse +4 coarseness +6 coarser +1 coasts +4 coat +1 cochineal +10 cockle +11 cod +4 code +2 codex +7 codices +150 coel +44 coelo +1 coena +7 coerce +7 coerced +1 coercer +2 coercing +22 coercion +16 coercive +7 coexist +2 coexistent +1 coffer +1 cogency +13 cogent +1 cogitare +1 cogitatio +9 cogitation +15 cogitative +1 cognit +13 cognition +118 cognitive +15 cognizance +18 cognizant +1 cognoscibility +1 cognoscitive +1 cohabit +1 cohabitation +8 coin +12 coincide +1 coincidence +3 coincides +2 coins +13 coition +78 col +86 cold +2 coldness +1 colere +17 coll +1 collapse +5 collat +1 collating +2 collation +1 collationes +11 collative +12 collect +8 collected +2 collecting +2 collection +5 collective +6 collectively +3 collects +2 college +1 collegians +4 colloquy +14 collusion +145 color +41 colored +46 colors +2 colossians +8 column +1 columns +2 com +21 combat +2 combatant +1 combatants +4 combats +6 combination +2 combinations +13 combine +1 combined +3 combines +1 combining +3 combustible +779 come +3 comedians +2 comedies +2 comedite +22 comeliness +4 comely +1 comers +481 comes +1 comest +2 comestor +60 cometh +3 comets +17 comfort +10 comforted +2 comforter +3 comforting +193 coming +1 comings +1 comitem +3 comm +472 command +329 commanded +20 commander +2 commanders +1 commandest +1 commandeth +67 commanding +148 commandment +189 commandments +138 commands +6 commemorate +15 commemorated +3 commemorates +13 commemoration +2 commemorative +2 commenced +3 commencement +2 commences +15 commend +27 commendable +5 commendably +13 commendation +45 commended +6 commendeth +1 commending +5 commends +1 commensurable +25 commensurate +2 commensurated +1 commensurateness +17 commensuration +32 comment +56 commentary +16 commentator +2 commentators +100 commenting +10 comments +3 commerce +1 commercial +2 commingling +1 commiserate +25 commission +4 commissioned +1 commissioner +125 commit +71 commits +344 committed +14 committeth +71 committing +3 commodities +4 commodity +1216 common +3 commonalty +2 commoner +1 commonest +65 commonly +1 commonness +1 commons +1 commonsense +23 commonwealth +7 commotion +1 communicability +24 communicable +2 communicant +3 communicants +88 communicate +34 communicated +29 communicates +1 communicateth +16 communicating +21 communication +2 communications +1 communicative +1 communicators +1 communio +67 communion +1 communities +160 community +1 communitys +1 commutable +17 commutation +26 commutations +60 commutative +1 commute +4 commuted +1 comp +21 compact +4 compacted +5 compacts +1 companies +6 companion +6 companions +6 companionship +20 company +3 comparable +2 comparative +4 comparatively +37 compare +293 compared +29 compares +21 comparing +367 comparison +9 comparisons +3 compass +2 compassed +1 compassing +5 compassion +5 compassionate +1 compassionating +43 compatible +19 compel +53 compelled +4 compelling +9 compels +9 compensate +5 compensated +1 compensates +32 compensation +12 competency +101 competent +20 complacency +1 complain +2 complaining +2 complains +2 complaint +1 complaisant +21 complement +112 complete +61 completed +32 completely +8 completeness +11 completes +7 completing +35 completion +9 completive +16 complex +8 complexion +3 complexity +3 compliance +2 complicity +2 complied +2 complies +3 compline +7 comply +1 complying +4 component +1 components +3 comport +5 compose +183 composed +1 composes +23 composing +112 composite +4 composites +132 composition +32 compound +6 compounded +1 compounder +3 compounds +44 comprehend +48 comprehended +1 comprehender +8 comprehending +28 comprehends +4 comprehensible +44 comprehension +5 comprehensive +50 comprehensor +12 comprehensors +18 comprise +104 comprised +32 comprises +5 comprising +2 compromise +33 compulsion +1 compulsory +3 compunct +2 compunction +2 compunctione +1 computation +1 compute +7 computed +1 comrade +1 comrades +2 comradeship +5 conc +2 concause +1 concave +6 conceal +8 concealed +2 concealeth +5 concealing +4 concealment +2 conceals +4 concede +7 conceded +1 concedes +3 conceit +1 conceits +1 conceivable +28 conceive +171 conceived +22 conceives +19 conceiving +2 concentrate +3 concentrated +2 concentrating +2 concentration +7 concep +73 concept +273 conception +18 conceptions +11 concepts +68 concern +251 concerned +441 concerning +77 concerns +1 concession +2 concessions +3 concil +1 conciliar +1 concinentem +57 conclude +1 concludebat +19 concluded +32 concludes +1 concluding +1 conclusi +113 conclusion +119 conclusions +1 conclusive +21 concomitance +6 concomitant +7 concomitantly +52 concord +1 concordance +1 concordant +1 concorded +1 concords +5 concourse +3 concreated +48 concrete +3 concretely +1 concretion +1 concubinage +1 concubine +11 concup +470 concupiscence +52 concupiscences +1 concupiscent +2 concupiscentia +1 concupiscere +1 concupiscibility +346 concupiscible +1 concupivit +58 concur +1 concurred +13 concurrence +2 concurrent +8 concurring +13 concurs +16 condemn +60 condemnation +83 condemned +2 condemnest +7 condemning +16 condemns +5 condensation +5 condensed +2 condensing +1 condescend +1 condescended +1 condescending +1 condescends +4 condescension +1 condict +10 condign +1 condignae +1 condignity +20 condignly +1 conditio +319 condition +21 conditional +5 conditionally +7 conditioned +162 conditions +47 condivided +1 condivides +1 condole +2 condone +2 condoned +55 conduce +7 conduced +58 conduces +12 conducing +38 conducive +68 conduct +8 conducted +2 conducting +1 conducts +2 conf +81 confer +3 conference +17 conferences +149 conferred +49 conferring +43 confers +177 confess +16 confessed +16 confesses +19 confessing +124 confession +10 confessions +2 confessor +1 confessors +1 conficere +80 confidence +17 confident +5 confidently +1 confides +1 confiding +1 configuration +1 configure +3 configured +3 confine +31 confined +1 confinement +3 confines +43 confirm +145 confirmation +112 confirmed +9 confirming +6 confirms +1 confiteor +5 conflict +1 conflicting +3 conflicts +1 confluence +34 conform +19 conformable +4 conformably +80 conformed +5 conforming +94 conformity +12 conforms +3 confound +2 confounded +2 confounding +8 confronted +1 confronts +3 confuse +21 confused +7 confusedly +1 confusing +42 confusion +4 confute +2 confuting +1 conglorified +1 congregated +10 congregation +1 congruities +11 congruity +9 congruous +6 congruously +1 conington +3 conjectural +3 conjecturally +16 conjecture +3 conjectures +19 conjoined +2 conjointly +17 conjug +21 conjugal +1 conjugali +1 conjugation +51 conjunction +1 conjunctions +2 conjunctum +64 connatural +6 connaturality +10 connaturalness +1 connect +256 connected +2 connecting +126 connection +4 connections +1 connects +1 conning +1 connivance +4 connote +2 connoted +3 connotes +1 connubial +12 conquer +14 conquered +3 conquering +4 conqueror +1 conquerors +3 conquers +2 cons +2 consaldus +13 consanguinity +129 conscience +26 conscious +9 consciousness +1 conscript +2 conscription +22 consecr +62 consecrate +210 consecrated +16 consecrates +49 consecrating +262 consecration +3 consecratione +1 consecrationibus +9 consecrations +1 consecrator +1 consecrators +1 consecutive +1 consecutively +13 consens +15 consensu +306 consent +8 consented +20 consenting +1 consentire +24 consents +142 consequence +26 consequences +108 consequent +2102 consequently +1 consequents +4 conservation +5 consid +1072 consider +14 considerable +5 considerably +320 consideration +26 considerations +1067 considered +1 considereth +122 considering +166 considers +1 considium +3 consigned +2 consignification +1 consilium +191 consist +20 consisted +3 consistency +51 consistent +4 consistently +69 consisting +903 consists +46 consol +12 consolation +1 consolations +2 console +3 consoled +1 consoles +1 consolidated +1 consonant +9 conspicuous +2 conspicuously +1 conspired +1 conspiring +1 const +40 constancy +20 constant +5 constantine +18 constantinople +8 constantly +1 constat +1 constellation +3 constellations +6 constit +8 constituent +1 constituit +46 constitute +45 constituted +46 constitutes +20 constituting +9 constitution +3 constitutions +6 constitutive +7 constrained +4 constraint +7 constructed +1 constructing +2 construction +1 constructs +7 construed +10 consubstantial +7 consubstantiality +1 consuetud +1 consuetudinem +7 consult +1 consulta +12 consultation +1 consultations +8 consulted +4 consulteth +9 consulting +5 consults +1 consuluist +1 consuluisti +15 consume +26 consumed +1 consumer +11 consumes +2 consumeth +2 consuming +13 consummate +30 consummated +1 consummates +42 consummation +2 consummative +1 consumptio +17 consumption +17 cont +84 contact +7 contacts +4 contagion +3 contagious +97 contain +423 contained +13 container +36 containing +193 contains +3 contaminated +1 contaminates +1 contamination +8 contemn +5 contemned +3 contemneth +5 contemning +11 contemns +7 contempl +16 contemplate +4 contemplated +12 contemplates +24 contemplating +373 contemplation +1 contemplations +300 contemplative +1 contemplatives +2 contemporaneously +170 contempt +5 contemptible +6 contemptuous +1 contemptuously +16 contend +17 contended +1 contendeth +6 contending +3 contends +23 content +6 contented +1 contentedness +1 contentio +64 contention +9 contentions +5 contentious +3 contentment +4 contents +2 contest +3 contestation +3 contests +11 context +1 contiguity +158 continence +59 continency +42 continent +1 continentem +2 continentia +23 contingencies +22 contingency +141 contingent +6 contingently +7 contingents +1 contingit +34 continual +40 continually +8 continuance +12 continuation +55 continue +25 continued +53 continues +3 continueth +8 continuing +19 continuity +116 continuous +2 continuously +2 contorts +6 contr +164 contra +57 contract +79 contracted +9 contracting +32 contraction +1 contractor +19 contracts +18 contradict +3 contradicting +46 contradiction +1 contradictor +11 contradictories +8 contradictory +8 contradicts +4 contradistinction +7 contradistinguished +2 contrapassum +1 contraposition +157 contraries +2 contrarieties +113 contrariety +2 contrarily +8 contrariwise +4237 contrary +14 contrast +16 contrasted +3 contrasts +2 contravene +1 contravention +8 contribute +1 contributed +4 contributes +1 contributions +8 contrite +26 contrition +1 contrived +37 control +13 controlled +1 controlling +4 controls +3 controversy +1 contumacious +1 contumaciously +2 contumax +1 contumelies +1 contumeliosus +3 contumelious +4 contumely +5 convenience +7 convenient +9 conveniently +1 conventicles +1 convention +2 conversant +21 conversation +18 converse +3 conversed +102 conversely +1 converses +1 conversest +2 conversing +91 conversion +14 convert +78 converted +50 convertible +4 converting +2 converts +1 convex +7 convey +41 conveyed +4 conveyeth +3 conveying +12 conveys +1 convicium +2 convict +12 convicted +3 conviction +19 convince +11 convinced +1 convinces +5 convincing +1 convoke +2 convoked +2 convulsed +3 cook +5 cooked +1 cookery +1 cooking +3 cool +3 cooled +3 cooling +2 coolness +1 cools +23 cooperate +6 cooperated +12 cooperates +18 cooperating +8 cooperation +1 cooperator +4 coordinate +4 coordinated +1 coordinates +7 coordination +1 coordinations +2 coot +1 cope +5 copied +3 copies +3 copious +6 copiously +3 copper +1 copula +1 copulate +1 copulated +22 copulation +8 copy +715 cor +1 cord +3 cordis +2 corinth +1 corinthians +1 cormorant +27 corn +1 cornelia +1 cornelian +6 cornelius +2 corner +1 cornered +4 corners +1 cornerstone +1 corollaries +5 corp +86 corporal +7 corporally +786 corporeal +9 corporeally +7 corporeity +6 corpse +5 corpses +2 corpus +5 corr +55 correct +15 corrected +2 correcteth +12 correcting +122 correction +1 corrective +12 correctly +1 correctors +4 corrects +1 correlates +2 correlative +8 correp +2 corrept +98 correspond +2 corresponded +4 correspondence +114 corresponding +136 corresponds +1 corroborate +1 corroborates +1 corroded +1 corrup +82 corrupt +200 corrupted +1 corrupter +1 corrupteth +6 corruptibility +116 corruptible +10 corrupting +318 corruption +9 corruptions +17 corruptive +1 corruptives +18 corrupts +4 cost +12 costly +1 costs +3 couch +859 could +1 couldst +117 council +9 councils +610 counsel +8 counseled +5 counseling +17 counselled +13 counselling +5 counsellor +1 counsellors +3 counselor +1 counselors +105 counsels +22 count +13 counted +29 countenance +31 counter +1 counteract +1 counteracted +1 counteracting +2 counteracts +10 counterfeit +2 counterpassion +4 counting +1 countless +10 countries +92 country +1 countryman +1 countrymen +1 countrys +19 counts +2 couple +7 coupled +1 couples +16 courage +4 courageous +1 couriers +112 course +3 courses +2 coursing +44 court +3 courts +2 cousin +1 cousins +19 covenant +1 covenants +21 cover +49 covered +8 covereth +9 covering +3 coverings +9 covers +1 covert +1 covertly +26 covet +17 coveted +1 coveter +21 coveting +41 covetous +272 covetousness +4 covets +12 cow +3 coward +23 cowardice +1 cowards +1 cows +1 cozen +1 cradle +10 craft +2 craftily +55 craftiness +40 craftsman +5 craftsmans +7 craftsmen +10 crafty +1 cranes +1 crates +2 crave +5 craves +28 craving +1 creatable +62 create +831 created +18 creates +13 creating +330 creation +4 creative +96 creator +6 creators +847 creature +1 creaturegal +863 creatures +1 cred +3 credence +2 credendi +1 credibility +20 credible +7 credit +1 creditable +3 credited +6 creditor +2 creditors +16 creed +3 creep +10 creeping +2 creeps +1 crept +1 crescon +16 cried +2 crier +7 cries +2 crieth +71 crime +28 crimes +9 criminal +3 criminals +1 criste +1 critic +1 crook +4 crooked +3 crops +145 cross +2 crossed +4 crosses +7 crossing +1 crossroad +2 crow +14 crowd +4 crowds +22 crown +8 crowned +2 crowning +2 crowns +2 crows +1 crozier +2 cruce +89 crucified +3 crucifiers +3 crucifixion +5 crucify +4 crucifying +1 crude +1 cruditas +15 cruel +50 cruelty +3 crushed +1 crushing +21 cry +12 crying +3 crystal +4 crystalline +6 cubits +2 cud +1 culled +2 culminate +1 culminates +3 culminating +1 culpa +1 culpability +3 culpable +1 culprit +3 cultivate +2 cultivated +2 cultivates +1 cultivating +4 cultivation +1 cultured +17 cum +1 cumbered +1 cumin +1 cunctis +24 cunning +3 cunningly +5 cup +1 cupiditas +40 cupidity +1 cups +3 cur +8 cura +3 curable +1 curam +21 curb +10 curbed +12 curbing +8 curbs +69 cure +22 cured +2 cures +2 curing +1 curiosa +48 curiosity +5 curious +2 curiously +1 curly +1 currency +2 current +1 curry +55 curse +30 cursed +3 curser +1 cursers +6 curses +5 curseth +36 cursing +3 curtain +7 curtains +2 curvature +1 cushions +5 custody +192 custom +37 customary +22 customs +53 cut +5 cuts +1 cutteth +24 cutting +2 cv +3 cvi +1 cvii +1 cviii +1 cx +2 cxc +2 cxcix +1 cxii +2 cxiii +2 cxiv +2 cxix +3 cxl +1 cxli +1 cxlii +1 cxliii +1 cxlix +1 cxlv +1 cxlvi +5 cxlvii +1 cxv +2 cxvi +1 cxvii +9 cxviii +1 cxvli +3 cxx +1 cxxcii +4 cxxi +1 cxxii +3 cxxiii +2 cxxiv +10 cxxv +11 cxxvii +13 cxxx +1 cxxxi +1 cxxxii +3 cxxxv +2 cxxxvi +11 cxxxvii +3 cxxxviii +1 cyphers +23 cyprian +1 cyprians +26 cyril +1 cyrils +2 cyrus +64 d +1 dacia +1 daem +3 daemon +67 daily +5 daintily +9 dam +6 damage +4 damages +4 damas +330 damascene +2 damascenes +5 damascus +3 damasum +6 damasus +1 damn +38 damnation +35 damned +1 damnifies +2 damnify +1 damnum +2 damp +1 dams +5 damsel +1 damsels +57 dan +1 danced +1 dancing +249 danger +36 dangerous +104 dangers +26 daniel +1 dans +1 dantes +4 dardan +1 dardanus +30 dare +5 dared +5 dares +237 daring +1 darings +34 dark +3 darken +12 darkened +1 darkening +1 darkens +1 darker +153 darkness +1 darknesses +10 darksome +1 dart +1 dates +1 dathan +76 daughter +67 daughters +100 david +7 davids +8 dawn +2 dawning +723 day +2 daylight +274 days +3 daytime +2 dazzled +2 dazzling +3294 de +21 deacon +1 deaconry +34 deacons +321 dead +26 deadened +23 deadly +7 deaf +1 deafening +2 deafness +15 deal +3 dealeth +8 dealing +20 dealings +23 deals +4 dealt +8 dear +1 dearer +5 dearly +1058 death +2 deaths +5 debar +34 debarred +3 debars +3 debased +2 debasement +1 debasing +4 debate +1 debates +2 debating +1 debauch +1 debauched +2 debauchery +2 debility +1 debita +1 debitum +1 deborah +271 debt +25 debtor +2 debtors +10 debts +1 decad +219 decalogue +8 decay +10 decayed +1 decayeth +1 decease +9 deceased +26 deceit +21 deceitful +12 deceitfully +3 deceitfulness +3 deceits +51 deceive +104 deceived +1 deceivers +4 deceives +10 deceiving +7 decem +3 decencies +5 decency +3 decent +2 decently +37 deception +2 deceptions +3 deceptive +34 decide +21 decided +9 decides +6 deciding +1 decii +1 decim +2 decimae +1 decimam +1 decimas +4 decimis +49 decision +3 decisions +1 decisive +4 decked +12 declaration +1 declarations +9 declaratory +39 declare +81 declared +153 declares +10 declaring +15 decline +3 declined +12 declines +4 declineth +10 declining +1 decoll +1 decomposed +1 decoquit +1 decorous +6 decorum +2 decoy +36 decrease +18 decreases +40 decree +22 decreed +1 decreeing +21 decrees +1 decrepitude +21 decret +1 decreta +39 decretal +64 decretals +1 decretum +1 decrevit +10 dedicated +3 dedication +1 dedications +3 deduced +1 deducing +1 deduct +1 deduction +2 deductive +278 deed +330 deeds +42 deem +81 deemed +11 deeming +29 deems +26 deep +8 deeper +5 deepest +10 deeply +1 deer +1 def +1 deface +4 defamation +1 defamatory +3 defame +5 defamed +1 defames +2 defaming +12 default +1 defaults +5 defeat +1 defeated +380 defect +1 defectible +1 defection +44 defective +2 defectively +194 defects +3 defence +42 defend +10 defendant +1 defendants +5 defended +1 defender +2 defenders +31 defending +13 defends +48 defense +7 defer +11 deference +1 deferent +28 deferred +1 deficiencies +87 deficiency +49 deficient +1 deficiently +5 defile +34 defiled +17 defilement +1 defilements +5 defiles +8 defileth +2 definable +13 define +108 defined +16 defines +1 definimus +14 defining +66 definite +10 definitely +1 definiteness +281 definition +19 definitions +9 definitively +2 deflect +1 deflected +1 deflects +1 deflowered +11 deformed +2 deformities +50 deformity +2 defraud +6 defrauded +4 defunctis +1 degenerates +1 degenerating +2 degradation +15 degraded +2 degrading +319 degree +171 degrees +324 dei +12 deified +2 deiform +1 deiformity +1 deify +3 deign +10 deigned +1 deigning +1 deigns +1 deinotike +3 deities +12 deity +1 dejection +44 delay +13 delayed +2 delays +5 delectable +69 delectation +1 delectations +1 delegate +5 delegated +1 delegation +1 deleted +2 deletion +48 deliberate +2 deliberated +18 deliberately +2 deliberates +25 deliberating +66 deliberation +1 deliberative +2 delicacies +8 delicacy +6 delicate +1 delicately +1 delicious +3 delictum +290 delight +11 delighted +31 delightful +6 delighting +63 delights +2 delineate +2 delirious +1 delirium +92 deliver +33 deliverance +213 delivered +2 deliverer +10 delivering +8 delivers +17 delivery +3 delude +2 deluded +13 deluge +1 deluges +38 demand +18 demanded +7 demanding +81 demands +1 demeanor +4 demented +40 demerit +1 demeriting +14 demeritorious +9 demerits +1 demetr +1 democracies +5 democracy +1 democratic +1 democratical +14 democritus +47 demon +1 demoniacal +517 demons +6 demonstrable +12 demonstrate +37 demonstrated +4 demonstrates +3 demonstrating +71 demonstration +14 demonstrations +38 demonstrative +4 demonstratively +2 demonstrator +2 demophil +3 demophilus +1 demur +1 demurred +19 denial +58 denied +19 denies +1 denique +1 denizens +4 denominate +65 denominated +8 denominates +4 denomination +1 denominations +4 denominatively +191 denote +70 denoted +394 denotes +74 denoting +10 denounce +8 denounced +2 denouncement +1 denouncer +4 denounces +6 denouncing +8 dense +1 denser +10 density +31 denunciation +1 denunciations +64 deny +18 denying +3 deo +3 deorum +49 depart +25 departed +10 departing +2 department +3 departments +23 departs +13 departure +137 depend +7 depended +7 dependence +30 dependent +4 dependeth +14 depending +356 depends +4 depicted +2 deplorable +5 deplore +4 deplored +2 deplores +4 deploring +1 deportment +4 deposed +19 deposit +6 depositary +1 depositarys +8 deposited +1 deposition +4 depositor +2 deposits +2 depraved +4 depravity +3 deprecatory +5 depreciate +1 depreciated +1 depreciating +2 depreciation +1 depress +6 depressed +3 depresses +2 depressing +7 depression +35 deprive +142 deprived +37 deprives +9 depriving +11 depth +5 depths +3 depute +50 deputed +2 deputing +1 dereliction +1 derelictum +3 deride +3 derided +5 derider +1 deriders +3 derides +1 derideth +40 derision +10 derivation +98 derive +392 derived +118 derives +7 deriving +4 derogate +3 derogates +25 derogatory +32 descend +25 descendants +80 descended +29 descending +7 descends +46 descent +15 describe +116 described +27 describes +6 describing +13 description +1 descriptions +1 desecrated +55 desert +5 deserted +3 deserter +1 deserting +11 deserts +63 deserve +26 deserved +6 deservedly +89 deserves +5 deserveth +68 deserving +1 desider +1 desiderative +15 design +44 designate +44 designated +29 designates +6 designating +7 designation +2 designator +5 designed +1 designedly +2 designing +4 designs +8 desirability +89 desirable +3 desirableness +1103 desire +177 desired +3 desirer +371 desires +3 desirest +6 desireth +40 desiring +23 desirous +17 desist +1 desisted +6 desisting +1 desists +2 desolate +1 desolation +182 despair +4 despaired +3 despairing +9 despairs +5 desperate +1 desperatio +5 despicable +53 despise +40 despised +34 despises +2 despisest +5 despiseth +17 despising +4 despite +1 despiteful +2 despoil +4 despoiled +1 despoilers +1 despoilest +9 despoiling +2 despoils +1 despot +7 despotic +7 destination +2 destine +15 destined +3 destitute +1 destitution +118 destroy +145 destroyed +2 destroyer +25 destroying +50 destroys +53 destruction +5 destructive +2 desuetude +1 detached +23 detail +3 detailed +10 details +2 detain +14 detained +2 detect +1 detected +5 detention +6 deter +4 deteriorated +2 deterioration +2 determinable +232 determinate +5 determinately +58 determination +21 determinations +1 determinative +1 determinator +31 determine +149 determined +24 determines +18 determining +19 deterred +1 deterrent +12 detest +3 detestable +29 detestation +2 detested +2 detesteth +1 detesting +6 detests +1 dethrone +13 detract +4 detracted +2 detracteth +2 detracting +12 detraction +4 detractions +6 detractor +5 detractors +7 detracts +1 detrahere +24 detriment +18 detrimental +11 deum +4 deus +263 deut +1 deuteronomy +2 devastated +1 develop +3 developed +2 developing +8 development +6 deviate +1 deviated +3 deviates +2 deviation +1 device +4 devices +376 devil +4 devilish +73 devils +8 devise +19 devised +1 deviser +8 devises +2 deviseth +4 devising +52 devoid +1 devolved +4 devolves +30 devote +12 devoted +1 devotedly +1 devotedness +1 devotee +9 devotes +7 devoting +185 devotion +5 devour +2 devoured +1 devoureth +1 devouring +22 devout +12 devoutly +2 devovere +2 dew +2 diaboli +2 diabolical +1 diac +1 diaconate +1 diadems +1 diagnosed +1 diagram +24 dial +4 dialectic +5 dialectical +7 dialectics +3 dialog +1 dialogue +2 diameter +1 diametrically +6 diaphanous +1 dice +1 dicens +1 dicere +1 dici +9 dict +1 dicta +41 dictate +3 dictated +28 dictates +1 dictating +1 dictation +6 diction +2 dictionary +3 dictum +1321 did +3 didot +19 didst +2 didymus +164 die +94 died +1 diel +27 dies +6 diet +11 dieth +505 differ +14 differed +528 difference +74 differences +907 different +14 differentiate +55 differentiated +6 differentiates +3 differentiating +2 differentiation +54 differently +1 differeth +31 differing +211 differs +280 difficult +15 difficulties +4 difficultly +145 difficulty +1 diffidentiae +3 diffuse +5 diffused +1 diffusely +2 diffuses +13 diffusion +7 diffusive +14 dig +7 digest +4 digested +10 digestion +1 digestive +3 digestives +1 digged +1 digger +1 digging +3 dignities +281 dignity +1 digs +1 dikaion +1 dilatatio +3 dilatation +1 dilated +3 dilates +1 dilating +1 dilation +1 dilectio +38 dilection +4 dilectus +5 dilemma +1 dilig +13 diligence +2 diligent +1 diligently +1 diligimus +1 diluted +4 dim +9 dimension +56 dimensions +76 dimensive +62 diminish +85 diminished +63 diminishes +6 diminishing +1 diminishment +29 diminution +2 dimly +4 dimmed +5 dims +1 dinant +2 dine +2 dined +2 dines +1 dining +5 dinner +2 dint +6 diocese +1 diocletian +546 dionysius +3 dios +1 diosc +7 dioscor +4 dioscorus +3 dip +15 dipped +3 dipping +4 dips +2 dire +251 direct +915 directed +86 directing +81 direction +5 directions +7 directive +419 directly +8 director +151 directs +3 dirigible +2 dirt +2 disabled +12 disaccord +1 disaccording +2 disaccords +6 disadvantage +1 disadvantageous +1 disadvantages +1 disaffected +5 disagree +16 disagreeable +2 disagreed +2 disagreeing +5 disagreement +6 disagrees +4 disappear +2 disappearance +3 disappears +2 disappointed +1 disappointment +2 disapprobation +2 disapproval +2 disapprove +5 disapproves +2 disapproving +1 disaster +2 disastrous +2 disavowal +1 disbelief +3 disbelieve +1 disbelieved +9 disbelieves +1 disbelieving +1 discarded +29 discern +8 discerned +1 discerner +1 discernible +18 discerning +9 discernment +3 discerns +8 discharge +1 discharged +2 discharges +2 discip +39 disciple +246 disciples +4 discipleship +2 disciplina +1 disciplinary +23 discipline +2 disclaimer +1 disclaiming +3 disclose +1 disclosed +1 discomfort +1 disconcerted +2 discontinued +1 discontinuous +84 discord +1 discordance +14 discordant +2 discords +1 discount +1 discounts +2 discouraged +7 discourse +1 discoursed +4 discourses +7 discoursing +2 discourteous +19 discover +1 discoverable +28 discovered +1 discovereth +7 discovering +7 discovers +22 discovery +1 discredit +2 discreditable +1 discreet +5 discrepancy +1 discrepant +5 discrete +47 discretion +1 discretive +3 discriminate +1 discriminated +2 discriminates +4 discriminating +4 discrimination +19 discursion +1 discursions +43 discursive +3 discursively +1 discursiveness +7 discuss +5 discussed +3 discusses +7 discussing +9 discussion +4 disdain +1 disdained +2 disdainful +63 disease +1 diseased +24 diseases +1 disengaged +1 disfigure +1 disfigured +1 disfigurement +43 disgrace +3 disgraced +55 disgraceful +1 disguise +1 disguised +5 disgust +2 dish +2 disheartened +2 disheartens +1 dishonestly +1 dishonesty +30 dishonor +1 dishonorable +4 dishonored +1 dishonoreth +8 dishonoring +3 dishonors +1 disinclination +1 disinclined +1 disinherited +4 disintegrated +2 disintegration +9 dislike +1 disliked +3 dislikes +1 dislocates +1 dislodges +1 disloyal +1 dismisses +70 disobedience +3 disobedient +14 disobey +5 disobeyed +2 disobeying +3 disobeys +63 disorder +15 disordered +9 disorderly +5 disorders +5 disparage +2 disparaged +2 disparagement +3 disparages +2 disparagingly +5 disparate +3 disparity +3 dispel +7 dispelled +3 dispels +1 dispens +5 dispensable +128 dispensation +9 dispensations +62 dispense +31 dispensed +13 dispenser +10 dispensers +7 dispenses +28 dispensing +3 disperse +3 dispersed +1 displace +2 displaced +1 displaces +2 displacing +8 display +8 displayed +1 displaying +1 displays +9 displease +8 displeased +2 displeases +4 displeaseth +17 displeasing +26 displeasure +17 disposal +54 dispose +275 disposed +72 disposes +1 disposeth +26 disposing +523 disposition +114 dispositions +4 dispositive +26 dispositively +1 dispossession +1 dispraise +3 disproportion +3 disproportionate +3 disprove +14 disproved +2 disproves +2 disputant +3 disputation +4 disputations +25 dispute +2 disputed +1 disputes +5 disputing +3 disqualified +2 disquiet +1 disquieted +1 disquietude +13 disregard +3 disregarded +1 disregarding +2 disregards +1 disrepute +1 disrespectfully +2 dissemble +1 dissembled +4 dissembler +3 dissemblers +1 dissembles +2 dissembling +1 disseminate +1 disseminated +20 dissension +7 dissensions +18 dissent +2 dissented +1 dissentient +1 dissenting +3 dissents +7 dissimilar +3 dissimilarity +6 dissimilitude +1 dissimulate +52 dissimulation +1 dissimulator +1 dissipated +1 dissociated +2 dissoluble +14 dissolution +3 dissolve +31 dissolved +1 dissolvent +1 dissolves +3 dissolving +3 dissonance +60 dist +70 distance +2 distances +66 distant +1 distantly +9 distaste +5 distasteful +1 distended +5 distilled +682 distinct +466 distinction +12 distinctions +10 distinctive +21 distinctly +1 distinctness +104 distinguish +5 distinguishable +306 distinguished +58 distinguishes +23 distinguishing +6 distorted +1 distortion +1 distorts +5 distract +6 distracted +3 distracting +8 distraction +1 distractions +1 distraught +25 distress +3 distressed +2 distresses +2 distressing +15 distribute +16 distributed +2 distributes +4 distributing +19 distribution +8 distributions +49 distributive +1 distributively +1 distributor +3 distrust +17 disturb +45 disturbance +13 disturbances +46 disturbed +9 disturbing +11 disturbs +4 disunion +1 disunited +1 disunites +3 diurnal +283 div +2 divergence +1 divergencies +60 divers +131 diverse +5 diversely +40 diversified +9 diversifies +34 diversify +1 diversifying +2 diversis +13 diversities +247 diversity +1 divert +3 dives +2 divested +34 divide +343 divided +1 divider +32 divides +1 divideth +32 dividing +5 divin +3 divinat +97 divination +1 divinationes +12 divinations +3 divinatory +3563 divine +61 divinely +1 diviner +4 diviners +3 divines +4 divining +1 divinis +1 divinities +18 divinity +1 divino +2 divis +1 divisibility +37 divisible +265 division +8 divisions +1 divite +10 divorce +1 divorced +1 divorcing +1 divulge +2 divulged +1 dixit +3215 do +2 docile +24 docility +9 doct +9 doctor +43 doctors +90 doctr +224 doctrine +13 doctrines +3 document +1 documentis +2 documents +1 doe +21 doer +26 doers +5155 does +1 doeth +18 dog +1 dogfish +17 dogm +3 dogmas +6 dogmat +1 dogmatibus +2 dogmatic +17 dogs +382 doing +3 doings +2 dole +1 doleful +119 dom +5 domain +30 domestic +1 domestics +1 domin +1 dominant +2 dominate +2 dominated +7 dominates +5 domination +23 dominations +2 dominative +1 domineer +1 domineering +4 domini +2 dominica +5 dominican +1 dominicus +1 dominio +79 dominion +12 donat +2 donation +1 donations +2 donatist +1 donatists +1300 done +2 donkey +1 donned +5 dono +1 donors +1 doom +1 doomed +27 door +2 doorkeeper +19 doors +2 dose +23 dost +81 doth +142 douay +64 double +6 doubled +2 doubly +158 doubt +9 doubted +30 doubtful +1 doubtfully +2 doubting +2 doubtless +13 doubts +1 dough +79 dove +11 doves +387 down +1 downcast +38 downfall +1 downtrodden +11 downward +18 downwards +2 dowry +2 drag +4 dragged +2 dragon +1 dragons +2 drags +1 drain +1 drama +13 drank +8 draught +69 draw +1 drawbacks +3 draweth +30 drawing +101 drawn +50 draws +20 dread +2 dreaded +1 dreadful +6 dreads +25 dream +1 dreamed +1 dreamer +1 dreaming +52 dreams +2 dregs +1 drench +15 dress +1 dresses +1 dressing +17 drew +4 dried +1 drier +1 dries +1 drieth +2 drift +4 drilled +208 drink +5 drinker +14 drinketh +29 drinking +14 drinks +15 drive +15 driven +7 drives +4 driveth +3 driving +1 dromedaries +10 drop +1 dropped +5 drops +1 dross +3 drought +1 droughts +3 drowned +1 drowning +2 drowsiness +1 drowsy +1 drug +1 drugs +34 drunk +5 drunkard +9 drunkards +6 drunken +95 drunkenness +31 dry +2 drying +8 dryness +1 dryshod +19 duab +6 duabus +1 duae +1 dual +7 duality +3 duas +1 dubious +2 dubiously +2 duce +1 duck +1 dudum +1148 due +1 duels +6 dues +3 dug +1 dulcis +1 dulcit +44 dulia +7 dull +3 dulled +14 dullness +1 dulls +31 dulness +18 duly +70 dumb +3 dung +1 duns +1 dupe +1 dupl +8 duplicity +3 durability +1 durable +84 duration +2 durations +148 during +3 durst +26 dust +86 duties +2 dutiful +7 dutifulness +167 duty +61 dwell +19 dwelleth +34 dwelling +9 dwellings +45 dwells +19 dwelt +1 dwindled +2 dye +17 dyed +1 dyes +41 dying +3 e +2 ea +1085 each +4 eadmer +16 eager +9 eagerly +6 eagerness +1 eagle +5 eagles +33 ear +8 earlier +2 earliest +21 early +1 earmarked +1 earn +3 earned +1 earner +8 earnest +5 earnestly +6 earnestness +29 ears +503 earth +2 earthen +2 earthiness +145 earthly +3 earthquake +1 earthquakes +3 earths +1 earthwards +4 earthy +13 ease +5 eased +24 easier +1 easiest +177 easily +57 east +20 easter +1 eastward +1 eastwards +46 easy +237 eat +51 eaten +2 eater +17 eateth +123 eating +16 eats +3 ebb +1 ebbs +1 ebionites +1 eblouissement +1 ebulia +2 eccentricity +1 eccentrics +117 eccl +84 eccles +4 ecclesia +1 ecclesiastes +100 ecclesiastical +1 ecclesiasticis +3 ecclesiasticus +235 ecclus +1 echo +17 eclipse +3 eclipsed +2 eclipses +1 eclipsing +1 eclog +1 economic +2 economically +1 economics +5 economy +1 ecstasies +39 ecstasy +13 ed +2 edge +2 edged +9 edification +11 edifice +3 edified +1 edifieth +3 edifying +1 edited +26 edition +8 editions +1 editorial +1 edn +3 edom +1 edomite +1 educate +4 educated +1 educating +10 education +3 educed +1 eels +1 effaces +1490 effect +123 effected +7 effecting +41 effective +29 effectively +480 effects +2 effectu +3 effectual +1 effectually +20 effeminacy +11 effeminate +51 efficacious +12 efficaciously +1 efficaciousness +71 efficacy +1 efficere +18 efficiency +143 efficient +18 efficiently +1 efficium +1 effigy +20 effort +10 efforts +180 eg +4 egg +8 eggs +2 ego +34 egypt +9 egyptian +26 egyptians +154 eight +1 eighteenth +155 eighth +3 eighthly +1 eironia +1417 either +1 eithers +1 ejaculations +1 ejected +2 ejus +1 ekasta +1 ekstasis +3 elapsed +2 elated +2 elation +1 elbow +1 elcana +3 elder +19 elders +5 eleazar +21 elect +2 elected +1 electio +36 election +1 electione +1 electionem +2 elections +8 elective +1 elector +2 elects +1 eleein +1 eleemosyne +2 elegance +98 element +17 elemental +5 elementary +128 elements +2 elench +2 elephant +5 elevated +1 elevating +1 elevation +9 eleven +33 eleventh +1 elia +40 elias +2 elicit +13 elicited +12 eliciting +4 elicits +2 eliezer +1 eligantur +1 eligens +1 eligere +9 eligible +1 eliminated +1 elimination +20 eliseus +7 elizabeth +1 elizabeths +1 ells +2 elohim +4 eloquence +1 eloquent +1 elphid +814 else +3 elses +39 elsewhere +1 elucidate +4 emanate +3 emanated +1 emanates +4 emanating +24 emanation +1 emanations +1 embalming +5 ember +8 embodied +1 embodying +17 embrace +7 embraced +20 embraces +3 embracing +1 embroiled +1 embroiling +3 embryo +1 emerged +2 emergencies +3 emergency +2 emerges +1 emersion +1 emesenus +27 eminence +1 eminency +21 eminent +6 eminently +1 emissenus +8 emission +2 emit +1 emits +1 emitted +5 emmanuel +1 emmaus +14 emotion +1 emotional +43 emotions +8 empedocles +17 emperor +4 emperors +1 emphasis +1 emphatic +3 empire +14 empiric +1 empirical +60 employ +1 employable +132 employed +1 employer +16 employing +8 employment +46 employs +1 empower +5 empowered +1 empowers +7 emptied +1 empties +1 emptiness +22 empty +54 empyrean +1 emulation +1 emulations +3 emulous +11 enable +11 enabled +19 enables +2 enabling +1 enacims +2 enact +22 enacted +1 enactment +5 enactments +1 enamored +11 enarr +1 encamp +1 encased +1 enchantments +2 enchir +58 enchiridion +11 enclosed +1 encloses +2 enclosure +2 encompassed +7 encounter +2 encountered +5 encounters +6 encourage +8 encouraged +1 encouragement +5 encourages +4 encouraging +1 encroach +3086 end +9 endanger +2 endangered +4 endangering +1 endangers +25 endeavor +6 endeavored +7 endeavoring +12 endeavors +18 ended +1 endeian +4 ending +2 endless +1 endlessness +2 endorse +2 endorsement +3 endow +66 endowed +6 endowment +17 endowments +3 endows +145 ends +3 endued +1 endurable +39 endurance +95 endure +39 endured +38 endures +1 endureth +26 enduring +116 enemies +80 enemy +9 enemys +1 energies +7 energumens +17 energy +1 enervated +1 enervates +1 enfeeble +1 enfeebles +1 enfold +2 enfolded +1 enfolds +2 enforce +5 enforced +2 enforcing +6 engage +14 engaged +1 engagement +1 engagements +2 engages +1 engaging +4 engender +19 engendered +4 engendering +3 engenders +1 engine +1 engines +1 england +24 english +1 engrave +1 engraved +3 engraving +3 engrossed +1 enhance +2 enhances +8 enigma +2 enigmatic +2 enigmatical +2 enjoin +33 enjoined +1 enjoining +1 enjoins +130 enjoy +1 enjoyable +16 enjoyed +24 enjoying +124 enjoyment +21 enjoys +3 enkindle +4 enkindled +2 enkindling +1 enlarge +6 enlarged +1 enlargement +1 enlarging +71 enlighten +98 enlightened +2 enlightener +5 enlighteneth +42 enlightening +68 enlightenment +3 enlightenments +46 enlightens +2 enlikened +1 enlisted +1 enlistment +1 enmesh +3 enmities +6 enmity +1 ennar +2 ennobled +2 enoch +98 enough +1 enraged +1 enrich +1 enriched +9 enrolled +1 ens +1 enslave +5 enslaved +3 enslaves +1 ensnare +41 ensue +3 ensued +39 ensues +10 ensuing +4 ensure +7 ensured +3 ensures +7 entail +3 entailed +8 entails +4 entangle +2 entangled +2 entangles +4 entangleth +241 enter +69 entered +3 entereth +72 entering +1 enterprises +48 enters +6 entertain +1 entertained +1 entia +11 enticed +3 enticement +1 enticements +3 entices +3 enticing +248 entire +241 entirely +11 entirety +2 entities +3 entitled +5 entity +2 entrails +42 entrance +1 entrap +1 entrapped +2 entreat +1 entreated +1 entreats +3 entreaty +6 entrust +41 entrusted +1 entrusting +4 entrusts +4 entry +2 enumerate +74 enumerated +18 enumerates +4 enumerating +21 enumeration +4 enumerations +18 enunciable +1 enunciables +6 enunciation +6 enunciations +1 enunciatory +1 envied +5 envies +27 envious +192 envy +4 envying +1 envys +1 eos +291 ep +197 eph +5 ephes +1 ephesians +26 ephesus +4 ephod +1 ephpheta +1 ephrata +3 ephron +1 epi +3 epict +1 epictetum +3 epicureans +1 epicycles +8 epieikeia +1 epieikes +33 epikeia +3 epilepsy +1 epileptic +3 epiph +30 epiphany +6 epis +11 episc +1 episcop +2 episcopacy +69 episcopal +17 episcopate +2 episcopi +2 episcopus +1 episkopein +1 episkopos +29 epist +40 epistle +3 epistles +1 epithet +1 epo +1 epoch +4 equability +8 equable +362 equal +2 equaled +2 equaling +220 equality +2 equalize +1 equalized +2 equalizing +5 equalled +1 equalling +148 equally +19 equals +7 equanimity +1 equated +5 equation +2 equator +3 equilibrium +1 equinoctial +2 equinox +1 equip +1 equiparance +2 equipment +1 equipped +2 equitable +1 equitably +30 equity +25 equivalent +27 equivocal +24 equivocally +1 equivocals +7 equivocation +1 eradicated +12 ere +9 erect +2 erecting +2 erig +39 err +19 erred +46 erring +33 erroneous +3 erroneously +175 error +30 errors +17 errs +1 erstwhile +2 erudition +11 esau +59 escape +4 escaped +7 escapes +1 escaping +2 esdr +2 esdra +4 esdras +4 especial +496 especially +10 espousals +29 espoused +4 esse +1518 essence +23 essences +1 essendo +1 essentia +1 essentiae +383 essential +321 essentially +6 essentials +8 est +24 establish +180 established +14 establishes +15 establishing +5 establishment +19 estate +3 estates +27 esteem +24 esteemed +1 esteemeth +2 esteeming +9 esteems +1 estha +4 esther +50 estimate +8 estimated +1 estimates +1 estimating +18 estimation +22 estimative +1 estranged +245 et +307 etc +855 eternal +24 eternally +3 eternities +275 eternity +1 eth +1 ether +3 ethereal +1362 ethic +9 ethics +1 ethiopia +3 ethiopian +1 ethosis +3 etiology +97 etym +1 etymological +5 etymology +1 eu +41 euboulia +7 eubulia +168 eucharist +1 eucharistia +2 eucharistic +3 euclid +3 eudem +1 eudemean +1 eudemian +1 eudemic +1 eudox +3 eugnomosyne +1 eunom +3 eunomius +7 eunuch +10 eunuchs +1 eupatheiai +1 eupatheias +3 euphrates +3 eusebeia +11 eusebius +5 eustoch +8 eustochia +1 eusynetoi +12 eutrapelia +5 eutyches +38 ev +2 evacuation +2 evacuations +3 evade +1 evaded +1 evades +1 evading +1 evan +1 evanescent +120 evang +8 evangelical +28 evangelist +23 evangelists +1 evangelized +4 evaporation +2 evaporations +9 evasion +27 eve +2186 even +91 evening +1 evenly +12 event +1 eventide +63 events +2 eventually +279 ever +1 evergreen +172 everlasting +1 everlastingly +3 everlastingness +7 evermore +2336 every +5 everybody +4 everyday +110 everyone +1 everyones +436 everything +98 everywhere +7 eves +147 evidence +16 evidenced +901 evident +66 evidently +2871 evil +2 evildoer +8 evildoers +5 evilly +217 evils +1 evinces +5 evod +1 evodius +1 evoke +2 evoked +1 evokes +243 ex +23 exact +12 exacted +6 exacting +3 exaction +1 exactitude +6 exactly +1 exactor +9 exacts +2 exaggerate +1 exaggerations +6 exalt +20 exaltation +57 exalted +1 exaltedness +2 exalteth +6 examination +6 examine +8 examined +4 examines +2 examining +242 example +21 examples +4 exasperated +1 excandescentia +63 exceed +14 exceeded +54 exceeding +12 exceedingly +108 exceeds +51 excel +4 excelled +307 excellence +2 excellences +3 excellency +311 excellent +14 excellently +15 excelling +69 excels +1 excelsis +889 except +6 excepted +3 excepting +26 exception +2 exceptional +2 exceptions +205 excess +3 excesses +81 excessive +4 excessively +1 excessus +26 exchange +3 exchanged +2 exchanges +1 excision +1 excitation +7 excite +3 excited +2 excites +3 exciting +1 exclaim +5 exclaimed +1 exclaims +1 exclamation +97 exclude +71 excluded +87 excludes +12 excluding +17 exclusion +18 exclusive +29 exclusively +14 excommunicate +22 excommunicated +1 excommunicates +2 excommunicating +32 excommunication +1 excretion +2 excretions +1 exculpate +2 excusable +76 excuse +64 excused +53 excuses +4 excusing +1 execrable +16 execute +6 executed +8 executes +12 executing +116 execution +2 executioner +2 executioners +2 executions +16 executive +8 executor +2 executors +97 exemplar +2 exemplarity +7 exemplars +2 exemplary +6 exemplate +3 exemplified +33 exempt +1 exempted +153 exercise +45 exercised +35 exercises +32 exercising +2 exhalation +2 exhalations +1 exhale +1 exhales +3 exhausted +1 exhaustion +1 exhausts +3 exhibit +4 exhibited +1 exhibits +9 exhort +4 exhortation +1 exhortations +5 exhorted +3 exhorting +2 exhorts +1 exigence +1 exigencies +3 exigency +13 exile +1 exiled +562 exist +91 existed +562 existence +8 existent +314 existing +397 exists +5 exod +7 exodus +1 exonerate +1 exorcised +25 exorcism +9 exorcisms +2 exorcist +2 exorcists +7 exorcize +7 exorcized +4 exorcizing +3 expanded +2 expands +20 expansion +25 expect +13 expectation +25 expected +1 expecting +10 expects +3 expediency +45 expedient +1 expedit +1 expeditious +1 expeditiously +6 expel +9 expelled +5 expelling +6 expels +2 expended +1 expending +47 expenditure +7 expense +6 expenses +2 expensive +137 experience +17 experienced +7 experiences +3 experiencing +7 experiment +7 experimental +1 experimentally +3 experiments +2 expert +1 experts +8 expiate +13 expiated +5 expiating +28 expiation +1 expiations +1 expiator +1 expire +1 expired +60 explain +330 explained +24 explaining +78 explains +2 explanatio +59 explanation +7 explanations +34 explicit +67 explicitly +1 explicitness +1 exploded +4 explore +1 explored +8 expos +18 expose +18 exposed +17 exposes +3 exposing +4 exposit +20 exposition +1 expositions +1 expositively +1 expositors +10 expound +32 expounded +1 expounders +37 expounding +56 expounds +105 express +196 expressed +46 expresses +18 expressing +118 expression +34 expressions +18 expressive +5 expressively +1 expressiveness +51 expressly +2 expulsion +1 expunged +1 exquisite +1 exspectare +1 extant +81 extend +27 extended +21 extending +204 extends +12 extension +2 extensive +2 extensively +88 extent +2 extenuate +1 extenuated +1 extenuating +173 exterior +5 exteriorly +2 exterminate +1 exterminated +1 extermination +653 external +21 externally +13 externals +1 extinct +1 extinguish +5 extinguished +2 extirpate +4 extirpated +1 extirpating +2 extol +2 extolled +3 extort +6 extorted +1 extorting +2 extortioner +2 extortioners +33 extra +1 extract +1 extracted +1 extracting +1 extraction +1 extracts +1 extrajudicially +20 extraneous +3 extraordinary +119 extreme +3 extremely +55 extremes +2 extremities +117 extrinsic +2 exuberance +1 exuberant +2 exultation +169 eye +5 eyed +1 eyelids +174 eyes +1 eyewitness +151 ezech +3 ezechias +11 ezechiel +2 fabian +1 fabiola +3 fable +4 fabric +1 fabricate +1 fabulous +1 facciolati +128 face +1 faced +9 facere +2 faces +1 faciendo +1 facilitate +3 facilitates +4 facilities +10 facility +4 facing +1 facit +766 fact +1 factae +1 facti +1 factibili +1 factio +1 facto +1 factor +11 facts +1 factum +43 faculties +370 faculty +1 fades +1 fading +2 faecal +2 faeneraberis +153 fail +23 failed +33 failing +8 failings +162 fails +7 failure +4 fain +15 faint +13 fainthearted +2 fainting +12 fair +1 fairest +2678 faith +256 faithful +7 faithfully +2 faithfulness +4 faithless +1 falcidian +3 falcon +269 fall +1 fallacies +1 fallacious +6 fallacy +33 fallen +1 fallere +7 falleth +1 fallible +48 falling +2 fallow +147 falls +15 falsa +629 false +119 falsehood +3 falsehoods +74 falsely +7 falseness +1 falsidicus +1 falsification +41 falsity +1 faltering +27 fame +12 familiar +4 familiarity +5 familiarly +4 families +49 family +2 famine +7 famous +6 fancies +1 fanciful +2 fancy +1 fantastic +1 fantur +1936 far +2 fare +1 fari +2 farm +3 farmer +1 farms +50 farther +7 farthest +1 farthing +2 fas +103 fashion +28 fashioned +1 fashioneth +7 fashioning +1 fashions +145 fast +17 fasted +1 fasten +6 fastened +3 fastening +4 faster +3 fasters +1 fastest +134 fasting +7 fastings +28 fasts +21 fat +1 fatal +82 fate +1 fateri +1712 father +2 fatherhood +2 fatherland +12 fatherless +260 fathers +2 fatigue +1 fatiguing +1 fatlings +3 fatness +1 fatten +3 fatuity +1 fatuous +248 fault +23 faults +3 faulty +1 fauns +69 faust +1 faustum +3 faustus +207 favor +3 favorable +1 favorableness +2 favorably +79 favors +1 fawning +1557 fear +97 feared +3 fearest +7 feareth +20 fearful +13 fearing +6 fearless +3 fearlessly +16 fearlessness +86 fears +3 fearsome +2 feasible +72 feast +2 feasted +1 feasting +24 feasts +1 feathers +2 feats +1 feature +7 features +4 fecundity +26 fed +12 fee +9 feeble +4 feebleness +2 feebly +23 feed +1 feedeth +4 feeding +7 feeds +41 feel +33 feeling +2 feelings +25 feels +1 fees +65 feet +4 feigned +2 feigning +3 felic +3 felician +7 felicity +1 felix +43 fell +1 fellea +40 fellow +1 fellowman +5 fellows +114 fellowship +37 felt +72 female +3 females +1 femina +2 feminine +5 fenerate +1 fenerating +1 fermentation +12 fermented +2 fertility +8 fervent +3 fervently +58 fervor +1 fervour +13 festival +10 festivals +1 festivities +2 festivity +1 festo +2 fetches +1 fetid +5 fetter +14 fettered +5 fettering +6 fetters +2 fetus +20 fever +2 feverish +1 fevers +86 few +19 fewer +7 ff +2 fibre +2 fickle +1 fiction +8 fictitious +3 fid +333 fide +1 fidei +17 fidelity +2 fides +32 field +8 fields +9 fierce +3 fiercely +2 fierceness +17 fiery +1 fifteen +9 fifteenth +279 fifth +23 fifthly +3 fifty +6 fig +72 fight +1 fighters +23 fighting +3 fights +1 figs +2 figural +1 figuras +103 figurative +21 figuratively +178 figure +1 figured +77 figures +75 filial +1 filias +83 filiation +10 filiations +1 filios +34 fill +74 filled +1 fillets +1 filling +23 fills +1 filtered +6 filth +1 filthier +1 filthiness +8 filthy +148 final +2 finality +19 finally +321 find +4 finder +3 findeth +15 finding +30 finds +9 fine +2 finer +1 finery +1 fines +8 finger +7 fingers +1 fining +1 finis +9 finish +10 finished +4 finisher +138 finite +1 finitely +4 fins +403 fire +4 fires +67 firm +106 firmament +3 firmaments +52 firmly +32 firmness +5367 first +4 firstborn +1 firstfruits +2 firstlings +45 firstly +18 fish +1 fisherman +38 fishes +3 fist +1 fisted +1 fists +45 fit +2 fitly +30 fitness +3 fits +28 fitted +521 fitting +191 fittingly +29 fittingness +1 fiunt +132 five +5 fivefold +17 fix +225 fixed +1 fixedly +17 fixes +14 fixing +1 flag +1 flagon +12 flame +3 flames +4 flaming +1 flash +1 flashed +2 flat +2 flatter +1 flattered +13 flatterer +2 flatterers +1 flattering +5 flatters +53 flattery +2 flatulent +1 flav +2 flavian +2 flavor +1 flavored +3 flaw +3 flax +6 fled +18 flee +4 fleeing +3 flees +2 fleet +1 fleeth +2 fleeting +3 fleetness +1128 flesh +14 fleshly +1 flew +2 flexibility +5 flexible +18 flies +2 flieth +29 flight +1 fling +1 flits +34 flock +3 flocks +2 flogging +3 flood +16 flour +5 flourish +1 flourished +1 flourishes +2 flourishing +70 flow +27 flowed +14 flower +3 flowering +9 flowers +18 flowing +68 flows +1 fluctuates +1 fluctuation +2 fluid +1 fluids +1 flush +1 flute +2 flux +33 fly +3 flying +1 fodder +19 foe +11 foes +1 foetal +1 foetid +11 fold +1 foliage +8 folk +1 follicules +1 follies +687 follow +85 followed +3 follower +12 followers +2 followeth +125 following +985 follows +85 folly +1 foments +87 fomes +5 fond +5 fondling +4 fondness +20 font +425 food +22 foods +37 fool +2 foolhardiness +60 foolish +3 foolishly +3 foolishness +17 fools +57 foot +8 footed +3 footing +2 footnote +1 footprint +1 footsteps +21230 for +215 forasmuch +52 forbade +13 forbear +4 forbearance +1 forbearing +2 forbears +64 forbid +221 forbidden +41 forbidding +53 forbids +239 force +26 forced +1 forcellinis +38 forces +9 forcibly +1 forcing +6 fore +1 forearmed +5 forecast +1 forecasteth +2 forecasting +1 forecasts +7 forefathers +1 foregather +26 forego +55 foregoing +23 foregone +23 forehead +4 foreheads +29 foreign +4 foreigner +13 foreigners +20 foreknew +17 foreknow +1 foreknowing +71 foreknowledge +29 foreknown +8 foreknows +1 forelegs +40 foremost +1 foreordained +1 forerunner +1 foreruns +7 foresaw +11 foresee +2 foreseeing +34 foreseen +8 foresees +16 foreshadow +78 foreshadowed +12 foreshadowing +5 foreshadows +1 foreshown +43 foresight +3 foreskin +9 forestall +5 forestalled +3 forestalling +14 forestalls +1 foresworn +2 foretaste +27 foretell +1 foretellers +1 foretelleth +10 foretelling +6 foretells +7 forethought +39 foretold +1 forever +1 forevermore +23 forfeit +19 forfeited +4 forfeiting +15 forfeits +3 forfeiture +3 forgave +1 forge +1 forged +1 forgers +1 forgery +32 forget +1 forgetful +23 forgetfulness +3 forgets +6 forgetting +53 forgive +150 forgiven +108 forgiveness +8 forgives +12 forgiving +1 forgo +1 forgoing +1 forgot +14 forgotten +2288 form +1 forma +239 formal +3 formalities +38 formality +83 formally +1 formata +78 formation +6 formative +205 formed +259 former +18 formerly +2 formers +1 formeth +22 forming +53 formless +31 formlessness +495 forms +1 formula +6 formulated +1 formulates +3 formulating +1 fornicated +1 fornicates +160 fornication +4 fornications +15 fornicator +2 fornicators +1 foro +39 forsake +16 forsaken +10 forsakes +13 forsaking +1 forsook +3 forsooth +1 forswear +433 forth +39 forthwith +2 fortieth +1 fortifies +3 fortiori +1 fortissime +685 fortitude +1 fortitudine +3 fortress +5 fortuitous +1 fortuitously +1 fortunatum +36 fortune +2 fortunes +52 forty +66 forward +1 forwarded +1 forwarding +5 forwards +9 foster +11 fostered +1 fostering +9 fosters +11 fought +4 foul +1 foulness +606 found +84 foundation +10 foundations +81 founded +1 founder +4 founding +16 fount +15 fountain +712 four +16 fourfold +1 foursquare +11 fourteen +13 fourteenth +543 fourth +111 fourthly +2 fowl +3 fowls +4 fox +1 fractious +1 fragile +1 fragments +6 fragrant +6 frail +10 frailty +10 frame +43 framed +3 framer +1 frames +6 framing +4 france +1 frank +1 frankness +65 fraternal +1 fratres +53 fraud +3 frauds +13 fraudulent +1 fraudulently +7 fraught +638 free +52 freed +73 freedom +2 freeing +70 freely +4 freeman +4 freer +3 frees +4 freezes +2 freezing +1 french +3 frenzy +5 frequency +32 frequent +99 frequently +1 fresco +15 fresh +2 freshness +1 friars +6 friday +137 friend +13 friendliness +15 friendly +150 friends +293 friendship +6 friendships +1 frighted +1 frighten +4 frightened +4 fringes +1 friuli +1 frivolities +3 frivolity +2 frivolous +1 frivolously +1 fro +4 frogs +14074 from +7 front +1 frontinus +1 frothy +1 froward +2 frozen +2 fructus +1 frugality +1 fruimur +194 fruit +13 fruitful +14 fruitfulness +1 fruitio +51 fruition +1 fruitless +218 fruits +2 frustrate +10 frustrated +1 frying +1 fuel +154 fulfil +12 fulfill +138 fulfilled +2 fulfilleth +36 fulfilling +2 fulfillment +3 fulfills +74 fulfilment +21 fulfils +21 fulgentius +172 full +21 fuller +1 fullest +8 fullness +104 fully +205 fulness +1 fulnesses +3 fumes +30 fun +43 function +35 functions +1 fund +4 fundamental +3 fundamentally +3 funds +1 funebr +2 funeral +1 funerals +1 fur +1 furiam +1 furious +4 furnace +5 furnish +3 furnished +3 furnishes +7 furnishing +1 furniture +2 furor +1 furrow +6569 further +2 furtherance +12 furthered +64 furthermore +5 furthest +1 furtis +1 furvus +11 fury +1 fuscus +1 fusion +1 fuss +4 futile +609 future +2 futurity +1 g +1 gabaon +11 gabriel +1 gaian +1 gaianites +72 gain +30 gained +1 gainer +3 gainers +14 gaining +18 gains +6 gainsay +3 gainsayers +1 gainsaying +1 gainsays +3 gait +1 gaius +165 gal +2 galat +5 galatians +16 galilee +11 gall +1 galliae +2 gallop +2 gallorum +2 gamblers +1 gambling +2 game +23 games +2 garb +7 garden +1 garizim +33 garment +33 garments +1 garritu +1 garrulous +25 gate +31 gates +59 gather +105 gathered +3 gathereth +19 gathering +11 gathers +2 gaudentius +1 gauge +10 gauged +2 gauls +224 gave +1 gavest +1 gay +1 gaza +22 gaze +3 gazed +3 gazing +5 gedeon +1 geese +13 gelasius +2 gelboe +1 gellius +1 gems +524 gen +7 gender +1 genealogies +36 genealogy +40 gener +72 genera +623 general +1 generalities +12 generality +29 generally +2 generals +4 generandi +1 generat +16 generate +201 generated +22 generates +24 generating +547 generation +15 generations +47 generative +47 generator +1 genere +50 generic +95 generically +3 generosity +2 generous +1 generously +5 genes +15 genesis +1 genethliacs +2 geniality +2 genital +2 genitive +2 genitives +2 genitor +1 genius +1 gent +6 gentile +189 gentiles +16 gentle +8 gentleness +1 gently +3 genuflect +1 genuflection +9 genuine +625 genus +2 geomancy +8 geometrical +4 geometrician +14 geometry +1 georg +1 germans +1 germinating +1 germination +1 gerund +2 gerundive +3 gesture +7 gestures +30 get +1 geth +6 gets +9 getting +1413 ghost +1 ghostly +2 ghosts +2 giants +3 gibbet +4 giezi +1 giezites +766 gift +15 gifted +535 gifts +2 gilbert +1 gilded +1 gird +5 girdle +4 girl +3 girls +2 girt +881 give +1222 given +62 giver +432 gives +21 giveth +315 giving +1 givings +15 glad +1 gladden +1 gladdened +2 gladly +20 gladness +14 glance +1 glances +2 glare +24 glass +1 gleaming +1 gleaned +1 glides +3 glimpse +1 glittering +2 globe +1 gloom +1 gloria +1 gloried +6 glories +3 glorieth +13 glorification +94 glorified +1 glorifies +1 glorifieth +16 glorify +2 glorifying +34 glorious +1 gloriously +812 glory +2 glorying +1 glorys +524 gloss +2 glossa +1 glosses +1 glowing +10 glutton +2 gluttonous +1 gluttonously +2 gluttons +146 gluttony +1 gnashing +1 gnawed +2 gnawings +23 gnome +313 go +1 goaded +4 goal +18 goat +13 goats +1 goatskins +12710 god +4 godchildren +1 goddess +347 godhead +28 godlike +27 godliness +20 godly +1 godolias +6 godparent +5 godparents +1069 gods +156 goes +2 goest +22 goeth +115 going +66 gold +12 golden +1 gomor +30 gone +6533 good +1 goodly +926 goodness +3 goodnesses +600 goods +28 goodwill +161 gospel +1 gospeler +1 gospelers +24 gospels +1 gossip +2 gost +1 goste +1 gostes +4 got +26 gotten +1 gout +2 gouty +36 govern +8 governance +87 governed +3 governest +1 governeth +36 governing +209 government +6 governments +26 governor +9 governors +36 governs +2831 grace +4 graced +2 graceful +1 gracefulness +83 graces +8 gracious +2 graciously +1 graciousness +1 grad +1 gradation +38 grade +39 grades +1 graditur +1 gradual +27 gradually +1 graft +1 grafted +19 grain +7 grains +8 grammar +8 grammarian +2 grammatical +2 grammatically +1 grandchildren +2 grandeur +6 grandfather +1 grandson +51 grant +160 granted +10 granting +17 grants +17 grape +11 grapes +40 grasp +14 grasped +3 grasping +7 grasps +4 grass +41 grat +8 grateful +1 gratefully +18 gratia +12 gratian +1 gratiani +1 gratianum +1 gratianus +1 gratiarum +1 gratifies +3 gratify +30 gratis +65 gratitude +168 gratuitous +25 gratuitously +3 gratuity +84 grave +13 gravely +19 graven +125 graver +5 graves +21 gravest +1 graving +1 gravities +123 gravity +1 gray +3 graze +2 grazes +677 great +1379 greater +379 greatest +10 greatly +105 greatness +12 greed +4 greedily +3 greedy +72 greek +25 greeks +12 green +1 greenness +1 greet +6 greeting +2 greets +1 greg +3 gregarious +695 gregory +4 gregorys +1 grenoble +10 grew +3 gridiron +50 grief +3 griefs +3 grievance +1 grievances +51 grieve +18 grieved +29 grieves +3 grieving +420 grievous +70 grievously +3 grievousness +1 griffon +3 groan +1 groaning +2 groanings +13 groans +4 grosser +1 grosseteste +2 grossness +51 ground +1 grounded +9 grounds +2 grouped +1 groups +2 grove +1 grovelling +35 grow +3 groweth +7 growing +11 grown +20 grows +57 growth +1 grudgingly +2 guarantee +1 guaranteed +39 guard +19 guarded +32 guardian +12 guardians +42 guardianship +3 guarding +9 guards +1 gubbio +1 guest +1 guesthouse +4 guests +16 guidance +13 guide +31 guided +9 guides +9 guiding +57 guile +1 guilisarius +218 guilt +199 guilty +18 guise +1 gull +1 gushed +1 gushing +2 hab +2 habac +1 habere +1 habet +1204 habit +3 habitable +5 habitation +502 habits +1 habitu +140 habitual +30 habitually +6 habituated +2 habituating +13 habituation +30 habitude +8 habitudes +1 habitus +1648 had +1 hadrian +4 hadst +1 haer +11 haeres +2 haereses +1 haeresibus +2 haereticis +1 hagios +1 hai +7 hail +1 hailed +1 hailing +27 hair +1 hairein +3 hairs +1 hairy +3 hale +6 hales +23 half +3 hall +19 hallowed +10 hallowing +1 hallowings +2 hallows +2 halted +2 halts +1 halved +1 hamartias +8 hammer +3 hammers +1 hamper +4 hampered +1 hampers +1 hampole +1 hanc +991 hand +13 handed +2 handedness +3 handicraft +2 handing +10 handiwork +1 handkerchiefs +11 handle +15 handled +2 handles +1 handling +6 handmaid +3 handmaidens +1 handmaids +218 hands +1 handsome +2 hang +7 hanged +1 hangeth +18 hanging +1 hankering +1 haply +378 happen +53 happened +14 happening +8 happenings +378 happens +15 happier +918 happiness +137 happy +4 harass +5 harassed +3 harbor +2 harborless +1 harbors +42 hard +11 hardened +1 hardeneth +3 hardening +1 hardens +5 harder +2 hardheartedness +12 hardly +30 hardness +6 hardship +28 hardships +3 hare +1 hares +1 harken +8 harlot +5 harlots +193 harm +6 harmed +59 harmful +1 harmfulness +4 harming +1 harmonious +4 harmonize +1 harmonized +5 harmonizes +1 harmonizeth +1 harmonizing +25 harmony +13 harms +1 harness +6 harp +4 harpist +1 harps +1 harsh +2 harshly +6 harshness +7 harvest +2 harvests +4382 has +181 hast +11 haste +7 hasten +3 hastened +1 hastens +5 hastily +5 hasty +103 hate +26 hated +32 hateful +4 hater +41 hates +7 hatest +16 hateth +544 hath +10 hating +337 hatred +1 hatreds +1 haughtiness +3 haughty +1 haunt +6034 have +3 haver +693 having +1 havoc +3 hawk +21 hay +2 hazard +2 hazardous +14233 he +695 head +29 heading +7 headlong +22 heads +6 headship +2 headstrong +48 heal +85 healed +1 healer +2 healeth +60 healing +15 heals +273 health +3 healthiness +2 healths +44 healthy +8 heap +3 heaped +1 heaping +1 heaps +97 hear +139 heard +10 hearer +22 hearers +1 hearest +10 heareth +104 hearing +4 hearken +1 hearkening +1 hearkens +19 hears +549 heart +8 hearted +1 heartedly +5 heartedness +2 hearten +3 heartened +2 heartens +2 heartfelt +1 heartily +1 heartlessness +134 hearts +301 heat +17 heated +2 heater +8 heathen +3 heathendom +2 heathenish +21 heathens +27 heating +18 heats +767 heaven +541 heavenly +145 heavens +1 heavenward +1 heavenwards +7 heavier +1 heavily +1 heaviness +48 heavy +290 heb +15 hebdom +3 hebr +10 hebrew +7 hebrews +3 hebron +2 hectic +3 hector +1 hedge +1 hedged +1 hedges +1 hedib +15 heed +1 heedful +2 heeding +1 heedlessness +3 heel +12 heifer +1 heifers +36 height +1 heightened +4 heights +5 heinous +1 heinousness +9 heir +1 heiresses +16 heirs +1 helcesaitae +375 held +12 heli +4 heliod +254 hell +1 hells +3 helm +5 helmsman +265 help +53 helped +8 helper +2 helpest +1 helpeth +12 helpful +19 helping +1 helpless +1 helplessness +3 helpmate +49 helps +7 helvid +2 helvidius +3 hem +4 hemisphere +1 hemispheres +2 hen +4605 hence +11 henceforth +1 henceforward +1 heneka +1 hens +2 hept +628 her +2 heraclitus +2 herald +1 heralded +2 heralds +9 herb +15 herbs +1 hercules +2 herd +1 herdsman +310 here +11 hereafter +15 hereby +8 herein +2 heren +2 herenn +1 heres +15 heresies +94 heresy +28 heretic +29 heretical +109 heretics +7 heretofore +1 hereupon +6 heritage +18 herm +1 hermeneias +2 hermes +1 hermetical +2 hermit +1 hermits +1 hermogenes +1 hernia +19 herod +1 herodionem +1 herods +7 heroic +1 heroike +1 heron +3 hers +37 herself +5 hesitate +1 hesitated +5 hesitation +3 hesychius +1 heterodox +2 heterogeneous +1 hew +1 hewed +6 hewn +26 hexaem +1 hexaemeron +1 hexam +1 hexin +2 hi +20 hid +176 hidden +1 hiddenly +40 hide +7 hides +4 hideth +9 hiding +205 hier +2 hierarch +9 hierarchical +11 hierarchies +87 hierarchy +6 hieron +1 hierotheos +3 hierotheus +158 high +703 higher +249 highest +4 highly +1 highway +1 highways +1 hilarity +89 hilary +2 hilarys +1 hill +3 hills +4558 him +2464 himself +1 hind +164 hinder +226 hindered +28 hindering +243 hinders +116 hindrance +9 hindrances +1 hinge +1 hinted +1 hippon +1 hipponens +1 hiram +13 hire +6 hired +9 hireling +1 hires +4 hiring +10350 his +4 hispan +7 hist +3 histor +1 historia +1 historiae +1 historian +5 historical +8 history +5 hither +34 hitherto +1 hoard +1 hoardest +3 hoarding +4 hoary +5 hoc +334 hold +1 holda +1 holden +1 holder +1 holdest +2 holdeth +53 holding +188 holds +3 hole +1 holes +9 holier +26 holies +109 holiness +3 hollow +1 hollows +26 holocaust +19 holocausts +2 holofernes +2135 holy +446 hom +24 homage +30 home +2 homely +1 homicid +12 homicide +1 homicides +1 homil +1 homilies +50 homily +1 homin +3 homine +1 homines +1 hominis +4 homo +14 homogeneous +2 homoousion +50 honest +2 honesta +1 honestae +3 honestas +1 honestatem +1 honestatis +1 honeste +5 honestly +4 honestum +69 honesty +15 honey +600 honor +1 honorabilis +25 honorable +1 honorary +1 honorat +82 honored +2 honoreth +25 honoring +76 honors +6 hoof +1 hoofs +1 hoopoe +1210 hope +57 hoped +8 hopeful +2 hopeless +49 hopes +1 hopeth +15 hoping +1 hora +2 horace +3 horeb +3 horizon +2 horn +6 horns +5 horrible +2 horrified +12 horror +69 horse +1 horseback +1 horseman +11 horses +1 hortatu +2 hosanna +3 hospitality +40 host +1 hostesses +1 hostia +18 hostile +1 hostility +23 hosts +95 hot +1 hotbed +8 hotter +2 hottest +3 hound +75 hour +15 hours +285 house +63 household +1 householder +1 households +1 housekeepers +1 housekeeping +25 houses +1 housetops +418 how +1265 however +1 howl +3 howsoever +2 huckster +1 hues +1 huge +24 hugh +3112 human +3 humanation +4 humane +2 humanities +112 humanity +7 humanized +3 humanly +51 humble +17 humbled +3 humbles +2 humblest +4 humbleth +1 humbling +10 humbly +2 humid +13 humidity +2 humil +6 humiliation +1 humilitas +268 humility +1 humo +28 humor +1 humorem +1 humorous +33 humors +28 hundred +6 hundredfold +2 hundredweight +6 hung +47 hunger +2 hungered +3 hungering +2 hungers +28 hungry +1 hunting +1 hurl +1 hurled +1 hurried +3 hurry +105 hurt +56 hurtful +1 hurtfulness +4 hurting +25 hurts +76 husband +3 husbandman +3 husbandmen +24 husbands +1 husks +1 hydromancy +9 hymn +7 hymns +2 hyperbolical +5 hyperdulia +1 hypo +49 hypocrisy +20 hypocrite +11 hypocrites +4 hypocritical +4 hypognosticon +38 hypostases +248 hypostasis +2 hypostatic +3 hypostatically +6 hypothesis +1 hypothetically +10 hyssop +7227 i +1 ia +9 ibid +1 ibis +2 ibn +5 ice +292 idea +5 ideal +1 ideales +122 ideas +1 ideatio +46 identical +26 identically +25 identified +45 identity +1 idiognomones +3 idiom +2 idioms +8 idiots +24 idle +18 idleness +1 idly +20 idol +2 idolater +19 idolaters +13 idolatrous +147 idolatry +1 idololatria +69 idols +2 idumeans +1 idylls +991 ie +6073 if +1 igitur +2 ignatius +1 ignis +2 ignite +6 ignited +2 ignition +1 ignoble +2 ignominious +10 ignominy +394 ignorance +82 ignorant +8 ignorantly +4 ignore +12 ignored +6 ignores +1 ignoring +4436 ii +1537 iii +2 iliad +159 ill +7 illa +2 ille +3 illegal +1 illegitimate +15 illiberal +16 illiberality +7 illicit +1 illiterate +3 illness +9 ills +2 illuminants +3 illuminate +18 illuminated +2 illuminates +2 illuminating +17 illumination +1 illuminations +2 illuminative +3 illumined +3 illusion +3 illusions +1 illusory +2 illustrate +1 illustration +1 illustrations +3 illustrious +562 image +1 imagery +136 images +107 imaginary +248 imagination +3 imaginations +32 imaginative +23 imagine +12 imagined +4 imagines +1 imagining +2 imaginings +3 imbecile +19 imbeciles +2 imbecility +1 imbibe +1 imbue +5 imbued +1 imitable +55 imitate +8 imitated +21 imitates +5 imitating +26 imitation +1 imitations +2 imitators +6 immaculate +5 immanent +184 immaterial +16 immateriality +17 immaterially +5 immeasurable +1 immeasurably +59 immediate +277 immediately +12 immense +8 immensity +1 immersed +46 immersion +3 immersions +1 imminence +19 imminent +16 immobility +56 immoderate +15 immoderately +8 immoderation +1 immodestly +3 immodesty +7 immolated +1 immolating +7 immolation +2 immoratur +58 immortal +48 immortality +1 immortals +44 immovable +1 immovables +19 immovably +7 immune +3 immunity +19 immutability +51 immutable +3 immutably +25 immutation +1 immute +9 immuted +2 immuter +2 imp +1 impact +1 impair +5 impaired +1 impairs +1 impalpable +15 impart +14 imparted +1 impartial +1 imparting +4 imparts +1 impassable +13 impassibility +35 impassible +4 impatience +1 impatient +2 impeccability +18 impede +30 impeded +14 impedes +56 impediment +10 impediments +4 impeding +1 impel +7 impelled +5 impelling +3 impels +3 impending +19 impenitence +2 impenitent +5 imperative +10 imperf +436 imperfect +114 imperfection +59 imperfectly +39 imperfectum +3 imperial +2 imperil +1 imperiled +2 imperils +1 imperishable +1 impersonal +1 impersonates +3 impersonating +11 impetrate +2 impetrated +3 impetrates +6 impetrating +8 impetration +2 impetrative +1 impetum +10 impetuosity +10 impetuous +1 impetuously +6 impetuousness +2 impetus +5 impiety +12 impious +12 implanted +2 implicated +1 implicates +3 implication +1 implications +12 implicit +28 implicitly +83 implied +477 implies +5 implore +2 implored +2 implores +1 imploring +201 imply +42 implying +44 import +18 importance +34 important +1 imported +8 importing +42 imports +2 importunate +28 impose +67 imposed +24 imposes +2 imposing +40 imposition +4 impossibilities +14 impossibility +588 impossible +1 impotence +1 impotent +1 impoverish +1 impoverished +1 impoverishes +3 imprecation +3 imprecations +1 impregnate +11 impress +39 impressed +10 impresses +7 impressing +71 impression +1 impressionable +17 impressions +1 imprimis +18 imprint +62 imprinted +5 imprinting +13 imprints +6 imprison +6 imprisoned +1 imprisoning +8 imprisonment +1 improbability +2 improbable +8 improper +22 improperly +5 improportionate +1 improve +4 improved +2 improvement +1 improvidence +70 imprudence +1 imprudens +8 imprudent +1 imprudently +1 impudence +1 impudently +3 impugn +1 impugned +1 impugning +1 impugns +58 impulse +1 impulses +1 impulsion +2 impunity +9 impure +10 impurity +3 imputable +2 imputation +10 impute +55 imputed +49419 in +9 inability +3 inaccessible +2 inaccurate +2 inaction +2 inactive +4 inadequate +3 inadequately +15 inadmissible +1 inane +56 inanimate +1 inapplicable +998 inasmuch +1 inattentive +4 inaugurated +9 inborn +1 incantation +8 incantations +20 incapable +1 incapacity +1 incar +5 incarn +2 incarnat +117 incarnate +222 incarnation +2 incautiously +1 incautiousness +27 incense +3 incensed +24 incentive +1 incentives +1 inception +1 incessantly +21 incest +1 incestus +7 inchoate +1 inchoately +4 inchoation +4 inchoatively +1 incident +3 incidental +3 incipient +1 incircumspection +1 incisionem +1 incisions +26 incite +19 incited +1 incitement +1 incitements +20 incites +2 inciting +331 inclination +29 inclinations +47 incline +160 inclined +73 inclines +20 inclining +81 include +222 included +171 includes +17 including +4 inclusion +1 incola +4 income +1 incoming +2 incommensurate +1 incommunicability +24 incommunicable +2 incommutable +3 incomparably +124 incompatible +6 incompetent +1 incompetenter +26 incomplete +1 incompletely +3 incompleteness +3 incomplex +1 incompr +1 incomprehended +2 incomprehensibility +15 incomprehensible +4 incongruity +10 incongruous +1 inconsiderately +4 inconsistency +55 inconsistent +1 inconsistently +34 inconstancy +7 inconstant +71 incontinence +1 incontinency +66 incontinent +1 incontrovertible +4 inconvenience +2 inconvenient +30 incorporated +2 incorporates +3 incorporation +100 incorporeal +1 incorporeity +13 incorrect +6 incorrectly +3 incorrigible +5 incorrupt +22 incorruptibility +121 incorruptible +23 incorruption +312 increase +81 increased +130 increases +1 increaseth +4 increasing +1 increatable +6 incredible +1 incredulity +2 incredulous +1 incubation +1 incubi +4 inculcate +2 inculcated +1 inculcates +3 incumbent +36 incur +2 incurability +21 incurable +33 incurred +5 incurring +49 incurs +7 indebted +1 indebtedness +3 indecent +1 indecently +629 indeed +17 indefinite +45 indefinitely +1 indeliberate +2 indeliberately +9 indelible +1 indelibly +1 indemnification +2 indemnified +1 indemnify +5 indemnity +16 indemonstrable +12 independent +11 independently +18 indeterminate +4 indeterminately +2 indetractible +2 index +30 indicate +50 indicated +40 indicates +8 indicating +9 indication +9 indications +8 indicative +1 indictable +4 indictment +11 indifference +56 indifferent +20 indifferently +4 indigence +1 indigentiam +2 indigestion +1 indignant +16 indignation +2 indignity +1 indignum +21 indirect +104 indirectly +3 indiscreet +2 indiscreetly +3 indiscretion +4 indiscriminately +3 indispensable +13 indisposition +2 indissolubility +7 indissoluble +3 indistinct +7 indistinctly +2 indistinguishable +558 individual +12 individuality +3 individualization +19 individualized +6 individualizing +17 individually +115 individuals +9 individuated +12 individuating +15 individuation +7 indivisibility +78 indivisible +1 indivisibles +1 indivisibly +2 indivision +2 indolence +54 induce +49 induced +14 inducement +2 inducements +19 induces +11 inducing +1 induction +3 indulge +2 indulged +5 indulgence +2 indulgent +1 indulging +5 industry +21 indwelling +3 inebriated +1 inebriates +1 inebriateth +1 inebriating +10 ineffable +5 ineffectual +1 inefficacy +3 inept +1 ineptitude +1 ineptly +1 ineptness +60 inequality +2 inerrancy +1 inevitable +2 inexact +3 inexcusable +1 inexorable +5 inexpedient +8 inexperience +1 inexperienced +1 inextinguishable +2 inf +2 infallibility +12 infallible +16 infallibly +3 infames +1 infamia +1 infamies +4 infamous +14 infamy +12 infancy +21 infant +3 infantia +1 infantile +24 infants +9 infect +41 infected +24 infection +4 infectious +7 infects +2 infer +4 inference +294 inferior +4 inferiority +23 inferiors +3 infernal +5 inferred +2 infers +5 infidel +6 infidelity +4 infidels +605 infinite +79 infinitely +1 infinitive +16 infinitude +1 infinitudes +95 infinity +6 infirm +24 infirmities +41 infirmity +2 inflame +6 inflamed +1 inflames +2 inflammable +2 inflated +4 inflexible +1 inflexibly +42 inflict +190 inflicted +19 inflicting +17 infliction +1 inflictive +32 inflicts +2 inflow +3 inflowing +75 influence +10 influenced +9 influences +2 influencing +14 influx +2 inform +11 information +42 informed +4 informer +6 informing +2 informis +6 informs +2 infra +1 infrequently +1 infringe +1 infringed +2 infringement +1 infringes +1 infringing +4 infuse +187 infused +12 infuses +3 infusing +94 infusion +1 ingenerability +1 ingeniously +1 ingenuity +3 inglorious +1 ingraft +2 ingrafted +1 ingrafts +109 ingratitude +3 inhabit +1 inhabitable +1 inhabitant +12 inhabitants +3 inhabited +1 inhabiteth +1 inhaerentes +7 inhere +1 inhered +6 inherence +33 inherent +7 inheres +2 inhering +1 inherit +41 inheritance +2 inherited +1 inheriting +1 inherits +2 inhibit +1 inhibited +1 inhonesta +1 inhuman +2 inhumanity +1 inimitable +18 iniquities +1 iniquitously +74 iniquity +29 initial +2 initiated +1 initiative +1 initium +1 iniust +2 injunction +42 injure +34 injured +1 injurer +31 injures +30 injuries +13 injuring +33 injurious +173 injury +195 injustice +1 ink +10 inmost +1 inn +11 innascibility +2 innascible +3 innascibles +25 innate +30 inner +4 innermost +1 innermostly +2 innoc +194 innocence +1 innocency +97 innocent +3 innocents +7 innovation +1 innovations +7 innumerable +3 inoperative +1 inopportune +285 inordinate +81 inordinately +70 inordinateness +38 inquire +9 inquired +4 inquires +1 inquiries +15 inquiring +590 inquiry +1 inquis +1 inquisit +1 inquisition +2 inquisitive +10 insane +2 insanity +2 insatiable +2 inscribe +6 inscribed +2 inscribere +10 inscription +1 insect +22 insensibility +18 insensible +1 insensibly +14 inseparable +4 inseparably +14 inserted +1 inserts +3 inside +5 insight +1 insignificant +5 insincere +3 insincerely +23 insincerity +5 insinuate +3 insinuates +1 insinuating +1 insinuation +2 insist +2 insisted +1 insistence +1 insistent +1 insisting +2 insists +3 insolence +4 insolent +1 insolvent +2 insomn +2 insomniis +2 insomuch +2 inspection +1 inspectione +32 inspiration +2 inspirations +7 inspire +24 inspired +1 inspirer +5 inspires +9 inspiring +9 inst +3 instability +994 instance +5 instanced +20 instances +1 instancing +224 instant +33 instantaneous +13 instantaneously +13 instantly +15 instants +64 instead +2 instigate +3 instigated +1 instigates +3 instigating +18 instigation +5 instigations +1 instill +21 instilled +1 instills +64 instinct +1 instincts +11 instit +12 institute +167 instituted +2 institutes +8 instituting +91 institution +1 institutione +15 institutions +2 institutor +41 instruct +77 instructed +4 instructeth +16 instructing +71 instruction +7 instructions +4 instructor +5 instructors +9 instructs +198 instrument +58 instrumental +13 instrumentality +49 instrumentally +56 instruments +2 insubmission +1 insubordinately +2 insubordination +7 insufficiency +33 insufficient +23 insufficiently +10 insult +3 insulted +1 insulter +1 insulting +7 insults +4 insure +1 insured +1 insures +1 insuring +3 intact +50 integral +2 integrally +2 integrated +79 integrity +2575 intellect +116 intellective +38 intellects +931 intellectual +6 intellectuality +2 intellectually +152 intelligence +6 intelligences +59 intelligent +1 intelligere +1 intelligi +9 intelligibility +546 intelligible +5 intelligibly +83 intemperance +44 intemperate +89 intend +150 intended +23 intending +141 intends +54 intense +15 intensely +1 intenseness +1 intenser +14 intensified +1 intensifies +77 intensity +2 intensive +2 intensively +76 intent +633 intention +8 intentional +9 intentionally +26 intentions +2 intently +2 intentness +1 intents +4 inter +1 interceding +1 intercepted +12 intercession +4 intercessions +1 intercessors +1 interchangeable +1 interchanges +1 intercommunicate +113 intercourse +8 interest +8 interests +6 interfere +1 interfered +4 interference +1 interferes +265 interior +1 interiorily +8 interiorly +1 interlinear +1 intermarriage +1 intermeddle +1 intermediaries +8 intermediary +43 intermediate +5 interminable +1 intermingling +2 intermittent +2 intermittently +142 internal +6 internally +6 interposed +2 interposition +19 interpret +38 interpretation +6 interpretations +23 interpreted +4 interpreter +3 interpreting +9 interprets +1 interrog +1 interrogation +1 interrupt +14 interrupted +1 interruptedly +5 interruption +1 interruptions +1 intersection +15 interval +5 intervals +9 intervene +3 intervened +1 intervenes +14 intervening +2 intervention +1 intimacy +12 intimate +5 intimately +1 intimates +3 intimating +4 intimation +1854 into +2 intolerable +1 intoned +1 intones +2 intoxicants +3 intoxicated +1 intoxicates +7 intoxicating +55 intrinsic +4 intrinsically +15 introduce +25 introduced +6 introduces +3 introducing +5 introduction +1 introductory +5 introit +1 introspects +1 intrusted +9 intuition +1 intus +4 inv +24 invalid +3 invalidated +2 invalidly +19 invariable +5 invariably +2 invectives +1 invenisti +77 invent +8 invented +1 inventing +3 invention +3 inventions +1 inventor +1 inventors +1 inventus +1 inverse +2 invested +4 investigate +2 investigated +1 investigating +7 investigation +4 inveterate +1 invidious +7 invincible +1 inviolable +6 inviolate +1 invisibilis +1 invisibility +134 invisible +19 invisibly +2 invitation +15 invite +3 invited +8 invites +18 invocation +1 invocations +10 invoke +15 invoked +3 invokes +18 invoking +13 involuntarily +46 involuntariness +86 involuntary +39 involve +10 involved +54 involves +6 involving +194 inward +76 inwardly +6 ipso +8 ira +1 irasci +4 irascibility +300 irascible +2 irene +1 irksome +28 iron +31 irony +275 irrational +1 irrationally +2 irreconcilable +7 irregular +1 irregularities +12 irregularity +15 irreligion +3 irremediable +1 irremediableness +1 irremissibility +2 irremissible +1 irremovable +1 irreparability +16 irreparable +1 irreparably +4 irresistible +25 irreverence +4 irreverent +6 irreverently +1 irrevocable +2 irzn +70771 is +261 isa +27 isaac +1 isaacs +1 isagog +1 isaiah +31 isaias +2 iscariot +1 ischyos +1 ischyrognomones +1 isid +145 isidore +3 isidores +2 ismael +1 ismahel +1 isolated +1 isos +120 israel +1 israelite +7 israelites +33 issue +2 issued +6 issues +8 issuing +1 iste +34008 it +1 italian +1 italy +1 itching +1 ite +1 items +1 itinerary +6302 its +2258 itself +828 iv +215 ix +58 jacob +4 jacobi +6 jacobs +2 jactantia +1 jactare +2 jam +105 james +1 janae +6 januar +2 januarius +2 january +1 jarring +1 jason +2 jaw +3 jaws +7 jealous +1 jealously +9 jealousy +10 jechonias +2 jehu +1 jehus +1 jejun +1 jejunii +1 jejunio +1 jejunium +2 jephte +98 jer +1 jerem +3 jeremiah +25 jeremias +1 jericho +1 jeroboam +322 jerome +8 jeromes +53 jerusalem +1 jesse +11 jest +4 jester +1 jesters +5 jesting +1 jestingly +2 jests +274 jesus +18 jew +2 jewels +39 jewish +288 jews +4 jezabel +1 jezebels +1 jhesu +1 joab +2 joachim +2 joachims +173 joan +2 joas +1 joathan +147 job +3 jobs +16 jocose +2 jocularity +10 joel +929 john +46 johns +8 join +75 joined +1 joiners +6 joining +7 joins +3 joint +3 joints +2 joke +1 jokers +2 jokes +2 joking +1 jona +4 jonah +7 jonas +1 jonathan +4 joram +23 jordan +6 jos +3 josaphat +103 joseph +7 josephs +2 josephus +5 josh +6 joshua +1 josias +13 josue +1 jot +19 journey +1 journeyed +2 journeying +1 jov +5 jovin +2 jovinian +341 joy +16 joyful +5 joyfully +2 joyfulness +1 joyless +1 joyous +8 joys +2 jubilee +1 jud +6 juda +1 judaea +2 judaeis +1 judaeos +3 judah +3 judaism +2 judaizing +61 judas +3 jude +17 judea +1 judex +472 judge +67 judged +2 judgement +142 judges +9 judgest +11 judgeth +62 judging +803 judgment +48 judgments +158 judicial +1 judicially +59 judiciary +1 judicibus +7 judith +3 juice +1 julia +26 julian +1 julianus +5 julius +1 july +3 jupiter +1 jur +1 juramento +2 jurare +7 jure +2 jurejur +1 jurejurando +1 juridically +1 juris +14 jurisdiction +15 jurist +7 jurists +9 jus +1991 just +1850 justice +15 justices +200 justification +12 justifications +101 justified +3 justifier +11 justifies +9 justifieth +30 justify +31 justifying +6 justin +1 justinian +9 justit +1 justitiae +59 justly +6 juxtaposition +1 k +1 kai +1 kalends +1 kath +4 keen +6 keener +1 keenest +11 keenly +5 keenness +226 keep +2 keeper +1 keepest +5 keepeth +155 keeping +29 keeps +4 ken +107 kept +15 keys +1 kicking +6 kid +1 kidnaping +1 kids +120 kill +45 killed +12 killeth +25 killing +18 kills +1 kimbikes +8 kin +1422 kind +3 kindle +8 kindled +1 kindler +5 kindles +8 kindliness +6 kindling +11 kindly +40 kindness +58 kindred +327 kinds +1 kine +198 king +287 kingdom +11 kingdoms +8 kingly +189 kings +6 kinsfolk +17 kinship +1 kinsman +6 kinsmen +1 kinswoman +4 kiss +1 kissed +13 kisses +3 kissing +2 kite +1 kleria +1 kleros +1 knave +1 knead +5 knee +3 knees +211 knew +1 knewest +16 knife +1 knive +4 knives +1 knock +1219 know +60 knowable +82 knower +1 knowers +7 knowest +36 knoweth +184 knowing +22 knowingly +3060 knowledge +4 knowledges +1113 known +648 knows +1 kolazo +4 kotos +1 krisis +2 kyminopristes +5 l +2 la +1 labelled +110 labor +6 labored +3 laborer +4 laborers +3 laboreth +3 laboring +2 laborious +9 labors +245 lack +5 lacked +111 lacking +67 lacks +2 ladder +3 lady +1 ladys +1 laedere +1 laesione +1 laeta +2 laetitia +1 laetum +1 lag +1 laggards +139 laid +2 lain +12 laity +11 lam +75 lamb +4 lambs +12 lame +2 lamech +1 lameness +2 lament +1 lamentation +1 laments +3 lamp +4 lamps +2 lance +2 lancets +112 land +9 lands +3 lanfranc +19 language +11 languages +4 languish +1 languishes +5 languor +1 lap +1 lapillus +4 lapis +14 lapse +2 lapsed +3 lapses +4 lapsing +1 larceny +22 large +1 largely +12 larger +1 largest +1 largitas +10 lasciviousness +1 lashes +694 last +3 lasted +31 lasting +1 lastingly +1 lastingness +51 lastly +35 lasts +1 lat +3 late +2 lately +4 latent +104 later +1 lateran +56 latin +3 latins +1 latitia +2 latitude +1 latitudois +124 latria +1 latrocinium +2 latrone +470 latter +30 latters +1 laud +4 laudable +1 laudably +1 lauds +8 laugh +3 laughed +9 laughing +1 laughs +16 laughter +2 laurence +16 laver +4 lavish +1 lavishly +3515 law +527 lawful +159 lawfully +1 lawfulness +55 lawgiver +16 lawgivers +2 lawgiving +2 lawless +2 lawlessness +4 lawrence +222 laws +2 lawsuits +2 lawyer +1 lawyers +1 lax +1 laxative +2 laxity +128 lay +3 layeth +2 layfolk +21 laying +21 layman +7 laymen +29 lays +1 lazaro +13 lazarus +18 laziness +1 lazy +182 lead +3 leaden +13 leader +9 leaders +1 leadership +5 leadeth +42 leading +98 leads +1 leaf +3 league +5 lean +1 leand +1 leander +1 leaning +1 leanness +7 leans +2 leap +2 leaped +1 leapeth +1 leaping +98 learn +51 learned +10 learner +59 learning +16 learns +8 learnt +206 least +1 leathern +55 leave +9 leaven +7 leavened +33 leaves +3 leaveth +26 leaving +1 lecherous +2 lect +1 lectors +1 lectures +1 lecturing +171 led +1 lees +132 left +12 leg +167 legal +1 lege +1 legem +1 legend +2 legere +1 leges +1 legibus +1 legion +1 legions +7 legislation +7 legislative +2 legislator +2 legislators +1 legitima +1 legitimate +1 legitimately +5 legs +15 leisure +2 leisurely +29 lend +15 lender +1 lendeth +12 lending +6 lends +53 length +4 leniency +27 lent +6 lenten +48 leo +17 leonine +1 leonum +27 leper +3 lepers +33 leprosy +1 leprous +1 lerida +5 lesion +1053 less +30 lessen +28 lessened +6 lessening +26 lessens +148 lesser +6 lesson +5 lessons +359 lest +435 let +1 lethargy +1 lets +77 letter +22 letters +3 letting +2 lettuces +1 leucippus +121 lev +5 level +1 leveled +11 levi +1 levied +2 levit +2 levite +21 levites +7 levitical +7 leviticus +9 levity +3 lewd +1 lewdly +2 lewdness +12 lex +1 lexicon +4 li +5 lia +6 liability +34 liable +8 liar +3 liars +104 lib +1 libanus +1 libations +11 liber +61 liberal +197 liberality +9 liberally +1 liberat +5 liberated +3 liberation +2 libero +1 liberties +1 libertine +61 liberty +1 liberum +1 liceat +3 license +5 licet +2 licit +1 licitly +1 lids +199 lie +5 lied +1 liers +104 lies +1 liest +6 lieth +3 lieu +1 lieutenants +2853 life +70 lifeless +5 lifelessness +1 lifes +10 lifetime +15 lift +35 lifted +9 lifting +4 lifts +1 ligare +821 light +2 lighted +1 lightened +1 lightens +9 lighter +2 lightest +1 lighteth +3 lighting +4 lightly +12 lightness +4 lightning +39 lights +7 lightsome +1 ligna +8 lii +8 liii +1938 like +2 likelihood +17 likely +2 liken +81 likened +672 likeness +18 likenesses +3 likening +5 likens +6 likes +469 likewise +2 liking +2 lily +15 limb +2 limbo +34 limbs +54 limit +2 limitation +50 limited +1 limiting +36 limits +1 limp +3 limping +1 lina +1 lincoln +55 line +1 linear +31 linen +1 linens +15 lines +1 linger +1 lingering +2 lingers +7 link +3 linked +1 linking +29 lion +8 lions +1 lip +40 lips +1 liquefaction +1 liquefies +43 liquid +1 liquids +3 liquor +2 liquors +1 list +18 listen +4 listened +4 listener +2 listening +10 listens +1 listeth +1 listless +2 lists +260 lit +1 litera +53 literal +40 literally +2 litigants +1 litigious +1 litt +298 little +9 littleness +7 liv +277 live +42 lived +51 livelihood +3 liver +91 lives +1 livest +25 liveth +393 living +2 livy +2 lix +1 lizard +2 lizards +9 load +1 loads +38 loan +4 loans +1 loath +1 loathing +4 loathsome +1 loathsomeness +23 loaves +9 loc +124 local +1 localities +4 locality +51 locally +5 located +1 locative +1 locked +2 locomotion +4 locomotive +1 locust +1 locusts +2 lodge +2 lodging +2 loedit +1 loftier +2 loftiness +15 lofty +6 logic +29 logical +38 logically +3 logicians +2 loin +13 loins +11 lombard +1 lombards +2 lonely +349 long +20 longanimity +4 longed +192 longer +1 longevity +6 longing +1 longlastingness +2 longlived +3 longs +3 longsuffering +115 look +57 looked +1 lookest +38 looking +1 lookout +46 looks +13 loose +12 loosed +1 loosely +1 loosen +1 loosened +1 loosening +1 loosens +2 looses +2 loosing +1 loquacious +3 loquaciousness +2 loquacity +1547 lord +25 lordly +183 lords +16 lordship +1 lordto +99 lose +5 loser +2 losers +46 loses +14 losing +175 loss +5 losses +208 lost +22 lot +4 loth +24 lots +8 loud +1 lout +1 loutish +43 lovable +2 lovableness +2935 love +387 loved +115 lover +15 lovers +376 loves +8 lovest +48 loveth +113 loving +1 lovingkindness +4 lovingly +21 low +393 lower +4 lowered +1 lowering +1 lowers +77 lowest +1 lowing +1 lowliest +14 lowliness +8 lowly +5 lowness +1 loyal +1 loyally +1 loyalty +39 luc +1 lucam +6 lucid +1 lucidity +1 lucifer +3 lucin +1 lucium +10 luck +3 lucky +5 lucre +6 lucy +5 ludifred +448 luke +1 lukes +1 lukewarm +1 lull +3 lulls +10 luminaries +3 luminary +2 luminosity +18 luminous +2 lump +2 lunar +3 lunatics +1 lung +2 lungs +2 lurks +334 lust +4 luster +10 lusteth +33 lustful +1 lustfulness +2 lusting +3 lustre +18 lusts +2 luxurious +8 luxury +8 lv +1 lvi +4 lvii +7 lviii +8 lx +2 lxi +8 lxii +7 lxiii +5 lxiv +2 lxix +5 lxv +3 lxvi +4 lxvii +2 lxviii +3 lxx +14 lxxi +4 lxxii +6 lxxiii +1 lxxiv +2 lxxix +2 lxxv +2 lxxvi +2 lxxvii +4 lxxviii +11 lxxx +1 lxxxi +12 lxxxii +49 lxxxiii +2 lxxxiv +4 lxxxix +2 lxxxv +3 lxxxvi +1 lxxxvii +5 lxxxviii +4 lye +94 lying +3 m +4 mac +1 macarius +20 macc +1 maced +3 macedon +2 macedonius +1 machab +1 machabees +1 machabeus +1 machination +1 machinations +38 macrobius +1 macrocosm +11 mad +2265 made +1 madebut +1 madest +1 madian +8 madman +20 madmen +13 madness +3 mag +9 magdalen +67 magi +20 magic +2 magical +7 magician +10 magicians +1 magis +1 magisterial +5 magistrates +1 magn +2 magna +1 magnae +249 magnanimity +64 magnanimous +1 magnet +1 magnification +136 magnificence +32 magnificent +1 magnificentia +2 magnificently +2 magnified +1 magnifies +2 magnify +72 magnitude +1 magnitudes +1 magnitudinem +3 magnus +4 magus +1 mahomet +7 maid +9 maiden +3 maidenhood +6 maidens +4 maids +3 maidservant +1 maidservants +9 maim +6 maimed +5 maiming +1 maims +1 main +2 mainly +1 mainstays +47 maintain +112 maintained +11 maintaining +10 maintains +7 maintenance +1 mainz +2 maize +32 majesty +2 major +37 majority +1 majus +1065 make +1 makeable +21 maker +2 makers +663 makes +7 makest +26 maketh +211 making +3 mal +12 malach +13 malachi +1 maladies +2 malady +82 male +2 maledicere +1 maledici +2 malediction +1 malefactors +2 malefice +8 males +1 malevolence +306 malice +1 malices +6 malicious +2 maliciously +2 malignant +1 malitia +3 mallet +1 mallets +1 maltreated +2 malum +7 mammon +11012 man +1 managed +4 manasses +1 mandamus +1 mandata +7 mandate +1 mandavit +2 manducate +3 manes +7 manger +1 mangles +1 mangling +1 mangy +40 manhood +1 maniac +13 manich +1 manichaeans +3 manichean +8 manicheans +7 manichees +1 maniches +371 manifest +104 manifestation +1 manifestations +99 manifested +1 manifesteth +14 manifesting +2 manifestive +57 manifestly +26 manifests +38 manifold +1 manifoldly +43 mankind +2 manlike +4 manliness +8 manly +13 manna +1138 manner +9 manners +1 manor +1314 mans +1 manservant +5 mansions +1 manteia +1 mantle +29 manual +1 manuscript +1 manuscripts +1423 many +4 marc +1 marcel +1 marcellin +1 marcellinus +1 marcellus +1 marcoe +2 mardochaeus +2 mardochai +1 mare +67 mark +19 marked +5 market +1 marketing +13 marks +127 marriage +4 marriages +52 married +1 marrow +25 marry +2 marrying +1 mars +2 mart +9 martha +1 martianus +6 martin +16 martyr +109 martyrdom +1 martyrio +46 martyrs +1 martys +6 marvel +2 marveled +1 marveling +7 marvelous +1 marvels +84 mary +13 marys +10 masculine +1 mask +1 masks +114 mass +1 massed +14 masses +1 masso +257 master +3 mastercraft +2 mastered +75 masters +28 mastership +4 mastery +3 masticated +1 mastication +1 match +1 materiae +428 material +3 materiality +85 materially +10 materials +5 maternal +4 mathan +1 mathathias +14 mathematical +1 mathematically +2 mathematician +1 mathematicians +15 mathematics +3 matins +1 matrimonial +42 matrimony +1 matris +745 matt +2574 matter +1 mattered +812 matters +145 matth +2 matthaeum +54 matthew +4 matthews +2 matthias +1 mature +5 maturity +1 maunder +2 maundy +13 maxim +3 maximin +4 maxims +11 maximum +19 maximus +4317 may +1 maybe +11 mayest +1 mayors +544 me +1 meadows +11 meal +3 meals +1 meam +583 mean +219 meaning +6 meanings +26 meanness +1206 means +53 meant +1 meantime +6 meanwhile +5 measurable +435 measure +152 measured +3 measurement +4 measurements +37 measures +6 measuring +106 meat +10 meats +3 meaux +2 mechanical +4 meddle +3 meddling +1 medes +1 media +7 mediate +8 mediately +2 mediates +2 mediating +1 mediation +63 mediator +5 mediators +11 medical +2 medicament +1 medicaments +1 medicando +13 medicinal +3 medicinally +97 medicine +12 medicines +1 medio +1 mediocriter +10 meditate +3 meditated +1 meditates +2 meditating +25 meditation +201 medium +3 mediums +10 meed +27 meek +109 meekness +31 meet +2 meetest +1 meeteth +4 meeting +2 meetings +1 meetly +4 meets +1 megalokindynos +1 megaloprepeia +2 melancholic +1 melancholy +3 melchi +6 melchiades +36 melchisedech +1 melchisedechs +1 melodies +1 melodious +2 melody +3 melt +2 melted +4 melting +1 melts +3 mem +74 member +311 members +17 memor +13 memorative +5 memoria +13 memorial +7 memories +209 memory +2180 men +19 mend +8 mendac +4 mendacio +2 mendaciously +2 mendacium +6 mendicancy +5 mendicant +1 mendicants +2 mending +1 menein +1 menial +2 menis +2 meno +68 mens +1 menses +4 menstrual +1 menstruata +1 menstruous +1 mensurare +39 mental +31 mentally +83 mention +232 mentioned +8 mentioning +78 mentions +2 mentis +2 mer +2 mercantile +4 mercenary +8 merchant +1 merchants +8 mercies +36 merciful +12 mercifully +1 merciless +2 mercilessness +7 mercury +410 mercy +212 mere +387 merely +1 merest +3 merged +625 merit +74 merited +1 meriteth +21 meriting +187 meritorious +6 meritoriously +165 merits +1 meseems +11 message +8 messenger +7 messengers +11 met +5 metal +1 metalepsis +2 metals +312 metaph +12 metaphor +25 metaphorical +75 metaphorically +8 metaphors +1 metaphysical +16 metaphysics +1 mete +4 meted +10 meteor +3 methinks +9 method +1 methodicalness +4 methods +1 metiendo +1 metonymy +1 metriotes +1 meum +9 mic +4 micah +3 mice +2 michael +1 micheam +1 micheas +1 microcosm +14 mid +3 midday +105 middle +10 midnight +49 midst +29 midway +5 midwife +9 midwives +783 might +8 mightest +10 mightier +2 mightiest +8 mightily +1 mightiness +24 mighty +2 migne +1 mikrokindynos +1 milan +2 mild +9 mildness +1 mile +1 milestones +5 milit +1 militant +37 military +2 militate +1 militia +26 milk +1 mill +1 millet +1 millstone +1 mimicry +1291 mind +27 minded +8 mindful +95 minds +8 mine +3 minerals +1 minerius +29 mingled +2 mingles +20 mingling +3 minglings +1 minimizing +2 minimum +1 minions +176 minister +15 ministered +2 ministerial +13 ministerially +17 ministering +1 ministerings +194 ministers +9 ministration +18 ministrations +11 ministries +98 ministry +12 minor +11 minority +2 minors +1 minstrel +1 minus +10 minute +1 minuteness +2 minutest +82 miracle +327 miracles +75 miraculous +55 miraculously +3 mire +42 mirror +24 mirth +1 misapplied +6 misbegotten +1 miscarry +1 mischance +1 mischiefs +13 mischievous +2 misdeed +1 misdemeanor +13 miser +3 miserable +1 miseratio +1 miserendi +1 miseria +1 miseriam +3 misericordia +1 misericors +2 miseries +3 miserliness +7 misers +2 miserum +25 misery +11 misfortune +8 misfortunes +2 misgiving +1 mishap +1 mishaps +3 misled +1 mispronounce +2 mispronounced +3 mispronunciation +1 mispronunciations +1 misrepresentations +6 miss +4 missa +1 missae +2 missal +1 misshapen +111 mission +4 missions +1 missoria +1 mist +3 mistake +5 mistaken +1 mistakenly +1 mistaking +4 mistress +1 mistrust +1 misunderstand +1 misunderstanding +3 misunderstood +2 misuse +1 misused +1 misusing +3 mites +8 mitigate +6 mitigated +9 mitigates +3 mitigating +6 mitigation +2 mitre +1 mittit +2 mix +88 mixed +1 mixes +18 mixing +15 mixture +1 mixtures +88 mk +2 moab +2 moabite +1 moabites +1 mob +14 mobile +1 mobilior +3 mock +6 mocked +2 mocker +2 mockeries +12 mockery +1 mocketh +3 mocking +673 mode +11 model +3 modelled +2 models +71 moderate +20 moderated +9 moderately +36 moderates +9 moderating +106 moderation +3 modern +30 modes +4 modest +87 modesty +1 modification +1 modifications +12 modified +2 modify +2 modifying +1 modo +9 moist +3 moistened +1 moistening +1 moistness +8 moisture +1 molded +1 mole +1 moles +4 molest +2 molested +2 molesting +1 mollities +1 moloch +6 molten +65 moment +2 momentary +1 moments +44 monach +2 monachis +1 monachoi +2 monachorum +1 monachus +4 monad +1 monarch +1 monarchy +4 monast +12 monasteries +1 monasterio +3 monasterium +46 monastery +38 monastic +368 money +2 moneys +37 monk +43 monks +3 monol +1 monomachy +1 monos +1 monster +4 monsters +1 monstrosities +2 monstrous +3 montanus +64 monte +15 month +2 monthly +9 months +3 monument +2 monuments +8 mood +78 moon +3 moons +1 moorhen +1 mopsuestia +1 mor +1 mora +1378 moral +1 moralia +3 moralist +14 morality +27 morally +51 morals +4995 more +1 morem +407 moreover +15 morib +16 moribus +1 moris +85 morning +20 morose +1 moroseness +16 morrow +7 morsel +4 mort +1184 mortal +11 mortality +94 mortally +5 mortals +1 mortgages +4 mortification +1 mortified +3 mortify +3 mortuis +6 mos +1 mosaic +194 moses +1081 most +9 mostly +4 mot +4 mote +1 moth +353 mother +11 motherhood +63 mothers +219 motion +2 motionless +12 motions +1 motivated +213 motive +47 motives +14 motor +1 motors +2 motus +32 mount +34 mountain +12 mountains +3 mounted +1 mounteth +2 mounting +1 mounts +23 mourn +3 mourned +1 mourner +1 mournful +27 mourning +1 mourns +5 mouse +100 mouth +1 mouths +62 movable +2 movables +7 movably +262 move +958 moved +1715 movement +387 movements +235 mover +12 movers +372 moves +2 moveth +122 moving +1 moyses +1011 much +7 mud +1 muddy +1 mulberries +3 mulcted +3 mule +1 mulier +1 multa +1 multi +10 multiform +3 multiformity +7 multiple +37 multiplication +1 multiplici +21 multiplicity +128 multiplied +6 multiplies +1 multiplieth +12 multiply +11 multiplying +253 multitude +7 multitudes +1 mund +3 mundane +8 mundo +1 munia +1 munificence +125 murder +26 murderer +6 murderers +1 murdering +2 murderous +5 murders +1 murmur +2 murmuring +1 murrain +1 muscles +1 museth +10 music +2 musica +6 musical +3 musician +2780 must +2 mustard +1 musti +9 mutability +73 mutable +1 mute +1 mutilated +4 mutilation +1 mutilations +1 mutter +1 muttering +67 mutual +47 mutually +2 muzzle +670 my +5 myrrh +1 myrtle +37 myself +8 myst +2 myster +92 mysteries +1 mysteriis +1 mysterious +193 mystery +4 mystic +2 mystica +39 mystical +4 mystically +1 mythical +5 n +1 naaman +1 naboth +3 nabuchodonosor +4 nahum +2 nail +3 nailed +6 nails +16 naked +7 nakedness +1064 name +88 named +1015 namely +302 names +1 namesake +3 naming +9 narrated +2 narrates +2 narrating +2 narration +8 narrative +11 narrow +2 narrowed +1 nascitura +1 nasty +83 nat +8 nathan +55 nation +1 nationality +123 nations +4 nativ +6 nativities +80 nativity +1 natur +13 natura +2593 natural +597 naturally +5292 nature +229 natures +18 naught +1 nausea +1 nave +1 navel +3 navigation +13 nay +1 nazareans +1 nazarene +1 nazarenes +10 nazareth +9 nazianzen +2 nazianzum +1 ne +63 near +100 nearer +34 nearest +1 nearing +27 nearly +9 nearness +1 nears +3 nebula +1 nebulous +1 nec +37 necessaries +194 necessarily +1347 necessary +2 necessitate +2 necessitated +3 necessitates +16 necessities +729 necessity +11 neck +2 necked +3 necks +3 necromancers +2 necromancy +4 necromantic +796 need +99 needed +3 needeth +21 needful +2 neediness +9 needing +2 needle +4 needless +1 needlessly +632 needs +38 needy +1 nefarious +82 negation +6 negations +60 negative +4 negatively +1 negatives +34 neglect +2 neglected +3 neglecteth +1 neglectful +6 neglecting +11 neglects +105 negligence +2 negligences +6 negligent +6 negligently +1 negligere +626 neighbor +6 neighborhood +7 neighboring +2 neighborly +107 neighbors +1335 neither +1 nekron +10 nemesis +41 nemesius +3 nemo +1 neomenia +2 neophyte +1 neophytes +1 neophytus +2 nepot +2 nepotian +5 nequaquam +1 nero +1 nerve +1 nerveless +7 nerves +1 nervous +13 nescience +1 nescient +6 nest +3 nesteros +2 nestorian +6 nestorians +22 nestorius +3 net +2 nether +3 nets +1 nettled +8 neuter +343 never +769 nevertheless +647 new +1 newcomers +23 newly +21 newness +91 next +1 nibbled +6 nicaea +1 nicanor +3 nice +3 nicea +1 nicely +1 nicene +1 niceness +1 nicetas +1 nicety +2 nicholas +5 nicodemus +2 nicolai +8 nicolas +31 nigh +1 nighest +4 nighness +98 night +24 nights +1 nimbly +1 nimia +1 nimrod +25 nine +2 ninety +1 nineveh +2 ninevites +80 ninth +1 ninthly +1 ninus +2 nisi +4508 no +3 noah +7 nobility +1 nobis +53 noble +2 nobleman +115 nobler +2 nobles +17 noblest +3 nobly +20 nobody +1 noct +20 nocturnal +2 nod +6 noe +1 noise +1 noisily +3 noisome +1 nol +2 nolition +284 nom +1 nominal +1 nominalists +2 nominative +2 nomine +1 nominibus +161 non +296 none +3 nonetheless +2 nonnulli +1 nonsense +2 noon +3 noonday +1669 nor +4 normal +6 north +2 northern +2 nos +8 nose +3 nostrils +1 nostrums +28067 not +6 notable +1 notably +1 notandum +3 notary +58 note +24 noted +3 notes +1 noteworthy +1701 nothing +7 nothingness +1 nothings +21 notice +4 noticed +1 notices +6 notified +2 notify +2 notifying +2 noting +252 notion +60 notional +4 notionally +73 notions +1 notoriety +9 notorious +16 notwithstanding +8 nought +5 noun +10 nouns +16 nourish +22 nourished +11 nourishes +4 nourishing +60 nourishment +1 nous +21 nov +3 novatians +1 novatianus +2 novel +7 novelties +2 novelty +1 novi +1 novice +1 novices +1 noviciate +1 novitatum +1 novum +7225 now +1 nowadays +17 nowhere +118 nowise +6 nows +3 noxious +2 nt +2 nugatory +2 null +3 nullus +79 num +472 number +63 numbered +6 numbering +53 numbers +1 numbness +1 numerable +11 numeral +2 numeric +13 numerical +33 numerically +24 numerous +1 nun +12 nup +1 nuper +7 nuptial +3 nurse +4 nurseries +2 nurtured +2 nutriment +7 nutrition +1 nutritious +59 nutritive +1 nuts +50 nyssa +133 o +262 oath +30 oaths +2 ob +264 obedience +35 obedient +1 obediential +228 obey +26 obeyed +27 obeying +60 obeys +2 obfuturum +14628 obj +2 objecerit +2000 object +5 objected +2939 objection +1 objectionable +123 objections +8 objective +2 objectively +504 objects +1 oblat +56 oblation +67 oblations +1 oblig +172 obligation +13 obligations +6 obligatory +2 oblige +19 obliged +1 obliges +15 oblique +1 obliqueness +6 obscene +2 obscenities +2 obscenity +9 obscure +12 obscured +1 obscurely +1 obscuring +1 obscurities +13 obscurity +2 obscurum +1 obsecratio +1 obsequiousness +1 observable +178 observance +117 observances +23 observation +8 observations +307 observe +395 observed +247 observes +4 observeth +86 observing +2 obsess +1 obsessed +2 obsolete +157 obstacle +80 obstacles +23 obstinacy +24 obstinate +9 obstinately +1 obstruct +263 obtain +5 obtainable +103 obtained +82 obtaining +35 obtains +1 obtrude +1 obtuse +3 obviate +2 obviated +5 obvious +1 obviously +141 occasion +13 occasional +13 occasionally +28 occasioned +36 occasions +14 occult +2 occultation +1 occultly +24 occupation +23 occupations +44 occupied +9 occupies +41 occupy +7 occupying +122 occur +18 occurred +23 occurrence +23 occurrences +10 occurring +102 occurs +1 occursu +5 ocean +2 ochozias +1 oct +3 octave +1 october +11 octog +4 odd +2 odious +1 odit +26 odor +2 odors +3 odyssey +1 oer +88959 of +160 off +4 offence +30 offend +18 offended +6 offender +1 offendeth +12 offending +7 offends +65 offense +21 offenses +4 offensive +201 offer +402 offered +7 offerer +14 offerers +5 offereth +130 offering +28 offerings +63 offers +1 offertory +86 offic +219 office +6 officer +4 officers +41 offices +6 official +2 officially +5 officials +15 officiis +2 officio +22 officious +1 officiousness +1 officium +61 offspring +1 offsprings +114 often +3 oftener +1 oftentimes +56 oil +4 ointment +2 ointments +1 oion +1 ois +742 old +13 olden +6 older +4 oldness +4 oligarchy +8 olive +1 olives +2 olymp +1 olympian +6 omen +6 omens +121 omission +2 omissions +27 omit +17 omits +72 omitted +22 omitting +2 omn +5 omnes +2 omni +1 omnia +1 omnibus +1 omnino +69 omnipotence +36 omnipotent +2 omnis +10629 on +440 once +9261 one +20 oneness +3 onerous +705 ones +226 oneself +1 onias +1 onlookers +3701 only +12 onslaught +1 onslaughts +3 onward +2 onyx +4 op +2 opaque +75 open +84 opened +5 openeth +21 opening +1 openings +65 openly +10 opens +21 oper +10 operable +53 operate +15 operated +52 operates +57 operating +904 operation +331 operations +42 operative +19 operator +3 operibus +2 opif +1 opificio +1 opines +479 opinion +1 opinionated +4 opinionative +113 opinions +3 opp +3 opponent +2 opponents +2 opportune +6 opportunities +23 opportunity +2 oppos +4 oppose +977 opposed +8 opposes +5 opposing +204 opposite +1 oppositely +61 opposites +160 opposition +10 oppress +12 oppressed +5 oppresses +1 oppresseth +3 oppression +4 oppressive +1 oppressor +1 oppressus +1 optative +1 optim +1 option +2 optional +50 opus +9914 or +6 oracles +9 oral +1 orally +1 orandi +3 orando +1 orange +15 orat +4 oratio +1 orations +12 orator +1 oratorical +1 oratory +1 orb +1 orbis +1 orbit +1 orbits +5 ord +15 ordain +3 ordainable +587 ordained +2 ordainer +15 ordaining +21 ordains +3239 order +218 ordered +9 ordereth +96 ordering +1 orderings +26 orderly +303 orders +1 ordinabantur +55 ordinance +13 ordinances +1 ordinand +2 ordinaria +79 ordinary +1 ordinata +1 ordinatae +19 ordinate +1 ordinated +1 ordinately +1 ordinateness +1 ordinatio +34 ordination +1 ordinationes +7 ordinations +1 ordine +1 ordure +126 organ +12 organic +1 organically +1 organization +71 organs +4 orient +1 orig +75 origen +2 origens +240 origin +508 original +19 originally +13 originate +7 originated +11 originates +4 originating +1 origine +1 origins +2 oris +3 orleans +1 ornabantur +9 ornament +5 ornate +1 ornatus +1 oros +4 orosium +1 orphan +4 orphans +292 orth +1 os +1 osbert +37 osee +1 osprey +1 ostensible +9 ostentation +2 ostrich +5003 other +4 otherness +1763 others +366 otherwise +1 ou +1256 ought +2 oughtest +3287 our +1 oure +73 ours +206 ourselves +2 ousia +2 ousiosis +1041 out +1 outbreak +18 outcome +1 outcry +11 outer +1 outermost +4 outlast +1 outlasts +3 outlay +3 outline +10 outpouring +1 outpourings +2 outrage +2 outrages +1 outraging +1 outrunning +34 outset +296 outside +2 outsiders +1 outskirts +1 outsteps +1 outstretched +2 outstretching +326 outward +61 outwardly +1 outwards +2 outweigh +1 outweighed +2 outweighs +3 oven +594 over +1 overburdening +6 overcame +1 overclouding +105 overcome +13 overcomes +1 overcometh +15 overcoming +37 overflow +2 overflowed +3 overflowing +9 overflows +1 overhead +1 overheating +1 overlap +1 overlay +5 overlook +2 overlooked +1 overlooking +2 overlooks +9 overmuch +2 overpassing +1 overpower +1 overrule +1 overseers +2 overshaded +1 overshadow +4 overshadowed +1 overspreading +2 overstep +1 oversteps +1 overtake +1 overtaken +2 overtakes +4 overthrew +7 overthrow +1 overthrowing +4 overthrown +1 overthrows +3 overturned +1 overturning +2 overwhelm +3 overwhelming +1 oves +2 ovib +4 ovibus +65 owe +7 owed +54 owes +2 oweth +130 owing +4 owl +2082 own +1 owned +33 owner +8 owners +15 ownership +2 owns +38 ox +24 oxen +2 oxford +1 oza +2 ozias +25 p +1 pace +1 paenitentia +13 pagan +1 paganism +16 pagans +1 page +1 pages +125 paid +463 pain +4 pained +22 painful +1 painfully +1 painless +47 pains +1 paint +5 painted +1 painter +1 painters +3 painting +1 paints +4 pair +3 palace +4 palaces +1 palaest +2 palatable +11 palate +11 pale +2 paleness +1 paler +1 pallor +11 palm +2 palms +2 palpable +1 palsied +3 palsy +2 paltry +3 pan +1 pancrat +7 pandect +1 pang +1 pangs +1 panourgia +1 pantry +1 paper +1 paphnutius +9 par +2 para +5 parable +9 parables +2 parabolical +10 paraclete +7 parad +3 parade +131 paradise +2 paradiso +4 paradox +1 paradoxes +1 paragraph +7 paral +9 paralip +1 paralipomenon +17 parallel +1 paralytic +1 paralyze +1 paralyzed +1 paralyzes +5 paramount +1 paraphrased +4 parasceve +3 parched +1 parching +3 parchment +78 pardon +7 pardonable +59 pardoned +3 pardoning +10 pardons +1 pared +75 parent +4 parental +1 parenthesis +372 parents +46 parish +4 parishes +1 parishioners +20 parity +1 parma +15 parmen +5 parricide +1 pars +2632 part +56 partake +10 partaken +16 partaker +28 partakers +34 partakes +34 partaking +4 parte +4 parted +1 parth +6 partial +2 partiality +8 partially +1 partib +1 participable +38 participate +72 participated +35 participates +24 participating +252 participation +5 participations +1 participatively +15 participator +2 participators +8 participle +7 participles +8 particle +5 particles +834 particular +3 particularity +1 particularized +1 particularizes +16 particularly +15 particulars +9 parties +6 parting +1 partitive +109 partly +6 partner +1 partners +3 partnership +4 partook +1 partridge +1 partridges +728 parts +32 party +1 parvificentia +1 parvificus +1 parvuli +1 parvulorum +1 parvum +3 pasce +37 pasch +43 paschal +1 paschas +2 paschasius +212 pass +237 passage +19 passages +66 passed +1 passer +4 passersby +87 passes +2 passeth +15 passibility +62 passible +58 passing +1 passio +1583 passion +6 passionate +1 passione +913 passions +311 passive +10 passively +3 passiveness +3 passivity +8 passover +1 passurus +1 passus +210 past +1 paste +1 pastime +31 pastor +19 pastoral +5 pastors +1 pasture +4 paten +1 patens +3 patent +1 paterius +19 paternal +1 paternities +106 paternity +15 path +2 pathe +2 paths +167 patience +1 patiendo +1 patiens +63 patient +7 patientia +24 patiently +2 patients +1 patr +5 patriarch +45 patriarchs +1 patrias +1 patrimonial +2 patrimony +1 patris +6 patronage +1 patrum +10 pattern +1 patterns +108 paul +3 paulianists +17 paulin +1 paulinam +1 paulinum +1 paulinus +8 pauls +2 pax +201 pay +1 payable +1 payers +36 paying +46 payment +1 payments +36 pays +286 peace +2 peaceable +1 peaceableness +10 peaceful +2 peacefully +1 peacemaker +8 peacemakers +1 pearl +4 pearls +1 peasant +1 pebble +1 pebbles +13 pecc +1 pecora +1 peculation +1 peculations +7 peculiar +1 peculiarity +1 pecunia +16 pecuniary +2 pecunias +9 pedagogue +3 pedem +1 pedis +1 peevish +5 pelag +2 pelagian +3 pelagians +12 pelagius +1 pellicule +2 pen +43 penal +1 penally +42 penalties +62 penalty +704 penance +1 penances +1 pence +14 penetrate +3 penetrated +16 penetrates +6 penetrating +3 penetration +1 penetrative +78 penitent +1 penitentiae +1 penitential +17 penitents +2 penny +1 pentagon +3 pentagonal +30 pentecost +3 penury +665 people +42 peoples +1 pepuziani +79 per +1 peradventure +67 perceive +76 perceived +39 perceives +1 perceivest +2 perceiveth +11 perceiving +11 perceptible +45 perception +3 perceptions +47 perchance +1 percolates +1 percussion +1 percutit +13 perdition +1 peregin +1 peregrino +1 peremptory +3 perf +1714 perfect +244 perfected +4 perfecter +3 perfecters +6 perfectible +60 perfecting +1446 perfection +81 perfections +3 perfective +4 perfectively +324 perfectly +108 perfects +2 perfidy +98 perform +8 performance +67 performed +22 performing +30 performs +1 perfume +1 perfumes +127 perhaps +37 peri +12 peril +3 perilous +7 perils +16 period +6 periods +2 peripatetic +12 peripatetics +33 perish +6 perishable +10 perished +6 perishes +1 perisheth +2 perishing +10 perjurer +1 perjurers +1 perjures +1 perjuriis +82 perjury +10 permanence +28 permanent +2 permanently +4 permeate +1 permeated +1 permeates +1 permeating +7 permissible +39 permission +1 permissions +19 permit +18 permits +29 permitted +7 permitting +1 permutat +17 pernicious +1 perpetrate +7 perpetrated +1 perpetrates +56 perpetual +4 perpetually +27 perpetuity +12 perplex +5 perplexed +2 perplexity +5 persecute +1 persecuted +1 persecuting +26 persecution +2 persecutions +6 persecutor +12 persecutors +8 persev +2 persever +166 perseverance +3 perseverantia +43 persevere +5 persevered +7 perseveres +22 persevering +3 perseveringly +3 persia +7 persians +19 persist +2 persisted +10 persistence +6 persistent +1 persistently +6 persisting +6 persists +2189 person +4 personage +212 personal +2 personalities +41 personality +41 personally +1 personando +1 personating +3 personification +1050 persons +3 perspective +1 perspicuity +11 persuade +15 persuaded +1 persuader +9 persuades +13 persuading +19 persuasion +2 persuasions +5 persuasive +322 pertain +23 pertained +313 pertaining +547 pertains +3 pertinacious +13 pertinacity +11 pertinent +2 pervades +3 pervading +1 pervenit +41 perverse +7 perversely +5 perverseness +9 perversion +7 perversity +5 pervert +21 perverted +1 pervertere +1 perverters +2 perverting +4 perverts +1 pervicacious +1 pestiferous +1 pestilential +74 pet +165 peter +4 peters +1 petil +3 petilian +19 petition +1 petitioner +21 petitions +17 petrum +3 petty +1 phaed +2 phaedo +1 phanos +42 phantasm +177 phantasms +1 phantastic +11 phantasy +4 phantom +2 phantoms +9 pharaoh +3 pharaohs +1 pharaos +3 phares +1 pharisaism +4 pharisee +41 pharisees +2 phase +3 phases +1 phates +1 phenomenal +74 phil +1 philanthropy +5 philargyria +1 phileb +1 philem +1 philemon +1 philia +6 philip +2 philippians +1 philistine +2 philistines +1 philokindynos +1771 philosopher +102 philosophers +22 philosophical +18 philosophy +4 philotimia +3 phinees +2 phlegm +2 phlegmatic +1 phlegon +1 phoebe +1 phogor +1 photinians +4 photinus +1 photius +15 phrase +4 phrases +3 phronesis +1 phthisis +288 phys +7 physic +24 physical +1 physically +55 physician +9 physicians +4 physicist +13 physics +1 physique +1 piacenza +2 pick +5 picture +3 pictured +15 pictures +8 piece +3 piecemeal +3 pieces +10 pierce +4 pierced +2 pierces +6 piercing +1 pierre +3 pietas +234 piety +3 pig +3 pigeon +3 pigeons +1 piget +1 pigments +2 pigs +1 pikroi +16 pilate +2 pilates +14 pilgrimage +1 pilgrimages +2 pilgrims +1 pillager +7 pillar +2 pillars +3 pilot +1 piloted +1 pilots +1 pincers +1 pining +6 pinnacle +1 pinned +2 pio +17 pious +3 piously +1 pipe +14 pit +1 pitch +2 pitied +3 pities +4 pitiful +4 pitiless +2 pittacus +90 pity +3 pius +1 placate +1574 place +222 placed +187 places +1 placilla +11 placing +1 placings +1 placuit +2 plague +2 plagues +94 plain +16 plainly +1 plainness +1 plaintive +1 plaintiveness +1 plaited +1 plaiting +14 plan +1 plane +7 planets +19 plank +2 planks +1 planned +3 plans +21 plant +8 planted +1 planter +1 planteth +1 planting +1 plantis +113 plants +1 plasters +5 plate +102 plato +2 platonic +1 platonist +45 platonists +4 platos +45 play +1 played +1 players +1 playest +10 playful +4 playing +5 plays +1 plea +10 plead +15 pleading +4 pleads +105 pleasant +2 pleasantly +2 pleasantness +55 please +36 pleased +17 pleases +1 pleasest +2 pleaseth +81 pleasing +47 pleasurable +1 pleasurableness +3 pleasurably +1087 pleasure +457 pleasures +2 pleb +1 plebeians +1 plebiscita +13 pledge +4 pledged +4 pledges +2 plenary +11 plenitude +3 plentiful +1 plentifully +4 plenty +1 plight +3 plot +8 plotinus +1 plots +2 plotting +16 plough +2 ploughed +2 plougheth +3 ploughing +1 plover +1 plovers +1 pluck +3 plucked +8 plucking +2 plunder +1 plunderers +1 plundering +4 plunge +3 plunged +2 plunges +1 plunging +31 plural +63 plurality +3 plurally +2 plures +1 plus +1 pod +1 poems +1 poena +14 poenit +23 poenitentia +3 poenituerit +1 poenituisse +5 poet +1 poetical +3 poetry +3 poets +424 point +14 pointed +21 pointedly +10 pointing +668 points +6 poison +4 poisoned +8 poisonous +2 poles +1 polish +2 polished +101 polit +1 politi +14 politic +45 political +4 politician +3 politics +2 polity +1 pollent +1 pollicitat +6 polluted +23 pollution +1 pollutions +5 polycarp +4 pomegranates +1 pomerius +4 pomp +1 pompon +2 pomps +2 ponder +1 ponderatio +1 pondere +1 pondering +1 ponders +1 ponds +33 pontiff +6 pontiffs +1 pontificate +1 pontius +2 pool +223 poor +3 poorer +1 poorest +155 pope +2 popes +2 populace +5 popular +1 popularity +1 populus +1 porch +3 pores +1 porous +1 porousness +1 porphyrion +1 porphyrius +13 porphyry +2 porree +1 porretanus +2 porro +7 port +2 portable +1 portents +22 portion +2 portioned +4 portions +1 portrait +1 portray +110 position +25 positions +58 positive +2 positively +1 posse +190 possess +244 possessed +101 possesses +1 possessest +40 possessing +138 possession +83 possessions +24 possessor +4 possessors +1 possibilis +31 possibility +673 possible +37 possibly +2 possid +8 post +5 postcommunion +29 poster +20 posterior +1 posteriori +8 posteriority +21 posterity +1 posterius +1 postpone +5 postponed +1 postponing +2 posts +1 postul +2 postulando +1 postulant +1 postulate +1 postulated +4 postulates +3 posture +3 pot +1 potency +5 potent +2 potentia +60 potential +3 potentialities +488 potentiality +87 potentially +1 potest +1 potion +1 potions +1 pots +4 potter +4 potters +1 pottery +7 pounds +12 pour +41 poured +1 poureth +9 pouring +6 pours +138 poverty +1 powders +4305 power +80 powerful +2 powerfully +4 powerless +1018 powers +1 practicable +261 practical +2 practically +77 practice +26 practiced +13 practices +2 practicing +1 practised +1 practises +2 practising +1 praebendas +1 praecept +1 praecepta +12 praed +15 praedest +13 praedic +1 praedicam +1 praedicamentis +1 praedicandum +1 praef +1 praefat +1 praefatores +1 praepositivus +1 praeputia +1 praesens +1 praestringuntur +1 praesul +1 praesumpt +1 praesumptio +1 praesumunt +1 praetorian +1 praetorium +255 praise +75 praised +18 praises +1 praiseth +2 praiseworthily +3 praiseworthiness +136 praiseworthy +15 praising +1 pranceth +1 praxis +233 pray +37 prayed +399 prayer +126 prayers +1 prayest +1 prayeth +55 praying +31 prays +196 pre +68 preach +49 preached +20 preacher +13 preachers +5 preaches +91 preaching +19 preamble +6 preambles +5 prebend +2 prebends +6 precaution +3 precautions +135 precede +109 preceded +73 precedence +2 precedent +334 precedes +136 preceding +1 precentor +1 precentors +642 precept +1 preceptive +1 preceptors +1142 precepts +1 precincts +35 precious +2 precipice +3 precipitate +1 precipitated +2 precipitately +1 precipitates +26 precipitation +7 precise +41 precisely +1 precision +6 preclude +4 precluded +3 precludes +1 precognition +5 preconceived +1 preconceives +1 preconception +1 precontaining +1 precursor +1 precursors +5 predecessors +4 predestinate +78 predestinated +5 predestinating +234 predestination +2 predestinator +2 predestine +83 predestined +7 predestines +1 predetermination +2 predetermine +3 predetermined +2 predial +1 predic +2 predicable +9 predicament +1 predicamental +36 predicaments +69 predicate +283 predicated +3 predicates +24 predication +2 predications +1 predicted +2 prediction +2 predictions +1 predominance +9 predominant +4 predominate +2 predominated +3 predominates +1 predominating +2 preeminence +11 preface +3 prefaces +29 prefer +27 preferable +1 preferably +35 preference +1 preferential +1 preferment +43 preferred +3 preferring +20 prefers +1 prefigurative +9 prefigured +2 prefixed +1 pregnancy +4 pregnant +28 prejudice +3 prejudiced +18 prejudicial +1 prejudicing +7 prelacy +62 prelate +66 prelates +2 preliminary +3 premeditation +1 premise +4 premised +19 premises +5 premiss +6 premisses +2 premium +1 preoccupied +8 preordained +1 preordaining +2 preordination +69 preparation +3 preparations +10 preparatory +48 prepare +104 prepared +11 preparedness +27 prepares +12 preparing +1 preponderance +1 preponderant +1 preponderate +5 preponderates +32 preposition +1 prepositions +3 prepositivus +2 prepossesses +1 prerequire +2 prerequisite +14 prerogative +3 prerogatives +2 presage +2 presages +3 presbyter +1 presbyteros +26 prescribe +118 prescribed +30 prescribes +17 prescribing +11 prescription +5 prescriptions +190 presence +666 present +6 presentation +26 presented +5 presentiality +1 presentient +11 presenting +6 presently +27 presents +102 preservation +1 preservative +1 preservatives +54 preserve +115 preserved +1 preserver +41 preserves +36 preserving +17 preside +2 presided +2 presidency +1 president +5 presides +14 presiding +3 press +7 pressed +3 presseth +5 pressing +5 pressure +1 prestigiation +30 presume +12 presumed +10 presumes +9 presuming +148 presumption +1 presumptions +32 presumptuous +5 presumptuously +48 presuppose +64 presupposed +107 presupposes +9 presupposing +5 presupposition +2 pretence +16 pretend +15 pretended +4 pretending +7 pretends +21 pretense +3 pretenses +12 pretext +11 prevail +8 prevailed +4 prevailing +6 prevails +2 prevalent +1 prevaricatio +1 prevaricator +19 prevenient +137 prevent +52 prevented +1 preventeth +18 preventing +5 prevention +1 preventive +88 prevents +147 previous +125 previously +1 prevision +8 prey +1 preyed +1 preying +2 priapus +122 price +2 priced +1 pricked +1 pricks +478 pride +2 pridem +3 prides +467 priest +133 priesthood +1 priesthoods +46 priestly +274 priests +8 prim +1 prima +3 primacy +18 primal +1 primals +1 primam +92 primarily +134 primary +3 prime +1 primit +56 primitive +4 primordial +1 prin +1 princ +63 prince +2 princely +71 princes +2 princip +446 principal +37 principalities +18 principality +170 principally +2 principals +1 principari +1513 principle +4 principled +640 principles +1 print +2 printed +166 prior +1 priori +26 priority +2 priscilla +16 prison +8 prisoners +3 prisons +1 pristina +1 prithee +2 prius +1 privari +138 private +15 privately +256 privation +12 privations +8 privative +3 privatively +1 privatum +16 privilege +4 privileged +4 privileges +4 privy +4 prize +12 pro +1 proairesis +1 proba +1 probabilities +12 probability +66 probable +10 probably +10 probam +11 probation +2 probe +1 probing +1 probity +9 problem +1 problems +10 procedure +301 proceed +18 proceeded +1 proceedeth +134 proceeding +1 proceedings +460 proceeds +1 procellarum +102 process +2 processes +211 procession +1 processional +46 processions +11 proclaim +16 proclaimed +5 proclaiming +3 proclaims +1 proclamations +1 proclivity +6 proconsul +15 procreation +2 procul +1 procurations +22 procure +20 procured +10 procures +13 procuring +36 prodigal +58 prodigality +1 prodigies +1 prodigy +202 produce +281 produced +139 produces +1 producible +60 producing +16 product +160 production +6 productions +17 productive +13 products +8 profane +2 profaned +2 profanes +24 profess +13 professed +13 professes +4 professing +87 profession +3 professions +2 professor +1 professorial +2 professors +3 professorship +2 proffer +1 proffered +1 proffers +3 proficiency +19 proficient +144 profit +54 profitable +1 profitably +2 profited +15 profiteth +3 profiting +40 profits +3 profound +1 profoundly +3 progeny +1 prognostic +63 progress +2 progressed +6 progresses +8 progressing +2 progression +2 progressive +6 prohibit +13 prohibited +4 prohibiting +94 prohibition +10 prohibitions +7 prohibitive +5 prohibits +1 project +5 prol +8 prolog +3 prologue +5 prologue +1 prolong +1 prolongation +14 prolonged +1 prometheus +7 prominence +5 prominent +145 promise +99 promised +73 promises +7 promising +10 promissory +7 promote +9 promoted +1 promoters +10 promotion +15 prompt +1 prompted +6 prompting +12 promptings +6 promptitude +9 promptly +4 promptness +19 promulgated +1 promulgates +26 promulgation +45 prone +17 proneness +10 pronoun +32 pronounce +47 pronounced +6 pronouncement +24 pronounces +22 pronouncing +5 pronouns +2 pronunciation +131 proof +30 proofs +6 prop +1 propagate +2 propagated +13 propagation +6 propassion +1 propensity +1398 proper +811 properly +135 properties +319 property +1 proph +6 prophecies +367 prophecy +17 prophesied +3 prophesies +4 prophesieth +10 prophesy +8 prophesying +122 prophet +1 prophetess +115 prophetic +8 prophetical +17 prophetically +215 prophets +2 propinquity +23 propitiation +8 propitiatory +1 propitious +203 proportion +1 proportionable +5 proportional +2 proportionally +141 proportionate +18 proportionately +24 proportioned +1 proportions +12 propose +105 proposed +23 proposes +6 proposing +164 proposition +46 propositions +9 propounded +1 propounding +1 propounds +7 propriety +1 proprio +1 propter +1 proscribe +1 proscribed +1 prose +1 prosecute +2 prosecution +4 prosecutor +1 proselyte +1 prosolog +1 prosopa +2 prosp +2 prospect +1 prospective +16 prosper +1 prospered +8 prosperi +18 prosperity +3 prosperous +4 prospers +3 prostitute +3 prostituted +3 prostitution +3 prostrate +1 prostrating +2 prostration +8 protect +7 protected +3 protecting +11 protection +1 protector +4 protects +1 proterius +18 protestation +1 protestations +1 protesting +1 protevangelium +1 prototype +2 protracted +1 protraction +1 protruding +58 proud +2 proudly +231 prov +178 prove +193 proved +1 proven +1 proverb +163 proves +1 proveth +1 provid +43 provide +158 provided +264 providence +1 providendo +6 provident +3 providentia +4 provider +25 provides +2 provideth +11 providing +14 province +1 provinces +1 provincial +5 proving +19 provision +1 provisions +3 provocation +2 provocative +16 provoke +12 provoked +13 provokes +1 provoketh +9 provoking +90 proximate +6 proximately +5 proximity +1 proxy +1106 prudence +78 prudent +1 prudenter +11 prudently +1 prudentum +1 prudery +1 prune +1 pruning +568 ps +11 psalm +5 psalmist +1 psalmody +10 psalms +6 psalt +8 psalter +1 psalteries +1 psaltery +5 pseudo +1 pseudosynod +3 ptolemy +21 puberty +183 public +8 publican +4 publicans +2 publication +3 publicity +44 publicly +3 publicola +15 publish +9 published +1 publishes +2 publishing +2 pudicitia +2 pudor +3 puella +1 pueri +1 puff +10 puffed +5 puffeth +1 puffing +4 pull +1 pulling +1 pulls +6 pulse +1 punctures +1 pungency +2 pungent +1 puniendus +47 punish +7 punishable +234 punished +2 punisher +19 punishes +28 punishing +968 punishment +112 punishments +12 pupil +1 pupils +4 purchase +4 purchased +2 purchases +115 pure +28 purely +1 purer +14 purest +1 purgati +1 purgationibus +1 purgative +1 purgatoriae +40 purgatory +1 purge +6 purged +1 purging +3 purif +29 purification +3 purifications +34 purified +3 purifies +12 purify +12 purifying +74 purity +1 purloin +3 purloined +1 purloins +13 purple +569 purpose +11 purposed +5 purposeless +8 purposely +36 purposes +2 purposing +10 purse +3 purses +3 pursuance +8 pursue +5 pursued +7 pursues +7 pursuing +34 pursuit +10 pursuits +3 purview +1 push +44 pusillanimity +1 pusillanimous +321 put +23 putrefaction +3 putrefied +4 putrefy +1 putrefying +59 puts +3 putteth +43 putting +1 pyromancy +3 pythagoras +1 pythagorean +4 pythagoreans +1 pythius +3 pythonic +3 pythons +3 pyx +6573 q +200 qq +282 qu +1 qua +1 quadrag +1 quadrilateral +1 quadruped +7 quadrupeds +2 quae +1 quaes +1 quaesitum +40 quaest +2 quaked +1 quaking +1 qual +1 quali +1 qualia +20 qualification +2 qualifications +10 qualified +3 qualifies +8 qualify +4 qualifying +1 qualiter +107 qualities +270 quality +1 qualitys +3 quam +2 quando +2 quant +11 quantitative +2 quantitatively +14 quantities +443 quantity +10 quarrel +2 quarreler +28 quarreling +4 quarrelled +2 quarrelling +21 quarrels +9 quarrelsome +6 quarter +2 quarters +1 quashed +24 quasi +5 quat +10 queen +4 quell +1 quelled +2 quelling +1 quells +5 quem +1 quemdam +4 quench +1 quenched +5 quenches +1 queries +9 quest +1 questing +1 question +690 question +6 questioned +1 questioners +6 questioning +19 questions +6 qui +1 quia +1 quibbling +1 quibus +1 quibusdam +22 quick +18 quicken +35 quickened +2 quickeneth +5 quickening +16 quickens +6 quicker +1 quickest +28 quickly +10 quickness +1 quicumque +4 quid +1 quidam +2 quiddam +1 quiddities +32 quiddity +1 quidquid +9 quiet +2 quieting +2 quietly +1 quill +2 quinary +2 quinque +2 quiricus +13 quis +2 quisquis +14 quit +84 quite +5 quits +2 quitted +3 quitting +1 quo +5 quod +1 quomodo +2 quoniam +32 quotation +1 quotations +3 quote +259 quoted +24 quotes +1 quoties +22 quoting +1 r +11 rabanus +22 rabbi +1 rabsaces +5 raca +138 race +1 rachael +4 rachel +1 racked +1 radiance +1 radiancy +2 radiating +1 radiation +4 radical +7 radically +2 radication +1 radius +1 rag +2 rage +1 raged +2 rah +1 rahab +1 rail +2 railer +1 railers +24 railing +1 rails +7 raiment +25 rain +1 rainbow +2 rained +2 rains +37 raise +123 raised +1 raisedst +22 raises +5 raiseth +34 raising +1 rally +14 ram +3 rams +4 ran +5 rancor +2 rancour +2 random +4 range +46 rank +1 ranking +28 ranks +10 ransom +1 ransoming +2 ransoms +2 rapacious +2 rapacity +40 rape +1 raphael +9 rapid +2 rapidity +2 rapidly +5 rapine +37 rapt +1 raptores +64 rapture +1 raptured +14 rare +12 rarefaction +8 rarefied +1 rarefies +4 rarely +1 rarer +5 rarity +2 rase +8 rash +7 rashly +15 rashness +6 rate +1125 rather +3 ratified +29 ratio +2 ratiocinative +617 rational +1 rationalis +3 rationality +1 ratione +1 rationem +5 rationes +1 rats +3 raven +7 ravening +3 ravens +2 ravings +1 raw +1 rawness +20 ray +24 rays +2 razias +2 rd +16 re +100 reach +42 reached +40 reaches +2 reacheth +23 reaching +3 react +1 reacting +1 reaction +4 reacts +334 read +4 reader +5 readers +1 readest +2 readier +31 readily +7 readiness +27 reading +1 readings +20 reads +91 ready +234 real +13 realities +226 reality +9 realization +11 realize +19 realized +3 realizes +5 realizing +170 really +1 realm +8 reap +1 reapeth +1 reaping +3 reappear +2 reappointed +1 reaps +1 rear +1 reared +1 rearing +5881 reason +79 reasonable +2 reasonableness +18 reasonably +2 reasoned +2 reasoner +67 reasoning +334 reasons +1 reassumed +1 rebaptism +2 rebaptize +8 rebaptized +1 rebaptizer +1 rebaptizing +3 rebate +1 rebecca +11 rebel +4 rebelled +3 rebelling +17 rebellion +4 rebellious +2 rebelliously +2 rebelliousness +4 rebels +1 reborn +1 rebuild +1 rebuilt +18 rebuke +15 rebuked +1 rebukers +3 rebukes +1 rebuking +2 rebus +1 rebuts +2 rebutted +10 recall +13 recalled +1 recalling +5 recalls +1 recapitulating +1 recapitulation +18 recede +12 recedes +5 receding +2 receipt +752 receive +647 received +20 receiver +2 receivers +310 receives +2 receiveth +276 receiving +4 recent +6 recently +44 reception +29 receptive +1 receptively +1 receptivity +1 receptus +3 recesses +65 recipient +24 recipients +6 reciprocal +3 recital +2 recite +4 recited +2 recites +2 reciting +1 reckless +48 reckon +391 reckoned +20 reckoning +1 reckonings +82 reckons +1 reclaim +1 recline +1 reclines +10 recognition +29 recognize +18 recognized +5 recognizes +5 recoil +1 recoiling +6 recoils +1 recollect +1 recollecting +10 recollection +1 recollects +1 recommends +12 recompense +1 recompensed +3 reconcile +24 reconciled +2 reconciles +10 reconciliation +6 reconciling +3 record +22 recorded +1 recording +1 records +1 recount +52 recourse +23 recover +13 recovered +5 recovering +6 recovers +10 recovery +1 recreation +3 recrimination +4 rectification +6 rectified +6 rectifies +6 rectify +3 rectifying +1 rectilinear +154 rectitude +1 rectors +1 recur +1 recurring +25 red +1 reddere +19 redeem +22 redeemed +19 redeemer +2 redeeming +2 redeems +3 redempt +50 redemption +2 redemptione +1 redit +1 reditibus +1 redoubled +1 redoubtable +7 redound +2 redounded +15 redounds +1 redress +21 reduce +202 reduced +9 reduces +56 reducible +3 reducing +8 reduction +3 redundance +2 redundant +8 reduplication +1 reeking +1 reeligere +1 reestablished +1 refection +179 refer +30 referable +298 reference +305 referred +123 referring +195 refers +1 refined +2 refinement +11 reflect +20 reflected +4 reflecting +17 reflection +2 reflections +16 reflects +7 reform +1 reformation +1 reformed +1 reforming +66 refrain +4 refrained +1 refraineth +10 refraining +20 refrains +5 refresh +7 refreshed +5 refreshes +4 refreshing +27 refreshment +7 refuge +7 refulgence +3 refulgent +1 refund +42 refuse +26 refused +20 refuses +1 refusest +11 refusing +1 refutation +4 refute +10 refuted +3 refutes +6 reg +4 regain +1 regained +1 regains +1 regal +1197 regard +38 regarded +1 regardeth +130 regarding +1627 regards +4 regenerate +14 regenerated +2 regenerating +44 regeneration +1 regenerative +1 reggio +2 regiment +24 region +7 regions +1 regis +24 regist +1 register +1 registr +1 regnativa +21 regnative +1 regnum +5 regret +1 regrets +1 regrettable +2 regul +1 regula +27 regular +1 regularly +24 regulate +61 regulated +6 regulates +8 regulating +5 regulation +1 regulations +1 regulator +27 reign +6 reigned +4 reigning +4 reigns +4 reins +1 reinstate +1 reinstated +14 reiterated +12 reject +34 rejected +8 rejecting +9 rejection +17 rejects +92 rejoice +17 rejoiced +29 rejoices +7 rejoiceth +13 rejoicing +1 rejoined +4 relapse +3 relapsed +2 relapses +36 relate +342 related +69 relates +103 relating +1148 relation +335 relations +48 relationship +5 relationships +85 relative +100 relatively +6 relatives +1 relax +7 relaxation +5 relaxed +8 release +6 released +1 relegit +2 relentless +1 reliability +1 reliable +1 reliance +24 relics +1 relict +1 relied +10 relief +11 relies +14 relieve +13 relieved +3 relieves +5 relieving +60 relig +1 religamur +2 religare +1 religimus +1 religio +637 religion +620 religious +5 relish +1 reluctance +1 reluctant +9 rely +2 relying +2 rem +429 remain +5 remainder +1 remainders +86 remained +6 remaineth +61 remaining +465 remains +11 remark +2 remarkable +7 remarked +48 remarks +1 remarry +10 remedied +37 remedies +1 remedio +151 remedy +45 remember +14 remembered +2 remembering +10 remembers +12 remembrance +2 remembrances +1 remig +3 remigius +10 remin +3 remind +2 reminded +4 reminder +1 reminders +1 reminds +3 reminiscence +1 reminiscitive +23 remiss +1 remissible +160 remission +9 remissness +23 remit +8 remits +46 remitted +1 remittest +4 remitting +15 remnants +5 remorse +70 remote +6 remotely +6 remoteness +6 remotion +91 removal +101 remove +276 removed +1 remover +68 removes +56 removing +27 remuneration +1 renatus +4 rend +76 render +106 rendered +37 rendering +56 renders +3 rending +1 rends +4 renew +8 renewal +27 renewed +2 renewing +41 renounce +8 renounced +1 renouncement +8 renounces +15 renouncing +3 renovation +10 renown +2 renowned +9 rent +1 renting +7 renunciation +3 renunt +1 renuntiatione +14 repaid +6 repair +15 repaired +1 repairing +1 repairs +1 reparability +3 reparable +2 reparation +37 repay +1 repayer +15 repaying +55 repayment +5 repays +10 repeat +54 repeated +5 repeatedly +1 repeateth +2 repeating +2 repeats +17 repel +5 repelled +6 repelling +5 repels +69 repent +78 repentance +6 repentant +11 repented +1 repentest +1 repenteth +17 repenting +8 repents +13 repetition +2 repines +3 replace +1 replaced +1 replaces +2 replete +6 repletion +23 replied +78 replies +8589 reply +3 replying +12 report +3 reported +6 reports +66 repose +7 reposes +1 reposing +1 reprehend +2 reprehended +1 reprehends +12 reprehensible +46 represent +48 representation +5 representations +6 representative +1 representatives +74 represented +23 representing +59 represents +11 repress +2 repressed +2 represses +4 repressing +3 repression +1 reprimanded +31 reproach +9 reproached +7 reproaches +1 reproacheth +20 reprobate +6 reprobated +10 reprobates +1 reprobating +17 reprobation +3 reproduce +1 reproduced +5 reproduces +1 reproducing +1 reproduction +9 reproof +1 reproval +27 reprove +25 reproved +1 reprover +9 reproves +8 reproving +1 reptiles +1 repub +2 republic +6 repudiated +1 repudiates +1 repudiating +9 repugnance +96 repugnant +4 repulse +5 repulsed +4 repulsion +4 repulsive +1 repulsiveness +1 reputable +9 reputation +1 reputations +8 repute +26 reputed +1 reputes +1 reputeth +1 reputing +15 request +1 requested +130 require +443 required +1 requirement +25 requirements +277 requires +9 requiring +160 requisite +1 requisites +1 requisition +1 requite +4 rerum +2 rescind +18 rescue +4 rescued +1 rescuing +35 research +2 researches +47 resemblance +15 resemble +7 resembles +4 resembling +2 resentment +1 resents +1 reservation +2 reserve +40 reserved +4 reserving +27 reside +1 resided +2 residence +73 resides +17 residing +3 residue +1 residuum +7 resign +2 resigning +107 resist +28 resistance +2 resistant +13 resisted +17 resisteth +23 resisting +29 resists +2 resolutely +14 resolution +7 resolve +13 resolved +1 resolves +2 resolving +1 resort +2 resound +1 resounding +11 resp +1525 respect +1 respectably +8 respecter +1 respectful +1 respectfully +6 respecting +54 respective +6 respectively +85 respects +1 respiratus +2 respite +6 resplendent +11 respond +3 responding +15 responds +1 respons +1 responsa +3 response +4 responsibility +4 responsible +2 responsiones +1 responsory +258 rest +20 rested +3 restful +3 restfulness +18 resting +148 restitution +7 restless +10 restlessness +29 restoration +100 restore +104 restored +1 restorer +17 restores +7 restoring +26 restrain +35 restrained +14 restraining +19 restrains +19 restraint +1 restrict +51 restricted +1 restriction +1 restrictions +1 restricts +65 rests +428 result +2 resultance +4 resultant +20 resulted +97 resulting +307 results +3 resume +7 resumed +1 resumes +1 resuming +1 resur +2 resurr +1 resurrec +364 resurrection +2 retail +1 retailing +61 retain +26 retained +1 retainer +27 retaining +55 retains +1 retaliated +31 retaliation +2 retard +5 retarded +2 retards +4 retention +2 retentive +1 retired +2 retiring +1 retrac +30 retract +4 retracted +1 retracting +3 retracts +2 retrench +1 retrenched +3 retrenchment +1 retributio +18 retribution +1 retributive +200 return +18 returned +21 returning +32 returns +1 reunion +6 reunited +2 rev +19 reveal +99 revealed +1 revealers +2 revealeth +5 revealing +14 reveals +167 revelation +10 revelations +3 revelling +1 revellings +1 revels +1 revendicate +59 revenge +3 revenged +2 revengeful +1 revenges +2 revenging +4 revenue +9 revenues +10 revere +2 revered +225 reverence +6 reverenced +1 reverences +1 reverencing +1 reverent +5 reverential +4 reverently +6 reveres +2 revering +35 reverse +3 reverts +1 reviews +8 revile +15 reviled +13 reviler +1 revilers +1 reviles +83 reviling +2 revilings +1 revive +15 revived +1 revocation +2 revoked +5 revolt +2 revolted +2 revolting +2 revolution +1 revolutions +1 revulsion +253 reward +18 rewarded +5 rewarder +3 rewarding +65 rewards +1 rheims +216 rhet +8 rhetor +18 rhetoric +2 rhetorical +2 rhetoricians +1 rheum +2 rhyme +25 rib +1 ribands +92 rich +8 richard +5 richer +211 riches +1 rictu +2 rid +1 ridden +1 riddle +4 riddles +1 ride +4 rider +1 rides +4 ridicule +2 ridiculed +1 ridicules +13 ridiculous +2 riding +1 rids +844 right +1 righted +74 righteous +14 righteously +112 righteousness +1 rightest +3 rightful +147 rightly +5 rightness +13 rights +1 rigid +1 rigidity +1 rigor +1 rigorously +6 ring +1 rinse +1 rinsed +1 riot +2 rioting +1 riotous +1 riotously +2 ripar +3 ripe +207 rise +53 risen +26 rises +3 riseth +2 risibility +3 risible +74 rising +8 risk +1 risked +60 rite +41 rites +8 ritual +3 rival +1 rivaled +1 rivalry +1 rivals +14 river +3 rivers +1 rivets +1 rixosus +33 road +2 roads +2 roar +3 roaring +1 roast +2 roasted +11 rob +2 robbed +12 robber +13 robbers +81 robbery +2 robbing +10 robe +1 robed +2 robert +2 robes +1 roboam +1 roboams +2 robs +1 robust +20 rock +2 rocks +21 rod +1 roe +1 role +1 roll +4 rolled +652 rom +25 roman +1 romana +14 romans +19 rome +2 rood +16 roof +21 room +1 rooms +136 root +23 rooted +3 roots +2 rope +1 ropes +78 rose +5 roses +1 roshd +1 rosier +3 rot +1 rotomag +1 rots +1 rotted +2 rotten +1 rouge +6 rough +1 roughness +27 round +1 rounded +2 roundness +6 rouse +8 roused +3 rousing +1 row +1 rows +22 royal +1 royally +1 rp +2 rubbing +3 rud +2 rude +1 rudely +1 rudib +4 rudiments +1 rufinus +5 ruin +4 ruined +2 ruining +2 ruins +425 rule +92 ruled +58 ruler +54 rulers +74 rules +4 ruleth +30 ruling +1 ruminants +34 run +1 runaway +2 runner +6 runneth +18 running +27 runs +1 rupture +1 rural +3 rush +1 rushed +3 rushing +5 rust +1 rusted +10 rustic +1 rustico +7 ruth +1 ruthless +9 s +1 saba +1 sabb +122 sabbath +4 sabbaths +1 sabellian +4 sabellius +1 sacerdos +1 sacerdot +2 sacerdotes +1 sack +4 sacr +2 sacra +29 sacram +2136 sacrament +274 sacramental +35 sacramentally +3 sacramentals +1 sacramentarium +1 sacramenti +770 sacraments +1 sacramentum +1 sacrando +4 sacrarium +329 sacred +1 sacredness +399 sacrifice +40 sacrificed +2 sacrificer +226 sacrifices +3 sacrificeth +5 sacrificial +2 sacrificing +98 sacrilege +3 sacrileges +2 sacrilegious +1 sacrilegiously +1 sacring +1 sacrosanct +1 sacrum +29 sad +1 sadden +5 saddened +4 saddening +4 saddens +3 sadducees +98 sadness +10 safe +42 safeguard +18 safeguarded +22 safeguarding +6 safeguards +1 safekeeping +2 safely +6 safer +1 safest +32 safety +1 sagacious +2 sagacity +4693 said +2 saidst +2 sail +3 sailing +4 sailor +1 sailors +19 saint +2 saintly +251 saints +21 saith +578 sake +11 sakes +6 salable +1 salary +43 sale +3 sales +2 saliva +11 sallust +12 salt +1 salu +1 salutaribus +19 salutary +3 salutation +1 salutations +2 salute +1 saluting +617 salvation +1 salvator +3 salvatoris +1 salve +5 samaria +1 samaritan +4 samaritans +4036 same +1 sameness +6 samson +22 samuel +1 sancitum +37 sanct +4 sancta +1 sancte +3 sancti +125 sanctification +1 sanctifications +138 sanctified +1 sanctifier +6 sanctifies +1 sanctifieth +18 sanctify +147 sanctifying +5 sanction +10 sanctioned +4 sanctis +37 sanctity +3 sancto +12 sanctuary +2 sanctus +2 sand +1 sands +9 sane +4 sang +2 sanguine +1 sanguinis +1 sanity +1 sank +7 saphira +2 sapida +1 sapiens +3 sapientia +1 sapor +1 saporem +1 sara +1 sarabaitae +1 saracen +2 saracens +1 sarum +16 sat +26 satan +2 satans +2 sate +1 satiate +5 satiated +3 satiety +1 sating +107 satisfaction +20 satisfactory +30 satisfied +12 satisfies +2 satisfieth +42 satisfy +15 satisfying +1 saturated +3 saturday +2 saturn +1 satyrs +12 saul +1 sauls +6 savage +18 savagery +375 save +141 saved +6 saves +1 saveth +26 saving +1 saviors +48 saviour +9 saviours +44 savor +1 savored +1 savoring +22 savors +4 savory +203 saw +1 sawing +2 sawn +1 sawyer +1719 say +3 sayest +524 saying +9 sayings +6693 says +3 sc +1 scab +2 scabbard +1 scaffold +1 scald +1 scale +4 scales +259 scandal +12 scandalize +36 scandalized +2 scandalizes +5 scandalizing +6 scandalous +6 scandals +1 scandalum +1 scanned +1 scantiness +1 scape +1 scarce +15 scarcely +1 scarcity +15 scarlet +1 scarred +18 scars +1 scatter +5 scattered +2 scattereth +1 scatters +3 scene +1 scenopegia +3 scent +2 scepter +1 sceptre +68 schism +10 schismatic +1 schismatical +31 schismatics +4 schisms +1 scholar +1 scholars +1 scholast +13 school +2 schooled +1 schooling +5 schools +494 science +133 sciences +5 scientia +1 scientiam +35 scientific +4 scientifically +1 scientist +2 scientists +25 scip +1 sciscitaris +3 scission +2 scold +2 scolding +24 scope +1 scorched +7 score +14 scorn +2 scorned +2 scorner +2 scorners +3 scorning +8 scorns +1 scorpions +2 scot +1 scotus +1 scoundrels +3 scourge +8 scourged +1 scourges +1 scourgings +2 scraped +2 scrapings +1 scratch +1 scratches +1 screech +2 screened +13 scribes +4 scrip +1 script +1 scripta +3 scripturae +3 scriptural +220 scripture +73 scriptures +1 scruple +1 scurf +8 scurrility +2 scurrilous +2 scythian +77 se +73 sea +35 seal +6 sealed +2 sealing +2 seals +2 seamanship +20 search +5 searcher +3 searches +4 searcheth +4 searching +1 searchings +2 seas +2 seashore +17 season +1 seasonable +2 seasoned +2 seasoning +26 seasons +19 seat +24 seated +5 seats +1 sebastian +1 secando +1 seclusion +1357 second +80 secondarily +133 secondary +1 seconding +1338 secondly +9 secrecy +94 secret +3 secretion +58 secretly +33 secrets +4 sect +2 sects +71 secular +15 seculars +1 secundinus +3 secundum +16 secure +10 secured +3 securely +2 secures +8 securing +43 security +1 sedate +39 sedition +5 seditions +5 seditious +1 seditiously +4 seduce +9 seduced +6 seducer +1 seducers +1 seduces +1 seducing +41 seduction +2 seductive +730 see +144 seed +3 seedlike +29 seeds +194 seeing +278 seek +1 seeker +1 seekest +11 seeketh +53 seeking +153 seeks +3243 seem +26 seemed +5 seeming +291 seemingly +5 seemly +2588 seems +596 seen +23 seer +3 seers +163 sees +4 seest +23 seeth +1 seethed +1 seething +5 seize +9 seized +1 seizes +13 seldom +2 select +1 selected +2 selection +1 selects +1 seleuc +1 seleucianus +290 self +2 selfsame +103 sell +33 seller +1 sellers +50 selling +1 sellings +8 sells +1 sellum +2 selves +23 semblance +1 semel +97 semen +73 seminal +1 seminales +10 seminally +1 sempiternal +4 senat +4 senate +1 senatorial +2 senatoribus +1 senators +1 senatus +1 senatusque +25 send +11 sender +13 sending +12 sends +57 seneca +1 senile +1 sens +37 sensation +1 sensations +1 sensato +1707 sense +5 sensed +19 senseless +560 senses +1 sensibilibus +3 sensibility +575 sensible +33 sensibles +5 sensibly +2 sensile +4 sensing +797 sensitive +1 sensitiveness +2 sensu +33 sensual +148 sensuality +1 sensualized +8 sensuous +394 sent +102 sentence +8 sentenced +24 sentences +1 sentencing +12 sentent +1 sententiae +2 sententiarum +3 sentient +3 sentiment +9 sentiments +1 sentire +1 sentite +1 sentries +1 sentry +5 separable +250 separate +262 separated +29 separately +6 separates +7 separating +50 separation +1 sephora +2 september +21 septuagint +25 sepulchre +3 seq +100 seqq +9 sequel +33 sequence +3 seraph +30 seraphim +1 seraphims +1 serapion +1 serfs +2 sergius +18 series +9 serious +13 seriously +1 seriousness +184 serm +83 sermon +1 sermons +45 serpent +20 serpents +155 servant +101 servants +93 serve +29 served +3 server +1 servers +27 serves +7 serveth +191 service +2 serviceable +16 services +109 servile +8 servility +28 serving +47 servitude +2 servus +407 set +2 seth +4 setim +34 sets +4 setteth +22 setting +1 settle +7 settled +3 settlement +134 seven +8 sevenfold +2 seventeen +1 seventeenth +211 seventh +5 seventhly +16 seventy +14 sever +499 several +4 severally +4 severance +23 severe +41 severed +31 severely +2 severianus +1 severing +35 severity +1 severo +11 severs +1 severus +1 sew +60 sex +18 sexes +3 sext +60 sexual +1 shabbiness +2 shabby +1 shackled +2 shade +1 shades +36 shadow +8 shadows +4 shake +3 shaken +2 shaketh +1 shaking +1560 shall +368 shalt +2 shambles +77 shame +1 shamed +7 shamefaced +60 shamefacedness +27 shameful +1 shamefully +4 shamefulness +4 shameless +1 shamelessly +2 shamelessness +92 shape +2 shaped +5 shapeless +23 shapes +126 share +18 shared +2 sharer +3 sharers +19 shares +16 sharing +7 sharp +1 sharpen +1 sharpened +3 sharper +4 sharpness +5 shave +4 shaved +1 shaven +2 shaving +441 she +1 sheath +2 sheaves +27 shed +30 shedding +6 sheds +68 sheep +1 sheepfold +1 sheepskins +1 sheer +3 sheet +1 sheets +1 shell +3 shellfish +1 shells +2 shelter +1 sheltered +1 sheltering +20 shepherd +28 shepherds +2 shew +2 shewed +2 sheweth +6 shield +1 shielding +28 shine +11 shines +4 shineth +6 shining +34 ship +2 shipbuilding +1 ships +15 shipwreck +1 shipwright +2 shirk +2 shirks +2 shoe +1 shoemakers +6 shoes +8 shone +2 shoot +1 shoots +1 shore +1 shorn +151 short +1 shortage +1 shortcoming +7 shortcomings +1 shorten +1 shortened +1 shortening +4 shorter +1 shortest +17 shortly +1 shot +3989 should +9 shoulder +10 shoulders +19 shouldst +4 shouting +325 show +50 showed +2 shower +1 showered +8 showeth +69 showing +615 shown +163 shows +6 shrank +3 shrewd +27 shrewdness +1 shrill +1 shrine +12 shrink +22 shrinks +1 shrouded +1 shudder +1 shuffling +36 shun +41 shunned +23 shunning +28 shuns +31 shut +4 shuts +2 shutters +2 shutting +25 si +1 siagrius +1 sibyl +1 sibyls +76 sick +1 sicken +1 sickened +2 sickle +3 sickly +94 sickness +3 sicknesses +1 sicles +6 sicut +105 side +3 sided +4 sidereal +16 sides +1 sidon +1 sidonians +2 siege +2 sift +3 sigh +1 sighing +3 sighs +335 sight +1 sightliness +4 sights +391 sign +1 signalized +19 signate +15 signed +8 significance +9 significant +7 significantly +1 significasti +183 signification +7 significations +9 significative +4 significatively +1 significatum +412 signified +1 signifier +398 signifies +377 signify +71 signifying +7 signing +322 signs +1 silas +21 silence +2 silenced +13 silent +6 silk +1 silonite +53 silver +1 silvester +8 simeon +2 simil +77 similar +11 similarity +22 similarly +1 similes +1 similit +145 similitude +44 similitudes +1 similitudinibus +1 simitas +17 simon +2 simonia +1 simoniac +15 simoniacal +14 simoniacally +2 simoniacs +73 simony +379 simple +10 simpler +1 simples +1 simplic +1 simplician +1 simpliciter +84 simplicity +14 simplicius +593 simply +9 simulate +1 simulated +8 simulates +2 simulating +5 simulation +1 simulator +38 simultaneous +55 simultaneously +1 simum +7715 sin +2 sinai +5350 since +1 sincera +3 sincere +1 sincerely +8 sincerity +1 sine +3 sinew +2 sinews +329 sinful +3 sinfully +9 sinfulness +14 sing +3 singer +2 singers +17 singing +86 single +1 singled +3 singleness +10 singly +4 sings +160 singular +14 singularity +4 singularly +86 singulars +1 sinister +2 sink +4 sinking +13 sinless +1 sinlessness +213 sinned +225 sinner +232 sinners +12 sinneth +166 sinning +2118 sins +1 sint +4 sion +1 siquis +9 sister +3 sisters +82 sit +6 site +30 sits +3 sitter +8 sitteth +55 sitting +1 situate +17 situated +11 situation +220 six +4 sixteen +4 sixteenth +268 sixth +6 sixthly +1 sixtieth +2 sixtus +5 sixty +5 sixtyfold +22 size +2 skandalon +3 skilful +12 skill +2 skilled +1 skillful +1 skillfully +11 skin +1 skinflint +1 skinflints +10 skins +1 skopos +1 skull +1 sky +1 slack +4 slacken +1 slackening +1 slackens +1 slackness +81 slain +1 slake +2 slandered +1 slanderers +2 slandering +1 slanderous +1 slaughter +2 slaughtered +96 slave +27 slavery +30 slaves +3 slavish +36 slay +5 slayer +9 slayers +2 slayeth +42 slaying +1 slayings +15 slays +75 sleep +7 sleeper +3 sleepers +1 sleepiness +11 sleeping +1 sleepless +9 sleeps +1 sleepy +1 sleeves +1 slenderest +10 slept +26 slew +85 slight +7 slighted +1 slighter +10 slightest +2 slighteth +1 slightingly +11 slightly +1 slightness +1 slights +25 slime +11 slip +1 slipped +1 slips +121 sloth +4 slothful +27 slow +4 slowly +5 slowness +3 sluggard +2 sluggish +1 sluggishly +7 sluggishness +1 slumber +2 sly +113 small +16 smaller +8 smallest +2 smallness +20 smell +1 smelleth +13 smelling +2 smells +2 smile +1 smiled +2 smiling +2 smite +11 smith +1 smiths +1 smiting +1 smitten +7 smoke +1 smooth +2 smoothness +2 smote +2 snakes +10 snare +5 snares +1 snarling +2 snatch +3 snatched +1 snatches +1 sneeze +1 sneezing +7 snow +1 snowy +1 snub +7991 so +1 soaked +1 soared +16 sober +4 soberly +52 sobriety +29 social +2 societies +43 society +95 socrates +1 socratic +18 sodom +1 sodomites +1 sodomitical +2 sodomy +13 soever +12 soft +1 soften +3 softened +1 softening +3 softens +1 softest +5 softness +15 soil +2 soiled +2 sojourner +1 sojourning +5 solar +44 sold +1 soldi +40 soldier +22 soldiering +38 soldiers +27 sole +1 solecism +29 solely +56 solemn +20 solemnities +40 solemnity +10 solemnization +3 solemnize +15 solemnized +2 solemnizes +2 solemnizing +9 solemnly +1 solent +2 solers +58 solicitous +1 solicits +95 solicitude +15 solid +2 solil +17 soliloq +1 soliloquies +3 solitaries +31 solitary +28 solitude +29 solomon +2 solstice +1 solum +1 solus +29 solution +4 solutions +7 solve +17 solved +2 solves +1 solving +1 som +2 somber +4169 some +2 somebody +1 somebodys +11 somehow +208 someone +10 someones +2850 something +8 sometime +1310 sometimes +84 somewhat +1 somewhere +38 somn +6 somno +1829 son +12 song +3 songs +153 sons +48 sonship +115 soon +15 sooner +1 sooth +1 soothing +1 soothsayer +2 soothsayers +1 soph +1 sophistical +1 sophistry +2 sophon +1 sophroniscus +2 sorcerers +1 sorceries +3 sorcery +1 sore +1 sorely +1 sores +874 sorrow +1 sorrowed +43 sorrowful +3 sorrowfully +5 sorrowing +1 sorrowings +54 sorrows +19 sorry +1 sors +96 sort +1 sortes +15 sortilege +1 sortilegious +7 sorts +2 soter +145 sought +4162 soul +494 souls +73 sound +1 sounded +2 sounding +1 soundly +3 soundness +13 sounds +1 sour +103 source +18 sources +6 south +2 southern +136 sovereign +1 sovereignly +2 sovereigns +5 sovereignty +15 sow +3 sowed +2 sower +1 sowers +7 soweth +4 sowing +15 sown +4 sows +50 space +1 spaces +2 spain +5 spake +2 span +12 spare +8 spared +2 spareth +8 sparing +2 spark +7 sparrow +3 sparrows +2 spat +1 spatula +1 spatulamancy +1 spatulamantia +607 speak +31 speaker +3 speakers +1 speakest +17 speaketh +765 speaking +199 speaks +956 special +1 specializes +95 specially +1 specie +1 speciem +2592 species +202 specific +200 specifically +4 specification +42 specified +9 specifies +9 specify +1 specious +1 spectare +1 spectators +1 specula +1 speculantes +1 specular +1 speculates +2 speculatio +9 speculation +1 speculations +305 speculative +3 speculatively +1 speculo +180 speech +16 speeches +4 speechless +7 speed +11 speedily +2 spelt +35 spend +1 spender +24 spending +11 spends +10 spent +1 spernitque +1 spes +17 sphere +9 spheres +2 spherical +4 spices +2 spider +1 spiders +2 spies +1 spill +1 spilled +1 spilt +16 spir +1 spirare +4 spirate +1 spirated +9 spirates +11 spirating +34 spiration +3 spirative +2 spirator +3 spirators +1 spiratus +668 spirit +1 spirited +123 spirits +10 spiritu +1478 spiritual +4 spiritualities +4 spirituality +1 spiritualized +97 spiritually +2 spirituals +9 spiritus +1 spissitudine +1 spit +13 spite +2 spiteful +2 spitefully +3 spitting +7 spittle +2 splendid +18 splendor +7 spoil +15 spoils +91 spoke +195 spoken +4 sponsor +3 sponsors +2 sponsus +9 spontaneous +7 spontaneously +14 spot +4 spotless +1 spots +1 spoudaios +5 spouse +8 sprang +21 spread +6 spreading +5 spreads +26 spring +3 springing +29 springs +4 sprinkle +20 sprinkled +21 sprinkling +1 sprouting +6 sprung +7 spurious +2 spurn +1 spurned +2 spurns +11 sqq +2 squalor +1 squandered +2 squanders +1 square +1 squeamishness +1 squeezed +1 ss +220 st +1 stabbing +1 stabiles +19 stability +15 stable +1 stadium +3 staff +11 stag +19 stage +8 stages +1 staggering +105 stain +8 stained +3 stains +1 stake +1 stammer +1 stammerers +2 stammers +1 stamp +223 stand +11 standard +1 standards +2 standest +5 standeth +42 standing +11 standpoint +4 standpoints +229 stands +71 star +1 starch +1 starless +17 starry +85 stars +3 start +1 started +7 starting +2 startled +1 starts +1 starvation +1299 state +4277 stated +60 statement +12 statements +1 stater +386 states +1 statim +8 stating +11 station +2 stationary +1 stationed +7 statu +6 statue +3 statues +1 statuimus +1 statuit +1 statum +12 stature +1 status +11 statute +24 statutes +2 statutory +3 statutum +1 staunchest +2 staves +19 stay +1 stayed +2 staying +1 stays +16 stead +9 steadfast +7 steadfastly +4 steadfastness +1 steadily +3 steadiness +3 steady +36 steal +1 stealeth +8 stealing +6 steals +6 stealth +2 stealthily +1 steeled +3 steeped +5 steer +2 steering +1 stem +1 stems +4 stench +1 stenches +24 step +8 stephen +1 stepping +36 steps +4 sterile +1 sterility +1 sterilized +3 stern +5 steward +2 stewards +4 stewardship +15 stick +3 sticks +2 stiff +366 still +1 stillness +3 stimulated +1 stimulates +8 sting +1 stings +1 stingy +3 stipend +11 stir +11 stirred +6 stirreth +1 stirring +2 stirs +13 stock +30 stoics +5 stole +12 stolen +1 stomach +1 stomachs +152 stone +9 stoned +49 stones +1 stoning +3 stony +39 stood +5 stool +1 stoop +1 stooped +1 stoops +10 stop +1 stoppeth +7 stops +2 store +2 stored +4 storehouse +3 stores +3 stories +2 stork +7 storm +4 storms +3 stormy +6 story +1 stout +1 strabo +8 strabus +30 straight +2 straightforward +17 straightway +2 strain +2 strained +1 strainedtis +2 strait +2 straitened +5 straits +44 strange +2 strangeness +36 stranger +23 strangers +5 strangled +1 strangling +1 stratagem +1 stratagematum +3 stratagems +1 strategy +3 straw +1 straws +13 stray +4 strayed +9 straying +3 strays +4 stream +2 streams +2 streets +168 strength +24 strengthen +47 strengthened +18 strengthening +29 strengthens +1 strengths +1 strenuously +2 strenuousness +15 stress +4 stretch +6 stretched +1 stretches +1 stretcheth +12 stretching +1 strewed +11 stricken +33 strict +16 stricter +69 strictly +2 strictness +68 strife +8 strifes +37 strike +4 striker +16 strikes +2 strikest +2 striketh +15 striking +1 strikingly +2 string +1 strings +19 stripes +8 stripped +1 stripping +43 strive +2 striven +22 strives +1 striveth +13 striving +1 stroke +1 strokes +80 strong +98 stronger +3 strongest +18 strongly +4 strove +21 struck +2 structure +15 struggle +3 struggles +1 struggling +4 strumpet +21 stubble +5 stubborn +2 stubbornness +1 student +1 students +2 studied +5 studies +1 studieth +5 studious +33 studiousness +87 study +2 studying +1 stultitia +1 stumble +2 stumbles +13 stumbling +1 stun +1 stupefied +2 stupefies +1 stupefying +1 stupid +11 stupor +1 stuporem +1 stupro +1 stuprum +10 style +24 styled +1 styles +1 suadente +1 sub +2 subaltern +2 subalternate +1 subalternated +2 subdeacon +1 subdeacons +1 subdivides +1 subdue +2 subdued +2104 subject +83 subjected +9 subjecting +95 subjection +25 subjective +1 subjectively +208 subjects +3 subjoined +5 subjoins +1 subjugated +1 subjugating +26 sublime +7 sublimity +2 submerged +13 submission +3 submissive +34 submit +9 submits +9 submitted +6 submitting +68 subordinate +2 subordinated +1 subordinately +2 subordinates +10 subordination +1 subscribes +1 subscriptions +137 subsequent +31 subsequently +5 subservience +6 subservient +1 subsides +46 subsist +5 subsisted +38 subsistence +11 subsistences +80 subsistent +140 subsisting +42 subsists +1022 substance +316 substances +3 substand +2 substanding +1 substands +2 substantia +208 substantial +45 substantially +2 substantiate +18 substantive +3 substantively +6 substantives +7 substitute +9 substituted +3 substitutes +2 substituting +1 substratum +1 subterfuge +27 subtle +1 subtler +14 subtlety +4 subtract +6 subtracted +2 subtracting +22 subtraction +1 subtracts +3 subverted +4 subverting +16 succeed +16 succeeded +7 succeeding +7 succeeds +1 success +2 successful +59 succession +30 successive +45 successively +6 successor +8 successors +44 succor +11 succored +7 succoring +5 succors +1 succour +1 succours +5 succumb +2 succumbed +1 succumbing +3 succumbs +3448 such +9 suchlike +1 suchwise +2 suck +1 suckle +1 suckling +1 sucks +61 sudden +63 suddenly +2 suddenness +1 sue +305 suffer +150 suffered +5 sufferer +3 sufferers +2 suffereth +125 suffering +46 sufferings +84 suffers +104 suffice +18 sufficed +255 suffices +20 sufficiency +262 sufficient +1 sufficientiam +115 sufficiently +6 sufficing +1 suffocated +4 suggest +4 suggested +2 suggesting +31 suggestion +2 suggestions +4 suggests +6 suicide +1 suicides +14 suit +6 suitability +251 suitable +4 suitableness +94 suitably +12 suited +10 suits +5 sullen +1 sullenness +3 sullied +1 sully +1 sulphur +1 sulphurous +35 sum +2 sumere +1 summ +6 summa +1 summary +1 summed +13 summer +14 summit +19 summo +1 summon +5 summoned +1 sumptuary +2 sumptuous +3 sumptuously +4 sums +224 sun +1 sunamite +12 sunday +3 sundays +1 sunder +3 sundered +1 sunders +2 sundry +22 sung +1 sunk +1 sunlight +3 sunrise +30 suns +3 sunset +11 sunt +5 sup +144 super +1 superabound +5 superabundance +9 superabundant +1 superabundantly +21 superadded +1 superb +2 superbia +3 supercelestial +2 supereminence +1 supereminently +21 supererogation +1 superexceeds +1 superexcelling +2 superficial +2 superficially +6 superficies +8 superfluities +3 superfluity +92 superfluous +3 superfluously +1 supergreditur +3 superhuman +1 superintelligible +1 superintendere +319 superior +15 superiority +100 superiors +1 supernal +114 supernatural +12 supernaturally +1 superstites +99 superstition +1 superstitions +29 superstitious +1 superstitiously +3 supersubstantial +2 supersubstantially +8 supervene +1 supervened +9 supervenes +23 supervening +3 supp +2 supped +33 supper +21 suppl +1 supplant +4 supplanted +2 supplement +2 suppliant +12 supplication +4 supplications +32 supplied +16 supplies +1 supplieth +30 supply +4 supplying +1 supponitur +76 support +16 supported +7 supporting +6 supports +87 suppose +60 supposed +14 supposes +68 supposing +58 supposita +48 supposition +34 supposititious +2 supposits +189 suppositum +4 suppress +6 suppressed +5 suppresses +1 suppressing +3 suppression +2 supra +1 supramundane +5 supremacy +150 supreme +57 supremely +24 sure +23 surely +2 surer +2 surest +1 sureties +8 surety +44 surface +6 surfeit +2 surfeiting +1 surgeon +2 surmise +1 surmised +2 surmount +1 surmounted +1 surmounting +61 surpass +21 surpassed +146 surpasses +5 surpasseth +28 surpassing +1 surpassingly +22 surplus +2 surprise +4 surprised +1 surprises +2 surprising +4 surrender +3 surrendered +4 surrendering +4 surrenders +4 surround +6 surrounded +13 surrounding +8 surroundings +5 surrounds +3 survey +2 surveyed +1 surveying +3 survive +1 survives +1 surviving +1 susannas +1 susceptibility +28 susceptible +7 susceptive +4 suspect +5 suspected +1 suspects +1 suspend +17 suspended +1 suspending +4 suspense +7 suspension +32 suspicion +6 suspicions +1 suspicious +7 sustain +15 sustained +6 sustaining +2 sustains +13 sustenance +1 sustentation +1 susurratio +1 susurro +2 suv +4 swaddling +4 swallow +11 swallowed +2 swan +1 swathes +1 swathing +10 sway +2 swayed +95 swear +4 swearer +1 swearers +1 sweareth +71 swearing +55 swears +6 sweat +47 sweet +4 sweeter +13 sweetly +55 sweetness +2 swell +1 swelled +7 swelling +1 swept +2 swerve +1 swerves +3 swift +1 swifter +3 swiftness +1 swimming +3 swims +14 swine +3 swollen +1 swoop +51 sword +2 swords +11 swore +10 sworn +2 syllables +35 syllogism +11 syllogisms +4 syllogistic +1 syllogistically +5 syllogize +1 syllogizes +1 syllogizing +1 sylverius +1 sylvester +1 sym +11 symb +1 symballein +52 symbol +2 symboli +1 symbolic +1 symbolize +1 symbolizes +3 symbolo +6 symbols +2 symmachus +1 sympathize +2 sympathizes +5 sympathizing +7 sympathy +1 symptoms +4 synagogue +3 synagogues +2 synaxis +3 syncategorematical +1 synchronizes +26 synderesis +4 synecdoche +1 syneresis +41 synesis +1 synetoi +27 synod +3 synodal +1 synodical +1 synon +1 synonym +15 synonymous +1 synonyms +4 synthesis +1 synthetic +1 synthetically +3 syria +2 syrians +5 system +1 systems +2 systole +1 t +1 ta +81 tabernacle +4 tabernacles +2 tabitha +54 table +23 tables +6 tablet +1 tablets +11 tacit +11 taciturnity +4 taint +6 tainted +1041 take +1337 taken +3 taker +618 takes +21 taketh +301 taking +43 tale +6 talent +2 talents +1 talionis +2 talk +1 talkest +7 talking +1 tall +2 tallies +3 tally +1 tam +6 tame +2 tamed +1 tamer +3 tames +3 taming +2 tangible +1 tantamount +1 tanto +3 tapsensis +1 tardy +1 tarentaise +6 target +1 tarnish +2 tarnished +2 tarried +1 tarry +4 task +3 tasks +62 taste +2 tasted +6 tastes +3 tasting +1 tasty +141 taught +2 taunt +4 taunts +4 tax +2 taxes +132 teach +39 teacher +13 teachers +62 teaches +15 teacheth +217 teaching +11 teachings +3 tear +1 tearful +3 tearing +40 tears +1 tedious +7 tediousness +15 teeth +1 tekmerion +61 tell +2 teller +4 tellers +13 telling +22 tells +1 telous +4 temerity +18 temp +10 temper +37 temperament +2 temperamentally +6 temperaments +500 temperance +36 temperate +1 temperately +2 temperateness +10 temperature +20 tempered +1 tempering +4 tempers +1 tempest +96 temple +13 temples +442 temporal +9 temporalities +23 temporally +1 temporals +2 temporarily +4 temporary +6 tempore +81 tempt +137 temptation +28 temptations +84 tempted +13 tempter +1 tempters +2 tempteth +20 tempting +17 tempts +94 ten +1 tenable +2 tenacious +1 tenant +158 tend +1 tended +3 tendencies +55 tendency +15 tender +1 tendered +2 tenderness +74 tending +210 tends +1 tenet +1 tenets +1 tenor +8 tense +2 tension +2 tent +70 tenth +6 tents +4 tepid +1 tepidity +1 terce +3 terence +1 tergiversatio +1 tergum +552 term +32 termed +2 terminal +15 terminate +42 terminated +23 terminates +5 terminating +3 termination +1 terminations +11 termini +43 terminus +141 terms +10 terrestrial +4 terrible +3 terrified +1 terrifying +1 territories +6 territory +6 terror +1 terrorized +1 tertian +1 tes +39 test +187 testament +3 testaments +1 testator +3 tested +1 testicles +2 testified +5 testifies +14 testify +2 testifying +7 testimonies +61 testimony +1 testing +3 tests +2 tetragon +2 tetragonal +2 tetragrammaton +385 text +3 texts +2 texture +1 textus +3 th +3 thamar +4839 than +7 thank +1 thankful +14 thankfulness +36 thanks +29 thanksgiving +5 thanksgivings +1 thankworthy +37024 that +153391 the +1 theandric +1 theandrike +1 thearchy +1 theasthai +2 theatre +1 theatres +1 theatrical +1 theatrically +1 theban +2 thebes +483 thee +1 theein +185 theft +3 thefts +1 theia +4486 their +30 theirs +6 thelesis +3902 them +1 themistius +945 themselves +1427 then +38 thence +3 thenceforth +3 thenceforward +3 theodore +1 theodoret +1 theodoric +3 theodosius +1 theodulf +8 theol +1 theolog +17 theologian +6 theologians +2 theologica +196 theological +13 theology +1 theophilus +5 theophylact +1 theorems +2 theories +17 theory +1 theos +1 theosebeia +2 therapeutai +1 theras +6814 there +3 thereafter +5 thereat +275 thereby +12598 therefore +115 therefrom +145 therein +337 thereof +15 thereon +256 thereto +3 thereunto +7 thereupon +12 therewith +1 thesauris +2686 these +42 thess +1 theurgic +7114 they +2 thick +2 thickened +47 thief +5 thiefs +1 thierry +2 thieve +21 thieves +3 thieving +6 thigh +12 thine +3933 thing +9086 things +225 think +1 thinker +4 thinkest +6 thinketh +79 thinking +59 thinks +962 third +491 thirdly +50 thirst +3 thirsted +1 thirsting +1 thirsts +7 thirsty +9 thirteen +9 thirteenth +5 thirtieth +13 thirty +5 thirtyfold +13803 this +6 thistles +30 thither +68 thomas +3 thomass +12 thorns +1 thorny +1 thorough +4 thoroughly +3874 those +989 thou +1001 though +326 thought +3 thoughtful +3 thoughtless +21 thoughtlessness +95 thoughts +28 thousand +14 thousands +1 thraldom +3 thread +7 threat +8 threaten +29 threatened +14 threatening +2 threatenings +16 threatens +8 threats +1101 three +117 threefold +1 threshing +4 threw +9 thrice +3 thrive +4 thrives +1 throat +30 throne +1 throned +24 thrones +1 throng +3292 through +40 throughout +12 throw +1 thrower +6 throwing +11 thrown +6 throws +1 thrust +2 thrusts +5 thumb +3 thunder +5 thursday +2931 thus +5 thwart +4 thwarted +2 thwarting +2 thwarts +750 thy +3 thymosis +63 thyself +3 tiara +1 tiberias +1 tiberius +3 tiburtius +1 tichonius +3 tide +3 tidings +5 tie +12 tied +10 ties +1 tight +1 tightfisted +48 till +1 tilled +1 tiller +1 tillers +1 tilling +2 tills +178 tim +3 timaeus +1 timbers +1812 time +275 times +8 timid +14 timidity +1 timocracy +2 timor +1 timore +2 timorem +1 timorous +3 timothy +5 tin +1 tinctus +1 tinged +1 tingling +1 tint +3 tiny +3 tip +1 tire +2 tired +1 tiring +2 tis +3 tissue +13 tit +1 tithable +18 tithe +2 tithed +169 tithes +1 tithing +9 title +2 titles +1 tittle +28 titus +71820 to +11 tob +12 tobias +12 today +3 toe +529 together +43 toil +1 toiled +1 toiling +13 toils +10 toilsome +1 tois +25 token +9 tokens +55 told +7 toledo +1 tolerable +8 tolerate +24 tolerated +3 tolerates +1 tolerating +1 tom +38 tomb +1 tombs +17 tomorrow +87 tongue +5 tongued +67 tongues +1 tonic +2 tonsure +1 tonsured +577 too +190 took +2 tool +1 tools +8 tooth +13 top +42 topic +1 topography +1 tops +1 torches +11 torment +11 tormented +3 torments +1 torn +6 torpor +4 torrent +1 torrid +1 tortoise +1 tortoises +4 torture +2 tortured +1 torturer +2 torturers +1 tortures +1 torturing +1 torum +1 tossed +2 tota +16 total +35 totality +19 totally +2 tottering +1 tou +243 touch +44 touched +44 touches +2 toucheth +40 touching +1 toughness +1 tournaments +2 tours +8 toward +711 towards +11 tower +8 town +2 towns +1 townsman +43 trace +24 traced +9 traces +1 tracheal +2 tracing +163 tract +1 tractable +1 tractate +12 trade +1 trader +1 trades +3 tradesman +4 tradesmen +17 trading +13 tradition +1 traditional +4 traditions +4 tragedian +2 tragedies +1 trail +3 train +4 trained +8 training +1 traitor +1 trample +3 tramples +1 tranquil +15 tranquillity +1 trans +2 transact +5 transaction +2 transactions +5 transcend +1 transcended +1 transcendence +1 transcendent +5 transcendental +2 transcendentals +1 transcending +24 transcends +1 transcribed +1 transcriber +7 transeunt +12 transfer +1 transference +44 transferred +5 transferring +10 transfers +1 transfig +30 transfiguration +1 transfigure +14 transfigured +7 transform +17 transformation +2 transformations +18 transformed +1 transformeth +2 transforming +2 transforms +2 transfused +17 transgress +2 transgressed +12 transgresses +11 transgressing +72 transgression +6 transgressions +5 transgressor +3 transgressors +13 transient +5 transition +1 transitive +19 transitory +1 translat +10 translated +18 translation +2 translators +2 transmissible +7 transmission +12 transmit +5 transmits +84 transmitted +2 transmitting +1 transmutable +68 transmutation +8 transmutations +5 transmute +6 transmuted +2 transmuting +1 transoms +1 transparence +2 transparency +18 transparent +1 transpiring +2 transport +1 transports +1 transposed +1 transposition +5 transubstantiation +1 transverse +1 transversely +1 travail +1 travel +1 traveled +3 travelers +1 travellers +2 travelling +2 travels +3 traversable +1 traversed +1 traversing +2 treacherous +4 treacherously +8 treachery +3 tread +3 treadeth +4 treason +1 treasons +26 treasure +8 treasures +1 treasurest +3 treasury +71 treat +44 treated +1 treaties +107 treating +38 treatise +18 treatment +21 treats +1 trebat +2 treble +125 tree +36 trees +20 tremble +1 trembled +6 trembles +15 trembling +1 trenches +1 trent +1 trepein +1 trepidation +7 trespass +1 trespassed +1 trespasser +14 trespasses +11 tri +1 tria +24 trial +10 trials +8 triangle +1 triangles +1 triangular +1 tribal +16 tribe +17 tribes +19 tribulation +4 tribulations +11 tribunal +1 tribunes +1 tributary +9 tribute +1 tributes +2 trickery +1 tricks +1 tricubical +11 tried +4 tries +1 trieth +3 trifle +2 trifles +5 trifling +1 trilateral +1 trim +446 trin +27 trine +2 trinitate +1 trinities +296 trinity +1 trinkets +1 trip +18 triple +4 triplicity +3 trismegistus +5 triumph +3 triumphant +4 triumphed +2 triumpher +1 triumphing +1 triumphs +2 trivial +1 trl +1 trod +3 trodden +1 trophies +1 trophy +2 tropological +23 trouble +36 troubled +6 troubles +7 troublesome +3 trove +1 truant +1 trubled +1 truce +1142 true +13 truer +2 truest +1 trull +1 trullan +173 truly +2 trumpet +5 trumpets +31 trust +2 trusted +1 trustees +3 trusteth +1 trustful +1 trustfully +3 trusting +8 trusts +1 trustworthiness +2 trustworthy +1 trusty +1724 truth +6 truthful +2 truthfully +13 truthfulness +63 truths +19 try +5 trying +1 tu +2 tua +1 tuarum +1 tuas +1 tuesday +1 tuis +1 tullius +158 tully +2 tullys +1 tumet +2 tumult +1 tumults +9 tunic +1 turban +1 turin +1 turmoil +164 turn +84 turned +1 turnest +3 turneth +174 turning +102 turns +1 turp +7 turtle +5 turtledove +4 turtledoves +26 tusc +1 tuscul +5 tutor +1 tuum +1 twain +33 twelfth +70 twelve +13 twenty +37 twice +1 twin +1 twins +1 twist +4 twisted +1 twitching +2396 two +455 twofold +3 typal +79 type +87 types +4 typified +2 typifies +1 typifying +9 tyrannical +6 tyranny +9 tyrant +12 tyrants +6 tyre +1 tyrians +1 ubi +1 udder +3 uglier +5 ugly +1 ulpian +3 ult +1 ulterior +138 ultimate +2 ultimately +2 una +1 unabashed +163 unable +1 unacceptable +2 unaccustomed +1 unacquainted +1 unadorned +4 unalterable +1 unanimous +1 unanimously +1 unapparent +2 unappropriated +1 unarmed +1 unassumable +1 unassuming +3 unattainable +8 unavoidable +1 unavoidably +6 unaware +12 unawares +12 unbaptized +2 unbearable +1 unbeaten +100 unbecoming +12 unbecomingly +9 unbecomingness +4 unbefitting +50 unbegotten +256 unbelief +58 unbeliever +165 unbelievers +9 unbelieving +1 unbent +1 unbinding +4 unborn +3 unbridled +2 unbroken +1 unburden +1 unburied +1 uncanny +2 uncaused +1 unceasing +32 uncertain +1 uncertainties +7 uncertainty +80 unchangeable +13 unchangeableness +10 unchangeably +4 unchanged +1 unchanging +1 unchaste +2 unchecked +6 uncircumcised +6 uncircumcision +2 uncircumscribed +110 unclean +111 uncleanness +16 uncleannesses +2 uncleansed +1 unclothed +1 uncloven +1 uncomeliness +4 uncomely +1 uncomplainingly +2 unconcerned +2 unconfused +1 unconnected +2 unconquered +5 unconscious +4 unconsecrated +1 unconvertible +1 uncouthness +2 uncover +3 uncovered +1 uncovering +70 uncreated +32 unction +3 uncultivated +4 uncultured +1 undaunted +2 undauntedly +7 undefiled +1 undemonstrable +2 undemonstrated +1 undeniable +1904 under +1 underfoot +13 undergo +5 undergoes +4 undergoing +3 undergone +4 underground +1 underhand +3 underlie +10 underlies +6 underlying +2 undermined +1 undermines +1 undermining +4 underneath +758 understand +1 understander +3 understandeth +698 understanding +2 understandings +353 understands +866 understood +13 undertake +13 undertaken +2 undertakes +2 undertaking +5 undertakings +1 undertook +6 underwent +1 undeserved +6 undeservedly +2 undeserving +1 undesirable +5 undetermined +2 undeterred +5 undisturbed +34 undivided +1 undividedness +1 undivision +3 undo +3 undoing +11 undone +1 undoubtedly +60 undue +13 unduly +1 undutiful +1 unearthly +2 uneasiness +1 uneasy +4 uneducated +1 unending +1 unendurable +1 unenduring +39 unequal +2 unequally +6 unerring +1 uneven +2 unexpectedly +9 unfailing +2 unfailingly +11 unfaithful +1 unfathomable +4 unfeigned +2 unfermented +2 unfettered +3 unfinished +11 unfit +1 unfitness +164 unfitting +92 unfittingly +1 unfittingness +1 unflinching +1 unfold +1 unfolded +8 unfolding +1 unforbidden +6 unforeseen +5 unformed +4 unfrequently +1 unfriendliness +1 unfriendly +3 unfruitful +1 unfulfilled +1 ungainly +2 ungenerated +5 ungodliness +139 ungodly +43 ungrateful +1 ungratefulness +31 unhappiness +25 unhappy +6 unhealthy +1 unheard +1 unheeded +1 unhewn +6 unhindered +1 unholiness +1 unholy +1 unhurt +1 unibility +1 unici +5 unico +2 unified +1 unifies +34 uniform +10 uniformity +10 uniformly +9 unimpaired +2 uninhabitable +3 unintelligible +4 unintentional +8 unintentionally +3 uninterrupted +1 uninterruptedly +616 union +7 unions +1 unique +1 uniqueness +1 unisexual +6 unit +23 unite +701 united +7 unitedly +45 unites +6 unities +22 uniting +8 unitive +2 units +428 unity +2 unius +1 univ +600 universal +27 universality +51 universally +43 universals +172 universe +43 univocal +33 univocally +1 univocals +1 univocation +165 unjust +67 unjustly +1 unkindness +4 unknowable +4 unknowingly +103 unknown +395 unlawful +18 unlawfully +2 unlawfulness +1 unlearned +27 unleavened +676 unless +5 unlettered +27 unlike +1 unlikely +7 unlikeness +5 unlimited +1 unlocking +1 unlovable +1 unlucky +1 unmade +8 unmarried +1 unmasked +1 unmeasurable +1 unmerciful +2 unmerited +1 unmeritedness +3 unmindful +1 unmitigated +4 unmixed +2 unmodified +2 unmolested +14 unmoved +9 unnamed +51 unnatural +1 unnecessarily +21 unnecessary +1 unobtainable +1 unoccupied +1 unpacific +8 unpardonable +1 unparticipated +1 unperishable +11 unpleasant +1 unpolished +1 unpremeditated +1 unproceeding +1 unproductive +10 unprofitable +3 unprofitableness +7 unpunished +1 unqualified +1 unquenchableness +1 unquickened +4 unreal +92 unreasonable +4 unreasonably +1 unreasoning +1 unregulated +1 unremovable +2 unrest +2 unrestrained +1 unrestrainedly +1 unrestraint +2 unreturnable +6 unrighteous +3 unrighteousness +4 unripe +5 unruly +2 unsafe +2 unsaid +1 unsatiable +1 unscorched +3 unsearchable +1 unseared +1 unseemingly +21 unseemly +32 unseen +1 unseparated +1 unsettle +2 unsettled +1 unsettles +1 unshaken +1 unshrinkingly +1 unskilfulness +1 unskilled +1 unskillfulness +1 unsoiled +1 unsold +2 unsolved +7 unsound +3 unsoundness +6 unspeakable +17 unspotted +8 unstable +1 unstaid +1 unsteadiness +1 unsteady +1 unsuitability +51 unsuitable +1 unsuitableness +52 unsuitably +2 unsuited +1 unsullied +2 untamed +1 untaught +2 untenable +1 untenanted +2 unthankful +208 until +443 unto +3 untouched +1 untoward +2 untrammeled +1 untrammelled +1 untraversable +49 untrue +1 untrustworthy +10 untruth +2 untruthful +1 untruthfully +3 untruths +1 unum +3 unusual +2 unvarying +1 unveil +5 unveiled +1 unveiling +2 unwavering +1 unweakened +1 unwell +74 unwilling +16 unwillingly +4 unwisdom +4 unwise +1 unwont +25 unwonted +2 unwontedness +17 unworthily +34 unworthy +1 unyielding +798 up +3 upbraid +2 upbraided +1 upbraideth +2 upbraiding +1 upbraids +13 upbringing +10 upheld +10 uphold +6 upholding +2 upholds +14 upkeep +4 uplift +39 uplifted +1 uplifter +18 uplifting +1 uplifts +815 upon +6 upper +1 uppermost +1 upraised +2 upraises +18 upright +1 uprightly +4 uprightness +1 uprising +2 uproot +7 uprooted +4 uprooting +14 upward +34 upwards +7 urban +14 urge +17 urged +25 urgency +21 urgent +1 urgently +11 urges +6 urging +2 urias +1 urinary +13 urine +2110 us +8 usage +1302 use +238 used +222 useful +4 usefully +42 usefulness +89 useless +5 uselessly +7 user +115 uses +56 using +20 usual +17 usually +7 usufruct +1 usufructu +13 usurer +4 usurers +1 usuries +5 usurious +1 usuriously +1 usuris +7 usurp +5 usurpation +9 usurped +1 usurping +7 usurps +89 usury +1 uterine +2 util +1 utilitate +36 utility +5 utmost +25 utter +28 utterance +11 utterances +70 uttered +3 utterer +9 uttering +28 utterly +1 uttermost +21 utters +1 uxor +1 uxoris +480 v +1 vacant +2 vacillating +7 vacuum +4 vague +2 vaguely +91 vain +165 vainglory +2 vainly +1 vale +6 valentine +1 valentinian +1 valerium +9 valerius +7 valiant +4 valiantly +25 valid +16 validity +8 validly +2 valley +1 valor +39 value +3 valued +1 valuing +2 vanish +5 vanished +2 vanishes +2 vanities +23 vanity +6 vanquish +12 vanquished +3 vapor +1 vaporer +6 vapors +1 variability +17 variable +1 variably +20 variance +2 variant +9 variation +4 variations +1 varicator +5 varied +23 varies +2 varieties +41 variety +674 various +24 variously +4 varro +30 vary +2 varying +1 vas +3 vase +1 vast +1 vaster +2 vates +1 vatican +1 vault +1 vaunted +1 veget +1 vegetab +1 vegetable +1 vegetables +18 vegetal +46 vegetative +3 vegetius +18 vehemence +23 vehement +9 vehemently +1 vehicle +26 veil +3 veiled +1 veiling +7 veils +1 vein +1 veins +2 vel +2 velleity +2 vellet +1 velocities +4 velocity +1 venal +2 vend +2 vendor +3 venerable +10 venerate +6 venerated +1 venerates +1 venerating +15 veneration +99 venereal +2 venery +160 vengeance +1 vengeful +1 veni +2 venia +583 venial +32 venially +2 veniam +1 venice +2 venom +2 venomous +4 vent +2 venture +2 ventures +1 venturing +6 venus +67 vera +76 verb +5 verbal +3 verbally +1 verbi +5 verbis +12 verbs +8 verdict +1 verdigris +1 vere +2 verge +29 verified +6 verily +5 verit +3 veritate +1 verity +1 vernaculus +1 vernal +2 vero +58 versa +31 verse +4 versed +1 verses +30 version +1 vertere +2 vertically +2 verum +1224 very +4 vespers +16 vessel +41 vessels +10 vested +1 vestibule +1 vestige +9 vestments +2 vesture +22 vet +3 veteration +2 vexation +1 vexatious +3 vexed +1 vexilla +385 vi +1 viands +5 viaticum +1 viatoribus +1 vicariously +1 vicars +599 vice +1 vicegerents +2 viceregent +1 viceregents +390 vices +1 vicia +57 vicious +4 vicissitude +1 vicissitudes +50 victim +26 victims +34 victor +4 victorious +35 victory +1 victricio +3 vid +4 vide +4 videndo +1 videns +1 viduas +206 view +17 viewed +1 views +2 vig +14 vigil +5 vigilant +5 vigilantius +3 vigilia +3 vigilius +3 vigils +15 vigor +3 vigorous +1 vigorously +359 vii +334 viii +11 vile +3 vileness +9 viler +1 vilissimus +1 village +1 villages +3 vincent +2 vincible +2 vindicating +1 vindication +6 vindictive +5 vine +7 vinegar +1 vines +11 vineyard +1 vineyards +2 vintage +10 violate +24 violated +3 violates +4 violating +19 violation +1 violations +119 violence +47 violent +6 violently +15 violet +1 vipers +14 virg +4 virgil +408 virgin +26 virginal +1 virgines +5 virginit +175 virginity +55 virgins +1 viribus +3 virile +1 virility +1 viro +1 viror +2 virt +25 virtual +2 virtuality +79 virtually +4308 virtue +1975 virtues +404 virtuous +10 virtuously +1 virtuousness +5 virtus +3 virtut +1 virtute +2 virtutes +2 virtutis +2 visage +1 visibility +166 visible +26 visibly +417 vision +21 visions +16 visit +1 visitation +8 visited +10 visiting +1 visitor +1 visits +8 visual +1 vit +5 vita +4 vitae +77 vital +3 vitiated +2 vitiates +1 vituperated +1 vivid +1 vivified +4 vivis +678 viz +1 vocabulary +23 vocal +1 vocally +3 vocation +2 vogue +97 voice +4 voices +63 void +8 voided +4 voiding +1 voids +1 vol +1 volatility +37 volition +3 volume +2 volunt +56 voluntarily +31 voluntariness +390 voluntary +6 voluntas +1 voluptuous +1 voluptuousness +3 volus +4 volusian +5 volusianum +1 volusianus +6 vomit +1 vomited +8 vomiting +2 vomits +1 votes +5 voti +1 voting +7 voto +1 vouch +1 voucher +3 vouchsafe +21 vouchsafed +2 vouchsafes +529 vow +41 vowed +13 vowing +137 vows +1 vulcano +300 vulg +1 vulgand +13 vulgate +1 vulgshall +1 vulgthose +1 vulgyou +1 vulture +1 w +19 wage +9 waged +14 wages +2 waging +28 wait +1 waited +5 waiting +4 waits +2 wake +1 wakeful +1 wakefulness +1 wakeneth +1 wakens +2 wakes +5 waking +70 walk +15 walked +1 walkers +3 walkest +9 walketh +32 walking +6 walks +21 wall +1 walled +14 walls +14 wander +3 wandered +1 wanderer +8 wandering +4 wanders +1 wane +71 want +6 wanted +87 wanting +10 wanton +4 wantonness +1 wantons +10 wants +97 war +10 ward +3 warded +1 warden +2 wardens +3 warding +3 wards +1 ware +1 wares +17 warfare +1 wariness +13 warlike +6 warm +3 warmed +2 warming +2 warms +2 warmth +3 warn +9 warned +8 warning +2 warnings +4 warns +2 warp +2 warrant +1 warring +2 warriors +24 wars +1 wartime +2 wary +8013 was +22 wash +46 washed +8 washes +1 washeth +53 washing +3 washings +13 wast +7 waste +2 wasted +2 wasteful +7 wastefulness +1 wastes +2 wasting +21 watch +1 watched +5 watches +2 watchfulness +9 watching +9 watchings +2 watchman +1 watchmen +579 water +167 waters +4 watery +1 waver +3 wavering +2 waves +9 wax +1 waxes +3197 way +77 wayfarer +24 wayfarers +1 wayfaring +1179 ways +9067 we +72 weak +5 weaken +31 weakened +1 weakening +8 weakens +22 weaker +2 weakest +2 weakling +4 weakly +204 weakness +44 weal +105 wealth +5 wealthy +6 weaned +2 weapon +8 weapons +33 wear +6 wearied +1 wearies +21 weariness +10 wearing +1 wearisome +1 wears +10 weary +1 wearying +5 weather +1 weaves +1 webbed +3 wedded +8 wedding +6 wedlock +3 weeds +3 week +5 weeks +19 weep +11 weeping +3 weigh +21 weighed +2 weigher +5 weighing +8 weighs +66 weight +2 weightier +3 weights +10 weighty +4 welcome +3 welcomed +1 welcomes +75 welfare +472 well +3 wellbeing +89 went +4 wept +3679 were +2 wert +22 west +1 westerly +5 western +1 westward +6 wet +1 wetting +1 whale +2 whales +4241 what +1062 whatever +127 whatsoever +30 wheat +13 wheaten +2 wheel +4384 when +356 whence +101 whenever +1 whensoever +588 where +1447 whereas +2 whereat +1308 whereby +2982 wherefore +36 wherefrom +331 wherein +65 whereof +5 whereon +3 wheres +3 wheresoever +39 whereto +20 whereunto +7 whereupon +75 wherever +46 wherewith +18 wherewithal +5372 whether +18009 which +5 whichever +1605 while +43 whilst +1 whip +1 whirl +1 whirlwind +6 whisperer +1 whisperers +1 whispering +1 whit +187 white +107 whiteness +2 whitenesses +1 whitening +3 whiter +23 whither +9 whithersoever +1 whitsun +1 whitsunday +1 whitsuntide +1 whitweek +5948 who +267 whoever +1179 whole +2 wholeness +3 wholes +3 wholesome +1 wholesomely +192 wholly +1261 whom +16 whomsoever +3 whore +10 whoredom +1 whoremonger +2 whores +575 whose +3 whoso +89 whosoever +271 why +364 wicked +10 wickedly +87 wickedness +20 wide +8 widely +10 wider +1 widespreading +1 widest +17 widow +9 widowhood +24 widows +1 wield +2 wields +166 wife +4 wifes +18 wild +11 wilderness +2 wiles +3 wilful +4 wilfully +1 wilfulness +6071 will +159 willed +7 willer +1 willers +2 willest +5 willeth +1 willfully +8 william +146 willing +41 willingly +1 willingness +1 willows +442 wills +61 wilt +5 win +17 wind +3 winding +9 window +3 winds +421 wine +1 wing +2 winged +1 wingless +7 wings +1 winketh +1 winner +2 winning +4 wins +7 winter +1 winters +1 wipe +169 wis +895 wisdom +4 wisdoms +230 wise +10 wisely +12 wiser +2 wisest +303 wish +139 wished +3 wisher +5 wishers +159 wishes +2 wishest +2 wishful +40 wishing +300 wit +1 witch +2 witchcraft +2 witchcrafts +1 witches +7532 with +12 withal +85 withdraw +74 withdrawal +25 withdrawing +104 withdrawn +51 withdraws +14 withdrew +1 wither +5 withered +1 withers +27 withheld +16 withhold +5 withholding +3 withholds +290 within +2430 without +29 withstand +6 withstanding +7 withstands +2 withstood +159 witness +2 witnessed +88 witnesses +13 witnessing +2 wits +2 witted +4 wittiness +1 witty +19 wives +2 wizard +4 wizards +20 woe +4 woes +1 woke +18 wolf +7 wolves +370 woman +1 womanish +1 womankind +22 womans +161 womb +129 women +1 womenfolk +3 womens +4 won +59 wonder +10 wondered +1 wonderer +20 wonderful +1 wonderfully +3 wondering +32 wonders +8 wondrous +3 wondrously +120 wont +11 wonted +84 wood +4 wooden +2 woof +3 wool +4 woolen +1653 word +1 worde +2 worded +2 wording +1522 words +3 wore +925 work +90 worked +10 worker +3 workers +65 worketh +104 working +1 workings +17 workman +2 workmans +1 workmanship +8 workmen +1 workmens +1002 works +1 workshop +771 world +2 worldlings +98 worldly +10 worlds +5 worm +5 worms +2 wormwood +5 worn +1 worries +1 worry +131 worse +2 worsened +1 worsens +572 worship +35 worshiped +1 worshiper +1 worshipers +3 worshiping +37 worshipped +8 worshippers +17 worshipping +7 worships +25 worst +1 worsted +43 worth +4 worthier +8 worthily +9 worthiness +10 worthless +1 worthlessness +165 worthy +5788 would +7 wouldst +25 wound +13 wounded +7 wounding +37 wounds +5 woven +3 wrangle +1 wrangled +1 wrangling +1 wrap +10 wrapped +1 wrapping +31 wrath +1 wrathful +1 wraths +1 wreaks +1 wreath +1 wreck +2 wrecked +1 wrecking +1 wrestler +2 wrestles +3 wrestling +1 wrestlynge +1 wretch +1 wretches +6 wrinkle +1 wrinkling +88 writ +26 write +5 writer +52 writers +26 writes +78 writing +11 writings +1929 written +97 wrong +14 wrongdoer +3 wrongdoers +1 wrongdoing +6 wronged +1 wrongful +4 wrongfully +2 wronging +8 wrongly +25 wrongs +38 wrote +125 wrought +343 x +1 xc +1 xcii +3 xciii +2 xciv +2 xcv +3 xcvi +5 xcviii +115 xi +239 xii +79 xiii +200 xiv +101 xix +18 xl +11 xli +5 xlii +8 xliii +13 xliv +6 xlix +7 xlv +16 xlvi +16 xlvii +9 xlviii +107 xv +65 xvi +41 xvii +46 xviii +38 xx +48 xxi +78 xxii +30 xxiii +30 xxiv +31 xxix +11 xxv +70 xxvi +21 xxvii +20 xxviii +35 xxx +1 xxxciii +97 xxxi +15 xxxii +16 xxxiii +36 xxxiv +7 xxxix +29 xxxv +20 xxxvi +4 xxxvii +8 xxxviii +148 ye +14 yea +70 year +3 yearning +60 years +3 yellow +1 yes +7 yesterday +2439 yet +20 yield +3 yielded +1 yieldest +7 yielding +10 yields +26 yoke +1 yonder +1 yore +1176 you +52 young +4 younger +328 your +5 yours +9 yourself +30 yourselves +31 youth +2 youthful +6 youths +1 zaccheus +2 zachaeus +1 zacharias +4 zachary +1 zambri +3 zara +57 zeal +1 zealot +13 zealous +2 zebedee +21 zech +1 zelare +1 zelaveris +1 zelpha +1 zenith +1 zephyrinus +1 zion +3 zodiac +1 zodiacal +1 zone diff --git a/tests/data/summa-wordlist.txt b/tests/data/summa-wordlist.txt new file mode 100644 index 0000000..6f443a6 --- /dev/null +++ b/tests/data/summa-wordlist.txt @@ -0,0 +1,17825 @@ +16 flour +11 similarity +12 green +2 respite +19 duab +1 vilissimus +1 wearisome +8 elective +4 rerum +3 footing +26 synderesis +4 greedily +175 error +3 melchi +2 consumeth +1 subdeacons +2 enforce +1 judaeos +1 views +3 introducing +1 radiation +66 prelates +9 breathing +2 inhibit +14 scorn +1 hurled +2 enjoin +1 commissioner +3 eusebeia +67 perceive +1 chisels +410 mercy +1 infringes +73 sound +1 simplic +2 endorse +1 blended +173 exterior +1 intones +1 damn +6 vapors +11 repented +55 physician +112 land +1 covertly +330 damascene +3 plot +1 stillness +1 appropriations +1 strengths +1 beggars +1 slanderers +1 stepping +1 mortified +23 seeth +1 oer +262 move +6 headship +2 incommensurate +3 sowed +310 here +12 continuation +28 permanent +54 dispose +22 portion +3 unattainable +1 demurred +1 leapeth +3 beds +5 baptizeth +6 measuring +15 spoils +3 nesteros +3 deorum +1 rearing +9 viler +1 contravention +12 institute +2 monachorum +1 philemon +3 constellations +4 specification +2 conceals +4 impatience +3 yellow +3 intact +255 suffices +7 sparrow +21 categor +770 sacraments +9 loc +72 disposes +8 display +3 scourge +2 central +6 longing +11 vineyard +600 goods +1 recollect +5 arouses +1 vines +1 lightened +2 indissolubility +2 bows +3 petilian +3 infantia +10 remembers +1 educate +65 xvi +1 countless +14 glance +8 weakens +2 quarreler +412 signified +1 percussion +3 rightful +2 ninevites +26 daniel +39 uplifted +1 consoles +9 justit +2 redeeming +94 acting +5 subsisted +3 retracts +25 roman +10 decayed +2 clericum +34 drunk +4 hiring +666 present +1 condescended +4 repulsive +1 forever +2 birthright +6 benefited +63 exceed +2 contrarily +75 influence +5 adorers +10 masculine +5 studious +1 pipe +5 drunkard +1 untrustworthy +2 fas +1 warring +1 plainness +5 damsel +2 compromise +44 healthy +1 athenians +28 hindering +122 prophet +1 intenseness +10 catechism +25 changing +3 statues +3 orando +2 anathematized +2 game +10 wider +2 ridiculed +1 adulteresses +4 variations +1 sovereignly +20 longanimity +1 unlocking +1 sortes +3 gathereth +2 nominative +3 incidental +9 vestments +2 visage +30 doubtful +18 sanctify +53 despise +2 runner +14 demonstrations +9 hiding +1 dereliction +9 confirming +5 cup +3 quitting +1 aspired +19 pastoral +1 fund +69 delectation +18 wild +3 tread +24 docility +4 cave +79 favors +1 butler +3 predetermined +2 hypostatic +2 garb +1 merciless +9 rejection +1 overrule +3 ascendeth +1 finis +81 tabernacle +1 tyrians +11 meal +151 remedy +189 gentiles +1 volusianus +2 quinary +5 western +1 bide +15 dress +9 mutability +29 rejoices +1 postulate +1 circumscribes +5 acknowledges +3 tip +2 revilings +2 odious +1 merchants +1 reproduced +1 farms +8 treachery +3 epilepsy +6 afflict +36 pays +1 manichaeans +11 speedily +2 banishing +10 forsakes +1 apostolus +1 sodomitical +322 signs +112 confirmed +1 composes +18 cleanses +1 eudox +15 destined +8 adoptive +2 suddenness +11 slightly +10 reconciliation +1 rushed +9 straying +3 animae +107 imaginary +2 satisfieth +1 clxxxvii +2 matthaeum +1 afresh +22 anxiety +1 annual +1 rebuilt +1310 sometimes +1 pikroi +4 discipleship +5 mediators +28 shepherds +3 sadducees +16 executive +3 females +1 commonest +5 seditions +1 disputes +1 venice +2 beata +36 fortune +3 cooled +1 sens +1 uppermost +2 heartfelt +4 commissioned +4 explore +13 concurrence +1 publishes +1 incorporeity +1 expiations +1 fees +1 reeligere +1 preyed +52 cicero +6 warm +84 opened +1 seventeenth +3 histor +2 tottering +1 quaesitum +13 imprints +2 lewdness +2 indistinguishable +2 simonia +48 representation +12 abstains +7 nuptial +55 leave +1 platonist +10 deeply +3 assuaging +4 perfecter +2 circumcis +1 forged +11 probation +1 cleverness +1 trustees +3 thereafter +1 priesthoods +4 adulterers +10 impediments +7 equivocation +1 nibbled +4 dried +968 punishment +2 outstretching +3 wrestling +682 distinct +1 commercial +2 compassed +2 aug +8 mentioning +55 ordinance +2 glossa +1 perpetrate +4 harming +7285 all +347 godhead +2 joas +1 aristotelian +2 clog +1 chill +1 eucharistia +7 jure +2 ousiosis +1 menstruata +2 ismael +1 increaseth +1 gladden +61 divinely +1 fabiola +9 bidden +87 profession +3 borrowed +1 pigments +63 mediator +4 bounded +66 forward +23 representing +1 diluted +8 ignorantly +19 abstracts +9 conspicuous +10 temperature +2 huckster +4 plunge +9 announcing +1 butted +2 vertically +4 deposed +1 compassionating +1 reproduction +2 cxxxvi +1 theasthai +1 cavity +1583 passion +20 ray +16 sat +1 surmised +61 regulated +1 professorial +1 transcendence +2 malady +5 schools +9 begging +13 recovered +2 preordination +1 reputes +2 argumentative +2 rage +1 sacrosanct +3 warded +15 aware +1 princ +8 beholders +3292 through +2 venomous +10 occurring +3 understandeth +13 augmentative +15 morib +854 anger +1 incisionem +17 soliloq +1 quibbling +3 yielded +3 rending +1 combined +1 coasts +6 becometh +1 maidservants +1 inherits +8 shone +13 instantly +2 concurrent +1 recompensed +1 litera +2 taxes +3 alleviated +3 submissive +4 dim +2 exceptional +1 pangs +1 snub +22 shrinks +35 functions +2 grove +10 translated +142 judges +2 travels +3 frivolity +6 polluted +7 immune +1 hairein +2 drag +5 thursday +46 payment +1 quashed +3 meals +2 unreturnable +21 quarrels +1 cclxxiii +4 finder +1 emulations +2 unsettled +21 complement +1 statuimus +18 savagery +1 cciv +16 plough +547 generation +52 prevented +26 hexaem +1 hind +16 agreed +1 diligently +13 cogent +3 defame +1 saturated +34 supposititious +1 lucidity +9 overmuch +1 scantiness +11 station +39 stood +1 leadership +1 welcomes +2 insatiable +1 eudemean +2 zebedee +8 propitiatory +28 impose +1 selected +1 unsuitableness +16 pecuniary +1 viands +2 dined +72 female +3 unintelligible +1 conjugali +169 best +1 despot +5 seventhly +2 perfidy +7 gender +750 clear +1 carved +1 witches +1 employer +15 passibility +2 homely +6 confirms +53 destruction +132 composition +1 postulant +1 harmonizeth +105 counsels +6 sealed +5 appendix +16 infinitude +10 abominable +200 xiv +74 righteous +1 unproductive +3 veteration +1 debauched +1 hermeneias +45 serpent +4 surrendering +1 reverencing +76 render +9 esteems +6 antony +2 transformations +1 hostility +368 money +4 sang +28 conceive +1 laedere +1 interfered +14 mobile +324 perfectly +2 artifice +2 ploughed +53 noble +3 moralist +253 reward +1 unmerciful +1 ecclesiastes +34 run +1 dantes +1 judaea +22 incorruptibility +2 oris +2 objectively +92 deliver +1 deflowered +6 runneth +283 div +1 defames +1 moments +1 breakableness +3 qualifies +472 number +172 universe +28 dispensing +1 whoremonger +1 sara +9 supervenes +7 regions +6 connaturality +1 humilitas +70 lifeless +3 confines +1 babylonian +119 chosen +2 untenable +1 transmutable +1 annal +2 willest +20 exaltation +1 champion +13 olden +36 govern +2 misuse +2 forbears +1 gerund +1 mysterious +1 slack +3 hole +12 remembrance +6 coal +4 supplanted +17 worshipping +1 chewing +23 insufficiently +4 crooked +1 prepositions +1 offendeth +16 supported +1 sodomites +150 coel +1 unseemingly +1 transcendent +2 disheartens +1 compute +7 constructed +2 josephus +3 sorcery +5 clxxx +1 restrict +2 contest +2 deformities +7 resolve +323 anothers +25 rib +15 soil +10 probably +8 contemn +6 alluding +1 holda +1 noise +22 size +17 prophesied +9 childhood +12 fulfill +123 spirits +39 affirmation +1 desolation +1 supereminently +5 representations +9 occupies +38 participate +1 physique +43 security +42 peoples +7 bribes +2 attended +1 propensity +2 feebly +1 questing +32 quiddity +1 dries +12 crying +1 rivals +2 gallorum +23 gnome +5 distilled +2 bystanders +2 mediates +1 blissfully +3 grieving +37 control +19 conceiving +14 singularity +2 confessor +115 sufficiently +6 broke +8 hammer +13 malachi +378 happens +1 concupiscent +6 offender +5 usurious +1 frighted +18 guise +3 chair +23 semblance +1 unchanging +22 heads +51 humble +1 demeriting +13 recalled +7 transmission +1 graving +1 marrow +2 scythian +3 controversy +154 eight +3 celeb +1 provid +8 madman +1 porphyrius +4 uncomely +8 peacemakers +45 play +1 ells +15 stable +1 couples +18 mixing +9 usurped +2 brevity +5 prohibits +1 loutish +1 joab +7 dependence +2 shower +23 newly +6 prop +1 collationes +2 probe +17 prophetically +12 independent +2 virtuality +13 detract +4 virgil +3 substand +5 undertakings +2 striven +1 reckonings +2 deliverer +1 experimentally +6 statue +18 listen +41 nemesius +1 latitudois +3 rams +5 blessedness +58 proud +1 gainsays +14 supposes +69 churchs +1 varicator +1 insistent +3 stern +1 earthquakes +5 succors +1 forgery +4 conservation +1 heedlessness +1 coercer +1 curly +1 orally +218 guilt +2 rapidly +2 persuasions +4 association +1 prevaricator +1 reaction +3 bible +1 subjugated +1 disliked +6 wronged +1 plover +156 goes +1 coveter +2 fortieth +1 decayeth +5 recoil +10 corrupting +241 enter +1 steeled +2 missal +20 condignly +1 ligna +2 humblest +2 assyrians +18 abstaining +2 bewailing +7 worships +6 commendeth +5 fellows +160 production +11 ceremony +2 generous +1 dejection +177 am +1 semel +2 deplorable +2 collation +1 acolyte +8 sentenced +32 guardian +1 whirl +1 holes +261 arise +5 imbued +5 habitation +210 consecrated +2 pelagian +3 jupiter +314 existing +1 mole +2 stealthily +6 entertain +8 reduction +1 surpassingly +2 insubordination +61 surpass +76 verb +7 wolves +5 thirtyfold +3 boat +2 spat +1 condole +18 conceptions +1 auctoritate +1 transference +38 begetter +2 malum +116 execution +3 perfective +18 invocation +2 booty +8 surroundings +1 brains +17 boni +1 glorifies +1 rectilinear +1 worsens +66 deliberation +6506 because +80 nativity +5 beams +1 circumspectly +2 talk +3 substitutes +5 rust +547 pertains +6 pinnacle +26 slew +2 nt +4 denounces +22 append +1 deaconry +11 fold +2 blasphemies +72 participated +43 foresight +9 promoted +8 laugh +1 unfulfilled +629 indeed +7 shortcomings +14 jurisdiction +37 peri +2 alternately +4 won +17 tempts +1 concordant +1 tools +3 fatness +1 protesting +34008 it +15 seculars +5 armed +3 sitter +1 tractable +1 univocation +2 hab +16 prison +58 secretly +1 verdigris +30 seraphim +13 seriously +49 preached +1 evan +1 ponds +1 drieth +4 singularly +1 sellum +2 gnawings +2 christianity +8 constituent +5 overlook +117 observances +11 realize +1 jealously +1 innermostly +11 motherhood +14 blotting +6 thistles +1 flourished +13 ancestors +2 unconquered +4 lxvii +193 contains +1 procurations +20 procured +1 protruding +4162 soul +1 mishap +1 sanity +2 ventures +259 former +4 caiphas +169 wis +1 engagement +2 licit +1 sylvester +2 tenacious +13 stumbling +8 catholics +881 give +9 temporalities +143 efficient +12 intercession +15 tender +3 puella +1 archbishop +115 look +1 reservation +6 whisperer +2 breathes +1 bequeathed +1 agonia +10 incongruous +142 deprived +752 receive +6 sweat +1 drain +1 assump +1 starless +1 threshing +10 insane +1 percutit +1 cognit +2 debauchery +3 reported +1 unassuming +81 demands +1 dogmatibus +1 specializes +1 inquisition +1 torum +1 aristophanes +4 temporary +5 corpses +6 wanted +183 composed +4 rescued +8 smallest +6 terror +1 filthiness +10 worlds +191 fittingly +28 discovered +1 inspirer +1 tortoises +2 cherished +89 absence +2 excellences +18 imprint +1 apples +29 thanksgiving +1 fetid +211 seventh +12 metaphor +1 undividedness +7 pursues +1 travellers +28 prejudice +217 teaching +2 displeases +10 recall +1 reforming +6 preambles +8 warning +10 cxxv +8 executor +329 commanded +85 cleansed +5 maternal +1 heiresses +779 come +1 dissimulator +9 edification +3 cur +7 drives +213 motive +11 blameworthy +10 multiform +8 supervene +3 ult +107 kept +26 restrain +1 philanthropy +1 emphasis +1 spill +2 siege +108 exceeds +2 januarius +2 noting +47 pains +219 decalogue +62 teaches +22 decreed +10 congregation +2 quitted +25 scip +1 roll +16 moribus +117 eccl +1 flush +3 mag +63 disorder +105 side +4 frightened +1 reinstated +1 symbolic +1 sawyer +1 baptists +4 contradistinction +6 combination +62 create +5 abhorrence +1 displays +9 dislike +1 gent +9 erect +33 deliverance +11 succored +1 mulier +21 low +1 namesake +2 publishing +26 aggravates +5 daintily +191 consist +1 devoureth +5 refreshes +1 debauch +5 borders +44 touches +1 psalmody +1 exaggerations +1 square +30 suns +2 unsafe +199 ascribed +1 unstaid +1 puniendus +6 aggravating +24 physical +9 variation +42 topic +11 handle +9 boundary +245 appear +2 enigmatic +2 lingers +1 inquiries +10 singly +2 arbitrators +8 clerical +2 deluded +50 generic +1 politi +3 winding +1 lexicon +6 repudiated +8 finger +4 cclxv +1 abandonment +1 robed +35 participates +180 beyond +3 yearning +95 thoughts +8 mendac +3 cxxiii +6 excepted +3 indispensable +145 sought +76 excuse +7 turtle +2 positively +9 submitted +234 real +1 arimathea +50 unbegotten +19 tribulation +50 draws +29 exclusively +397 exists +265 help +7 waste +5 affirming +1 equiparance +1 consulta +9 predominant +14 dig +15 remnants +4 publicans +2402 charity +1 merest +1 rides +1 reformation +1 prognostic +267 whoever +1216 common +44 savor +1 noct +2 disdainful +8 arguing +1 sacrilegiously +3 averted +2 irremissible +7 front +10 worker +2 cures +55 retains +4 riddles +1321 did +11 swore +1 elizabeths +1 sidon +38 manifold +1 sorrowings +2 triumpher +1 tearful +19 deterred +2 impetrated +2 progressive +14 prerogative +22 excommunicated +1 nimia +11 bird +8 impetration +1 displaces +10 puffed +8 rejecting +609 future +47 incline +106 meat +48 enters +1 proclivity +3 pot +4 ample +3 antecedents +39 err +123 gravity +11 inducing +1 gossip +2 serviceable +1 kleros +90 brethren +1 sceptre +5 thereat +3 dip +1 computation +3 illuminate +1 staggering +3 incumbent +1 enunciables +13 sounds +1 lxxxi +1 quibusdam +268 humility +21 indirect +1 unfitness +2 fornicators +62 consecrate +5 galatians +596 seen +6 differentiates +1 entrusting +1 carpentering +1 const +1 hill +3 triumphant +1 escaping +1 moloch +1 manteia +15 difficulties +57 exalted +4839 than +1 vindication +14 engaged +2 seventeen +1 poureth +7 shamefaced +9 rapid +1 visits +1 script +104 lies +2 nos +1 usuris +34 conform +1 endlessness +1 respiratus +4 matthews +1 metonymy +115 soon +6 reveres +1 civit +48 presuppose +187 testament +1 contributions +1 ratione +33 seller +4 adapt +37 expounding +1 precentor +6 supports +2 entities +1 sortilegious +21 offenses +1 media +319 degree +4 paradox +1 zion +11 pale +12 report +1 janae +956 special +6 notified +15 herbs +11 access +5 quenches +14 wages +4 crucifying +4 promptness +57 absent +1 rudib +2 spark +2 appropriateness +3 beatifies +114 supernatural +8 rash +17 emperor +1 transparence +7 unpunished +72 feast +1 missoria +13 professes +1 shrine +26 prescribe +2 scurrilous +18 exposed +1 armentar +7 fraught +3 closeness +20867 by +1 glowing +118 derives +1 proterius +242 example +10 available +4 conveyeth +5 kindles +15 scarlet +47 pleasurable +2 condensing +4 instructeth +6 pulse +2 dreaded +59 nutritive +1 darkens +38 grade +12 movers +10 nemesis +2 homoousion +38 citizens +5 advised +495 forms +3 heel +23 mourn +94 died +1 magnification +2 inconvenient +80 strong +1 calculus +21 meriting +43 sale +337 thereof +5 defile +20 constant +4 treacherously +12 robber +10 meditate +36 preserving +1 graft +1 extermination +2 cultivates +25 endeavor +3 pius +2 sententiarum +1 multa +27 obeying +6 walks +1 saveth +572 worship +2 diligent +5948 who +12 comprehensors +1 complaisant +1 mourner +2 beck +1 gaius +56 impediment +1 criste +1 inexperienced +54 preserve +6 rectify +1 constructs +2 rained +22 recorded +58 positive +59 intelligent +1 masks +1 exigencies +1 styles +7 chattel +1 rightest +1 breatheth +5 transcend +1 tiberius +12 individuating +263 obtain +1 formulates +1 embroiled +1 clx +19 prevenient +124 local +9 covers +8 dryness +3 illumined +1 decii +1 equivocals +45 beast +14 establishes +2 chromatius +100 incorporeal +5 delectable +55 repayment +2464 himself +455 twofold +2 wrecked +9 walketh +3 tearing +1 scarcity +1 stoop +1 linear +16 galilee +4 otherness +8 heathen +1 machab +108 consequent +78 business +67 performed +2 opif +1 remarry +1 cath +1 responsa +12 greed +1 pillager +83 condemned +3 zara +77 instructed +1 pottery +139 wished +18 creates +3 excellency +256 faithful +2 refinement +27 trine +1 aman +1 mature +1 chalepoi +5 thumb +17 coll +1 arthron +4277 stated +1 beatify +1 bullock +41 pharisees +4 beggar +5 appointing +2 slaughtered +1 uncouthness +1 cornelian +10 lusteth +12 candlestick +20 xxviii +1 ingenuity +1 rarer +2 mechanical +4 vent +11 subsistences +1 tinged +2 cxc +12 lightness +1 loathsomeness +6 chalcedon +1 counsellors +4 cost +1 stultitia +19 proficient +34 uniform +1 praesens +130 offering +4 engendering +113 opinions +7 eubulia +29 effectively +2 swords +3 cc +11 persuade +4 rolled +72 fight +8 olive +1 beguiles +40 demerit +4 esse +12 bury +1 trod +1 filios +1 sulphur +3 parchment +41 infected +5367 first +28 purely +1 sheltered +13 doctrines +1 cclxxxvii +2 exuberance +2 avowed +831 created +70 remote +23 surely +12 apple +2 appraised +2 outrages +8 catechize +1 imprisoning +36 occasions +1 tiring +20 yield +1 alliance +2 pen +2 entangled +4 increasing +12 excluding +19 incited +179 refer +18 flies +2 nicholas +157 apparently +2 evaporations +3 faustus +8 dawn +12 gratian +1 parching +1 cxxxi +1 imbibe +2 redemptione +3 falsehoods +115 author +16 jocose +7 inspire +380 defect +47 hunger +2 transport +6 qui +3 entreaty +123 referring +16 assured +4 missa +17 rejoiced +10 listens +2 graceful +290 self +1 amicitia +1 receptivity +7 magician +1 overlap +10 reprobates +1 religamur +3 phares +23 seer +30 version +1 vacant +6 impetuousness +91 clemency +2 elated +1 solving +3 conjectural +1 repenteth +2 quiricus +4 rachel +12 detraction +17 attaching +1 gospelers +5 polycarp +37 pasch +95 became +206 ourselves +17 commensuration +69 consisting +7 sharp +6 companionship +4 constraint +1 balneum +2 beat +167 patience +5 unico +2 illuminants +1 grosseteste +1 melancholy +1 locked +44 agreement +391 character +4 admonishment +33 eleventh +5 dares +1 handmaids +3902 them +2 enumerate +8 nose +2 couple +1 dacia +1 liers +2 concentrating +1 loyalty +1 rainbow +2 diaboli +1 frames +2 exemplary +1 experts +4 tabernacles +17 nowhere +34 pursuit +1 farthing +926 goodness +2 assimilates +5 julius +38 macrobius +2 vero +3 desirer +7 crossing +29 verified +3 bondsmen +257 aforesaid +1 tinctus +3 desirest +5 indemnity +1 abler +4 caium +193 mystery +5 rightness +9 thrice +1 antiquity +54 empyrean +8 denominates +1 forgo +24 sure +2 detested +6 persecutor +3 professorship +5 relaxed +25 feels +75 joined +5 waking +58 kindred +124 latria +64 connatural +1 extenuating +1 orbits +2 disheartened +2 lately +4 infectious +1 waited +46 expresses +26 enduring +1 reassumed +3 girls +7 spittle +1 surmounted +1 grievances +1 avicennas +60 producing +6 sheds +2 bigger +1 harbors +49 benefactor +2 lxxxiv +14 dullness +1 ridden +4995 more +34 debarred +593 simply +2 contemporaneously +72 omitted +42 subsists +5 revolt +5 exteriorly +4 breeches +5881 reason +2 importunate +2 urias +8 bounty +1 insisting +14 drinketh +19 bethlehem +15 abundantly +1 payments +868 case +13 robbers +17 restores +1 sowers +5 avow +13 procuring +34 partaking +12 malach +13 unchangeableness +1 curry +1 boxing +5 premiss +4 comparatively +5 perplexed +2 deceptions +5 elevated +1 connivance +89 deserves +1 pupils +5350 since +2 horrified +6 contented +13 nescience +1 hypo +1 millet +5 transferring +4 hideth +1 irrationally +26 tusc +169 belonging +40 continually +2 thrusts +26 persecution +5788 would +1 laesione +3 wrongdoers +2 invalidly +1 jud +1 testator +153391 the +21 figuratively +6 detractor +2 fainting +1 moris +1142 precepts +1 sixtieth +5 chant +1 disconcerted +6 boons +2 spareth +1 starvation +1 baunos +1 currency +10 dedicated +3 commencement +34 dark +3 clamored +1 ingenerability +2 sly +251 saints +2 untrammeled +3 chariots +3 remigius +3 anticipates +4 pythagoreans +2 tours +1 wrestler +6 classed +9 moderating +7 instructions +4 eloquence +56 instruments +4 meddle +71 princes +13 vulgate +48 burden +6 questioned +4 envying +7 dissensions +1 libertine +33 strict +3 cheating +2 peripatetic +330 deeds +2 imposing +367 comparison +1 outskirts +1 bridesman +3 imbecile +3 precautions +1 rationalis +1 greg +2 tempteth +5 clerk +1 signalized +2 humanities +1 statuit +16 immateriality +23 propitiation +1 coordinations +2 equator +47 maintain +1 covert +6 mos +2 curvature +1 peregrino +5 clinging +3 isidores +6 delighting +44 court +10 shoulders +51 lastly +51 beatified +10 expects +13 externals +42 thess +3 entereth +1 cxii +1 zambri +1 ammonites +12 recedes +25 commission +1 skull +6 proposing +1 ordinand +4 absorbs +3 delude +3 circumcise +1 adsit +1 rebuts +4 prevailing +20 tempting +138 poverty +50 victim +201 pay +1 july +1 purgati +1 throng +1 resents +275 times +12 clementia +1 furrow +502 authority +16 annihilated +7 analogically +10 sworn +7 prominence +1 scourgings +1 reprimanded +3 elses +544 me +2 whores +4 bend +2 solstice +21 spread +3 unprofitableness +1 ideatio +4 voiding +3 comport +15 inadmissible +1 archers +3 commonalty +2 surer +2 grouped +1374 before +2 random +8 happenings +1 redress +2 genitor +1 drowning +1 nears +5 alterations +1308 whereby +6 joining +20 burdens +2 robbed +3 solitaries +6 officer +4 candidate +4 mac +1 enfold +21 almost +547 blessed +2 announcements +40 indicates +92 unfittingly +1 spernitque +1 unskilfulness +2 unthankful +1 aut +2 avoidable +29 solely +2 circumstant +1 estha +3455 another +57 celebration +1 puffing +138 private +7 significantly +1 comitem +19 finally +6 quarter +1300 done +9 leaders +3 betrayer +13 indisposition +38 demand +2 destine +4 ecclesia +110 position +1 wonderer +1 reprehend +1 potion +307 etc +19 restraint +1 adrift +16 complex +2 intensively +1 deflected +5 betrayed +10 promotion +3 prosperous +16 aptness +1 lout +34 important +14 restraining +30 fitness +1 sentencing +6 attracts +63 offers +1 heavily +1 annoying +2 doorkeeper +5 summoned +1 improve +1 comings +8 learnt +7 duality +2 enabling +1 pueri +5 predestinating +1 aveo +44 sold +1 buildings +4 reverently +13 preachers +1 wetting +8 mood +78 predestinated +1 receptively +1 praetorian +5 charges +104 dangers +37 volition +2 impunity +3 montanus +2 casu +225 think +305 referred +1 fallere +1 seethed +36 containing +9 presuming +1 finitely +1 webbed +2 sinai +2 jurejur +6 omens +39 mystical +42 cleanse +1 radius +1222 given +26 forego +9 agone +8 preordained +1 sojourning +2 keeper +9 inborn +12 cassian +1 obtuse +1 housetops +3 alleging +1 companies +9 infect +1 unskillfulness +1 pulls +1 balthasar +9 circumscribed +1 condignity +1 expedit +53 civil +3243 seem +3 concil +1 festo +26 cyril +3 cooling +3 phronesis +73 sea +1 womenfolk +1 warden +1 admired +1 tuum +2180 men +55 line +1 despiteful +402 offered +208 until +3 haughty +65 aversion +20 incapable +23 distinguishing +18 sodom +3 scent +3 desirableness +3 withholds +6 diocese +1 pellicule +1 skillfully +11 skin +80 enemy +1 oves +1 ante +1 figured +71 blind +18 herm +5 transaction +163 proves +2 tasted +4 accurately +21 silence +39 unequal +18 awake +1 tergiversatio +1 epieikes +256 unbelief +4 prospers +64 beneath +2 drowsiness +7 coerce +1 satiate +3 bonif +3 presseth +1 oure +128 elements +4 enkindled +3 staff +4 swaddling +1 disguise +14 analysis +2 benediction +37 worshipped +2 adjoined +15 illiberal +2 predestinator +1 shackled +218 fruits +7 devoting +1 gracefulness +126 connection +1 inhuman +2 fetches +2 rid +1 buck +2 intolerable +12 banishes +39 guard +1 follies +3 euphrates +11 apocryphal +1 legitimately +1 effectually +1 melodies +1 kalends +15 heresies +1 jerem +9 yourself +2 seth +3 veritate +1 nineveh +13 commemoration +173 truly +1 ejaculations +1011 much +2 staying +3 contemneth +1 silvester +41 severed +296 outside +247 observes +16 fearlessness +2 fare +1 daem +1 legibus +2 preliminary +1 preservative +8 folk +5 pelag +3 wool +481 comes +14 walls +1 pregnancy +2 doubly +157 beings +37 sanctity +2 cawing +68 transmutation +2 dissemble +5 sovereignty +2 disciplina +1 divorcing +1 dinant +1 ephesians +80 apprehends +104 fully +2 bulgars +2 unbearable +1 condescends +139 produces +1 glittering +1 trepein +5 evilly +39 luc +1 corrupter +353 mother +2 sojourner +6 babes +1 heartedly +6 casteth +26 refused +2 immuter +7 corporally +7 effecting +2 basket +5 parricide +1 practised +1 reproducing +2 qualifications +1 advising +4 tribulations +36 melchisedech +2 lump +2 foretaste +270 quality +1 paralyze +1 susurro +7 experiences +1 uprightly +1 homines +1 noteworthy +2 precedent +4 regain +1 imparting +2 abhorreth +1 excessus +1 spissitudine +69 clarity +2 sacrificer +18 detrimental +1 mournful +10 slept +223 carnal +1 posse +27 dies +136 cease +16 infallibly +2 exhorts +70 grievously +4 chronic +90 pity +1 epi +9 tyrant +1 blinding +1 historian +3 theodosius +1 drug +1 clxxviii +1 trades +4 perverts +28 shuns +2 agde +4 vivis +8 covereth +4 laudable +1 bucket +13 originate +10 whoredom +9 reproves +387 merely +1 numbness +1 outweighed +2 enchir +273 health +2 reconciles +3 paulianists +6 deter +1 reminds +1 grandson +13 reviler +37 rendering +1 grad +14 accounts +1 gloria +5 proportional +2 movables +1 hydromancy +1 concupivit +1 conflicting +76 perceived +1 sores +6 earnestness +9 secrecy +3 texts +2 futurity +1 dressing +3 prologue +102 chalice +3 warn +120 wont +1 enactment +1 precursors +4 damas +1 clasping +3448 such +2 predications +395 unlawful +9 specifies +38 thence +9 aliud +2 eccentricity +183 signification +690 question +35 adults +2 unconfused +9 councils +30 indicate +2 judgement +2 effectu +1 interrogation +1 rictu +3 stimulated +24 pronounces +13 admonished +1 manifesteth +1 misericors +1 drench +8 loud +1 onslaughts +2 harborless +6 subservient +2 delicacies +1 survives +1 manifoldly +1 menein +9 exorcisms +184 serm +71 treat +31 nigh +1 ware +44 comprehend +37 multiplication +2 avium +1 cope +3 lunatics +39 disciple +78 xxii +4 wrongfully +463 pain +184 immaterial +2 treble +62 judging +206 least +4 threw +1 antiq +1 furtis +6 anxious +19 originally +7715 sin +1 costs +148 presumption +1 synetoi +1 remissible +6 ignited +3 appease +10 derivation +17 eclipse +8 unmarried +1719 say +2 progression +3 debased +4 lapsing +1 paganism +4 everyday +1 tumults +114 fellowship +2 appreciable +1 conceivable +1 correctors +3 subjoined +2 schooled +1 provisions +1 rebaptizer +3 violates +1 cxxcii +9 compels +96 sort +1 sacramentum +11 agreeable +7 patientia +3 credence +16 roof +3 revelling +2 quiddam +1 scratch +3 nailed +1 pharisaism +19 bernard +6 encourage +24 oxen +10 upheld +3 earthquake +4 qualifying +17 immaterially +19 bought +19 distribution +4 disunion +1 forgers +3 seedlike +2 detracteth +2 imputation +4 fundamental +5 adjectival +7 jurists +5 proximity +1 dicere +1 decad +9 unbelieving +67 commanding +1 tuas +8 interest +14 contrast +11 purposed +1 deportment +3 tradesman +2 coercing +68 subordinate +1 prosopa +1 ecclesiasticis +6 belittle +3 unfinished +1 liquefies +6 lucy +26 orderly +1 phthisis +21 cover +2 cereals +1 theodoric +22 savors +2 nestorian +26 consequences +1 reptiles +9 window +1 precontaining +2 riding +2 seasoned +3 compline +2 moneys +21 supererogation +4 orient +4 sweeter +25 p +67 explicitly +3 longsuffering +83 graces +2 insubmission +1 elcana +2102 consequently +34 divide +2 substanding +6 checking +1 paste +3 sigh +2 reasoner +1 indebtedness +7 dialectics +1 ecstasies +1 radiance +4 oppose +8 immensity +67 reasoning +1058 death +1511 action +1 mandamus +3 sancto +1 impoverish +1 legend +2 longlived +1 besmear +1 recollects +13 container +660 bodily +4 repulsion +1 descriptions +2 earthen +2 somber +29 designates +9 mildness +29 threatened +1 divergencies +116 described +2 insist +2 enclosure +2 catches +16 gentle +4 unknowable +6 overcame +1 militant +5 remainder +10 weighty +4 languish +1 psaltery +1 essentiae +16 withhold +44 import +19 redeemer +3 elapsed +17 beseech +1 resuming +11 respond +1 dissembles +48 curiosity +1 rigor +6 salable +3 harbor +1 organically +1 imagery +1 untoward +1 converses +3 average +100 seqq +4 strayed +1 shoemakers +3 immutably +2 reprehended +16 seventy +1 condescending +5 introit +3 deceits +97 hear +5 succumb +2 receivers +3 disappears +6 remoteness +1 nationality +3 potentialities +9 alexandria +97 medicine +4 swallow +2 upholds +5 omnes +1 consultations +25 jeremias +30 pentecost +20 dread +15 solid +1 eleein +1 tranquil +1 complying +3 opponent +2 nolition +1 renting +1 persuader +2 agatho +1 sorrowed +35 admits +6 meritoriously +222 cases +60 cardinal +3 compunct +2 instigate +3 confine +8 scorns +1 divino +1 somebodys +27 bringing +113 conclusion +1 oppressus +192 wholly +1 deriders +228 obey +1 items +85 respects +1 hatreds +2 soothsayers +239 force +291 seemingly +12 lex +13 perdition +1 monachus +1 actualized +20 reads +1 minus +36 arrive +11 catena +1 som +14 pit +77 intensity +7 conceded +1 etymological +3563 divine +64 carried +4 marriages +1 carmel +616 union +7 josephs +7 permissible +368 shalt +6 progresses +77 wayfarer +137 prevent +4 corners +7 reposes +1 clerici +4 unconsecrated +23 forehead +65 whereof +3 blandishments +3 restful +55 miraculously +1 reposing +1 pepuziani +4 sensing +20 sprinkled +1 duels +1 genethliacs +15 decline +4 phantom +21 heathens +1 heavenward +1022 substance +758 understand +1 besieged +22 discovery +25 unhappy +2 lodging +13 submission +2 structure +1 olympian +40690 a +2 conversant +26 lessens +1 cars +1 desiderative +1 elevation +4 deploring +5 sup +37 demonstrated +18 hanging +2 burying +1176 you +1065 make +1 perfume +4 prohibiting +3 tiburtius +1 xxxciii +42 satisfy +1 begged +2 uneasiness +26 deep +3 songs +1 blasphemeth +293 friendship +173 injury +393 living +5 beginnings +331 operations +194 fruit +2 brazen +5372 whether +1 illustrations +7 xxxix +2 slayeth +4 irresistible +1 parvificentia +5 prebend +54 abstain +1 thearchy +6 noe +39 mental +615 shown +6 somno +2 caress +3 hospitality +7 depression +1 designedly +6 musical +1069 gods +2 astute +3 cxxxviii +1 bell +2 murderous +3 enkindle +5 mistaken +2 extol +1 bewitched +32 preposition +3 follower +1 probity +29 foreknown +5 viaticum +2 chastely +8 piece +6 endeavored +2 retards +1 lowliest +1 cormorant +105 express +3060 knowledge +1 ulpian +3 syncategorematical +1 purgative +1 clogs +4 spirate +6 notable +1 attitude +1 invisibility +1 uxoris +2 tarnished +1 celestine +1 permutat +7 starting +1 gratianus +1 prolongation +4 cxxi +7 morsel +9 saviours +188 holds +7 willer +1 sullenness +1 desists +1 stem +1 proportions +1 malevolence +43 framed +17 shortly +1 sibyl +1 itching +1 envied +8 clearness +7 furnishing +6 damage +26 edition +153 darkness +10 midnight +12 purify +18 retribution +104 comprised +1 garrulous +5 refresh +13 tit +1 deleted +3 testaments +1 stout +84 quite +2 gallop +16 quickens +5 ord +10 abounded +24 adjuration +2 temperateness +8 stealing +1 participable +21 allotted +1 israelite +24 afar +7 directive +1 bonosians +6 quicker +79 num +68 conduct +1 sagacious +1 cautioned +27 reprove +1 interferes +1 miseria +1 abyss +17 including +2 prevalent +387 loved +1 engaging +4 colloquy +1 vernal +1 burglary +1 inconsistently +30 yourselves +3 advert +165 worthy +1 praetorium +59 gather +8 voided +327 kinds +6 seducer +2 spurn +3 hardening +2 algazel +1 thesauris +127 marriage +1 verbi +22 comeliness +58 prodigality +18 importance +3 response +4 sabellius +5715 according +1 distortion +2 witted +28 hardships +2 big +16 irreparable +2 faeneraberis +27 omit +1 uplifts +7 sleeper +26 deceit +3 kissing +1 attendants +290 within +15 trembling +1 discount +1 immortals +6 trembles +1 sour +18 recede +2 nazianzum +17 unworthily +7 perils +2 lxxvi +9 waged +3 lxvi +31 unhappiness +49 family +376 loves +687 follow +4 rebellious +122 sabbath +32 comment +7 makest +14 committeth +1 alchemy +1 enraged +27 nearly +1 intelligi +1 dislocates +90 worked +3 softens +4 unwisdom +4 lvii +1 becomesthe +1 abidingly +1 gilded +1 eudemian +1 epileptic +11 rebel +8 mundo +1 forbearing +9914 or +22 hearers +2 pilgrims +1 trepidation +119 falsehood +1 atones +20 oneness +36 moderates +7 clearer +46 looks +7 owed +1 worshiper +241 adds +1 foetid +141 terms +1 hippon +647 received +2 lxxv +1 coachman +4 senate +3 conquers +14 excellently +2 alio +1 bunches +9 evasion +3 dipping +39 involve +1 abjured +335 sight +1 plus +1 inextinguishable +1 uniqueness +546 dionysius +46 constitute +2 mounting +1 abstractions +3 cheek +60 accusation +5 pursued +86 few +6 imprisoned +4 inveterate +1 chapels +2 arte +1 lizard +18 gains +3 joint +29 superstitious +1 territories +7 wouldst +85 materially +243 hinders +12 blot +83 implied +11 tower +1 bequeaths +10 impetuosity +4 alters +1 jericho +8 verdict +31 advantage +1 gratiani +1 wantons +6 inviolate +14 arrives +2 followeth +13 diffusion +51 attribute +1 mysteriis +10 badness +2 officio +3 dealeth +5 joyfully +10 toilsome +1 fuel +3 rot +3 affectively +1 rusted +3 delictum +94 secret +10 luck +2 systole +12 hardly +39 ecstasy +6 examination +1 harmonized +5 testifies +6 psalt +21 enumeration +3 manichean +6 depositary +5 ephes +57 vicious +1 tardy +1 profitably +5 yours +8 arrived +5 convenience +2 magnified +33 incurred +1 subordinately +2 saidst +41 rites +13 friendliness +1 accessible +1 comest +3 reproduce +1 appliances +5 whereon +146 willing +6 kinsmen +2 rope +2 scientists +1 cursers +1 cooking +10 inmost +4 shake +2 detect +2 hungers +2 malefice +2 dissoluble +15 sown +1 striveth +5 administers +48 bones +2 exhalation +6 nest +4 nighness +1 powders +5 lxiv +237 eat +3 untouched +1 sooth +84 wood +1 bittern +1 preying +6 informs +25 accuse +152 measured +3 disprove +35 deprive +503 earth +29 solomon +3 avowal +1 heedful +30 get +1 medicaments +12 authors +1 truant +12 killeth +2 symmachus +1 trample +2 accusations +4 assembled +172 everlasting +913 causes +2 venture +3 everlastingness +1 toughness +12 ccxi +64 monte +1 dissociated +2 obscenities +11 rabanus +1 scotus +35 sum +1 cxli +1398 proper +3 needeth +8 regulating +13 description +1 weaves +1 disengaged +145 confirmation +2 texture +9 aged +3 honestas +17 noblest +12 correctly +77 letter +7 undefiled +4 inadequate +1 counteracting +21 pointedly +1 hens +95 subjection +5 incurring +3 symbolo +2 uncover +1 shudder +1 economic +2 rude +2678 faith +1 pungency +1 piloted +1 ransoming +1 print +115 pure +31 abound +5 ember +193 proved +1 repayer +1 maladies +36 scandalized +2 trivial +22 vet +8 unavoidable +115 preserved +16 heirs +1 radiancy +2 unaccustomed +2 busily +8 objective +26 displeasure +48 sonship +2 torturers +101 justified +10 seminally +16 sides +1 paternities +5 seemly +6 ring +2 leap +4 parental +9 hindrances +130 increases +67 chrism +11 plenitude +108 paul +1 roughness +4 sowing +69 repent +1 tolerating +1 vernaculus +288 jews +2 architecture +12 consultation +2 flavor +3 kindle +1 stumble +3 blasphemers +1 consecrators +366 otherwise +2 intensive +26 rises +23 artificial +37 acknowledge +2 dominate +3 conquering +36 relate +2 melted +6 expels +3 forfeiture +457 pleasures +13 soever +7 breathe +19 estate +21 fuller +2 sheweth +1 prospered +22 empty +55 tendency +73 freedom +1 virgines +1 arbiter +6 corruptibility +1 inebriating +6 successor +1 bethaven +4 pledges +2 transforms +86 involuntary +12 tobias +1 hew +163 sees +2 murmuring +2 scolding +3 nurse +6 eminently +3 phinees +59 continency +1 sensitiveness +1 dispens +32 compensation +1 untenanted +1 coagitare +1 permeated +3 inside +39 whereto +5 aur +1 inevitable +41 variety +1 hankering +313 birth +5 richer +105 hurt +141 proportionate +1 faustum +11 tried +1 implications +1 sleepy +1 tekmerion +11 severs +2 excommunicating +2 quantitatively +1 prevaricatio +1 rigidity +26 writes +49 midst +1 questioners +7 centered +206 view +5 weighing +4 unborn +3 funds +4 locality +12 attacks +13 stray +2 superficial +10 candle +15 superiority +4 oratio +1 desider +1 tablets +6 athens +2 hundredweight +12 saul +1 misapplied +1 undemonstrable +8 showeth +4 carelessly +1 dissipated +1 governeth +5 adduces +29 flight +2 laetitia +6 ci +3 accession +9 nazianzen +18 dissent +5 anyhow +5 quem +2 wisest +25 becomingly +1 opificio +46 erring +3 succumbs +2 uncircumscribed +2 attracted +1 unfriendly +1 visitor +3 heathendom +12 medicines +7 succeeding +1 hues +4 harass +22 behave +2 ille +3 unrighteousness +1 magnitudinem +10 banquet +5292 nature +1 cakes +1 defilements +1 shot +1 edifieth +1 imbue +2 presages +2 teller +3 seq +11 quantitative +1 leaning +58 note +2 radication +3 pretenses +1 phenomenal +1 retainer +11 standard +3 cool +32 party +7 despotic +13 addressing +4 despaired +1 dishonorable +5 recalls +60 commutative +37 measures +6 b +480 effects +2 calefaction +81 pleasing +1 cher +1 gubbio +37 military +1 sibyls +4 spotless +86 offic +1 sephora +1 summ +1 nervous +1 showered +8 rebaptized +5 everybody +5 counseling +1 superabundantly +3 valued +3 combines +4 exasperated +3 connotes +7 exorcized +9 lands +12 peril +2 regul +11 seeketh +2 plunges +2 pomps +3 cask +1 nowadays +24 behalf +4 personage +1 disadvantageous +2 fibre +3 buyers +4 pair +1 denser +1 corroded +2 judaeis +23 discipline +6 older +2 finer +1 quicumque +4 goal +1 boastful +9 discussion +1 insolvent +114 imperfection +1 fighters +1 sucks +9 widowhood +59 learning +19 rome +1 inhibited +73 scriptures +2 stumbles +1 meseems +9 doubted +250 separate +28 fasts +22 philosophical +2 ruining +36 temperate +2 pretence +18 strongly +3 declined +80 conformed +3 inoperative +1 peculation +1 nazareans +2 fallow +6 baths +1 bidders +3 substantively +3 slavish +1 potest +3 adores +2 bountiful +6 fore +1 reclines +80 arising +1 occultly +2 crowns +6 accruing +2 cousin +85 slight +55 inconsistent +1 cad +69 horse +1 assented +4 parasceve +25 introduced +1 praedicamentis +4 coat +2 testifying +3 curser +3 multiformity +10 lasciviousness +588 where +1 shortened +4 putrefy +1 ornatus +23 recover +187 white +1 reverent +419 directly +160 requisite +1 trans +2 sustains +103 relating +55 please +12 provoked +1 purer +1518 essence +12 bringeth +3 healthiness +9 propounded +2 xciv +3 pictured +25 wrongs +1 distractions +39 jewish +7 coordination +3 passivity +2 sovereigns +1 significatum +87 study +1 aegyptii +9 xlviii +2 clericos +2 standest +75 open +3 foreskin +6 jos +1 reliable +10 caught +13 fearing +1 prototype +17 fixes +14 swine +8 jeromes +1 goste +15 fountain +1 worsted +50 integral +2 barking +89 desirable +2 resultance +1 situate +1 unavoidably +1 wakens +8 discerned +1 trinities +2 successful +3 thenceforth +3 tramples +1 rinsed +64 instead +3 torments +5 indulgence +1 diosc +4 betrothal +2 advantageously +15 participator +1 hominis +4 depravity +8 entails +5 commends +20 receiver +1 swelled +3 judaism +11 dieth +13 obligations +5 tutor +5 steer +1 darknesses +6 fastened +2 gauls +19 operator +1 decim +6 unaware +4 bushel +115 ceases +14 empiric +14 circumspection +1 unanimous +1 architectonic +9 depriving +1 forgetful +12 withal +10 wanton +1 inception +2 comparative +9 eligible +14 affixed +7 memories +1 transcribed +6 omen +10 unprofitable +1 abiam +3 agatha +15 profiteth +72 arb +3 rebukes +10 adulterous +50 cruelty +48 saviour +5 knee +2 repeats +62 dispense +9 devotes +13 gravely +301 taking +20 variance +1 phileb +1 facilitate +562 existence +294 becomes +1 damnifies +1 doom +1 meam +6 essentials +8 owners +64 presupposed +13 truthfulness +30 theirs +6 coarser +7 neighboring +8 herein +1 prospective +1 requisites +30 proofs +4 dimmed +1 cataphrygae +1 mythical +22 performing +1 minuteness +64 deny +14628 obj +39603 and +3 imperial +80 arduous +6 artisan +3 mice +15 friendly +443 quantity +59 thinks +2 fitly +6 depressed +2 deviation +2 insomn +2 resigning +1 alarm +3 sharper +3 sorrowfully +8 partially +1 appeaseth +38 dilection +1 perjurers +2 breakable +2 rains +1 sophroniscus +3 novatians +3 mock +98 stronger +10 schismatic +2 fatherland +1 asseris +120 kill +5 hither +98 everywhere +1 nave +8 draught +162 conditions +57 guile +6 assailing +40 hide +1 recurring +57 foot +23 commonwealth +21 rod +13 striving +1 nuper +1 disfigured +1 subjectively +1 repudiating +10 influenced +2258 itself +4 deteriorated +22 generates +6 opportunities +119 dom +13 carries +27 remuneration +150 supreme +13 accomplishing +13 cxxx +10 visiting +1 shamed +4 opinionative +24 infirmities +9 foster +1 neophytus +1 caecitas +184 circumcision +2 citus +1 reputeth +2 admission +1 stretches +116 hindrance +40 literally +1 stingy +1 treasons +1 remedio +2 unsaid +5 expiating +160 vengeance +9 requiring +2 sensu +30 finds +12 conveys +1 revocation +3 incorrigible +40 craftsman +6 catechizing +20 commander +3 rushing +4 boyhood +4 prophesieth +4 ephod +9 doct +1 lastingly +1 epicycles +4 examines +6 fled +2 wishful +1 albumazar +23 departs +20 archangels +1 praepositivus +19 accompanies +1 proceedeth +1 howl +1 legions +1 handling +20 search +8 prevailed +3 replace +1 figuras +10 pierce +3 modern +7 maid +3 hastened +2 null +19 realized +8 performance +8 sincerity +113 binding +4 contemplated +5 eutyches +7 refuge +2 medicament +7 succoring +21 suppl +2 wormwood +10 divorce +3 ripe +17 cleanness +1 hells +2 contorts +33 instantaneous +1 fermentation +3 e +3 outline +51 charge +6 violently +3 felic +1 insinuating +1 inexorable +3 calms +3 gainsayers +22 coercion +1 dreadful +2 lurks +1 alia +2 joyfulness +12 followers +5 vanished +1 wingless +1 immute +1 superb +2 prefixed +1 carrion +1 peradventure +8 ardent +8 prolog +8 inexperience +17 conjug +1 benefiting +1 recalling +2 dye +35 reverse +12 devoted +1 zelare +1 festivities +1 manifestations +2 warriors +145 difficulty +1 misusing +9 submits +6 official +1 resurrec +1 alleluia +5 flexible +6 superficies +1 misrepresentations +1423 many +1 unum +1 commensurable +2 improvement +10 ties +86 backbiting +4 severally +2 mingles +1 reviews +26 forced +1 agar +1 quia +1 religio +248 imagination +2 cxiii +34 egypt +3 plans +9 quarrelsome +1 plaited +2 profaned +7 gestures +1 timorous +1 whip +9 sayings +2 handing +50 farther +4 tradesmen +27 prepares +1 heavenwards +3 attacking +1 melts +1 refined +1 salutations +55 appearance +3 calumniously +8 aristotles +1 accidens +5 lxv +28 thousand +2 connecting +2 shutting +70 dumb +1 rails +98 enough +4 comprehensible +5 memoria +1517 account +1 hipponens +1 preconception +1 enamored +1 devotedness +28 fashioned +371 desires +2 novel +38 treatise +1 nearing +1 embalming +20 reckoning +25 valid +3 fights +10 deceiving +1 asp +3 rush +34 abode +1 vulgand +6 interposed +16 cant +6 damasus +3 constitutions +85 stars +59 imperfectly +4 fecundity +7 irregular +1 inattentive +1 impersonal +1 accustoms +1 assessors +3 lewd +1 deafening +11 sunt +113 loving +52 dissimulation +14 assuage +3 burthened +1 foments +46 processions +51 withdraws +4 trained +1 senatusque +71 abstraction +5 benefices +10 solemnization +1 caten +1 moles +2 eclipses +104 lib +15 glad +2 retrench +7 pressed +84 suffers +163 unable +1 suspend +8 securing +1 loads +3 dispels +3 vocation +1 snowy +15 childish +34 undivided +10 counterfeit +3 sacramentals +1 arithm +326 thought +2 department +2 servus +2 issued +1 triumphing +4 depositor +3 flocks +1 animus +1 unmeritedness +184 bishop +2 banishment +1 settle +4 courageous +2 plague +5 readers +66 probable +5 mansions +4 mathan +1 vipers +1 proba +1 workshop +116 affections +3 defence +1 impotent +3 gratuity +1 scanned +1 overclouding +152 intelligence +2 precipice +17 camp +3 bonifac +21 fulfils +13 concurs +305 suffer +19 dwelt +234 predestination +68 supposing +15 pretended +78 indivisible +1 awhile +94 heresy +1 fellowman +1 badja +10 wants +41 covetous +1 singled +1 hollows +2 admire +9 solemnly +3 endued +372 moves +4 bodied +1 womanish +4 sect +1 infinitive +132 five +6 venus +2 virt +1 scholar +2 fides +168 aristotle +18 announce +2 latitude +4 scientifically +1 jesters +2 revolution +1 belittling +34 nearest +1 filling +28 ranks +2 joking +40 purgatory +9 causation +8 affective +2 rhyme +1 washeth +1 smooth +1 rounded +196 pre +9 abomination +1 supernal +10 eunuchs +1 caresses +23 replied +1 entrap +14 ram +43 faculties +5 myrrh +1 tractate +4 beholds +3 gratify +1337 taken +23 contingencies +1 sorely +155 servant +5 ugly +343 divided +1 communitys +5 verit +1002 works +11 tormented +1 castaway +491 thirdly +11 neglects +2 elected +56 avoidance +17 fidelity +3 courts +2 tamed +16 abbot +8 participle +2 rotten +3 andrew +125 sanctification +21 utters +23 inferiors +1 cauldron +2 astronomical +6 theologians +3 haver +6 repletion +8 wondrous +2 porree +49419 in +3 flying +1 mare +1 shortest +57 zeal +33 erroneous +4 scales +4 swearer +3 license +2 comedies +1 silas +1 abductor +1 backsliding +1 speculantes +9 arduousness +4 strove +18 invoking +20 fearful +1 passer +18 discerning +6 gainsay +4 emperors +6 infidelity +2 simoniacs +334 lust +15 particulars +4 decimis +2 distances +52 married +1 braved +4 bedecked +3 blots +2 inducements +137 friend +1 ancyr +14 masses +1 lap +1 incentives +19 journey +1 exigence +5 audacity +7 immolation +41 forbidding +2 possid +1 unbeaten +8 hopeful +7 offerer +2 sects +1 subsides +1 regained +2 deposits +21 unseemly +1 rivets +46 consol +57 east +7 afflictions +27 flowed +1 superintelligible +1 matris +67 magi +73 precedence +1 prithee +10 condign +24 contemplating +45 commended +3 sisters +5 insight +5 corr +23 incorruption +44 delay +327 afterwards +1 hoardest +23 forfeit +7 davids +38 apparel +167 revelation +1 rarefies +3 instigating +3 rivers +1 oct +9 tunic +29 deems +2 lix +3 seraph +3 disproportionate +4 samaritans +1 iniust +1 fatal +120 beloved +34 aroused +1 latitia +1 endeian +1 scenopegia +86 duties +23 foregone +1 offsprings +7 caenob +2 crow +178 prove +24 quasi +23 interpreted +134 hearts +25 worst +1 strewed +3 superfluity +2 fleet +201 imply +1 fawning +10 adverb +67 accompanied +88959 of +1 delegate +1 calmer +1 senile +1 leander +2 intervention +6 aimed +2 malignant +2 testified +75 welfare +1 sacramentarium +1 diffusely +278 deed +2 backbiteth +20 capability +6 cooperated +9 inspiring +8 rarefied +1 drawbacks +1 dancing +3 coward +4 jezabel +1 arbitrio +3 conjectures +1 variability +3 shaken +2 gouty +1 absurdly +1 sacramenti +4 loans +8 captive +1 jehus +1 unlovable +1 discovereth +31 solitary +3 dissonance +2 presidency +262 separated +1 textus +1 infantile +1 intervenes +86 singulars +74 unwilling +102 sentence +10 gauged +46 loses +1 scandalum +22 sung +362 equal +46 subsist +16 xlvi +2 incommutable +2 spain +13 commendation +1 smitten +3 merged +24 wayfarers +98 ministry +1537 iii +14 fixing +1 sidonians +27 isaac +14 inducement +1 baptizo +14 forestalls +4 despite +104 working +167 legal +3 gibbet +2 divergence +874 sorrow +1 transcriber +194 innocence +1 hinge +1 quelled +1 annoyances +3 architects +1 whit +1 fervour +1 enfolds +1 phanos +6 glories +6 prohibit +3 nicea +3 enticing +1 undermines +145 therein +7 snow +22 persevering +2 unlawfulness +2 cxcix +5 market +20 assault +1 sentries +3 progeny +1 adulterii +1 interchanges +14 wander +1 laetum +23 vocal +1 whispering +8 nathan +2 losers +2 mercantile +14 attestation +40 lips +31 meet +8 betokens +2 awakened +18 exclusive +3 drought +16 defines +1 handsome +37 sanct +24 profess +1 vertere +38 buy +3 trove +71 committing +5 participations +1 statim +11 palm +7 ascribing +19 discursion +1 feature +2 gamblers +12 golden +1 herdsman +2 eliezer +1 uprising +1 precipitated +1 assum +303 orders +5 inspires +26 yoke +37 deception +7 physic +11 consumes +5 commendably +3 allay +1 conning +1 dardanus +6 distorted +31 schismatics +30 abide +2 tarried +6 negligently +26 incomplete +2 priced +1 reprehends +9 significative +9 consulting +1 impugning +9 corporeally +13 pagan +27 envious +2 finality +6 nestorians +69 idols +8 sells +783 might +1 arrogancy +24 numerous +6 wrinkle +246 disciples +1 prometheus +45 apt +7 suspension +35 scientific +104 manifestation +1 pantry +30 cursed +18 burn +2 dew +4 synagogue +4 authorize +4 dioscorus +1 propounding +1 paragraph +1 macrocosm +31 determine +24 check +11 brackets +1 proclamations +2 cautiously +7 inheres +3 forsooth +2 units +3 steeped +1 tillers +1 purge +10 pattern +1 processional +15 accompany +1 deficiently +18 duly +2 bestower +17 paulin +1 partitive +18 impede +2 daylight +2 expensive +99 lose +51 deceive +1 anythings +8 habitudes +49 induced +80 descended +1 hai +32 magnificent +3 disbelieve +48 adornment +2 flatterers +36 asserts +6 summa +15 invite +2853 life +1 palaest +1 mist +2 lawlessness +4 volusian +70 uttered +3 driving +2 gluttons +96 creator +1081 most +1 ligare +5 ice +3 inexcusable +3 putrefied +23 shapes +1 crude +4 demonstratively +1 cyrils +4 bench +6 nativities +9 fine +11 hardened +1 cess +10 consubstantial +15 commemorated +5 impaired +61 adore +10 bright +2 remarkable +51 consistent +2 centuries +425 rule +15 inquiring +121 lev +2 commenced +3 assiduity +40 throughout +1 trail +1 synonyms +6 formulated +2 extremities +229 chief +1 slumber +2 mathematician +69 predicate +1 vast +19 shouldst +629 false +1 recreation +3 impugn +1 exorcised +18 denying +1 samaritan +1 protevangelium +496 especially +33 leaves +17 resisteth +1 stupro +23 rooted +15 dipped +11 esau +1 spots +97 semen +2 revolted +4 tepid +26 julian +3 prophesies +3 laughed +2 rhetoricians +13 involuntarily +1 rebaptizing +16 coercive +17 experienced +6 logic +1 dice +2 graciously +4 welcome +1 basic +5 albert +7 inhere +6 internally +1 marcellinus +1 burneth +3 melt +1 goodly +5 atoned +13 school +2 adjustment +69 draw +5 undergoes +9 cogitation +9 consciousness +5 superabundance +23 cowardice +3 confuse +3 acta +4 unknowingly +1 menses +112 humanity +1 musti +9 exacts +1 imperishable +1 queries +4 chooser +2 ravings +1 invidious +1 capacities +3 confound +3 oven +7 significations +1 boils +234 clearly +44 dulia +915 directed +4 sights +1 factio +6 rouse +7 soweth +79 dove +1 zaccheus +2 deletion +1 liquefaction +1 hemispheres +4 consistently +7 hist +1 jejunii +46 wherewith +3 hoarding +4 quell +17 pleases +12 boniface +1 exactor +13 achieved +10 revere +7 insults +5 usurpation +1 cranes +5 vita +20 refuses +1 sameness +1 dudum +14 depending +3 detestable +8 progressing +2 heartens +1 krisis +7 comply +2 beneficiis +23 putrefaction +8 emission +3 appreciated +69 excels +2 benedictus +8 unitive +1 haply +7 score +1 hoofs +2 pervades +8 cooperation +20 gladness +1 ahias +24 hugh +97 innocent +12 therewith +1 officium +34 ordination +2 brands +81 founded +4 connote +1 traitor +2 accurate +1 unregulated +1 qualiter +1 vexilla +5 equation +35 spend +1 vicia +2 coolness +9 instructs +30 justify +1 contraposition +53 formless +10 spiritu +16 fount +6 misbegotten +1261 whom +1 emulation +2 amass +17 fools +7 exemplars +36 predicaments +1 corroborate +175 virginity +2 novelty +1 regis +119 conclusions +11 thrown +5 poet +3 ensures +4 families +1 beati +1 calumniator +2 hyperbolical +8 contradicts +2 hermes +1 bricks +494 souls +4 pregnant +2 anselms +1 communicators +4 sacr +1 nettled +7 contacts +30 sits +1 transports +43 confirm +2 allure +625 genus +1 silonite +8 lv +2 sodomy +1 noviciate +1 appertained +1 purging +1 plovers +4 devising +2 rapacious +1 accumulation +20 appertain +85 withdraw +14 penetrate +1 chronicles +6 reconciling +2 ousia +78 explains +9 jealousy +1 vere +4 typified +1 concupiscibility +4 wifes +36 election +1 profoundly +35 preference +2 undertaking +2 trumpet +1 sheltering +2 unius +60 accused +2 menis +2 maize +1 metaphysical +1 paschas +139 laid +1 acceptations +21 thoughtlessness +37 repay +16 stead +1 pared +2 episcopi +48 supposition +1 loftier +7 toledo +110 everyone +55 appetible +2 elation +71 want +2 exalteth +1 partridge +1 wretch +23 opportunity +1 sapiens +187 places +18 praises +201 generated +2136 sacrament +2 cv +16 morrow +75 sleep +3 profound +1 advocacy +4 shamefulness +618 takes +4 exhibited +1 divorced +5 bettered +1 mensurare +38 breaking +1 eupatheiai +4 waits +81 deemed +1 excelsis +7 codices +1 distraught +11012 man +30 breaks +133 o +19 guarded +10 temper +4 bees +49 lxxxiii +36 cursing +1 principari +1 peculiarity +181 hast +1 recollecting +1 speculo +2 typifies +2 footnote +3 calvary +1 mischance +30 lessen +4 eadmer +1 larceny +39 grades +1 syllogistically +271 debt +10 adversary +6 antioch +5 incorrupt +2 squalor +2 cxix +2 insomuch +1 panourgia +7 wastefulness +83 mention +5 worm +1 pearl +1 impatient +3 bids +10 partaken +583 mean +2 cons +3 consistency +1 intimacy +6 expel +13803 this +1 ninus +194 seeing +1 germans +17 blackness +3 expanded +1 unrestrainedly +11 attentive +103 source +11 preface +5 shave +1 emmaus +3 tide +2 adulator +27 morally +1 synon +27 preferable +44 pusillanimity +2 correlative +5 prevention +12 admiration +18 translation +19 induces +2 irreconcilable +3 assails +6 assertions +1 penitential +9 narrated +1 blindfolded +5 postcommunion +15 lender +18 lusts +14 purest +5 spouse +3 lucky +1 incessantly +3 admirable +7 port +53 meant +41 precisely +1 configuration +102 begin +9 moist +1 exaltedness +205 fulness +1 divideth +3 brotherly +1 tricks +1 gratefully +1 slighter +17 judea +2 assiduously +64 decretals +5 despicable +1 incitement +2 tragedies +1 nutritious +1 hedges +3 dios +1 combatants +1 immovables +11 mayest +6 premisses +4 lifts +372 become +9 watching +8 stating +187 meritorious +1 cogitare +10 befall +95 swear +17 transgress +144 profit +2 plenary +1 leveled +13 urine +75 attention +2 enhances +2 achaz +1 susurratio +1 repairing +2 inaccurate +1 exploded +1 appraising +1 phaed +1 kicking +1 bondwomen +1 viduas +1 vicissitudes +5 insinuate +2 limbo +6 incorrectly +674 various +1 hostia +22 similarly +5 unconscious +9 anoint +1 beelzebub +1 eventide +150 friends +13 foreigners +72 magnitude +94 sickness +1 rigorously +1 despoilest +5 withered +82 knower +15 faint +2 blissful +356 whence +6 vindictive +9 feeble +7 link +93 bearing +52 young +37 customary +232 sinners +1 zacharias +834 particular +6 fig +1 confronts +4 sixteen +8 abandoned +34 submit +3 purloined +6 heritage +186 capital +24 rays +1 matrimonial +1 transformeth +45 avoiding +21 bitterness +4 triumphed +2 feminine +19 permit +2 ungenerated +7 indivisibility +7 rashly +4 senat +4 dependeth +3 timothy +6 archdeacon +2 comradeship +1 scholast +1 isagog +2 rem +53 flattery +9 watchings +1 molded +4 violating +2 fatigue +5 presentiality +161 gospel +3 assuerus +1 superstites +1 severus +2 intentness +27 slavery +4 guests +3 jude +24 explaining +30 adams +2 consuming +42 injure +1 pontificate +1 gradation +8 contribute +4317 may +1 arles +1 siagrius +26 gotten +5 baptismo +1 ordine +4 closing +3 noisome +2 parabolical +1 blount +35 lifted +1 willingness +37 myself +2 retentive +103 joseph +18 rewarded +43 lovable +10 meteor +1 restorer +5 ineffectual +205 excess +1 convex +1 forelegs +160 granted +2 fertility +9 intelligibility +2 feigning +1 intercommunicate +343 never +1 groaning +2 liking +2 institutor +8 fictitious +6 liability +2 paradiso +4 enumerating +2 horace +1 fuss +18 formerly +15 parmen +1 themistius +1 candidates +1 thraldom +1 muddy +13 provokes +8 stages +3 raven +81 robbery +9 reproof +1 univocals +3 trismegistus +4 aloud +2 antonomasia +103 hate +17 reprobation +1 rotted +1 susceptibility +1 mendicants +1 compensates +1 sacrum +47 punish +1 mutter +1 conclusive +1 enlarge +47 condivided +2 cheese +5 eleazar +1 blunt +6 meanings +45 circumcised +208 substantial +2 endangered +1 regnum +12 declaration +1 bewitch +5 terminating +2 decimae +2 silenced +10 wickedly +21 newness +12 ignored +22 estimative +3 preparations +2 sorcerers +1 mund +1 foretelleth +5 transgressor +12 familiar +54 owes +39 endured +1 bonus +2 discreditable +1 erstwhile +1 imprudens +2 shirk +2 reserve +1 debates +370 faculty +2 calves +27 incense +1 degenerates +4 contents +5 annoyance +23 desirous +2 spider +8 moisture +1 subdue +10 asserting +1 oion +44 comprehension +8 passover +45 firstly +1 expiator +1 symptoms +123 eating +2 motus +49 hopes +13 glorification +925 work +1 tenor +2 transact +16 adequate +258 rest +2 imbecility +70 tenth +2 engages +1 tu +6 hung +1 exclaims +11 lombard +2 incarnat +6 justin +19 idolaters +41 effective +13 marys +106 rendered +606 articles +2 irzn +1 prerequire +94 prohibition +26 covet +17 wind +311 excellent +3 comedians +11 wilderness +4 wept +1 supervened +10 impresses +27 universality +15 instants +1 option +3 epiph +3 falcon +1 extorting +6 rectifies +3 ravens +3 survey +15 consensu +2 rioting +4 freeman +29 inclinations +25 appetites +38 ox +1 grovelling +1 creaturegal +30 devote +1 rends +1707 sense +2 faecal +29 ears +1 litigious +79 per +13 undertake +1 tribunes +9 impure +2 heralds +1 fatiguing +9 ascends +1 calculation +3 treasury +39 perceives +1 altare +1 derelictum +349 long +23 appeal +9 guards +1 prosolog +23 annunciation +2 temporarily +17 sphere +1 concludebat +69 certitude +3 beset +46 involuntariness +5 burst +210 alms +3 onerous +17 ambushes +609 children +1 lukes +2 hearten +1 holden +2 commences +301 heat +1 commutable +14 disobey +3 preferring +2 untamed +1 ss +8 development +7 restoring +1 hewed +12 statements +28 iron +5 allurements +1 economics +22 base +19 builds +3 swims +41 inheritance +6 bill +1 condict +1 decisive +5 raiseth +7 carnally +89 useless +2 collecting +1 rebuking +1 blue +5 clashing +2 desuetude +1 hares +2 bethink +1 unpremeditated +2 conf +1 fasten +14233 he +18 flowing +1 succumbing +20 parity +31 readily +13 instrumentality +9 ibid +32 safety +1 facit +78 foreshadowed +4 emanating +16 enjoyed +1 amassing +8 completeness +12 orator +1 gauge +30 injuries +6 examine +97 spiritually +28 calling +1 disrepute +22 omitting +59 pardoned +62 taste +6 neglecting +7 manichees +1 susannas +5 pressure +8 fullness +8 idiots +2 subdeacon +61 judas +9 reputation +8 mercies +5 regulation +472 well +19 sorry +2 sealing +1 praecepta +10 angered +3 aliquid +4 pledged +5 watches +1 explicitness +1 earn +2 sail +1 townsman +3 exaction +5 achieves +1 pollent +1 viribus +29 epist +74 tending +2 flavian +1 persistently +1 sunder +195 injustice +13 expiated +104 prepared +1 foregather +50 convertible +63 patient +1 honorabilis +3 cherub +175 back +5 recognizes +207 favor +2 incorporates +2 singers +408 virgin +9 maiden +2 unrestrained +2 sacrilegious +1 proven +86 corporal +11 urges +84 somewhat +1 stabiles +146 accord +128 acquire +2 smote +6 contr +1 joiners +1 praesumunt +1 debasing +40 epistle +56 latin +131 worse +3 aggressor +69 showing +6 wet +16 smaller +1 trent +3 notes +40 sacrificed +1 menial +17 season +10 weary +20 rested +3 modelled +3 sleepers +5 writer +35 seal +1 ruthless +12 unbecomingly +3 fortress +2 evacuations +65 actuality +1 attired +1 physically +5 exclaimed +3 bush +4 younger +20 activity +1 disdained +4 plenty +8 contrariwise +2 timorem +2 galat +1 bacchus +1 backward +265 interior +4 wantonness +1 medes +16 partaker +1204 habit +72 weak +1 succours +1 hedib +7 conditioned +44 reception +3 conflicts +3 wheres +8 tense +1 eastwards +6 forgetting +5 unruly +2 para +8 tolerate +15 praising +68 removes +63 disease +125 graver +44 transferred +1 glorys +19 invariable +1 interrog +6 adopts +4 clamor +2 unequally +2 emergencies +2 razias +1 essentia +70 flow +2 polished +1 reclaim +8 adhesion +98 element +4 leniency +2 disapprobation +3 statutum +86 borne +25 antichrist +1 viro +1 capharnaum +6 interpretations +337 hatred +2 assessed +11 doves +1 commensurateness +13 delayed +141 contingent +6 maidens +60 knowable +94 bind +1 eyewitness +1 incompetenter +9 appearances +16 naked +3 aeviternities +7 separating +8 simulates +2 delineate +3 inglorious +30 admixture +187 baptize +69 cure +2 witchcraft +2 bat +1 formula +6 prophecies +47 generative +1 condescend +9 arrogance +100 superiors +1 expecting +11 pertinent +3 cxxxv +1 betook +1 shaven +8 embodied +1 fallible +8 existent +2 neighborly +24 inspired +3 pardoning +392 derived +1 alienated +1 onias +1 parth +1 playest +74 pet +3 minerals +1 arsenius +7 vacuum +1 pestiferous +5 actors +12 competency +4 ensure +8 consented +3 betters +4 significatively +6 respecting +5 thwart +16 contemplate +12 monasteries +8 renewal +1 valentinian +1 enfeebles +40 constancy +4 discourses +2 rood +4 vague +1 abducting +1525 respect +1 rawness +11 haeres +2 trickery +7 succeeds +56 hurtful +33 secrets +101 xix +29 countenance +2 splendid +35 damned +3 rousing +9 speculation +1 nicety +2 supposits +20 nocturnal +5 contemptible +13 associate +5 transcendental +4 declineth +11 vile +647 new +3 terrified +7 dispenses +711 towards +249 danger +3 sincere +78 pardon +3 invention +1 jhesu +1 charles +38 somn +1 incitements +1 challenged +26 visibly +27 meek +4 graced +5 harlots +26 fed +1 seleucianus +17 pernicious +11 repress +3 horeb +2 nepotian +1 conditio +2 quinque +3 ambroses +1 neomenia +2 infringement +2 encountered +1 unpacific +3 bk +2 intoxicants +19 definitions +8 beseeching +85 relative +1 negatives +2 smells +43 compatible +277 live +2 obscurum +844 right +2 frozen +1 mopsuestia +1 cajole +1560 shall +11 unpleasant +1 undeserved +1 chokes +1 uneven +11 cod +1 subtler +312 metaph +2 debasement +3 alterum +2 college +2 holofernes +60 obeys +14 emotion +58 determination +72 avoided +31 assents +6 voluntas +1 baking +3 dispel +2 executioners +281 dignity +1265 however +10 debts +11 delighted +4 blasphemous +1 disinherited +1 inconsiderately +2 feasted +1 replaces +14 politic +95 hot +2 january +5 behooveth +34 diversify +1 squandered +8 defileth +5 furthest +5 sensibly +1 achior +1 qual +1 theos +1 senators +1 parma +11 analogy +20 resulted +91 lives +1 slenderest +1 regrettable +9 criminal +393 lower +25 reproved +2 intently +275 eternity +15 pictures +3 vigorous +2 perceiveth +7 xlv +1 emits +2 lawless +8 prophesying +6 chastisement +18 vehemence +5 establishment +1 untaught +25 amounts +2 predial +1 breakage +30 ruling +27 foretell +17 prescribing +7 experimental +185 theft +1 absalom +195 spoken +10 relief +13 consummate +2 youthful +6 multiplies +7 lightsome +36 troubled +4 actuated +5 instructors +14 happening +7 indistinctly +1 curiosa +1 irremissibility +70 disobedience +1 valuing +7 humanized +2 overlooked +14 occult +14 unmoved +1 clare +1 creditable +1 starch +1 ars +4 portions +23 hosts +3 enslaves +21 struck +6 partial +48 relationship +6 aristocracy +3 husbandmen +2 depraved +7 signing +968 angel +1 fateri +159 willed +32 allows +1 backs +1 pallor +5 instanced +41 seduction +31 linen +2 irene +37 army +17 foreknow +61 tell +7 pretends +5 absolves +21 befit +2 inflow +11 deference +1 counteracted +6 weaned +2 straitened +1 arrogant +48 prepare +1 blasphemously +1 limp +1 iniquitously +10 luminaries +14 thankfulness +7 betrothed +1 fuscus +2 hang +1 dissolves +1 plebeians +1 helplessness +1 leand +32 uncertain +3 thereunto +15 persuaded +2 crieth +20 idol +5 uselessly +2 varying +1 disaccording +1 nominal +1 legitima +1 abduct +8 surety +8 wedding +2 rebelliousness +1 transversely +1 censured +1 widespreading +1 requite +14 intensified +5 abstained +4 inquires +71 crime +2 headstrong +1 fruitio +1 shore +9 ministration +80 powerful +1 managed +176 abraham +1 debitum +1 reluctant +1 geth +248 hypostasis +3 adoring +29 ratio +65 feet +3 groan +3 petty +15 blessings +1 suckling +7 harvest +9 mic +3 ecclesiasticus +1 bespeak +1 vivid +7 acquainted +1 cornelia +1 extinct +2 scabbard +18 appoints +18 rebuke +1 incar +10 playful +4 anal +3 commerce +1 concretion +1 spiders +2 suggesting +15 mixture +1 mixes +3 ebb +5 officials +45 platonists +4 aggregated +1 transitive +2 upbraided +5 damascus +4 task +2 volunt +1 arianos +59 revenge +3 thomass +4 commuted +1 infringing +6 creators +3 mulcted +153 declares +1 shorten +1 caere +1 ungratefulness +21 decret +2 diffuses +53 silver +432 gives +42 informed +3 resume +15 corrected +2 incomprehensibility +59 represents +8 strifes +149 apart +1 pecora +2 alluring +15 ordaining +204 weakness +3 cook +11 sleeping +1 incautiousness +4 futile +8 risk +1 eyelids +3 perceptions +1 seconding +8013 was +1 beelphegor +1 antichrists +6 throwing +1 eblouissement +4 measurements +2 latrone +147 evidence +1 superexceeds +82 obtaining +8 kindled +10 psalms +3 vileness +2 repeating +15 repaired +10 learner +44 asserted +9 leaven +1 cx +2 paschasius +4 frogs +2 mentis +8 threats +2 acquaint +4 loathsome +417 vision +32 mount +70 freely +1 tou +1 inn +2 misdeed +479 opinion +52 recourse +13 tradition +36 thanks +15 leisure +204 extends +1 convoke +1 worthlessness +31 dry +11 sakes +43 function +52 begot +8 roused +9 adherence +3 late +1 eloquent +1 conficere +11 sender +2 publication +2 nail +3 onward +2 plagues +1 defection +36 shun +12 pro +1 quill +2 debating +1 mill +131 diverse +2 fatherhood +45 disturbance +1 ccxlviii +3 vigilius +2 exorcists +14 quit +1 lazaro +1 dominant +11 ardor +12 apostate +80 subsistent +3 perfecters +1547 lord +37 deprives +8 renounces +1 aggrandizement +1 minerius +54 sorrows +931 intellectual +1 dispossession +1798 angels +1 intermingling +1 offertory +1 paraphrased +11 placing +7 bearers +3 meddling +1 impoverishes +5 drinker +4 unbefitting +1 protector +5 hasty +610 counsel +35 obtains +1 calumniae +3 epistles +3 prostitution +22 tells +3 syria +2 theologica +68 attainment +3 faulty +1 inverse +3 concretely +29 purification +971 always +5 volusianum +1 sedate +2 oweth +2 mild +3 sighs +3 inflowing +31 prays +1 reviles +15 excelling +31 broad +2 roar +2 baneful +31 chaste +16 brutes +18 kills +1 leathern +367 prophecy +801 active +2 synaxis +24 proportioned +6 harp +2 anybody +3 scorning +1 penally +17 grape +1 overshadow +141 saved +2 unbroken +7 felicity +2 complies +118 prescribed +4 firstborn +60 years +1 laudably +2 accidentals +17 petrum +3 clarified +2 accustoming +1 misshapen +15 thereon +1 puff +3 pythons +1 wearies +1 counteract +6 demonstrable +2 transparency +2 flogging +10 sway +47 pronounced +45 identity +220 st +171 degrees +48 heavy +1 heightened +4 jester +3 react +1 seekest +79 infinitely +3 compounds +1 fortuitously +1 cler +1 undeniable +1 emanations +1 communities +5 condensed +9 inability +1 velocities +1 uttermost +1 painless +2 presided +38 endures +36 governs +7 hail +1 unsullied +3 goodnesses +5 evod +3 tasting +4 bid +5 constantine +1 ruminants +1 lighteth +5 cancel +8 sevenfold +159 ill +1 sounded +77 se +13 undertaken +1724 truth +4 insure +1 allotting +33 wear +62 passible +8 lxii +1 vouch +1 administratively +39 endurance +225 reverence +86 remained +9 littleness +30 satisfied +2 ignominious +5 comprising +1 pythius +14 offerers +3 miserliness +15 hebdom +26 circular +1 assumptibility +499 several +3 musician +2 haereticis +51 sword +3 despairing +28 cleric +1 excision +160 community +3 contentment +56 partake +1 theorems +21 nov +4 fins +1 forwarded +15 generations +1 unlikely +1 skinflints +6 vanquish +3 invokes +1 clashes +2 sixtus +18 enunciable +2 favorably +7 causally +4 infamous +1 hortatu +1 ignoring +1 founder +2 jehu +1 filtered +116 continuous +3 prejudiced +13 occasional +31 xxix +11 maximum +1 insulting +9 corruptions +4 wisdoms +12 pelagius +383 essential +1 suspending +4 denominatively +1 insect +3 lasted +29 midway +1 renatus +11 fury +2 ceres +2 la +4 vespers +3 stores +1 transcending +3 impersonating +6 reunited +11 eusebius +6 upholding +1 editorial +1 contaminates +3 dishonors +1 collapse +1 inflexibly +2 crows +2 abstention +6 lessening +798 up +1 quemdam +1 indigentiam +1 commandest +5 bag +21 xxvii +8 repents +67 lacks +1 riotous +3 liberation +335 relations +7 attends +1 quoties +5 sanction +18 sexes +33 issue +2 ap +5 whichever +1 raw +2 erecting +9 reproached +1 connubial +1 circumscribe +3 didot +6 temperaments +1 defender +3 mispronunciation +55 correct +3 emulous +3 nebula +907 bound +16 succeed +1 swimming +2 renewing +4 remitting +1 beseeches +11 minority +4 blindly +18 architect +7 maintenance +10 vested +2 sponsus +1 viatoribus +111 uncleanness +2 discords +40 canon +8 counseled +22 beg +2 pudor +1 longevity +6 perfectible +1 conglorified +14 simplicius +1 sweareth +73 devils +38 inquire +36 aggravated +12 furthered +15 prompt +2 luxurious +3 diurnal +2 seashore +15 rebuked +1 dishonestly +3 subverted +1 k +1 investigating +5 presides +1 recount +1 inventus +2 apes +1 tournaments +9 suchlike +103 obtained +4 controls +30 vary +55 lawgiver +1 apyrokalia +2 acuteness +154 altar +5 rapine +3 sicknesses +27 shed +5 sympathizing +9 thirteenth +8 checked +21 attack +2 lawsuits +42 ascribes +215 prophets +79 integrity +28 offerings +9 immuted +4 improved +7 serveth +3 palace +38 regarded +8 aloft +69 application +21 indwelling +26 benef +1 rouge +21 superadded +81 declared +1 martianus +15 falsa +4 categ +5 repulsed +101 competent +2 implicated +3 tapsensis +2 quoniam +7 perpetrated +191 denote +1 fragile +1 authoritative +25 killing +728 parts +3 alienation +1 foreknowing +1 forswear +6 accustom +18 cognizant +8 imprudent +127 perhaps +6 frail +8 myst +23 poenitentia +34 outset +5 plate +138 ultimate +63 plurality +30 consummated +1 businesses +15 burdened +1 abated +12 deceitfully +1 deigns +41 infirmity +2 concentrate +1 stammer +10 simpler +2 verum +6 involving +10 hebrew +1 transfigure +5 plays +1 speculates +2 waves +24 widows +1 naaman +49 covered +6 presently +5 offereth +88 writ +3 allegory +5 predecessors +4 excusing +1 wrongful +5 expressively +20 posterior +79 reasonable +2 excretions +6 sprung +1 patterns +28 anathema +378 able +1 foresworn +1 furvus +1 humo +31 dissolved +25 token +61 changeable +36 xxxiv +2 redounded +2 disagreeing +76 begets +3 eudem +3 almsdeed +2 exceptions +2 arrange +4 rider +1 priori +1 burglars +1 osprey +1 undaunted +1 everlastingly +2 truest +1 manuscripts +75 praised +51 ascension +17 usually +2 feelings +10 impute +15 introduce +9 expelled +6 infirm +1 loyally +2 sergius +2 macedonius +10 comforted +24 generating +18 rhetoric +1 fling +12 stretching +441 concerning +1 surgeon +8 accomplishes +2 swell +2 inquisitive +5 domain +1 pricks +1 diagram +1 cemetery +1 ache +53 compelled +9 hireling +19 wage +29 served +31 plural +1 soundly +1 sentire +13 practices +1 extrajudicially +12 sends +2 strenuousness +5 likens +9 justifieth +1 decreeing +14 testify +19 persuasion +1 soaked +151 ezech +1 inimitable +3 maximin +3 copious +3 blacken +1 avers +1 supplant +3 supersubstantial +1 exspectare +2 overwhelm +10 virtuously +22 procure +1 strikingly +5 counsellor +4 girl +3 inhabited +5 languor +3 fleetness +1 meditates +50 adopted +42 matrimony +7 storm +640 principles +1 untraversable +3 perseveringly +13 assumable +23 strangers +3 wilful +17 tribes +18 safeguarded +8 rhetor +1 pestilential +14 regenerated +1 ambitiously +7991 so +1 greenness +5 expelling +36 purposes +144 super +2 gluttonous +1 inapplicable +19 signate +108 perfects +1 aneleutheria +8 governance +5 raca +1 trip +28 titus +3 weights +1 sufficientiam +3 shrewd +2 abhors +2 readier +1 raptores +15 slays +4 giezi +278 seek +1 wreaks +166 visible +11 xli +1 lastingness +4 faithless +111 accomplished +5 consid +1 stadium +43 liquid +3 misericordia +16 contrasted +50 deformity +1 mixtures +8 aggregate +5 pervert +115 lover +12 lxxxii +1 babbler +1 disciplinary +1 fornicated +174 angry +2 syllables +31 argue +10 outpouring +4 striker +1 recommends +1 anton +3 handmaidens +4 meeting +251 concerned +1 praesumpt +4 paten +1 intermarriage +448 luke +57 operating +4 tries +2 overpassing +1 denizens +1 vulgthose +1 dishonesty +58 beget +7 planets +19 individualized +44 defective +2 injunction +7 leavened +2 gilbert +2 solers +13 creating +2 commanders +10 aught +1 aboundeth +40 soldier +62 imprinted +9 disbelieves +1 dart +3 tissue +1 talkest +19 immutability +31 verse +2 slandering +208 lost +51 ground +2 deflect +2 subdued +2 condone +6 tyranny +1 simoniac +2 ambrosiaster +1 achis +14 yea +1 fodder +1 porousness +127 whatsoever +136 root +16 period +5 josh +3 exciting +1 licitly +1 plots +1 saluting +1 petil +10 underlies +21 conjugal +1 shamelessly +1 french +5 virginit +3 rewarding +3 cii +5 rarity +958 moved +465 remains +96 temple +1 despoilers +13 injuring +2 squanders +49 helps +2 scorner +44 weal +1 parvuli +39 imperfectum +2 equaled +2 nutriment +1 anteriorum +19 doors +31 differing +3 sacrificeth +87 wickedness +2 acceded +1513 principle +85 diminished +1357 second +13 ease +1 subdivides +12 irregularity +3 assignment +1 crushing +5 measurable +9 magdalen +2 ignite +5 adorning +1 foetal +1 acquitting +48 deliberate +2 drags +40 foremost +5 cloudy +3 shellfish +155 adultery +1 disseminate +24 andronicus +20 solemnities +54 limit +2 trusted +300 vulg +1 precision +2 habac +5 recovering +1 harps +6 collectively +290 delight +69 brings +1 confiding +6 adaptability +1 ccxlvii +1 aristocratic +1 astuteness +1 hadrian +3 exigency +1 avit +1 loyal +117 extrinsic +5 augustus +1 dialogue +3 operibus +1 suppressing +1 infringe +7 jonas +13 telling +3 fearsome +1 idiognomones +30 equity +1 rebaptism +1 marcoe +4 varro +36 attached +1 clefts +19 devised +4 facilities +4 divining +2 obsess +23 abuse +32 expounded +1 cerinthus +6 nicaea +2 pitied +1 expeditiously +1 dual +2 participators +1 agag +145 color +2 warp +29 xxxv +4 spices +9 spontaneous +121 omission +18 running +2 aggressive +51 locally +6 tastes +6 steals +12 thine +147 sanctifying +1 inefficacy +8 nought +3 bade +21 thieves +105 middle +3 mastercraft +5 nicodemus +34 adjure +36 height +4 torrent +1 preferably +3 couch +3 abused +18 outcome +138 commands +1 newcomers +8 epieikeia +1 igitur +16 indemonstrable +13 belly +436 imperfect +1 jestingly +1 peasant +6 distracted +1 awaken +1 paralyzes +19 provision +41 vowed +15 revived +5 licet +43 mankind +3 pietas +5 keepeth +1 cesarea +25 distress +12 soft +1 reliability +292 idea +5 consults +2 corrept +607 speak +9 diversifies +2 disobeying +10 music +147 falls +16 forsaken +43 preferred +2 concentration +5 breviary +1 optim +1 exhale +1 rosier +1 transfig +2 besiege +29 mingled +3 copies +1 frighten +44 succor +4343 act +27 eve +9 allied +16 joyful +1 heaviness +4 afflicteth +1 minstrel +1 magisterial +6 fearless +14 sing +3294 de +2 solemnizes +1 ordinationes +10 facility +4 knowledges +3 commemorates +95 drunkenness +151 short +23 observation +10 imperf +3 hound +5 liberated +1 battering +1 eclipsing +2 professor +46 easy +1 presbyteros +32 supplied +9 nearness +7 wounding +1 lucam +56 perpetual +3 poets +1 artistic +12 mountains +8 displayed +1 saporem +1 scatters +307 observe +3 perspective +8 heap +5 repels +32 field +1 fluctuates +1 livest +57 belonged +3 ratified +1 vaster +1 articulus +1 repub +4 grosser +47 chapter +1 firstfruits +4 necromantic +4 retention +4 assailant +1 avitus +1 defectible +10 joel +1 benefaction +4 endangering +1 fisted +1 spiratus +1 ink +2 vitiates +79 ordinary +1 vigorously +1 twist +1 lookest +1 registr +44 athanasius +1 ebulia +2 perishing +3 pities +84 foundation +14 presiding +1 simulated +1 potions +4 foreigner +3 bvm +6 fancies +1 munificence +1 attribution +1 maced +4 abusing +11 indifference +2 tallies +118 cognitive +4 synecdoche +1 conventicles +73 inclines +2 helvidius +2 ladder +84 tempted +285 inordinate +4 contributes +4 mistress +51 immutable +37 compare +1 cxv +6 reverenced +10 borrower +18 decreases +30 domestic +9 sequel +9 tokens +4 unmixed +1 accusatorum +20 expansion +2 pax +1 unheeded +114 mass +7 ordinations +1 rp +205 formed +7 thirsty +39 affecting +1 soften +3 edifying +7 unions +1 navel +25 descendants +15 lovers +29 separately +4 carelessness +229 natures +4 pull +7 ensured +6 troubles +4 shuts +24 mighty +2 philistines +298 little +3 measurement +1 passione +1 froward +1 hilarity +16 conjecture +12 privations +3 digestives +10 involved +1 instincts +11 slip +23 detail +1 ordure +4 lavish +9 conveniently +2 animalium +2 smoothness +18 primal +6 undeservedly +1 spilled +23 occurrences +3874 those +3 scriptural +1 madian +1 overcometh +6 torpor +68 ceased +373 contemplation +71 incontinence +5 defeat +1 laments +1 thirsts +1 ejected +3 fulfills +105 wealth +247 diversity +2 omn +9 fierce +7 foresaw +356 cf +9 presupposing +1 shielding +8 reap +2 disparaged +3 aided +265 division +11 kindly +16 services +1 transpiring +5 thiefs +1 collating +2 enigmatical +1 sacrando +3 wards +2 ordainer +2 mart +1 attenuation +21 treats +3 assure +9 pharaoh +20 indifferently +1352 baptism +16 courage +1 hailing +7 pandect +8 narrative +1 innovations +9 remissness +29 social +4 clxiv +12 deified +1 thorny +13 smelling +22 customs +3 thoughtless +2 charging +8 deposited +1 valerium +8 nicolas +7 joins +698 understanding +295 avoid +89 went +13 repetition +2 exhalations +8 immoderation +63 near +13 loose +1 perisheth +1062 whatever +2 hosanna +1 nec +1 mutilated +3 rebate +23 fills +160 opposition +21 multiplicity +50 separation +254 assigned +3 wedded +1 inopportune +4 temerity +1 eagle +4 woes +3 crucifixion +19 affirmed +2 evacuation +2 adamant +67 oblations +110 unclean +10 impetuous +1 corinthians +3 guarding +13 fraudulent +2 simil +8 copy +6 separates +4 agencies +112 complete +1 stammerers +42 hard +1 analytical +371 manifest +1 leprous +529 together +29 lays +1 worde +1 sacring +2 modifying +2 shabby +3 prerogatives +3 deceptive +1 cxxii +3 poenituerit +11 providing +1 insignificant +2 wasted +1 chaire +6 defrauded +4 godchildren +1 unanimously +28 ark +1 aletheia +60 potential +1 hearkening +3 professions +3 speakers +2 strikest +942 alone +4 scrip +145 matth +3 dictated +9 approves +74 member +1 evergreen +135 precede +1 oftentimes +1701 nothing +7 calleth +121 incorruptible +1 impudently +1 butting +4 velocity +2 coursing +1 regulator +117 appeared +5 n +5 transmits +2 cruce +46 disturbed +8 manly +68 enlightenment +1 sauls +194 inward +13 propagation +1 combining +2 wheel +1 journeyed +1 reapeth +5 lied +2 michael +4 correspondence +22 conceives +2439 yet +10 operable +4 closes +1 backed +26 incite +76 intent +21 conversation +13 flatterer +8 vomiting +20 effort +52 writers +1 magis +1 factibili +5 legs +2 rebaptize +40 possessing +2 definable +1 clxxvi +359 vii +5 compacts +126 share +1 discursiveness +21 wall +8 adjunct +3 protecting +5 infidel +115 nobler +5 historical +8 psalter +20 hypocrite +6 mitigated +2 tent +275 thereby +4 op +148 ye +1 terminations +1 glorifieth +16 consecrates +1829 son +26 contrition +19 afforded +18 corrupts +1 undoubtedly +1 unfittingness +3 methinks +58 passing +1 cutteth +12 probability +4 micah +1 lincoln +1 hamper +58 solicitous +1 loosened +3 plucked +91 next +3 caesars +99 superstition +13 quis +4 maids +1 conscript +7 transeunt +31 denunciation +20 morose +2 commensurated +2 optional +1 magnitudes +6 attainable +137 temptation +1 paenitentia +2 caring +15 interval +6 juda +13 marks +3 chanaan +26 dispositively +1 righted +46 martyrs +5 lowness +4 precluded +20 burdensome +1 natur +1 jejunio +552 term +12 sentent +1 arctans +113 plants +1 sincera +8 column +33 bitter +375 held +2 oxford +1 formata +2 obfuturum +2 predestine +4 fringes +32 compound +12 impious +3 eighthly +3 hurry +17 warfare +1 impulsion +1 asynetoi +1 rag +12 reprehensible +1 curam +41 hates +4 predestinate +98 derive +6 transmuted +3 darken +52 dreams +24 incentive +128 multiplied +1 exiled +1 communicateth +28 carefully +21 burned +11 cxxxvii +4 uplift +8 unintentionally +1 ineptitude +1 seducers +1 determinator +1 patiens +6 persists +1 privatum +1 boats +18 uplifting +5 crucify +376 devil +11 edifice +21 unnecessary +131 paradise +5 intervals +14 carrying +4 politician +4 affluence +16 prosper +1 question +5 transubstantiation +1 pompon +3 relapsed +75 masters +1 g +239 formal +8 balaam +1 imminence +21 room +1 indemnify +3 hall +45 dwells +51 ascend +46 washed +6 appeased +1 durable +8 instituting +12 beneficial +6 delicate +1574 place +56 commentary +9 fosters +3 censurable +59 wonder +4 inchoatively +1 outsteps +1 hinted +3 outlay +1 instigates +48 till +82 ignorant +1 conington +3 tested +3 earned +477 implies +1 wither +2 applause +1 obsecratio +9 ornament +147 idolatry +1 damsels +28 hungry +6 talent +7 claims +2 suppliant +7 decem +6 reg +1 humorem +5 arithmetical +2 insists +1 tuis +1 unfolded +1 servers +4 refreshing +2 monstrous +37 felt +9 vehemently +10 cleaving +1138 manner +3 wondrously +3 chastise +1 unburied +1 predetermination +2 statutory +102 process +1 celebrity +1 punctures +288 phys +2 vanities +2336 every +9 predicament +2 vellet +3 mule +2 equitable +15 pleading +6 site +1 moralia +1 stun +70 uncreated +1 meriteth +3 frees +1 unforbidden +1 recoiling +180 eg +1 stake +3 blackened +7 cccli +2 mending +2 chants +901 evident +1 voting +3 breathings +14 losing +4 exhortation +41 dictate +4 jonah +1627 regards +2 sift +5 perverseness +212 pass +11 swallowed +3 exhibit +1 moroseness +1 azarias +12 blemish +6 urging +1 stuporem +3 poorer +72 transgression +6 shining +1 stomachs +2 brawling +6 saves +7 knowest +3 wellbeing +2 nepot +29 permitted +2 equalizing +8 simeon +5 deplore +2 debtors +88 prevents +6 thelesis +10 crafty +115 xi +3 fervently +1 proverb +1 praiseth +4 earthy +1 countryman +21 incurable +1 westward +2 loedit +10 stop +7 condemning +1 shoots +36 answered +1 shipwright +7 dominates +1 quibus +98 perform +1 haeresibus +2 mastered +1 wearying +25 deliberating +14 summit +28 partakers +13 allowing +4 irascibility +19 hallowed +3 unmindful +14 relieve +2 casulan +1 summed +2 imp +1 fabricate +1 ammonite +8 liar +76 begetting +1 roboams +1 insensibly +5 associates +2 sagacity +4508 no +4 shaved +6 lxxiii +18 treatment +2 manifestive +8 editions +4 interference +74 filled +30 modes +20 company +1 reaps +1 bersabees +1 wariness +2 crave +69 behooved +2 weapon +9 pouring +3 cxx +1 scurf +3 empire +4 disdain +15 vigor +4 overthrown +15 handled +19 adorned +1 procellarum +1 lina +568 ps +3 strongest +249 magnanimity +7 heavier +198 instrument +1 unabashed +8 grammar +1 lag +5 imprinting +1 stoning +2 complains +25 misery +1 revenges +10 recovery +2 communicant +3 prepositivus +1 predominance +1 clothiers +1 winketh +2 awe +1 pondere +15 repaying +1 solecism +83 sermon +76 support +3 impels +13 incorrect +36 paying +98 correspond +2 behests +17 disturb +27 runs +390 vices +1 sanguinis +1 supplieth +1 surmounting +60 cometh +8 arisen +4 offence +1 ails +12 purifying +328 your +1 caesarium +3 demophilus +1 mounteth +1 homin +4 income +10 absorbed +2 pilates +244 possessed +47 applying +3 nice +13 coition +1 bardenhewer +1 intents +1 darker +7 heroic +4 sows +212 personal +1 concupiscere +1 bethsabee +1 germination +2 cellar +5 preponderates +3 unbridled +1 rids +77 invent +6 hardship +14 river +6 recovers +4 longed +1 retrac +1 paints +4 adorations +7 remarked +2 doubting +3 thieving +1 preceptors +1 intelligere +1 anthropomorphites +16 glorify +4 inflexible +3 obviate +2 skilled +1 circumstat +9 revenues +33 garments +7 contingents +1 unbent +37 fool +1 millstone +1 patens +64 d +17 associated +226 sacrifices +1 requirement +1 mourns +82 corrupt +3 hare +2 generals +693 having +77 shame +712 four +32 argues +2 anticipate +5 barley +1 domineer +16 reflects +4 pearls +16 eats +1 contumeliosus +8 treasures +3 depute +35 worshiped +1 whitsunday +2 ennobled +1 wanderer +1 conciliar +2 predictions +1 unrestraint +1 trustworthiness +8 successors +2 haereses +2 beatification +1 lowers +1 rots +6 awaited +5 quickening +24 nights +41 perverse +5 enlighteneth +4 bite +2 lapsed +1 foursquare +8 est +31 pastor +1 soothsayer +6 resplendent +1 tightfisted +1 ingraft +206 bear +442 wills +6 impetrating +20 approaching +1 spender +1 habet +1 relied +2 wert +1 cxlvi +3 hale +5 confidently +8 desirability +1 origine +22 cares +130 enjoy +2 lxix +20254 but +2 stationary +66 alteration +7 innovation +12 pretext +2 snatch +11 fourteen +1 wakefulness +4 feeding +6 habituated +17 illumination +1 amusing +157 contraries +260 fathers +2 furtherance +6 pronouncement +4 thinkest +10 hyssop +112 maintained +5 dims +43 sorrowful +1 disinclined +30 gone +7 testimonies +1 sadden +3 timaeus +1 sanctifier +16 spir +78 formation +17 transformation +4 lye +4 defamation +15 impart +1 inserts +20 whereunto +2 lonely +2 spitefully +2 plotting +2 faithfulness +3 travelers +1 trespassed +927 away +1 dulcit +10 restlessness +15 signed +2 circumlocution +5 captivity +1 auspice +1 inhabitant +23 arouse +61 sudden +2 jubilee +12 satisfies +1 fantur +1 lameness +5 attach +61 outwardly +5 mouse +1 apud +8 validly +1 salutaribus +4382 has +2 examining +1 outcry +2 dutiful +1 april +81 confer +262 oath +2 retard +73 notions +1 assyrian +1 miserendi +17 delivery +2 minimum +1 theophilus +2 loftiness +275 besides +2494 certain +2 ratiocinative +6 hypothesis +71 organs +8 estimated +1 seething +1 seriousness +18 transparent +8 consulted +274 chrysostom +2 implores +1 eusynetoi +4 displeaseth +196 expressed +1 traditional +88 named +8 scurrility +5 disapproves +1 trembled +259 quoted +1 illiterate +125 suffering +1 insinuation +2 emerges +4 unfrequently +198 king +4 belittles +2 biped +668 agent +1 ungainly +5 derider +7 explanations +21 elect +10 connaturalness +7 pounds +8 captives +3 arrival +1 reckless +2 chrysologus +8 merchant +26 holies +2 divis +3 verbally +83 filiation +1 sheer +24 gospels +2 executors +1 discretive +18 splendor +3 conviction +57 manifestly +3 redundance +5 enforced +1 mightiness +12 executing +26 maketh +1 project +56 beautiful +3 farmer +1 exquisite +1 preferential +16 vessel +2 crowning +1 julianus +12 conquer +16 distributed +13 habituation +1 inheriting +19 forfeited +68 schism +5 waiting +15 stick +1 enjoins +30 offend +13 fourteenth +5 debar +18 bestowal +8 duplicity +1 smiled +104 distinguish +18 demanded +1 decease +1 disquietude +1 largely +3 arousing +1 row +1 rudely +1 arche +2 smile +9 facere +4 equability +3 refutes +173 joan +1 regal +18009 which +2 sinews +145 promise +1 berenice +2 transmitting +2 pathe +2 glorying +4 excelled +5 directions +16 pilate +61 retain +1 consecutive +1 ischyrognomones +1 knock +77 figures +3 howsoever +1 allegations +29 drinking +30 supply +2104 subject +5 encounters +21 externally +4 sixteenth +2 amid +17 comfort +3 disperse +1 allot +55 desert +1 ennar +5 befell +2553 at +2 incurability +2 needle +2 adv +3 document +5 openeth +1101 three +13 overcomes +2288 form +13 define +97 aptitude +1 penetrative +1 censure +12 preparing +31 dulness +1 regula +7 nerves +4 devolves +10 efforts +1 instancing +6 withstanding +5 earnestly +2 administrators +6 valentine +2 festivity +4 mutilation +1 glides +7 tediousness +3 sufferers +3 hills +11 haste +67 mutual +20 usual +12 vanquished +150 suffered +1 worries +122 correction +2 celsus +20 foreknew +6 characteristic +16 cities +1 urinary +17 penitents +1 boule +2 pleb +1 senatus +1 banner +41 euboulia +1 bursts +15 behaves +60 condemnation +3 furnishes +5 arm +4 orosium +797 sensitive +18 gratia +71 moderate +1 helcesaitae +1 ebionites +1 jot +1 apartments +1 moistness +7 readiness +7 saphira +2 durations +1 marcel +2 dint +75 metaphorically +1 couldst +1 heneka +28 implicitly +13 forsaking +1 renouncement +12 adduced +1 eligens +145 earthly +1 lingering +1 discoverable +637 religion +2 apostatized +1 ibis +1 honeste +811 properly +142 douay +1 contemplations +3 incensed +6 ablution +4 homo +11 admonishing +2 wronging +13 wounded +7 computed +211 making +1 capture +6 relatives +26 holocaust +1 definiteness +98 sadness +2 suffereth +4 pierced +1 indeliberate +3 crops +2 inform +75 miraculous +1 felix +4 sinking +1 uncloven +7 legislation +2 mocker +4 privileges +4 inaugurated +19 denial +2939 objection +1224 very +78 rose +3 xcvi +599 vice +1 retributio +2 disapprove +43 emotions +1 eliminated +1 unifies +6 perishes +8 william +9 amen +1 outpourings +1 extraction +84 transmitted +1 resolves +4 ruined +1 connects +3 linked +6 uncircumcised +1 praebendas +71 star +26 obeyed +1 rear +2 verge +1 fatten +1 salvator +2 diabolical +5 stole +9 provoking +1 gushing +1 pilgrimages +1 keepest +1 overtaken +2 saliva +13 deluge +7 voto +5155 does +1 unapparent +5 samaria +6 stirreth +17 dogs +3 divinat +218 hands +1 animality +133 priesthood +6 cubits +9 fifteenth +40 manhood +1 hopeth +19 confessing +2 heren +2 maundy +1 cerei +913 passions +6 sicut +6 rectified +3 wholesome +2 uncleansed +19 salutary +51 efficacious +5 picture +1 veget +1447 whereas +25 honorable +8 confronted +446 hom +2 lxviii +4 luster +22 knowingly +17 infliction +2 inflammable +1 indivisibles +83 intemperance +19 petition +2 converts +3 survive +2 aurel +1 disposeth +5 decency +8 anaxagoras +1 paralyzed +23 feed +5 drops +22 bondage +1 expositively +1 maniac +3 complexity +1 requisition +2 meetings +35 class +4 shameless +2 capabilities +1 innocency +70 twelve +16 bowels +41 vessels +2 ibn +2 candles +1 amoris +1 strenuously +292 orth +3 vid +6 cornelius +1 unsettles +31 build +2 glare +4 cleanliness +1 royally +390 voluntary +256 connected +2 shipbuilding +12 aeviternal +46 priestly +20 eliseus +5 sixtyfold +1 quadruped +1 equalized +478 pride +470 concupiscence +6 patronage +137 subsequent +1 inventing +31 weakened +2 stirs +14 grasped +5 rancor +251 direct +2 condoned +6 engage +105 pleasant +43 believer +1 joyless +1 temporals +2 divulged +3 idiom +1 carriage +7 supporting +3 wisher +1 tumet +19 engendered +18 fish +2 predominated +1210 hope +1 celebrants +71 enlighten +1 praefat +149 conferred +2 hallows +1 guesthouse +155 keeping +26 consumed +122 price +25 liveth +3 cvi +6 unerring +2 talents +13 twenty +859 could +1 electione +4 phrases +4 forfeiting +1 appellation +281 produced +3 strays +1 skillful +2 perplexity +5 persecute +2 suggestions +8 indicative +2 jephte +3 superfluously +21 puberty +1 babyhood +109 ingratitude +1 whensoever +2 titles +5 ocean +3 infusing +264 providence +6 grandfather +1 generat +1 induction +1 madest +1 bewitchment +29 heretical +1 jona +14 defining +66 repose +2 dragon +3 nullus +2 creeps +1 dictating +1 incontrovertible +2 informis +1 chalons +4 demonstrates +1 marvels +2 jewels +14 remembered +11 smith +98 leads +6 conceal +1 invocations +1 sleepiness +9 exhort +21 oper +1 delegation +1 elphid +6 marvel +9 intervene +4 humane +39 permission +1 tributes +333 fide +10 insult +10 declining +6 analogical +22 painful +29 lion +37 principalities +29 resists +2 quando +1 endureth +10 jechonias +1 wilfulness +1 sensualized +1 twitching +4 latent +31 wrath +11 sqq +35 completion +1 circularly +1 attainer +4 treason +203 saw +9 dimension +1 obtrude +6 enmity +30 afford +285 house +1 hangeth +2 praiseworthily +3 lighting +1 responsory +1 unperishable +1 busies +174 turning +1 entertained +3 prostituted +1 spes +2 ultimately +1 divider +4 fain +1 eth +14 virg +3 riseth +3 alternative +1 nonsense +6 harshness +8 arment +41 preserves +1 syllogizes +10 prophesy +2 legere +3 excesses +7 lviii +1 gratiarum +2 evildoer +1 helpless +1 westerly +366 still +14 repaid +1 characteristics +18 expressive +10 mightier +60 shamefacedness +1 sensato +385 vi +2 curing +9 notorious +36 steal +219 office +2 dish +1 employable +3 pertinacious +4 faster +15 describe +122 ideas +4693 said +1 cheerfully +9 admonishes +4 agreeably +6 filth +7 apostates +64 double +7 curtains +9 grounds +1 dupl +1 beareth +14 excommunicate +1 consequents +1 regardeth +1 administrative +1 proairesis +5 auguries +5 encourages +34 glorious +43 paschal +1088 again +1 hostesses +3 uninterrupted +23 administering +91 removal +136 praiseworthy +54 profitable +421 appears +11 gabriel +28 lessened +3 irremediable +51 expressly +26 attend +15 satisfying +3 incompleteness +3 poetry +673 possible +42 phantasm +7 deriving +6 reprobated +5 considerably +1 paralipomenon +2 noon +1 allowance +43 whilst +7 farthest +4 sion +7 immolated +2 boundless +18 efficiency +10 impurity +5 obtainable +1 syneresis +3 sparrows +2 baby +1 zelpha +17 counselled +5 democracy +33 closed +36 shadow +2 variant +1 avarus +3 satiety +3 opp +2 striketh +74 represented +2 smite +2 rd +34 spiration +171 includes +4 hemisphere +2 aspires +303 wish +86 fears +1 edn +7 refreshed +2 current +1 incredulity +1 caenobiorum +2 glorifying +400 aspect +11 mad +55 disgraceful +1832 both +10 pardons +8 angles +1 perverters +1 components +22 insensibility +13 rejoicing +4 quid +1 villages +1 conducts +1 scape +74 falsely +43 universals +26 buyer +1 inventor +10 passively +6 shoes +136 images +1 praesumptio +7 hasten +3 longs +13 harms +1 listeth +189 suppositum +866 understood +1 circumcisions +25 lordly +38 subsistence +4 reader +8 contrite +4 offensive +2 capitula +1 reminders +330 anima +224 sun +30 stoics +1 travail +1 medio +2 lists +2 watchman +159 witness +1 intimates +1 stenches +4 weakly +13 products +2 expands +183 public +1 loosening +2 acrimony +1 fabulous +1 equipped +13 centre +3 hebr +1 chastising +2 encompassed +50 showed +148 lesser +12 charged +20 fever +25 wound +29 strengthens +4 choir +43 afraid +60 foolish +1 unquenchableness +27 sole +313 pertaining +125 tree +1 affirmatives +1 prompted +6 address +2 delays +1 receptus +4 subverting +1 flashed +9 aerial +171 conceived +1 interruptions +4 indictment +18 rescue +1 jason +49 chooses +25 harmony +10 foretelling +1 theatrical +2 quieting +114 corresponding +1 resumes +2 circuit +10 quickness +1 clvi +190 possess +4 marc +44 strange +1 sunders +1 vein +3 lieu +1 householder +43 terminus +1 regenerative +1 reggio +81 doth +1 colere +5 subservience +11 resp +5 reverential +5 mortals +26 commutations +4 avenger +812 matters +20 smell +2 continentia +2 albertus +4 monsters +8 lions +2 defenders +2 vaguely +5 rewarder +70771 is +10 ignominy +1 lxxiv +6 xlix +1 christiano +16 condemns +786 corporeal +96 ordering +2 narrating +39 value +3 lxx +50 indicated +2 scrapings +1 unveiling +2 exultation +1 occursu +99 cast +2 earliest +9 deceased +6569 further +134 seven +1 glosses +3 precipitate +3 workers +2 unfermented +1 libations +10 wearing +1 applauded +9 s +4 surprised +642 precept +4 freer +2 beheaded +7 mercury +1 anno +4 bells +1 quidquid +7 fastings +3 forgets +7 attempts +32417 as +3 toe +100 david +1 impalpable +2 lungs +2 supereminence +1 cumbered +1 wares +1 signifier +3 speculatively +12 stature +1 devotedly +1 lukewarm +153 fail +63 benefits +1 captivating +2 saracens +12 reject +3 maidenhood +6 hales +1 shrouded +1 kine +1 sharpened +20 nobody +1 burthens +1 twins +1 factor +13 aggression +5 harassed +8 mightily +2 ccxxviii +1 gospeler +78 penitent +7 boulesis +1 unqualified +7 defer +4 honestum +1 juridically +16 particularly +2 distributes +7 settled +2 culminate +3 disgraced +6 entrust +1 straws +10 details +2430 without +50 estimate +1 ordinabantur +2 paltry +2 giants +25 slime +1 painfully +3 gridiron +4 wanders +2 saturn +2 determinable +1 contumelies +7 discoursing +2 molesting +1 decimam +1 agabus +1 typifying +138 race +117 council +6 decorum +1 tuesday +50 selling +1 carus +1 siquis +1 bake +36 acted +43 worth +1 appropriating +6 curses +1 bracing +1 ankles +1 tilling +11 misfortune +3 veiled +1 verity +1 success +2 combinations +6 penetrating +1 impetuously +28 comprehends +15 praedest +1 gay +13 vowing +4 badly +4 furnace +1 foretellers +2 assuring +653 external +562 image +1 elimination +13 theology +9 discernment +1 footprint +6 repentant +3 conveying +2 commingling +1 tois +78 col +4 inter +1 jokers +962 third +2 interposition +13 controlled +4 abrogated +148 equally +7 agency +125 paid +1 inhaerentes +3 secretion +32 excommunication +1 fruitless +1 cousins +144 seed +8 bold +10 festivals +28 astray +2 corinth +46 enlightens +9 indelible +2574 matter +2 portioned +1 diviner +1 shell +1 benedictio +33 sensual +4 responsible +79 xiii +17 accrue +4 usurers +19 invisibly +1 ethiopia +2 developing +19 discover +18 quicken +2 ea +750 thy +3 mounted +1 transposition +8 join +1 dissentient +4 strumpet +1 fresco +2 callist +483 thee +1 finery +1 confides +1 wing +24 variously +14 differentiate +6 surfeit +2 lightest +2 horn +21 determinations +2 entreat +128 dispensation +1 agg +3 disclose +33 sequence +2 dubiously +5 lxxxviii +3 discursively +3 differentiating +1 spit +1 instill +8 observations +12 eutrapelia +1 sacerdot +2 disapproving +1 chiding +6 nails +5 curious +3 beholden +55 continue +1 chiromancy +1 whitweek +21 altars +18 illuminated +4 cataphrygians +1 wrathful +2 fluid +51 learned +2 curiously +11 stricken +1 linger +14 pilgrimage +10 unchangeably +2 rebus +7 beam +2 feats +1 cheers +1 forerunner +1 enterprises +17 conferences +6 hieron +1 reaping +3 upbraid +704 penance +1 basely +5 disparate +1 atrabilious +9 sane +7 sorts +2 deiform +1 chaldees +12 costly +6 joshua +1 minions +142 internal +5 prescriptions +230 wise +1 unassumable +7 faithfully +1 coordinates +2 roundness +765 speaking +9 herb +5 clxxxv +6 remotely +46 colors +1 privari +10 dispensers +11 deeming +2 baptizers +14 artificer +1 hearest +2 magnificently +1 murdering +2 fortunes +1 suadente +1 pervenit +1 honestae +1 comers +26 conscious +10 abhor +1 annexation +9 liberally +1 venerating +40 wishing +54 differently +5 sacrificial +1 venturing +22 copulation +1 vicegerents +13 tempter +1605 while +8 weapons +1 dross +36 decrease +1 def +1 officiousness +1 impair +2 mendacium +1 commons +13 gelasius +2 weightier +1 dici +5 disputing +17 baptizes +2 kite +2593 natural +9 contentions +11 tribunal +2 modify +34 bounds +2 comestor +1 irksome +2 simulating +2 elephant +97 etym +433 forth +1 misdemeanor +9 cxviii +28 evangelist +69 honesty +1 haunt +44 asleep +1 cisterns +1 dough +31 adheres +65 offense +5 transmute +1 unlucky +57 contract +4 entangle +3 apostatize +25 destroying +18 returned +65 acquires +306 consent +3 softened +7 innumerable +1 pythagorean +1 methodicalness +1 obliges +1 animosity +2 matthias +1 amply +44 coelo +4 purchase +7 pardonable +876 bodies +1 friuli +76 inwardly +1001 though +1 october +9086 things +91 existed +3 comets +1 heroike +6 proconsul +1 aviditas +5 copied +1 clamorous +24 railing +1 delirium +1 monarch +1 ebbs +1 soliloquies +2 odors +1 choirs +600 honor +3 undergone +5 obvious +34 continual +38 intellects +1 magnet +3 appropriately +1 prophetess +2 vates +17 drew +4 mort +695 accordingly +15 procreation +8 failings +1 digging +4 originating +16 cried +7 heretofore +9 spirates +1 cvii +2775 answer +1 empower +1 gratianum +5 triumph +2 abolendam +1 pervertere +61 buried +6 maimed +6 diaphanous +38 fishes +18 assuaged +3 laborer +100 relatively +1 munia +5 betrays +75 apprehend +1 culpability +8 theol +2 disastrous +1 enlargement +21 notice +5 furnish +41 grat +4 enumerations +3 exposing +2 extortioners +15 degraded +27 corn +32 descend +1 joathan +1 hoard +2 bap +101 possesses +1 w +53 fraud +36 omnipotent +8 examined +3 compass +4 hater +8 barren +45 constituted +1 obviously +9 load +18 series +2186 even +1 roshd +17 eateth +1 unibility +2 apollinarius +4 responsibility +3 experiencing +2 hilarys +2 lxxxv +1 discerner +1 honestatis +2 ccxlv +4 monad +102 beatitudes +22 cured +1 lamentation +446 principal +32 completely +32 majesty +1 auxiliis +324 dei +57 dan +47 servitude +1 sarum +1 epithet +37 twice +1 chastises +1 anchor +158 tend +5 unlettered +1 knead +26 murderer +2 drift +3 innocents +4 keen +2 likelihood +4 forbearance +2 barrier +1 remover +1 eradicated +3 rud +1 gaianites +1 retaliated +382 doing +1 digged +1 mikrokindynos +16 secure +329 sacred +77 lowest +115 therefrom +1 sands +1 attunes +429 remain +1 brooks +10 violate +1 tolerable +293 compared +6 pontiffs +301 proceed +53 excuses +3 materiality +1 predic +2 dissented +1 loath +1 anointings +1 rebukers +1 falcidian +2 illuminating +1 flagon +4 decked +40 grasp +5 conditionally +3 accuses +1 triumphs +6 basis +1 envys +1 sabellian +3 beholder +1 preoccupied +75 hour +523 disposition +945 themselves +24 imposes +2 thwarts +2 stiff +87 potentially +1 unceasing +1 dryshod +2 manducate +182 ceremonial +2 inerrancy +20 font +2 secures +1 acclinis +1 prima +15 cleave +1 consuetudinem +100 reach +1 seclusion +51 universally +1 poorest +6 avicebron +10 renown +2 overlooks +15 forfeits +72 genera +3 cultivate +3 lady +21 coveting +2 satans +36 incur +12 peripatetics +180 established +2 wakes +1 sterility +10 hating +1 frivolities +1 simulator +11 symb +31 injures +1 placate +2 persever +1 optative +5003 other +3 sponsors +1 symballein +1 predicted +14 collusion +3 restfulness +50 grief +8 harlot +8 revile +5 exod +47 sweet +3 proclaims +6 assisting +19 ordinate +12 exacted +24 attire +3 comforting +10 repeat +1 possibilis +55 imputed +1 illegitimate +12 shrink +1 raphael +13 sending +8 indicating +3 stony +1 quells +2 abases +12 trade +7 features +1 theban +102 occurs +1 preordaining +3 loquaciousness +1 admires +3 moistened +3 glimpse +1 ladys +182 lead +43 monks +280 difficult +5 xcviii +1 blossomed +2135 holy +7 uncertainty +94 mortally +1 photinians +3 inebriated +193 harm +1 refusest +1 unquickened +15 simoniacal +11 presenting +1 rationem +87 deficiency +17 memor +1 bodiestherefore +2 processes +3 genuflect +2 replete +388 altogether +21 gravest +1 deduct +1 ghostly +4 defunctis +21 chose +3 actualizes +2 herenn +20 credible +10 delivering +24 strengthen +1 corrupteth +1 bravest +1 prodigies +3 imprecations +4 worthier +7 slighted +1 salu +50 destroys +11 message +3 jobs +1 mathematicians +13 memorative +1 bondwoman +4 refute +6 issues +4 gregorys +1 languishes +2 chilled +2 explanatio +2 paths +1 deferent +1 accusationibus +3 detailed +1 oratorical +13 disregard +56 renders +3 sentient +1 recapitulation +2 steering +1 student +3 extort +2 nonnulli +1 wrapping +8 earnest +1 peculations +1 salve +12 distinctions +22 nestorius +1 sighing +1 gainsaying +6 asunder +1 nazarenes +3 naming +123 effected +48 remarks +1 vegetable +28 utterly +1 factae +4 cultivation +1 ayre +137 experience +4 amusement +1 mainstays +2 threatenings +1 placings +30 shedding +1 albans +3 pigeons +14 gaining +2 compunctione +1 unadorned +1 emotional +1 missae +1 needlessly +29 prefer +5 rationes +7 audible +10 materials +54 exceeding +812 glory +18 unlawfully +2 grossness +1 severo +4 observeth +31 burning +2 extenuate +2 dregs +11 concup +41 colored +215 ix +1103 desire +3 thefts +9 eagerly +2 sacra +1 tedious +3 putteth +1 covenants +10 rustic +3 trusting +28 shine +3 indulge +5 weaken +15 consume +5 instigations +1 disrespectfully +2 episcopacy +3 taker +1 jezebels +2 severianus +123 objections +8 devise +2 displacing +4 hypognosticon +473 change +19 elders +16 tribe +2 abodes +1 transposed +2 coals +6 horns +11 contradictories +2 undertakes +4 hurting +7 sluggishness +1 bloweth +120 israel +15 individuation +4 counting +5 reproduces +1 massed +1 secando +2 adulation +3 mire +13 silent +31 voluntariness +4 storms +55 imitate +4 philotimia +3 odyssey +1 whisperers +11 teachings +1 discomfort +6 gentile +2 enfolded +7 veils +42 continent +1 ethosis +2 tills +1 modifications +1 agens +1 charitably +1 esteemeth +1 lavishly +2 stewards +1 unacceptable +68 preach +1 pusillanimous +5 fettering +20 madmen +7 adjectives +53 numbers +1 tenet +1 bough +1 charm +1 particularized +15 lines +4 bequeath +1 frank +5 ruin +4 noticed +815 upon +67 vera +1 sneezing +1 strabo +22 weaker +45 successively +3 juice +9 reduces +1 harmonious +3 sailing +19 senseless +8 assuredly +119 violence +28 solitude +2 frivolous +3 derogates +1 percolates +4 mystically +1 claiming +3 incipient +3 pyx +160 singular +4 foul +1 uxor +1 alleviation +1 amending +4 unripe +6 greeting +2 revenging +1 speculations +3 realizes +44 intemperate +30 dishonor +6 baptizer +1 cxxxii +164 unfitting +5 designed +290 heb +13 argued +30 xxiii +8 continuing +6 constit +1 garizim +2 rah +3 repression +7 garden +1 healer +9067 we +24 esteemed +63 events +2 wishest +14 influx +274 days +1469 against +6 denouncing +2 quelling +703 higher +94 lying +1 bath +15 gifted +1 blazing +3 octave +1 causest +219 meaning +2 owns +5 parable +1 infrequently +1812 time +6 provident +26 odor +2 ponder +8 unstable +1 unobtainable +178 observance +2 retiring +8 planted +17 contended +6 suicide +13 persuading +145 fast +1 consentire +27 equivocal +6 extorted +3 magnus +33 ear +1 demoniacal +47 binds +5 solar +34 upwards +500 temperance +25 assumes +19 gathering +17 adult +7 quadrupeds +2 solves +2 risibility +3 mocking +4 slothful +18 iniquities +1 micheam +6 exalt +91 vain +1 casket +23 appertains +1 maybe +1 wakeful +2 narrowed +1 inspectione +2 comedite +5 lesion +6 prompting +92 annexed +22 large +1379 greater +13 characters +21 beholding +1 sanctifications +2 devovere +1 probing +4 oppressive +42 confusion +7 punishable +29 restoration +3 presbyter +1 muttering +31 brute +1 sicles +15 affords +1 impetum +3 tendencies +5 equalled +4 synthesis +15 immoderately +2 myster +45 fit +20 effeminacy +2 exorcist +1 honestatem +2 pittacus +12 endeavors +4 dealt +50 deputed +1 culpa +3 painting +5 inexpedient +1 slaughter +17 tomorrow +2 unappropriated +3 additions +1 capitularies +2 militate +480 v +59 harmful +5 transition +8 wandering +1 winner +80 confidence +2 genital +6 dreads +9 mitigates +6 territory +1 fixedly +16 confesses +1 lustfulness +13 fruitful +2 complaint +2 belligerents +104 hearing +2 patrimony +1 bello +1 portrait +1 shortcoming +2 lect +11 stag +391 reckoned +97 contain +1 liberum +1 encouragement +40 quaest +3 foolishness +15 teeth +2 insanity +1 practicable +3 besets +4 lovingly +1 outwards +3 broadly +3 artists +8 manicheans +1 distantly +17766 are +3 untruths +1 longlastingness +3 baser +8 liii +11 hypocrites +15 mathematics +11 taciturnity +1 intermediaries +305 speculative +9 ills +21 ordains +276 removed +1 loathing +12 affability +2 extirpate +56 voluntarily +2 detracting +4 terrible +17 parallel +1 amazes +5 dialectical +2 famine +4 deplored +73 beside +1 depreciating +1 meantime +24 idle +2 ripar +5 hastily +3 walkest +6 proximately +170 really +1 countrys +26 precipitation +14 considerable +4 indiscriminately +5 forestalled +22 devout +94 allowed +84 simplicity +7 messengers +171 led +1 justitiae +1 abominationem +6 handmaid +1 batten +8 fields +4 postulates +1 unburden +4 dragged +5 ludifred +11 enticed +43 trace +140 habitual +8 posteriority +1 ambiguity +1 agamemnon +1478 spiritual +37 majority +10 meed +1 dilation +8 males +2 coldness +4 ran +2 pleasantness +1 revolutions +1 fidei +1 shortage +2 mediating +1 liest +2 pillars +59 judiciary +4 mot +2 designator +2 revealeth +16 eager +11 fostered +2 propagated +1 unoccupied +1 philistine +11 writings +5 worms +10 plead +3 parade +2 abominations +1 cupiditas +1 locusts +1 immersed +37 wounds +1 uplifter +99 frequently +26 absolution +5 simulation +60 sex +12 balm +1 hanc +15 oblique +2 balanced +283 predicated +26 practiced +2 hept +3 mediums +3 bygone +2 elicit +18 instigation +6 samson +2 receipt +1 fragments +2 reacheth +27 hair +176 hidden +8 repute +1 reputable +4 excessively +3 begone +60 advance +4 discrimination +1 decrevit +1 carpenters +14 demeritorious +8 training +4 inference +1490 effect +12 suited +3 distracting +2 uninhabitable +2 devoured +3 estates +48 carry +1 imprimis +26 doers +176 minister +9 definitively +1 concubinage +9 par +3 pieces +4 sailor +1 throned +1 sky +75 cleansing +4 imagines +7 inchoate +4 sings +1 udder +2 sate +386 states +1 plaiting +8 worthily +3 baked +13 festival +1 quiddities +1 slanderous +28 books +1 pilots +1 adorable +22 rabbi +4 powerless +1 christendom +7 digest +2 evoked +1 myrtle +6034 have +16 contend +28 goodwill +6 epis +109 holiness +1653 word +6 lesson +1 adulterating +1 dethrone +32 frequent +20 along +3 ezechias +2 necessitate +4 adaptation +2 dirt +1 roe +1 ordinata +3 culminating +2 esdr +17 leonine +1 christus +1 baptistery +3 tiny +116 city +7 fashioning +1 archetype +41 synesis +1 bait +11 breathed +3 quam +1 convinces +1 cecilius +105 james +5 suspected +34 liable +2 bit +2 onyx +19 passages +4 intercessions +1 records +11 amazement +19 mend +1 macarius +1 nescient +145 heavens +153 capable +3 skilful +14 conquered +6 hundredfold +1 rigid +97 exemplar +2 ciii +1 holder +20 dealings +2 funeral +1 camel +35 research +1 dictation +1 cheap +2 brook +7 anna +25 virtual +8 annulled +159 wishes +1 hypothetically +3 enticement +1 accumulated +1 insubordinately +1 archippus +4 odd +112 punishments +2 withstood +50 redemption +3 tiara +1 mask +1 nebulous +1 plunderers +1 leonum +1 neglectful +2 cajoled +1 bountifully +6 expenses +13 diligence +1 replaced +5 realizing +10 frame +2 disabled +1 slake +253 multitude +1 conjunctions +2 lxi +1 kolazo +73 concept +1 assemble +5 exhorted +2 scepter +1 museth +1 remig +1 onlookers +228 begotten +1 mediation +15 veneration +3 synagogues +12 loosed +1 uninterruptedly +1 religimus +2 loin +7 mandate +74 akin +5 spake +4 palaces +6 spreading +6 likes +12 convicted +78 replies +2 infallibility +1 extract +1 viceregents +29 espoused +27 commendable +2 rocks +1 admittest +7 jealous +2 behaving +7 trespass +821 light +7 depended +1 unendurable +1 nominalists +3 balance +1 unkindness +1 tanto +377 signify +1 cogency +10 lifetime +22 foods +8 misfortunes +5 weeks +1 idylls +1 eos +1 halved +1 paradoxes +3 affirmations +2 winged +58 distinguishes +36 steps +1 wears +11 spirating +1 unenduring +27 advent +1 knave +17 productive +1 superstitions +95 socrates +16 product +37 overflow +10 snare +6 individualizing +3 ptolemy +10 calumny +7 pillar +2 obscenity +7 answering +36 merciful +111 lacking +2 ninety +1 stimulates +2 disregards +1 homicides +58 concur +12 demonstrate +164 contra +1 outraging +26 imitation +3 grasping +2 handedness +10 revelations +74 withdrawal +5 anagogical +12 assuages +2 index +1 enrich +2 radiating +1 endurable +16 communicating +18 naught +10 education +6 describing +1 sub +17 straightway +4 standpoints +3701 only +1 perceivest +1 unsettle +1 barbarism +39 forsake +12 flame +1 doe +3 partnership +2 warnings +4 aqueous +1 ekstasis +45 patriarchs +13 resisted +1 unsteadiness +1 swoop +1 dilated +9 bridle +14 bent +34 expressions +4 listened +1 ite +46 advocate +1 nuts +58 blame +4 combats +66 refrain +1 dominicus +7 concep +9 consecrations +1 gellius +1 proportionable +1 voluptuous +10 worthless +37024 that +222 placed +2 purchases +1 theodulf +53 forbids +19 try +3 intimating +2 subalternate +52 concord +319 condition +11 avenged +1 everyones +30 gratis +56 inanimate +19 arrow +17 viewed +1 diseased +6 detests +2 rapacity +4 adverting +72 gain +8 complexion +3 liver +6 scandalous +1 alienations +69 preparation +2 begettor +9 moderately +4 triplicity +20 instances +2 assailants +25 unwonted +1 malices +7 falseness +1 desecrated +1 sebastian +2 infers +25 greeks +4 heliod +1 leaping +2 economically +472 command +145 isidore +1 vulcano +180 speech +85 morning +1 castus +1201 although +69 entered +13 dispenser +274 jesus +7 growing +1 scorched +4 lawrence +47 attributes +13 toils +14 wrongdoer +6 shield +30 avarice +5 sorrowing +23 composing +12 verbs +1 yieldest +13 loins +1 contendeth +3 availed +1 mistaking +16 metaphysics +2 shewed +60 healing +6 tablet +3 surrendered +2 tithed +10 procures +3 primacy +1 rail +83 nat +1 synthetic +1 trieth +6 enlarged +2 disclaimer +2 stork +9 demerits +4 ridicule +181 ask +1 significasti +3 edom +1 scruple +2 influencing +2 bounden +25 rain +16 hateth +2 genitives +4 officers +45 unites +172 full +7 mud +2 spirator +1 downtrodden +1 celant +75 blessing +1 dedications +262 sufficient +18 abolished +1 skopos +89 intend +1 arg +17 fasted +2 comforter +1 praedicandum +4 repressing +2 obsolete +227 bestowed +1 consolations +64 forbid +19 plank +99 promised +3 traversable +3 providentia +44 careful +3 entailed +4 rectification +1 mandata +1 nerve +1 anoints +3 edified +2 lusting +262 consecration +123 aside +2 velleity +1 redit +2 spiteful +1 couriers +7 feareth +7 peculiar +1 distributively +2 disputed +1 calmness +1 comp +55 differentiated +131 proof +1 summon +1 concorded +27 door +12 imagined +4 supplying +4 storehouse +2 religare +1 convicium +1 instills +42 inflict +33 lustful +1 allures +1 auctoritatem +2780 must +1 monachoi +9 parables +4 schisms +13 expectation +11 antonomastically +2 melody +4 behoove +672 likeness +10 ward +1 lerida +1 circulate +7 fingers +3 appealed +2 investigated +1 rooms +1 dissimulate +2 neophyte +4 resultant +5 blear +1 ordinated +4 setim +15 ministered +4 code +3 eugnomosyne +1 engrave +17 rebellion +8 kingly +1 tenable +2 censures +1 shades +1 sheath +16 condemn +1 buffoons +187 infused +1 darings +1 shrill +5 weather +1 pang +1 aratus +25 dream +32 divides +3 brief +3 accessory +3 reducing +4 informer +1 hercules +82 fate +3 allusion +60 notional +2 askest +11 disturbs +1 penitentiae +4 axiom +43 discursive +28 accomplishment +1 visitation +1 candlesticks +1 plaintiveness +1 begrudged +19 concluded +2 momentary +7 dissimilar +1 rivalry +63 deserve +2 moab +19 wives +32 anselm +10 heareth +44 designate +2 surfeiting +1 thinker +10 comments +4 thoroughly +1 fining +9 indication +2 apostatizing +3 singleness +1 epo +1 sarabaitae +1314 mans +1 speciem +1 deduction +47 demon +46 built +1 preceptive +2 communications +1 doeth +1 deborah +211 knew +2 philippians +3 thoughtful +76 dimensive +1 baker +38 loan +1 magnae +1 megalokindynos +2982 wherefore +136 sovereign +2 abounding +1 philia +9 valerius +1 nighest +1 enslave +2 jovinian +86 cold +4 coordinate +2 molested +2 diversis +3 soundness +3 undo +4 boastfulness +5 adjacent +2 prostration +1 baronius +1 viror +4 cited +62 prelate +1 reborn +1 orderings +1 mounts +12 collect +2 mightiest +10 granting +5 seditious +1 arbitrium +1 overseers +1 presumptions +2 alchemists +1 incommunicability +1 peaceableness +1 lecherous +1 loosely +5 pressing +2 corpus +3 disobedient +2 notifying +1 concession +1 serfs +21 extending +9 casual +9 whithersoever +3 impetrates +8 messenger +1 ignoble +9 spheres +13 ridiculous +1 pinned +1 meetly +1 gems +15 walked +4 incongruity +1 tonsured +1 dislodges +1 mangling +12 appearing +1 beltiston +10 espousals +1 closest +18 contradict +1 provoketh +123 nations +1 communicative +2 claws +7 equanimity +1 steadily +3 ahead +3 husbandman +326 outward +319 property +1 historiae +1 respectably +1 tempest +2 necessitated +16 knife +97 exclude +7 feeds +63 truths +245 lack +1 holdest +5 insincere +1 subalternated +114 dispositions +1 displace +18 flee +1 ambassadors +36 brothers +23 forgetfulness +2 strangeness +1 execrable +147 previous +51 morals +2 carn +2 aberration +3 uncultivated +1 amputates +1 constituit +3 sentiment +1 pots +11 liber +2 unvarying +92 unreasonable +446 trin +7 coerced +2 disapproval +3 annihilation +1 breakest +1 animam +1 cooperator +2 ruins +1 apostolicae +1 strategy +1 usuries +2 arbitrary +1 restrictions +49 incurs +4 advantages +111 mission +13 drank +1 cultured +3 sheet +1 clocks +1 upbraids +8 hearted +1 translat +4 familiarity +3 predicates +7 prohibitive +2 lawyer +1 scarce +2 tracing +24 consents +48 judgments +61 dwell +2 patients +15 fornicator +1 enticements +4 debate +2 equalize +1 coena +276 came +6 inflamed +1 smelleth +5 spreads +165 believed +1 amenities +226 hindered +20 incites +1 petitioner +989 thou +1 unflinching +2 elohim +1 deceivers +7 reproaches +4 captain +2 jactantia +1 galliae +3 prefaces +1 placuit +54 induce +3 sullied +2 humid +4 premised +2 pigs +36 dangerous +3 boiled +1 sneeze +1 seasonable +6 reciprocal +1 extracted +1 census +2 halts +1 itinerary +1 superexcelling +2 astrologer +71 instruction +21 cry +2 atoning +6 informing +7 assists +103 unknown +2 ejus +1 lowering +4 provider +3 distrust +83 subjected +125 commit +88 appropriated +10 ransom +206 care +1335 neither +14 prolonged +11 gathers +8 worshippers +1 vulgyou +583 venial +200 justification +1 averseness +3 pentagonal +7 rejoiceth +11 downward +3 gait +10 paraclete +2 fancy +4436 ii +24 cunning +7 forefathers +2 centiloquium +27 admonition +272 covetousness +39 decretal +4 atomo +1 turban +66 beasts +10 attendant +1 canonization +91 assent +1 tarentaise +1 revealers +1 refection +1 novices +1 heartily +158 provided +16 re +1 topography +1 rebecca +2 holdeth +2 discourteous +10 promissory +1 theras +1 isos +2 augment +18 acceptance +1 marcellus +1 invenisti +24 diseases +4027 body +1 stirring +97 divination +141 occasion +701 united +4 ignore +49 hypocrisy +2 cxxiv +4 esther +139 calls +9 quiet +1 rural +145 ends +1 indulging +5 conflict +92 rejoice +9 promptly +23 tables +62 catholic +3 start +16 sober +1 winters +237 daring +1 peacemaker +4 seest +5 proclaiming +30 incorporated +5 loser +1 inquis +49 depart +223 poor +1 nausea +3 premeditation +14 lapse +22 improperly +2 calumniate +3 leaveth +10 venerate +1 analogies +1 ephpheta +11 bed +42 specified +1 frying +10 nouns +1 tingling +2 predicable +5 introduction +34 ship +200 corrupted +2 mendaciously +86 observing +1 chide +33 announced +1 lowing +15 happier +4 mote +47 violent +4 crystalline +9 dispensations +12 anim +385 text +16 blinded +1 depositarys +32 albeit +28 fitted +1 propagate +11 axe +256 privation +1 multiplieth +30 dare +2794 article +1 patris +29 springs +2 weakest +3 sinew +1 sermons +44 designated +25 irreverence +1 contradictor +1 loosens +63 diminishes +49 assertion +251 suitable +33 fallen +1 personating +1 configure +191 service +38 xx +3 recrimination +2 conspicuously +2 shew +11 enable +2 dissembling +1 liquids +39 teacher +4 baal +2 cautious +1 president +1 cumin +21 breath +4 modest +3 cunningly +2 idumeans +2 sawn +1 almsgiver +3 macedon +9 obstinately +1 multi +1 poetical +12 donat +17 simon +11 entirety +5 anguish +1 unremovable +11 medical +1 breastbone +2 lawgiving +4 covets +1 mulberries +2 mix +1 knowers +10 magicians +5 quod +6 arbit +1 fractious +1 burdening +34 despises +2 revoked +4 lapis +2 potentia +11 impress +87 passes +64 magnanimous +35 celebrate +31 dispensed +1 stooped +103 figurative +1 discarded +1 placilla +1 fashions +3 roots +1 earner +1 inebriateth +2 postulando +21 instilled +1 syllogizing +1 unmitigated +2 creditors +50 nyssa +24 spending +2 furor +2 revolting +38 wrote +1 benign +1 expeditious +3 xciii +1 aithein +2118 sins +1018 powers +1 clogged +3 heaped +30 epiphany +2632 part +16 sharing +10 robe +10 perjurer +1 analytic +1 divite +7 hebrews +4 peters +14 reveals +12 consolation +1 deluges +7 coupled +14 reiterated +2 elections +30 advanced +1 inhered +71 signifying +159 lawfully +88 accounted +1 emanates +6 tents +9 unbecomingness +50 comprehensor +23 trouble +8 mediately +1 concurred +1 cornerstone +2 pleasantly +4 unreasonably +4 vicissitude +1 justinian +1 yore +277 immediately +6 tyre +1 odit +1128 flesh +22 lot +1 admittance +14 sever +1 chest +1 sue +52 forty +5 keenness +460 proceeds +91 admit +12 unawares +1 martyrio +9 despoiling +1 kleria +60 relig +40 imposition +4 captains +16 unwillingly +175 loss +1179 whole +1 deducing +28 godlike +53 washing +27 shrewdness +3 spitting +1 jov +1 abiron +6 achievement +3 branch +1087 pleasure +2 ignition +37 burnt +1 specular +7 convey +8 qualify +2 pungent +623 general +87 bears +300 contemplative +3 burns +3 coincides +3 ploughing +1 restriction +2 stupefies +1 mantle +6573 q +6 periods +39 lights +1 tamer +5 vigilant +3 uglier +24 animation +2 warmth +55 curse +71 demonstration +2 relying +1 discursions +3 dives +4 outlast +18 grieved +2 northern +238 used +5 clouded +84 duration +1 conclusi +1 hoopoe +65 recipient +1 terrorized +1 encased +2 opponents +42 standing +2 disproves +19 persist +17 individually +4 protects +2 ointments +22 setting +1 essendo +3 purifies +9 intentionally +3 consoled +1 aliquot +1 sylverius +1 simum +2 accountable +75 filial +1 ia +4 reflecting +1 heralded +977 opposed +4 impeding +8 expos +5 withholding +1 stretcheth +1 awesome +123 raised +81 likened +15 irreligion +6 acquit +1148 relation +7 impressing +2 regiment +6 chain +3 helm +2 lain +2 dowry +1 drowsy +3 th +1 wrinkling +4 annunt +2 indulged +4 childrens +1 horseman +9 overflows +6 symbols +10 caesar +7 ruth +3 sensibility +3 illness +2 flieth +9 heir +10 secured +10 spent +6 godparent +1 historia +46 sufferings +165 merits +1 scab +1 indemnification +1 xc +1 accaron +43 applicable +2 phlegmatic +21 stubble +1 vas +1 passus +1 chananaean +5 condensation +1 veiling +1 enhance +25 actively +1 cognoscitive +3 hungering +3 amalekites +14 inserted +7 astonished +6302 its +2 litigants +1 preventeth +12 changeableness +3 dilatation +2 antidote +1 imitations +26 additional +55 swears +155 eighth +2935 love +20 embraces +23 reaching +2 heeding +24 trial +5 hesitate +1 dishonoreth +9 bapt +694 last +1 highways +1 italy +1 flav +403 fire +1 duck +2 blasphemes +1 statum +2 symboli +5 collat +4 indigence +1 sophistical +1 sint +13 idolatrous +435 let +2 befalling +1 cites +5 softness +3 gazing +1 horseback +21 doer +2 equaling +3 findeth +3 hypostatically +1975 virtues +2 feverish +1 equated +2 marveled +1 murrain +1 partridges +3 experiments +1 fortissime +2 gladly +1 repeateth +1 exhales +88 communicate +2 arbe +41 ensue +1 disbelieved +1712 father +18 heats +4 artificially +2 firstlings +2 scold +524 gen +8 renounced +1 hedged +1 hedge +5 dominican +1 apostolici +2 rebutted +1 dining +1 deliberative +150 forgiven +379 greatest +6 advances +34 injured +3 pleasurably +1 regularly +1 maltreated +2 seas +14 threatening +1 nasty +7 promising +264 obedience +1 purgatoriae +5 sensed +23 temporally +6 betoken +4 freezes +3 frenzy +1 hereupon +25 requirements +10 glutton +6 keener +3 lapses +1 collegians +7 falleth +21 curb +2 sharer +4 surrender +4 pitiless +1 tepidity +3 prostrate +16 instructing +3 matins +1 vocally +10 ailment +8 evildoers +4 retracted +1 solicits +2 store +2 band +14 forgotten +4 ruleth +114 often +1 overlay +101 servants +2 adverts +1 reditibus +1 beach +1 tortoise +2 integrated +92 rich +1 spectare +3 educed +2 borrowing +31 possibility +2396 two +5 deepest +23 pertained +1 episkopos +32 returns +6 advocates +1 fenerating +35 believers +4 addresses +60 supposed +40 solemnity +15 drive +15 deal +1 factum +12 curbing +1 giezites +3 favorable +3 decisions +107 neighbors +3 hairs +7 evermore +19 didst +15 lofty +3 pig +15 ordain +5 saddened +81 excessive +2 acquittal +1 marveling +13 thirty +1 mollities +3 compliance +1 clericis +3 indiscreet +3 draweth +5 varied +2 suck +2 stammers +7 wings +50 opus +3 intoxicated +1 chastening +8 dear +12 infallible +1 imitable +14 morality +1 enunciatory +14 manifesting +4 deceives +15 heed +1 correlates +6 upper +1 motivated +1 mangles +8 protect +2 prosecution +10 annihilate +5 unveiled +1 plunging +20 woe +10 subordination +4 educated +41 shunned +3 ammon +1 repulsiveness +9 interprets +1 prostrating +23 terminates +25 innate +13 archer +26 considerations +1 nobis +6 molten +1148 due +15 sow +1 unwont +67 baptizing +6 imprison +1 ens +407 moreover +4 detracted +1 chrysippus +1 amicable +6 fragrant +6 stretched +1 disaffected +1 nicene +1 seraphims +12 lame +1 whirlwind +61 liberty +1 uncomplainingly +742 old +11 cloth +30 celebrating +1 abstainers +2 prediction +1 lordto +1 equitably +531 anyone +2 meditating +8 betray +1 scald +20 wide +1 quadrag +1 spectators +3 wandered +1 obediential +1 oros +25 administer +2 allude +2 correcteth +19 accrues +1 patrias +1 witty +1 cassius +4 brilliant +1 avengers +153 age +2 consignification +2 ccxii +18 sufficed +68 sheep +47 battle +1 adhereth +25 identified +1 reprobating +1 lat +2 pierces +4 professing +2 apostleship +8 assigning +1 opines +8 imitated +1 efficaciousness +35 quickened +1 bidder +1 serapion +38 assuming +8 prim +1 unmasked +569 purpose +1 engraved +33 owner +1 excommunicates +1 consumptio +1 prudentum +1 expunged +2 necromancy +1 rheum +1 commending +1 mutilations +1 primals +1 praeputia +24 relics +3 elder +12 declines +1 bloodless +13 manich +7 commotion +1 repairs +3 mallet +1 phoebe +8 opposes +25 marry +9 published +14 benefactors +1 vocabulary +18 strengthening +138 possession +1 pomerius +19 contracts +65 openly +9 spiritus +2 smallness +1 aggrieved +4 lamps +75 parent +275 disposed +1 struggling +4 potters +60 statement +7 multitudes +209 memory +2 surveyed +17 benedict +5 maiming +80 benefit +2 spies +7 hanged +6 transgressions +2 warming +2 nomine +240 origin +5 metal +8 grateful +113 intercourse +6 respectively +79 type +1 kissed +4 unchanged +23 deadly +81 include +6 prevails +2 notify +38 downfall +8 visited +8 catilin +1 apostata +2 corner +4 bruised +1850 justice +3 proficiency +14 mid +17 dyed +3 foolishly +1 watchmen +1 tria +5 remorse +26 victims +15 cogitative +15 privately +2 watchfulness +1 intenser +1 sellers +123 began +1 swathes +275 attributed +7 unlikeness +4 dispositive +1 moth +32 unction +907 anything +1 perpetrates +2 aorasia +3 straw +929 john +9 traces +3679 were +5 pronouns +1 forsook +21 imitates +3 thread +22 enacted +102 turns +1 virtuousness +22 gaze +11 situation +3 sundered +1 benches +4 hispan +4 magus +28 deferred +2 mystica +1 insured +2 neediness +49 distributive +1 nous +5 befalls +11 instit +29 causis +1 tam +1 shortening +3 weeds +1 unconnected +11 beaten +1 enlarging +2 impenitent +1 confessors +2 honesta +60 nourishment +3 continueth +321 put +6 unspeakable +4237 contrary +1 ccvii +7 forethought +4 creative +2 princip +18 abrahams +23 fighting +1 cunctis +1 amity +105 choose +1 controlling +2 metals +6 absurdity +1 disfigure +1 fades +1 estimating +14 rare +325 show +9 bands +5 curseth +3 expediency +1 irreparably +1 enchantments +2 choketh +4 aptly +1 village +2 contrapassum +1067 considered +41 baptismal +2 progressed +1 revive +4 digested +2 dominica +7 legislative +3 praiseworthiness +1 dyes +2 phase +1 confluence +42 deem +26 priority +17 grants +21 comparing +616 beginning +41 willingly +1771 philosopher +49 consecrating +168 eucharist +2 sumptuous +7 mammon +248 entire +2 ministerial +16 lawgivers +23 proposes +14 interrupted +1 keenest +1 wrongdoing +1 congruities +1 imperiled +12 horror +1 determinative +23 dominations +344 committed +1 beatifier +9 banish +1 rejoined +23 essences +1 fullest +10 wrapped +9 needing +3 monol +26 sublime +2 infra +4 mystic +5 desperate +3 apportioned +1 engagements +66 weight +1 oversteps +3 prisons +1 violations +738 actions +252 participation +6 drunken +53 beneficence +7 nothingness +7 swelling +3 dung +1 impel +1 chiefs +1 balaneion +68 assert +1 cogitatio +41 feel +1 epictetum +153 sons +1 usufructu +165 peter +326 accidental +3 cloven +5 satiated +2 spherical +2 tool +10 transfers +1 lombards +75 origen +1 victricio +1 vegetab +57 growth +13 manna +3 contends +5 jovin +8 crowned +38 tomb +7 infects +4 entangleth +1 magnificentia +22 samuel +17 kinship +225 sinner +1 wrangled +17 dogm +2 admiring +1 inchoately +19 stability +1 valor +15 teacheth +2 cyrus +1 favorableness +26 satan +13 pertinacity +7 statu +847 creature +9 ordereth +1 sentite +82 reckons +321 find +2 duce +3 ageruch +3 winds +2 lunar +2 hierarch +315 giving +2 succumbed +6 exacting +4 esdras +1 remainders +1 jurejurando +3 consecratione +4241 what +1 plentifully +150 intended +1 undutiful +20 causal +1 lendeth +2 healths +1 smiting +6 inscribed +3 ambiguous +225 fixed +6533 good +2 indulgent +1 disguised +1 inventors +1 monasterio +1 planting +1 mathematically +2 unsolved +9 mostly +55 praying +98 jer +16 threatens +2 commemorative +4 melting +1 chairs +51 grieve +3 nemo +1 readest +104 deceived +1 respons +1 sciscitaris +1 clung +2 pleaseth +8 richard +2 understandings +4 founding +97 feared +29 lend +15 resemble +77 vital +1 posterius +27 unlike +142 consequence +3 singer +10 purse +1 inherit +1 democratical +2 negligences +112 composite +1 demeanor +3 superhuman +2 reappointed +1 hermits +215 forasmuch +218 angelic +1 forecasts +12 immense +6 savage +1 unholiness +1 pages +3 fundamentally +3 fearest +4 coordinated +1 figs +1 baffles +2 client +5 camest +4 inseparably +1 impugned +1 candlelight +2 cultivated +3 communicants +26 governor +1 praxis +1 opinionated +1 seeker +4 tellers +1 lip +1 menstruous +5 beholdeth +4 searching +2 conversing +1 climate +5 unformed +10 creeping +208 someone +3 dispersed +1 tithing +80 secondarily +6 dissimilitude +1427 then +3 animi +1 lull +470 latter +3 trodden +1179 ways +18 comprise +1 decoquit +5 immeasurable +13 professed +211 riches +2 colossians +9 title +99 manifested +10 averroes +1 overheating +2 princely +1 agricola +13 impassibility +1 belie +2 institutes +15 xxxii +8 helper +1 alexis +40 fellow +3 sickly +5 empowered +5 forwards +1 quidam +22 count +27 animate +1 laughs +3 tear +5 enslaved +908 church +8 usage +15 attachment +29 manual +46 rank +1 fifteen +138 fulfilled +4 reminder +13 pledge +3 sinfully +2 quarrelling +1 unsteady +527 lawful +9 worthiness +1 pristina +6 appreciate +1 heron +1 cookery +5 relish +6 lends +1 harness +1 resur +38 looking +3 washings +7532 with +1 dulcis +3 cain +1 wrecking +77 practice +18 offended +4 beggary +1 entia +3 formulating +294 inferior +4 despoiled +7 novelties +1 quali +60 inequality +19 maximus +11 stir +169 eye +2 snakes +1 reinstate +6 neighborhood +8 dealing +4 lambs +1 ccclxxiv +234 punished +3 contradicting +4 escaped +22 advice +1 synonym +1 remittest +3 dictum +195 refers +43 strive +1938 like +1 forcellinis +4 sharpness +14 mathematical +6 contingently +1 fevers +2 attempting +2 unfettered +1 suchwise +7 insufficiency +1 indivisibly +8 reduplication +21 distinctly +1 exterminated +1 tertian +1 chasteneth +11 syllogisms +5 repays +21 infant +2 mercilessness +1 hampole +449 absolutely +1 ccxxx +5 cooked +5 particles +27 serves +32 dividing +5 lacked +1 gull +1 lvi +3 horizon +147 rightly +2 cxiv +1 tricubical +9 obscure +7 deaf +170 principally +25 derogatory +6 formative +1064 name +2 desolate +1 timocracy +224 book +223 stand +1 frothy +1 negligere +41 dying +5 seeming +53 literal +2 vindicating +677 great +3 incorporation +5 surpasseth +1 lxxxvii +4607 being +1 barbarians +1 resort +1 compulsory +21 saith +2 pridem +2 complicity +47 motives +21 giveth +17 affirm +8 lx +1 tittle +1 similitudinibus +1 excretion +1 aggregates +26 ephesus +126 prayers +5347 can +16 arius +2 solil +2 reasoned +1 mallets +1 listless +4 blinds +60 explain +6 companion +1 greet +7 helvid +51 restricted +6 bars +29 abideth +766 gift +48 loveth +1 localities +49 conferring +3 record +54 accomplish +243 ex +1 reared +124 beauty +4 locomotive +29 compares +1 practises +1 annoy +6 hoof +27 renewed +91 evening +4 sanctis +12 cooperates +1 backbites +3 illusion +1 lauds +4 torture +106 moderation +1 interiorily +10 probam +4 maxims +4 lightning +16 penetrates +1 droughts +3 eclipsed +5 defiles +3280 cause +3 durability +17 cum +5 presumptuously +65 apparent +2 gost +2 shoot +21 amendment +1 alarmed +33 compulsion +89 crucified +12 adorn +3 blending +1 delicately +27 presents +14 lxxi +4 conformably +1 sleeves +3 extremely +5 horrible +8589 reply +213 delivered +2 clxxxvi +37 prayed +2 flat +10 trials +2 scot +2 receiveth +75 lamb +1 eclog +1 tint +2 inspirations +133 secondary +1 zelaveris +1 specula +2 vainly +40 despised +4 kotos +4 domini +1 frontinus +6 safer +9 forcibly +2 origens +3 flowering +1 womankind +4 voices +2 saintly +14 suit +1 concordance +2 analytics +2 bundle +37 churches +1 sunk +6 story +33 road +1 geese +23 loaves +2 grammatical +320 consideration +3 configured +1 legion +404 virtuous +3 distressed +42 terminated +47 expenditure +3989 should +665 people +3 pores +1 proselyte +33 epikeia +1 inflictive +160 inclined +19 saint +12 disaccord +1 deviated +4 lowered +2 sounding +1 cups +1 fratres +2 edged +1 distinctness +695 gregory +3 dogmas +1 maims +3 inept +20 constituting +3 humbles +1 chelidonius +28 humor +6 partner +10 ensuing +17 fiery +3 pilot +1 constructing +12 propose +34 sets +95 generically +3 blast +2871 evil +1 acedieris +1 wane +2 monuments +2 smiling +121 sloth +2 esdra +1 requested +8 luxury +1 betrayal +42 guardianship +1 stater +4 orphans +32 suspicion +2 journeying +1 derideth +2 woof +2 seamanship +2 consaldus +22 nourished +1 faced +13 cattle +6071 will +7 discussing +4 devices +3 barbarian +3 avaritia +2 construction +1 voucher +10 safe +2 societies +111 assumption +1 ineptness +3 glorieth +3 advise +51 excel +9 enemys +3086 end +1 domestics +1 corroborates +31 subsequently +1 hardens +2 purposing +48 defense +13 zealous +5 paramount +2 nurtured +2 minutest +2 looses +3 imaginations +8 shadows +1 charitys +7 yesterday +3 dislikes +1 concubine +1 estranged +28 mastership +4 fires +3 imprecation +1 blank +41 offices +1 protestations +2 magna +1 pedis +3 endows +5 steward +4 unalterable +25 si +2 suv +889 except +2 subordinates +4 pretending +136 magnificence +1 gostes +1 trubled +2 donkey +1 variably +87 modesty +194 moses +1 aulus +1 ordinateness +63 delights +1 immolating +33 aims +59 puts +3 beak +7 originated +9 months +9 hymn +59 escape +2 jocularity +1 cloaks +3 availeth +2 codex +4 wilfully +200 specifically +1 skinflint +14 disproved +1 praedicam +62 diminish +1 diversifying +24 violated +109 partly +2 quant +1 disappointment +18 dog +46 constitutes +1 irremediableness +2 soter +2 reminded +1 unacquainted +4 resembling +2 scorned +8 incantations +190 presence +12 generality +1413 ghost +30 xxiv +2 malediction +7 dutifulness +1 debita +134 invisible +30 prescribes +521 fitting +7 energumens +3 thymosis +7 illa +4 diviners +1 aimlessly +2 lance +6 sustaining +1 expositors +1 subjugating +5 eagles +16 indignation +48 leo +1 fillets +2 livy +237 passage +10 civic +177 easily +1 commandeth +1 considium +633 intention +14 resolution +2 selfsame +2 mardochaeus +13 ministerially +2 inscribe +1 equip +3 thirsted +1 portents +14 absolved +2 ado +2 hectic +65 worketh +31 mentally +1 linens +79 thinking +2 discip +68 deserving +1 surveying +52 sobriety +2 inaction +1 treaties +15 distribute +1 absorbing +1 strings +10 grew +7 abba +277 requires +7 elizabeth +11 jest +10 denounce +1 assassins +2 rubbing +32 walking +67 daily +1 interlinear +6073 if +2 indeliberately +33 univocally +1 initiative +91 preaching +7 resembles +1 distributor +3 embracing +3 andragathia +1 vaporer +1 pranceth +334 reasons +1 duae +3 hem +306 accident +7 urban +4 highly +2 loquacity +356 depends +24 emanation +134 proceeding +1 enervates +18 wolf +5 hoc +4 traditions +1 doubtfully +1 intus +3 dedication +90 abstracted +13 wast +15 rashness +21 combat +12 promptings +4 molest +628 her +2 persisted +2 senatoribus +45 indefinitely +3 blushing +1 engines +8 hotter +2 proffer +34 hitherto +4 searcheth +2 ants +1 evangelized +13 memorial +12 implicit +2 selves +2 poles +1 alternate +34 builder +1 alleg +1 incisions +5 dilemma +359 lest +26 intentions +1 trader +2 fabian +27 leper +1 materiae +1 josias +5 prol +1 amand +1 effigy +1 plea +2 venom +1 earmarked +8 publican +53 risen +1 respectful +3 governest +18 xl +6 exemplate +29 sad +1 lewdly +4 evaporation +122 occur +1 sophistry +90 proximate +2 vacillating +1 downcast +4 woolen +79 dominion +1 sempiternal +1 cxvii +1 unseparated +3 necessitates +2 workmans +1 dwindled +24 obstinate +1191 appetite +1 artful +12 perplex +11 weeping +2 undeserving +1 tenets +1 socratic +107 xv +8 sprang +4 hadst +80 attains +1 disfigurement +310 receives +1 dixit +2 ambitious +98 enlightened +1 dubious +3 sided +1 judicibus +1 inhabitable +62 arts +1 handkerchiefs +1 ingrafts +13 fainthearted +10 quarrel +13 witnessing +12 fermented +1 snarling +27 retaining +1 overburdening +1 mosaic +1 acumen +1 traversing +19 alexander +16 accursed +2 tired +2 eater +18 ended +1 constat +2 abased +4 hampered +2 shaving +1 castrated +23 varies +16 amenable +8 conducted +3 crucifiers +2 vouchsafes +27 heating +3 pervading +4 discriminating +4 boards +1 empirical +9 dict +1 sentry +31 counter +5 pseudo +8 employment +55 simultaneously +5 repelled +24 sentences +321 essentially +2 extortioner +4 depicted +1 terrifying +1 workings +587 ordained +97 xxxi +37 necessaries +150 assume +2 staves +3 orleans +4 setteth +2 wholeness +2 platonic +34 deacons +3 adjured +2 hi +1 undertook +2 impetus +15 ownership +178 figure +235 mover +1 surviving +12 borrow +1 vexatious +3 dirigible +2 revered +55 sweetness +8 accrued +1 domin +6 remaineth +5 boundaries +1 moorhen +5 undisturbed +2 ban +2 swerve +2 whitenesses +1 regulations +4308 virtue +1 betrayest +1 develop +48 comprehended +1 ropes +2 studying +89 hilary +24 infants +1 theein +1 irremovable +1 trebat +2 propinquity +5 boon +43 putting +4 meets +1 unclothed +4 got +10 cedar +158 tully +668 spirit +7 designation +12598 therefore +3 hierotheus +1 nerveless +2686 these +17 repel +1 suspicious +21 communication +5 thirtieth +1 feathers +32 imaginative +2 authorized +4 ken +128 lay +3 securely +1 causeth +1 jejun +3 prime +4 christi +6 acknowledging +1 constellation +1 quo +632 needs +36 pleased +326 arises +4 barrenness +1 agrippa +2 enforcing +94 conformity +1 gluttonously +6 safeguards +2 personalities +1 intoned +15 stress +1 jesse +1 evaded +1 pseudosynod +17 indefinite +11 assail +15 justices +34 unworthy +1 degenerating +23 exact +1 marcellin +1 almaricians +7 paral +32 clothed +6 stealth +7 stops +11 deformed +16 xlvii +1 symbolize +1 selects +1422 kind +39 befits +1 insistence +107 treating +145 similitude +11 tacit +1 domineering +34 victor +2 drying +66 distant +23 beware +2 imaginings +18 constantinople +1 generously +14 quantities +2 quarters +19 erred +2 tension +5 regret +157 begins +28 serving +1 fraudulently +13 announcement +1 administrator +59 justly +601 baptized +4 slacken +1 joyous +1 orbis +5 stool +249 highest +4 sancta +21 zech +9 paralip +1 flag +2839 augustine +34 bono +1 appetition +6 duabus +3 purifications +26 calf +67 unjustly +5 astronomers +1 nimrod +2 confuting +22 pronouncing +1 charmeth +137 happy +63 numbered +1 medicando +2 imitators +2 implored +106 firmament +1 fellea +23677 be +1 tonic +5 tin +814 else +8 joys +25 sepulchre +2 peacefully +1 mittit +428 result +4 boaster +1 lids +58 immortal +1 withers +2 protracted +8 pauls +4 dialectic +22 strives +2 counterpassion +148 sensuality +1 penances +2 pudicitia +1 mouths +158 judicial +1 obscuring +4 alleviates +6 compounded +23 dost +1 assignation +2 canterbury +4 inconvenience +3 debars +1 niceness +101 remove +21 boy +1 specious +70 year +2 ordinaria +7 parad +25 benefice +43 ungrateful +9 midwives +1 disloyal +3 apollo +130 regarding +1 earthwards +90 assistance +13 porphyry +2 defraud +30 gained +20 reflected +334 hold +1 lazy +4 regenerate +224 instant +2 ascertain +1 organization +12 spare +1 univ +2 dawning +6 designating +1 incident +7 spurious +1 notices +730 see +1 compounder +31 abundant +2 geniality +63 prince +18 determining +33 extra +1197 regard +1 burthensome +2 uncaused +10 skins +12 pour +1 carcases +16 immobility +3 meaux +5 disparage +2 aeris +1 thrower +8 curbs +1 mora +1 introductory +1 avidus +28 resistance +1 enlisted +14 romans +2 punisher +5 attacked +32 presumptuous +24 feasts +2 greets +1 parvulorum +182 despair +4 intrinsically +5 dono +14 bone +1 fastest +58 versa +9 contracting +1 conversest +7 illicit +1 subscribes +1 subterfuge +48 heal +6 unit +2 tis +8 deeper +15 acknowledged +2 displaced +7 descends +5 vigilantius +1 charadrion +11 originates +2 dire +1 flattered +7 ascent +38 needy +1 somewhere +428 material +322 pertain +7 consult +20 macc +1 facti +1 proscribed +43 provide +203 proportion +2 asa +35 impassible +2 discontinued +4 ascertained +1 ostensible +11 grown +1 complain +7 sublimity +11 judgeth +3 earths +163 chastity +1 swept +1 quadrilateral +7 celebrates +3 oftener +1 perjuriis +1 indecently +2 conscription +8 divisions +14 vigil +16 guidance +15 design +1 acedia +577 too +9 stoned +273 conception +1 photius +1 purloins +4 needless +1 swerves +7 propriety +4 adopting +3 damasum +2 beseems +1 fruimur +27 withheld +2 harvests +4 surround +5 advancement +1 changeless +1 incoming +22 ashes +57 hoped +5 thanksgivings +4 indeterminately +60 employ +27 godliness +1 nun +2 vig +13 obscurity +1 brutalized +63 thyself +3 illegal +5 emmanuel +2 aspersory +32 aid +15 bless +3 conceit +51 livelihood +1 christianis +17 rejects +296 none +4 wizards +1 xcii +1 falsification +226 oneself +8 interiorly +5 disgust +19 stripes +12 transgresses +269 fall +58 impulse +7 consubstantiality +2 surmount +14 upkeep +19 denies +5 lifelessness +22 adequately +57 bestows +4 vide +16 bulk +1 micheas +13 kisses +4 reigns +1 maniches +4 fleeing +1 recapitulating +1 incompr +27 minded +2 soiled +8 pursue +1 contributed +8 grammarian +2 atmospheric +28 utterance +15 hereby +1 ideales +1 unici +10 curbed +1 starts +8 correp +1 sors +5 appropriates +6 sufficing +4 cloths +1 relegit +1 brighten +3 facilitates +1 representatives +1 prestigiation +1 agitating +1 mimicry +33 certainly +2 prepossesses +2 pool +6 recently +6 persisting +2 waging +1 contamination +20 tempered +47 building +2 trifles +25 expect +67 imposed +1 stomach +30 hardness +12 obscured +2 delirious +1 democracies +1 pence +10 procedure +1 donatists +49 decision +1 rivaled +2 maledicere +7 spoil +44 bond +5 flourish +41 xvii +13 teachers +10 deigned +1 softest +14 accepting +2 surest +1854 into +2 coins +1 captivated +11 prescription +5 catechumen +6 sanctifies +4 suitableness +12 eliciting +6 congruously +17 cont +21 plant +23 remit +23 half +25 circle +1 unarmed +1 clxviii +2 select +29 diminution +6 vomit +18 proportionately +4 foreheads +23 unite +1 recur +2 confounded +1 cxliii +11 context +33 inherent +5 attested +1 appeases +6 humiliation +1 reparability +1 comprehender +1 wholesomely +226 reality +1 overturning +65 adoption +443 required +1 foreshown +1 tullius +43 tale +42 defend +20 qualification +1 porous +2 resurr +59 celebrated +6 tempore +4 attraction +5 discrete +6 briefly +2 alluded +1 encloses +47 resemblance +4 pomegranates +6 carpenter +1 vehicle +2 tumult +1 meum +3 attentively +27 slow +23 occurrence +1 gradual +4 crosses +53 length +14 urge +1 incubation +7 israelites +4 damages +2 supra +1 producible +2 fulfillment +1 worry +2 transforming +3 fiercely +109 martyrdom +1 alypius +47 strengthened +3 wavering +24 scope +4 difficultly +9 drunkards +1 isaiah +30 transfiguration +183 lords +3 deviates +1 absorption +3 posture +2 behaved +3 womens +5 brow +5 lucre +1 slights +35 obedient +7225 now +1 sheepfold +7 renunciation +23 faults +3 interpreting +1 commute +14 democritus +2 recite +3 piecemeal +2 priscilla +2 commoner +6 diet +6 released +2 exemplarity +1 wraths +1531 after +1 commonsense +21 taketh +1 thirsting +1 artery +25 red +1 hardeneth +5 objected +4 thrives +1 ascertaining +2 supersubstantially +43 persevere +1 disbelieving +1 militia +64 black +70 distance +1 dropped +52 assist +45 exercised +1 theosebeia +1 orphan +1 corrective +21 around +1 aeternae +24 aaron +5 concealing +9 warned +3 zodiac +2 mitre +2 sophon +13 natura +21 septuagint +6 subtracted +31 youth +1 legem +1 decreta +1 copulate +8 sometime +1 entrapped +2 wizard +1 decorous +1 shells +1 objectionable +165 unjust +2 tenderness +1 adviser +18 indeterminate +2 wasting +2 dominated +126 adoration +46 immersion +2 angers +3 disparages +1 exclaim +8 coin +7 destination +21 deacon +1 simplician +7 discuss +10 hearer +313 go +78 prudent +3 scripturae +33 garment +37 herself +4 instructor +2 vexation +10 admonitions +1 communio +17 achieve +1 tom +180 bad +14 plan +3 monument +1 prudery +1 shaking +17 energy +2 craftily +1 begetteth +9 amend +1 disclaiming +11 admonish +5 ideal +1 tichonius +1 precognition +74 admitted +1 megaloprepeia +4 slowly +1 implicates +25 honoring +18 philosophy +2 freshness +26 disposing +19 enables +543 fourth +2 invectives +1 madebut +1 unshaken +4 adjuring +1 assumpt +8 respecter +1 osbert +422 beatitude +1 porch +222 useful +26 deadened +1 corruptives +16 laver +1 differeth +12 foreshadowing +2 venery +56 oil +2 counteracts +8 lii +11 shines +1 evades +4 exorcizing +1 exculpate +4 parte +3 thenceforward +10 uphold +3 vapor +1 refutation +3 contagious +1 fanciful +62 movable +3 concentrated +1 sleepless +6 piercing +5 compose +1 hexaemeron +4 demented +1 wipe +1 friars +2 undeterred +2 util +12 ere +34 dwelling +147 job +2 subaltern +678 viz +23 pollution +2850 something +6 mocked +18 upright +26 egyptians +7 alert +7 spontaneously +8 executes +2 inherited +37 raise +3 incomparably +7 endeavoring +15 responds +1 mandavit +2 travelling +27 avail +7 permitting +87 tongue +1 vulgshall +1 sicken +21 pretense +5 disorders +1 unwell +2 jam +232 apprehension +2 achilles +2 unrest +3 decent +6 youths +61 believing +2 xcv +1 calamity +4 rend +2 upraises +12 inhabitants +3 avenges +2 quickeneth +1 ornabantur +1 unconvertible +115 individuals +1125 rather +7 participles +11 reflect +1 trull +13 combine +1 consolidated +1 flourishes +1 testicles +1 dans +4 twisted +1 bathe +2 vanishes +1 discriminated +2 obviated +1 whitsun +1 episkopein +28 quickly +1 countrymen +1 emersion +3 plurally +1 broadcast +1 addicted +2 intermittently +1 stoops +2 roads +3 predominates +1 eudemic +578 sake +1 bested +1 hastens +3 tames +1 amusements +10 filiations +53 operate +1 scourges +4 primordial +2 shamelessness +391 appetitive +1 uncovering +1 fisherman +39 clergy +3 renunt +1 praesul +9 flowers +9 doctor +6 deviate +74 merited +2 deviseth +256 thereto +1 trim +2 robs +8 lowly +7 promote +28 punishing +4 kiss +3 penetration +7 beneficiary +2 detain +3 implication +28 surpassing +2 foolhardiness +4 wins +3 pasce +4 steadfastness +1 amasias +47 perchance +92 mysteries +1 contrived +1 impartial +3 fearlessly +1 psalteries +7 usurps +38 formality +1 redoubtable +394 sent +42 imports +4 mercenary +2 makers +10 density +1 qua +15 struggle +19 shares +6 deservedly +2 submerged +6 incredible +440 once +1 assaulted +5 collective +12 organic +6 januar +21 urgent +1 majus +1 stroke +2 worsened +6 disadvantage +4 amalec +1 tombs +11 ministries +138 sanctified +1 duns +20 complacency +18 likenesses +11 levi +1 rotomag +2 jaw +20 dissension +25 ascribe +2831 grace +17 preside +56 removing +6 deciding +1 multiplici +2 terminal +18 transformed +1362 ethic +1 alphaeus +3112 human +1 understander +32 ability +5 interminable +1 precursor +3 extraordinary +7 expense +229 stands +2 muzzle +1 zealot +9 eleven +1 flavored +1 loosen +1 convention +11 depth +2 indivision +508 original +6 dues +1 discrepant +5 distinguishable +3 excited +20 preacher +2 mockeries +2 resolving +24 establish +4 renew +97 war +17 consumption +2 pecunias +1 timore +10 defendant +3 disobeys +6 submitting +4 rudiments +5 helmsman +1 compassing +149 determined +2 shade +1 excitation +2 lettuces +11 collative +5 surrounds +4 concealment +9 inst +26 manifests +36 stranger +13 miser +66 definite +1 venerates +50 space +5 austerity +2 meetest +74 enumerated +2 bullocks +18 beginners +39 sedition +27 synod +1 melodious +1 baptizatur +1 romana +195 air +2 oppos +4 overthrew +2 prebends +6 chapters +3 layeth +85 healed +8 bereft +2 leaped +1 housekeepers +30 straight +3 uncovered +29 keeps +34 rejected +3 underlie +11 unfaithful +1 hampers +1 battles +1417 either +5 dinner +4 carthage +626 neighbor +1 phantastic +6 choleric +1 enervated +3 daemon +21 fat +5 graves +3 bravery +1 detached +1 precentors +1 continentem +5 system +1 julia +168 bring +1 waver +18 converse +5 sullen +4 parted +14 lowliness +1 blocks +12 implanted +1 desisted +2 adjures +18 goat +1 infamies +32 pronounce +4 achan +45 remember +6 verily +1 assignable +55 extremes +62 co +172 obligation +3 exhorting +22 ages +4 especial +2 remembrances +8 purposely +5 presupposition +394 denotes +2 exaggerate +68 flows +2 unsuited +1 stems +2 archdeaconry +13 scribes +2 professors +1 outrunning +1 frugality +1 knive +1 chews +8 kindliness +991 ie +126 ceremonies +1 adimant +1206 means +1 liberat +25 subjective +31 arose +2 opportune +828 iv +12 stolen +1 baron +44 publicly +1 exclamation +4 ointment +2 porro +40 cupidity +165 unbelievers +3 deserter +2 wasteful +1 adornments +2 innascible +1 propounds +2 reasonableness +1 sharpen +21 needful +18 expressing +24 asking +5 compassionate +275 irrational +6 pours +26 spring +1 contingit +5 trifling +1 swathing +1 painter +3 etiology +1 gloried +1 savoring +2 distressing +159 apprehended +3 emanated +3 conjecturally +56 ancient +1 contentio +1 copula +52 apoc +2 goest +8 cura +1 page +4 privileged +2 necked +9 wax +4 recent +4 converting +30 inner +5 turtledove +1 untrammelled +6 poison +291 ep +1 calamities +2 dines +5 cuts +164 turn +52 devoid +3 hesychius +2 documents +1 fornicates +1 improbability +40 host +1 scientiam +1 awakening +14 motor +1 pod +1 corrup +9 compensate +2 monthly +1 kinswoman +5 mendicant +2 trinitate +1 orandi +1 discernible +5 agony +29 generally +2 dogmatic +4 possessors +1 alas +2 channels +3 lulls +4 cheat +11 unfit +1 eleemosyne +32 comprises +18 cling +3 deities +163 shows +1 births +2 researches +1 antipathy +2 provideth +24 husbands +3 instigated +14 righteously +1 bonum +11 episc +125 murder +1 nicely +1 charmers +1 copulated +1 ou +11 torment +42 mirror +1 substratum +5 depths +1 pleasest +3 boldly +2 gerundive +160 remission +2 convict +1 vengeful +1 bastards +166 sinning +1 reliance +2 coot +1 emitted +3 recital +34 defiled +1 alphabet +1 retired +21 adhering +2 tua +4 normal +1 alternatives +1 supramundane +699 animals +7 construed +7 unsound +1 trullan +9 constitution +8 imprisonment +48 concrete +3197 way +44 surface +3 emergency +4 manliness +17 likely +55 foregoing +11 beheld +77 similar +5 afflicting +6 parting +1 evenly +11 bidding +17 residing +1 swearers +7 movably +1 gaian +68 mens +2 ransoms +2 caput +1 cows +8 wrongly +4 humbleth +10 remin +1 saracen +2 outrage +31 severely +3 undoing +1 orig +55 sitting +1 locative +5 beseeming +1 eu +2 fructus +12 fair +1 upbraideth +18 estimation +73 mutable +1 noisily +43 fell +1 impregnate +7 reform +1 dreamer +1 paulinus +9 unimpaired +1 celibate +13 surrounding +26 meanness +2 hen +2 auxilium +7 perseveres +46 employs +2 robes +3 utterer +2 weakling +6 underlying +13 approve +1 unmeasurable +535 gifts +2 laborious +1 twin +17 workman +4 drilled +3 dug +15 violet +27 describes +26 exchange +17 singing +3 euclid +4 deus +4 suspect +1 brilliance +6 enunciation +199 guilty +2 illustrate +2 skandalon +82 male +3215 do +3 avenging +1 lege +69 faust +1 sine +2 inflame +3 crystal +353 understands +1 adjudge +3 rival +5 impiety +8 clothe +116 corruptible +1 preserver +1 prayeth +3 counselor +1 catching +6 corpse +2 levit +2 vintage +3 pythagoras +87 suppose +1 donors +1 railers +19 afflicted +4 dips +1 torturing +1 prudenter +13 diversities +1 parvum +6 doubled +14 drinks +2 surprise +1 cowards +1 dilectio +1 pluck +1 os +3 whiter +307 excellence +4 loth +46 propositions +40 reserved +23 severe +17 pious +20 refrains +3 mortuis +9 labors +2588 seems +2 narration +31 delightful +2 relapses +2 bigamy +13 transient +1 unskilled +907 different +1 stamp +4 shineth +11 languages +2 agriculture +1 apparentapparent +7 unitedly +4 menstrual +2 occultation +2 thick +1 pastime +3 ailing +1 filthier +7 user +1 bel +3 perf +1 gray +1 searchings +1 novatianus +19 seat +3 arist +1 apuleius +1 adrian +1 tribal +7 inconstant +4605 hence +4 elicits +1 cassino +13 sinless +1 foreruns +1 accomplices +1 phates +7 coexist +1 laggards +6 harmed +299 becoming +14 province +5 preaches +12 today +3 warding +597 naturally +13 citizen +12 advancing +4 vitae +8 clings +1 dathan +1 regains +1 condivides +2 rev +1 ismahel +3 bailiffs +74 differences +1 phlegon +22 soldiering +221 forbidden +5 standeth +1 torrid +1 falsidicus +1 vegetables +4384 when +3 fatuity +1 veins +670 my +2 amor +3 mortify +1 underhand +4 unintentional +5 eyed +4 valiantly +4 contagion +1 plebiscita +2 enlikened +2000 object +7 hides +1 transoms +124 confession +1 furiam +2 joachim +15 cognizance +1 milestones +18 divinity +6 remotion +1 olives +4 lxxii +4 suggest +1 prodigy +2 indignity +9261 one +3 moons +14 trespasses +4 inchoation +3 scission +1 dismisses +1 sureties +3 authentic +1 columns +7 bestiality +16 administered +4558 him +4 fornications +5 noun +5 etymology +3 abject +3 developed +31 defending +45 anew +998 inasmuch +3 unusual +67 mark +2 concupiscentia +1 spirited +83 formally +1 abram +2 precipitately +2 indolence +1 approveth +1 cxlv +30 retract +7 discourse +52 symbol +2 wake +562 exist +1 proceedings +9 sentiments +2 betraying +18 caus +25 send +1 adherent +2 southern +1 attic +105 stain +2 ambush +22 avoids +21 aggravate +44 similitudes +2 hopeless +29 initial +119 extreme +12 default +4305 power +4 facing +8 unfolding +6 wedlock +11 bow +6 framing +24 invalid +1 fashioneth +3 salvatoris +6 reports +1 kath +259 scandal +21 fulgentius +80 brave +25 exorcism +19 totally +3 miserable +54 rulers +17 exposes +15 celestial +1 credibility +1 gnawed +13 warlike +10 uniformity +1 commiserate +7 diffusive +2 charakter +6 dogmat +24 easier +1 regnativa +1 raisedst +201 medium +15 synonymous +1 nothings +86 single +1 sheepskins +6 exactly +2 resolutely +125 previously +443 unto +2 safely +7 threat +1 illuminations +4 finisher +9 unfailing +47 answers +11 assailed +6 diminishing +2 viceregent +1 trespasser +2 despoil +1 formeth +625 merit +8 enigma +29 grieves +1 cledon +2 banquetings +1 gainer +1 cxlii +6 sixthly +77 affirmative +8 dense +6 labored +19 promulgated +1 simitas +8 earlier +1 advenam +2 tullys +1 tuscul +3 aflame +1 cohabit +1 amounting +1 unreasoning +715 cor +1 unchaste +1 confinement +16 accepts +5 detention +1 ordinatio +1 doleful +8 filthy +5 chariot +2 erig +9 dam +3 engraving +1 abase +11 abounds +1 amplitude +117 incarnate +3933 thing +1 uneasy +15 overcoming +2 adulteries +8 boys +11 cxxvii +202 specific +14 convert +72 belief +1 confiteor +16 pretend +19 interpret +1 pyromancy +1 highway +1904 under +1 perjures +19 covenant +1 robust +71 secular +1219 know +1 pentagon +1 ether +4 confute +2 virtutes +4 hoary +4 unwise +1 acquiesces +3 monasterium +2 devastated +2 plures +14 upward +12 guardians +1 seduces +9 sister +1 bala +1 chaos +1 arabian +1 ribands +2 fulfilleth +8 threaten +1 lees +16 anointing +1 broods +424 point +2 disparagement +5 economy +7 blush +1 imagining +10 befitted +1 specie +11 mortality +14 fleshly +17 impressions +5 snares +41 accuser +5 magistrates +1 oblat +1 eithers +22 officious +1 interceding +23 content +5 divin +1 capacious +1 revels +1 slackness +8 concealed +2 combatant +6 precaution +1 populus +14 blow +4 saddening +796 need +87 wanting +1 hotbed +3 courses +48 clothes +63 birds +1 hiddenly +440 believe +148 final +2 lighted +524 gloss +1 qualia +1 patr +2 emit +16 notwithstanding +1 denominations +2 entrails +3 likening +1 seizes +3 wondering +58 instrumental +21 sprinkling +1 philem +1 forcing +11 multiplying +15 lift +7 levitical +3 noxious +3 press +1 iste +1 coalition +7 predestines +1347 necessary +10 refraining +3 luminary +2 sacerdotes +1 blossom +3 penury +1 safest +16 strikes +1 prin +12 tyrants +5 hyperdulia +1 orations +21 opening +73 promises +19 deposit +1 sack +379 simple +1 nostrums +41 personally +3 prostitute +24 lots +5 verbal +7 lxiii +1 awards +4 sums +1 soothing +51 conjunction +1 conquerors +6 negligent +2 honoreth +1 primam +2 practising +1 theandric +1 cushions +8 washes +327 miracles +6 fallacy +1 problems +24 noted +2 intellectually +10 declaring +2 iscariot +1 hora +8 awaits +5 approving +4 disputations +2 lancets +1 superintendere +1 disinclination +13 sustenance +7 yielding +1 energies +261 isa +2 indemnified +1 circum +1 ubi +7 corporeity +2 annexing +9 serious +1 drugs +1 proffered +7 usurp +7 ablative +1 diametrically +1 deer +3 frauds +7 craftsmen +1 tall +46 remitted +1 parvificus +2 tortured +370 woman +1 fiunt +110 labor +7 exodus +1 plantis +3 roaring +3 sancti +47 animated +705 ones +1 boasters +130 require +2 inspection +3 fifty +3 invalidated +3 stipend +5 analogous +2 sacrificing +3 neglecteth +33 perish +2 narrates +10 remedied +1 cheir +1 aphilotimia +2 damascenes +1 wretches +9 indications +8 timid +13 truer +2 herald +102 conversely +166 perseverance +1 zodiacal +1 plane +1 suspects +101 drawn +16 learns +1 illustration +19 dwelleth +1 emesenus +1 schismatical +212 mere +1 unfold +1 studieth +1 babe +2 appeareth +2 enlightener +4 sabbaths +306 malice +8 denounced +5 lia +4 suppress +2592 species +1 comrades +1 demur +1 seducing +2 undauntedly +1 fro +1 squeezed +5 cephas +11 met +8 annul +1 cviii +1 scientist +2 helpest +2 inhumanity +9 buys +5 suppresses +1 astronomy +13 forbear +3 trusteth +4 suggests +1 tortures +1 beats +23 vehement +1 christmastide +1 match +1 bites +33 sensibles +3 lucin +1 limiting +244 accidents +11 information +3 noah +12 song +3 abandons +17 proneness +17 widow +10 becomingness +9 disturbing +1 distorts +1 cclxxvii +1 infamia +1 scale +4 grass +5 quat +1 isid +23 supervening +3 redempt +6 shrank +2 crossed +57 seneca +2 string +1 amputated +2 consummative +1 provinces +1 hurtfulness +10 digestion +2 limitation +1 consonant +7 experiment +12 arranged +209 government +2 indigestion +1 follicules +342 related +1 revendicate +45 prone +14 impossibility +82 negation +1 unhewn +8 acute +1 preferment +895 wisdom +1 undesirable +10 amends +1 guest +13 humidity +3 train +4 wooden +2 inciting +22 attaches +96 repugnant +1 preventive +2 heater +1 unproceeding +23 remiss +1 outermost +9 slayers +21 vouchsafed +19 equals +3 forgave +1 poena +1 cohabitation +42 refuse +2 pio +4 stretch +1 coincidence +1 diel +8 transmutations +3 overflowing +118 nowise +3 hammers +160 off +80 ninth +71 impression +6 adversity +14 crowd +2 gaudentius +2 earthiness +1 fleeth +1 goaded +2 legislator +2 veniam +1 prolong +7 steadfastly +44 monach +1 inhonesta +1 democratic +21 decided +627 aa +62 acceptable +1 grounded +19 fewer +4 distributing +1 upraised +6 enunciations +5 vine +5 receding +1 divert +16 fourfold +1050 persons +3 vexed +40 aeviternity +1 sabb +1 intermeddle +1 soldi +1 brimstone +1 oppressor +6 commemorate +6 surrounded +8 christmas +1 dilatatio +6 unforeseen +4 syllogistic +5 adulteress +3 dissimilarity +3 flax +8 sting +1 workmens +148 restitution +1 gleaming +6 truthful +19 transitory +26 hated +5 trumpets +9 completive +12 forgiving +1 unpolished +6 august +3 joints +1 rebuild +3 inventions +7 leviticus +2 habituating +5 attempted +15 jurist +1 quaes +9 oral +108 defined +2 chelid +2 clxix +5 subjoins +1 enacims +8 xxxviii +133 sciences +59 attaining +1 transverse +8 interests +1 disquieted +3 struggles +1 defeated +1 indignant +1 omnia +10 refuted +1 cannibalism +1 slightingly +578 blood +1 adherences +10 minute +276 receiving +1017 among +1 foulness +5 imitating +10 calumnies +104 suffice +17 commutation +129 conscience +1 vicars +1 sorceries +1 morem +3 appreciation +1 fusion +19 violation +4 quench +8 anonymous +4 usefully +1 nol +2 theories +11 rob +165 vainglory +1 civitate +1 faltering +1 sacredness +2 nobleman +16 foreshadow +8 astronomer +7 nobility +1 machabeus +18 recognized +1 monarchy +6 childbirth +3 stormy +1 garritu +3 erroneously +3 disproportion +1 perfumes +1 diagnosed +5 center +26 write +20 mingling +42 slaying +5 intimately +7 eves +1 refraineth +3 cholos +1 affectu +3 awaiting +50 basil +1 promulgates +32 inflicts +8 eustochia +1 hesitated +13 hire +3 provocation +1 disclosed +6 jacobs +1 exactitude +13 temples +8 expiate +3 tally +3 gesture +11 kingdoms +4 interpreter +3 grievance +12 praed +394 ignorance +198 apply +9 bile +1 dispraise +19 immovably +38 monastic +4 denomination +1 empties +1 immodestly +1 propter +1 pitch +43 confers +9 quest +3 asses +1 cochineal +3 barefoot +6 diction +9 declaratory +5 ungodliness +1 benefic +5 foreshadows +6 thigh +4 compacted +19 antecedently +3 sharers +2 conjunctum +13 nay +194 ministers +18 temp +107 presupposes +2 healeth +37 blamed +115 affairs +67 tongues +36 slay +18 ch +15 striking +1 dissembled +4 entrusts +1 throat +3 mitigating +1 flash +1 evodius +1 pondering +3 bride +4 savory +20 hid +2 persecutions +1 bonitas +3 quote +4 manasses +113 small +15 publish +52 unsuitably +1 bespattered +287 kingdom +1 rectors +1 detrahere +4 thwarted +43 toil +1 decoll +6 anywhere +2 degrading +1 cools +81 direction +167 instituted +5 fenerate +4 sidereal +52 firmly +2 extensive +13 madness +1 tiberias +2 predetermine +3 criminals +2 treacherous +3 unsearchable +1 impudence +8 improper +469 likewise +2 dose +30 throne +8 toward +2 portable +8 mitigate +1 documentis +1 secundinus +3 backwards +1 unending +3 overturned +29 solution +22 consecr +2666 any +146 surpasses +32 exercising +3 league +1 intercessors +21 weighed +3 laboring +30 latters +18 resting +2 console +1 divinis +12 larger +4 zachary +2 arch +1 eironia +3 diffuse +4 nurseries +19 punishes +1 tempering +1 chorus +1302 use +24 recipients +2 sundry +21 reduce +1 readings +4 platos +17 speaketh +32 hateful +52 adhere +5 eustoch +1 deflects +9 manners +1 liceat +76 daughter +1 chalices +18 occurred +68 thomas +3 flames +3 contrasts +19 stay +3 whoso +1 woke +8 abasement +5 despiseth +2 perverting +14 intervening +9 seized +239 xii +1 tended +1 irregularities +1 partners +3 destitute +5 roses +60 sexual +2 shaketh +53 cut +1256 ought +1 latrocinium +88 extent +4 feebleness +72 greek +1 swifter +2 oughtest +1 glances +1 acquirements +1 depreciated +2 lament +3 clxxxix +1 posteriori +2 transmuting +1 sustentation +34 claim +1 expressiveness +1 evading +3 rationality +3 wholes +70 xxvi +2 sand +1 acquiesced +2 hottest +12 coincide +3 apocrypha +1 kids +2 loosing +2 kyminopristes +4 irreverent +1 ships +3 nobly +9 admissible +4 oligarchy +2 quietly +217 evils +3 purview +12 infancy +28 hundred +3 spirative +4 uncultured +34 inconstancy +1 staunchest +3 arriving +1 barrister +1 whitening +40 diversified +1 mile +55 adored +41 renounce +37 possibly +1 assentire +8 agreeing +1 ministerings +5 disagree +1 wonderfully +117 threefold +21 watch +8 neuter +2 shambles +2 worldlings +2 valley +7 confusedly +27 arms +2 disavowal +2 moabite +19 conjoined +45 bestow +1 enjoyable +4 imparts +9 congruous +3 gazed +1 porretanus +38 soldiers +1 blends +9 comparisons +1 subscriptions +1 snatches +5 persuasive +1 graditur +6 scandals +29 absolve +1 mistrust +129 bishops +1 africanus +2 overstep +39 impressed +1 cci +1 poems +21 visions +30 home +1 saba +4 dissembler +4 affirmatively +1 praef +11 contemns +2 clearest +3 demonstrating +1 audientiam +81 increased +1 bactroperatae +1 cornered +5 slowness +18 prejudicial +1 stuprum +1 motors +1 unholy +2 laurence +903 consists +1 laxative +41 occupy +11 termini +10 abstracting +61 abundance +1 abet +1 trilateral +20 easter +1 fallacious +2 geomancy +25 equivalent +5 dispensable +5 seize +298 reference +1 marketing +4 pleads +53 bliss +3 backbitten +1 eels +2 elects +1 fines +1 admonishments +23 failed +1 fairest +1 outstretched +1 sancitum +1 vomited +723 day +33 abiding +40 derision +3 whore +1072 consider +21 layman +15 honey +1 theandrike +3 consigned +3 deceitfulness +10 distinctive +81 extend +729 necessity +54 table +2 lizards +166 prior +3 justifier +9 levity +4 disappear +4 lxxxix +2265 made +21 incest +19 holocausts +30 slaves +160 fornication +1 gnashing +5 theophylact +1 impulses +4 detractions +1 efficium +4 activities +37 divisible +12 conducing +11 prevail +7 grains +5 oppresses +13 numerical +284 nom +1 gloom +3 deign +27 refreshment +3 flood +141 taught +2 reflections +12 allegiance +1 discontinuous +1 racked +1 fostering +10 breadth +22 royal +13 instantaneously +4 unreal +18 deliberately +17 repenting +1 preconceives +1 helpeth +83 reviling +35 severity +12 extension +67 firm +5 depreciate +210 tends +2 crier +14 exceeded +3 sapientia +3 handicraft +2 flourishing +2 shelter +1 stings +55 virgins +2 translators +10 appertaining +31 gates +4 dardan +8 release +2 unmolested +1 crossroad +4 predominate +1 verses +1 lecturing +170 contempt +1 vaunted +9 pedagogue +5 improportionate +1987 called +24 english +3 adapting +1 gambling +12 oppressed +2 cud +2 endless +1 ne +45 perception +3 snatched +78 moon +2 superficially +1 wrestlynge +1 predicamental +2 maliciously +1 concedes +1 planned +23 apprehending +102 plato +2 resentment +1 invisibilis +71 excluded +12 presumed +43 penal +2 grazes +12 lending +2 endorsement +1 fists +10 inscription +2 exchanges +23 cooperate +17 urged +10 greatly +2 laxity +1 bathing +20 consenting +1 genius +16 babylon +6 malicious +1 ingeniously +8 invented +2 canceled +343 x +4 saddens +2 seals +1 paint +18 triple +30 errors +33 exempt +2 oblige +2 diameter +2 levite +1 cognoscibility +60 perfecting +3 server +1 dreaming +49 stones +11 keenly +1 paper +54 matthew +10 expound +26 identically +2 worded +6 regulates +5 losses +535 bread +145 destroyed +2 proudly +1 fluids +1 ta +1 owned +5 virtus +8 empedocles +21 posterity +2 hungered +10 adjusted +313 argument +3 tolerates +4 engender +1 riddle +300 irascible +3 terence +19 compel +7 excite +1 blades +23 occupations +13 doubts +37 temperament +252 notion +18 luminous +1 abortive +2 humil +6 governments +220 accordance +3 absorb +1 nefarious +1 sacerdos +1 mobilior +17 confident +4 reins +1 considereth +1 ordinatae +46 monastery +2 outweighs +2 disappearance +2 accompaniment +1 begotteni +11 facts +17 variable +7114 they +2 somebody +2 discouraged +36 limits +3 sext +11 enarr +18 expose +1 spoudaios +1 judicially +1 willers +1 scaffold +1 hierotheos +14 geometry +94 suitably +23 vanity +3 framer +2 coexistent +5 discussed +4169 some +1 nazarene +37 osee +2 ang +2 sower +1 modo +184 knowing +55 told +199 lie +1 delicious +11 transgressing +3 sacrileges +1 status +177 confess +17 endowments +1 ulterior +10 frustrated +64 contention +1 easiest +1 heaps +9 jus +991 hand +1 relax +4 award +1 thierry +3 mem +2 celts +17 solved +6 throws +19 weep +9 unnamed +1 rupture +224 gave +1 preservatives +11 alludes +1 foliage +2 palatable +2 antagonism +81 tempt +1 episcop +65 clean +14 simoniacally +6 carefulness +6 target +5 determinately +1 tight +20 godly +22 west +2 guarantee +3 reparable +40 kindness +16 brain +160 based +24 infection +2 locomotion +8 profane +14 fruitfulness +3 befallen +2 startled +69 omnipotence +1 strangling +2 deplores +2 contumax +2 condemnest +1 sank +11 perceiving +2 transactions +2 conjointly +3 fid +1 yonder +2 demophil +1 fatuous +3 apportions +3 pharaohs +2 una +67 communion +3 brood +11 somehow +13 medicinal +129 women +2 lxxix +1 mars +4 fabric +1 played +27 adding +7 refulgence +232 mentioned +1401 ad +5 genes +1 litt +1 hexam +202 produce +1 incola +3 hebron +1 pricked +1 tarnish +1 households +1 naboth +1 equinoctial +9 persuades +10 queen +12 deity +33 studiousness +1 fortifies +5 willeth +1 sawing +1 calculate +749 between +8 scourged +1936 far +4 versed +4 benefactions +11 perceptible +4 quarrelled +4 severance +28 heretic +12 scandalize +2 tangible +30 habitude +74 phil +22 quick +2 dimly +6 obscene +7 transform +6 ipso +2 conducting +4 driveth +3 publicola +2 rapidity +13 goats +32 quotation +4 listener +3 furnished +13 unduly +1 expounders +88 witnesses +24 wars +112 behold +61 offspring +96 abstract +1 businessman +2 imperils +76 husband +1 eligere +2 melancholic +7 borrows +75 wherever +3 attractive +13 ordinances +6 south +4 inclusion +1 piacenza +5 eased +1 refund +2 attract +2 spelt +10 finished +1 cozen +1 monstrosities +2 shoe +2 idolater +4 heights +1 dicens +2 palms +4 harpist +1 melchisedechs +161 non +1 piget +211 procession +6 achieving +1 mispronunciations +1 triangles +232 determinate +2 boasteth +1 fauns +22 crown +605 infinite +1 permeates +1 poenituisse +3 dialog +16 xxxiii +1 soared +65 rests +1 citation +27 extended +1 cxlix +1 boughs +1 unseared +1 lifes +6 companions +51 fruition +364 resurrection +7 relaxation +23 whither +2 redundant +67 daughters +1 facciolati +5 bedes +56 immoderate +2 bona +1 hermogenes +82 honored +3 sales +39 asks +3 berengarius +9 cloak +3 infernal +104 withdrawn +12710 god +1 plasters +3 fowls +1 breed +33 humors +9 judgest +1 unmade +5 corp +1 diffidentiae +1929 written +6 contending +30 avails +2 careless +1 permeating +1 acquiesce +63 suddenly +1 metalepsis +2 liquors +2 vanish +27 gradually +1 trenches +1 rahab +20 magic +12 helpful +1 gladdened +5 familiarly +1 tasty +1053 less +1 facto +2 solemnizing +11 octog +17 displeasing +1 lawfulness +5 interruption +1 repudiates +5 extinguished +2 intermittent +1 alienum +4 cloister +28 wait +1 prejudicing +2 wits +5 discrepancy +3 dissolve +1 discredit +5 actuates +2 lovableness +216 rhet +57 supremely +10 catechumens +82 miracle +1 quotations +1 zephyrinus +1 proffers +2 vend +35 restrained +12 event +21 maker +8 kin +1 machinations +1 vestige +579 water +78 converted +2 fowl +34 explicit +4 lxxviii +2 transfused +1 unique +5 straits +1 nero +3 steadiness +2 inexact +1 sapor +1 cix +1 danced +11 independently +398 signifies +638 free +105 gathered +2 slandered +54 involves +15 tranquillity +425 food +1 haer +9 realization +2 initiated +29 foreign +27 mourning +1 unscorched +2 genitive +32 venially +4 warns +4 wittiness +1 delectations +3 attests +1 philokindynos +4 passersby +341 joy +8 sitteth +24 mirth +40 decree +60 undue +3 illusions +12 tied +12 conforms +1 overthrows +27 unleavened +2 screened +4 feigned +34 baptist +4 taint +1 raptured +3 nostrils +2 globe +1 participatively +1 proveth +5 stubborn +2 cheer +243 touch +93 serve +87 governed +7 marvelous +1 reminiscitive +1 tracheal +1 pruning +1 seleuc +43 univocal +20 affliction +2 esteeming +2 moveth +11 stupor +2 blesses +15 finding +1 misused +4 emanate +1 circuminsession +5 milit +2 major +4 turtledoves +33 failing +22 contingency +1 inane +29 poster +1 spaces +364 wicked +4 dishonored +27 esteem +38 apostasy +11 concepts +18 insensible +24 traced +1 eunom +8 constantly +43 intermediate +1 trophy +64 furthermore +1 calmed +1 laeta +10 pronoun +1 insuring +1 intersection +9 uttering +1 zone +5 prominent +2 unchecked +1 gird +58 jacob +170 appointed +3 habitable +1 players +6 executed +4 underneath +122 boethius +4 perpetually +5 clxvii +9 guiding +6 constitutive +1 suckle +1 orange +2 unwavering +14 pointed +2 immoratur +1 interrupt +58 unbeliever +16 whomsoever +3 enlightenments +1 safekeeping +3515 law +387 down +25 expected +27 round +2 elegance +2 magnify +1 denique +1 pecunia +1 triangular +3 mundane +1 caldron +1 admonitory +4 catech +5 puffeth +46 believes +1 renuntiatione +92 country +2 surmise +1 uncanny +5 assenting +1 chalon +1 concave +7 contempl +100 mouth +546 intelligible +2 studied +5 diffused +3 eternities +177 phantasms +7 conduced +1 excandescentia +1 simpliciter +1 similit +1 twain +2 confounding +3 crushed +5 canticle +3 heartened +1 sully +2 affair +1 uncertainties +2 com +1 supponitur +1085 each +1 burnings +26 leaving +17 elemental +1 dates +4 hearken +38 logically +8 continuance +2 tabitha +235 child +3 stains +2 stored +4 overshadowed +7 occupying +1 wrangling +2 polity +3 formalities +1 builders +1 georg +7 uprooted +45 substantially +423 assumed +2 distresses +14 transfigured +11 horses +5 philargyria +3 sayest +13 pecc +13 mischievous +24 assaults +13 guide +2 lodge +1 muscles +4 shouting +1 obscurely +3 exchanged +2 tetragonal +73 resides +1 unweakened +39 foretold +1 evanescent +1 blew +2 disagreed +13 resolved +10 perished +3 graze +5 hesitation +4 victorious +38 cessation +2 therapeutai +60 dist +3 disregarded +7 thank +132 left +6 unrighteous +1 utilitate +2 incredulous +1 dams +8 fervent +24 close +39 declare +4 dilectus +4 corrects +1 leges +4 commodity +149 approach +3 helpmate +558 individual +4 speechless +10 blaspheme +26 presented +1 indictable +120 blasphemy +1 axioms +2 expulsion +3 particularity +1 unlearned +28 craving +132 employed +2 centurions +11 preparedness +23 imagine +1 clxii +1 passio +2 heraclitus +1 calumnious +2 invested +1 feasting +35 precious +2 infer +7 demanding +8 bonds +17 exclusion +1 disaster +1 turin +3 persia +70 imprudence +1 revulsion +21 examples +1 rats +5 citizenship +2 unmodified +1 haughtiness +1 choristers +6 mitigation +1 forwarding +4 flaming +254 hell +1 irasci +1 graciousness +4 reserving +1 athletes +1 conspiring +11 lam +1991 just +2 passeth +3 daytime +37 remedies +6 auxerre +11 clay +1 incapacity +3 mistake +26 dust +1 malitia +3 nonetheless +8 persev +2 deliberates +2 nugatory +5 invariably +2 tropological +9 sinfulness +2 aarons +1 gabaon +5 disobeyed +2 resistant +39 elsewhere +2 amulets +21 eminent +10 terrestrial +5 potent +3 hawk +9 method +10 style +2 concealeth +2 sickle +1 inquisit +1 wartime +1 kai +1 cana +2 inf +1 genuflection +3 jeremiah +19 questions +10 bishopric +63 household +5 persevered +102 preservation +2 surprising +3 parched +1 phogor +19 hears +1 decomposed +990 belong +766 fact +359 applied +13 summer +23 games +8 ritual +2 astonishing +7 exorcize +5 proving +1 strokes +33 injurious +2 marrying +6 introduces +1 mor +378 happen +2 frustrate +2 ghosts +8 avenge +1 oppresseth +2 inflated +3 refulgent +1 kimbikes +30 dependent +7 resumed +2 objecerit +918 happiness +12 bridegroom +8 contradictory +1 injurer +745 matt +9 rent +34 mountain +8 prophetical +1 r +3 indistinct +542 already +2 unexpectedly +257 master +5 craves +1 aeneid +1 impugns +25 utter +1 tilled +1 contumaciously +2 dazzled +1 circumferences +2 swayed +19 preamble +3 durst +3 nabuchodonosor +61 wilt +11 henceforth +1522 words +4 fox +1 contemplatives +109 meekness +1 pontius +27 bestowing +3 derided +9 perversion +4 broader +12 nup +3 plunged +30 beforehand +1 displaying +1 idololatria +2 attracting +1 contemptuously +1 overlooking +2 layfolk +1 doomed +18 hostile +12 correcting +8 belongings +1 lovingkindness +1 mute +55 craftiness +4 hypocritical +1 abdomen +1 lax +2 tetragon +38 interpretation +1 supergreditur +5 detractors +189 kings +58 supposita +2 concause +466 animal +1 dresses +11 impetrate +1 drier +213 attain +44 acquisition +3 humanation +1 fallacies +1 astraddle +76 sick +3 sunset +10 permanence +59 succession +84 discord +10 humbly +307 results +1 vault +1 resided +1 chances +30 fun +23 fifthly +1 amplified +2 models +2 alterative +51 grant +2 despisest +6 juxtaposition +3 barnabas +1 theurgic +27 fame +4 stench +1 branded +13 exile +1 henceforward +18 jew +4 sponsor +6 nows +2 deputing +38 demonstrative +2 powerfully +8 town +2 undemonstrated +10 cockle +8 mine +12 salt +3 disqualified +155 pope +2 eventually +5 benignity +1 porphyrion +91 conversion +1 reputing +1 tributary +1 digestive +13 maxim +1 celebratione +15 redounds +4 pomp +1 decimas +1 vulture +5 woven +2 spirituals +48 reckon +1 exuberant +7 raiment +6 chord +40 desiring +1 slipped +1 culminates +3 captured +1 disunited +27 apparition +4 consulteth +1 irrevocable +6 perishable +1 gently +1 decrepitude +13 realities +3 net +1 usuriously +3 acquaintances +1 plundering +1 inhabiteth +1 consecrator +2 officially +3 lxxxvi +18 substantive +21 laying +236 call +4 categories +2 deductive +2 profited +2 reparation +10 bare +19 foe +1 paler +1 vale +30 referable +441 she +2 outweigh +96 slave +1 deserting +5 alt +94 glorified +1 prose +21 levites +41 entrusted +1 elucidate +3 transgressors +13 cognition +1 furniture +3 virtut +3 battlefield +33 fly +1 elevating +31 trust +310 added +9 repugnance +5 lessons +2 bruise +72 ashamed +1 regrets +1 depress +1 payable +1 gushed +222 incarnation +3 sticks +1 deuteronomy +1 articulations +6 armor +2 convoked +7 contradistinguished +1 trinkets +1 tiller +1 baldness +3 fumes +7 substitute +24 eternally +5 craftsmans +5 cxlvii +3 divinatory +3 engrossed +1 lookout +5 pastors +42 entrance +12 devoutly +226 keep +36 prodigal +13 top +1 mangy +1 circumstanced +2 residence +12 recompense +3 lanfranc +11 spends +1 canonry +1 runaway +1 dissenting +12 wiser +1 turp +15 sortilege +27 regular +31 antecedent +685 fortitude +9 subjecting +3 mal +20 satisfactory +1648 had +1 caelo +5 brev +34 limbs +1 monster +3 relieves +7 antecedence +197 eph +104 later +1 lung +1 incontinency +1 praefatores +1 decretum +11 alien +58 fervor +17 corruptive +1 flew +3 duas +544 hath +4 block +107 qualities +1 solus +7 cries +48 buying +5 fetter +2 doubtless +5037 christ +100 restore +139 heard +2110 us +1 extenuated +1 sheets +28 quarreling +617 rational +34 bodys +4 crowds +1 misunderstand +1 recline +1 parenthesis +4 belial +1 echo +33 pontiff +4 li +1 inculcates +2 premium +1 divisibility +2 supplement +8 eggs +81 slain +1 enriched +5 revealing +2 docile +19 inflicting +2 beginner +1 bracarens +1 bud +1 mainz +505 differ +2 gelboe +27 cherubim +1 softening +61 testimony +9 tribute +10 drop +1 spirated +237 circumstances +7 dull +1 cyprians +1 palsied +5 undetermined +91 spoke +16 visit +2 nobles +8 post +11 congruity +4 taunts +3 coverings +25 houses +3 residue +6 north +8 servility +26 breast +1 whale +1 hailed +19 abandon +5 trying +78 chance +1 dilating +3 generosity +329 sinful +8 stained +1 extant +1 visibility +2 scorners +2 spurns +225 apostles +9 assisted +4 encouraging +1 abductors +3 betake +4 parishes +7 failure +4 jacobi +3 searches +2 shaped +1 cxvli +330 creation +22 wash +3 allured +2 fetus +3 ccl +1 martys +24 determines +1 sinister +1 sinlessness +3 medicinally +11 ailments +78 mentions +1 impoverished +1 congregated +1 cleft +7 prelacy +7 completing +13 consanguinity +101 polit +3 masticated +29 recognize +2 monachis +3 prides +3 dissents +1 vatican +16 privilege +34 beatific +95 minds +3 purif +12 supplication +1 ranking +4 designs +1 frivolously +38 damnation +1 infinitudes +4 fondness +2 shutters +9 laughing +1 heterodox +4 permeate +17 ministering +3 ordainable +1 sanctifieth +1 jeroboam +10 persistence +3 warmed +18 laziness +11 nourishes +3 leaden +21 compact +13 counted +6 lucid +3 groweth +3 calumniating +15 hoping +109 servile +1 moyses +1 pace +4 component +1 comrade +31 formlessness +2 handles +1 pincers +1 incompletely +72 clerics +3 instability +8 importing +19 conformable +6 uncircumcision +1 akrocholoi +79 virtually +22 surplus +4 inculcate +3 worshiping +1557 fear +1 tossed +282 applies +130 absolute +3 maidservant +1 brace +334 read +1 exempted +19 imbeciles +7 judith +12 darkened +15 path +2 permanently +17 archon +1 indelibly +5 boiling +8 allegorical +2 breaker +1 gomor +7 protected +1 postponing +6 friday +1 machination +2 lily +1 eupatheias +3 assistant +74 rules +2 eucharistic +15 shipwreck +4 concede +3 fist +88 mk +4 surrenders +3 secundum +3 greedy +36 governing +1 bartered +3 synodal +2 bon +100 unbecoming +31 lasting +1 aylward +6 endowment +1 payers +1 vivified +1 plight +1 pasture +1 dissolvent +1 unfriendliness +1 talionis +19 marked +1 desperatio +115 prophetic +24 canonical +11 fought +1 traversed +1 sumptuary +3 spirators +3 divines +11 utterances +1 disadvantages +3 misunderstood +1 begs +2 stubbornness +7 beard +6 intelligences +1 respectfully +8 geometrical +1 pulling +4 checks +73 seminal +2 ozias +12 throw +1 labelled +1 demetr +1 elbow +208 drink +2 mainly +10 suits +24 approved +2 rebelliously +2 absolutions +1 notably +3 apposition +2 lxxvii +2 arrows +1 fari +1 mastication +6 incompetent +7 investigation +5 located +986 apostle +1 chole +1 paralytic +12 contemplates +9 governors +13 accompanying +2 bilious +4 reigning +3 combustible +3 politics +391 sign +7 indebted +2 concessions +8 forgives +1 heartlessness +30 presume +4 exposit +211 differs +2 dazzling +3 retrenchment +50 honest +2 misgiving +2 speculatio +42 penalties +2 september +12 individuality +1 prosecute +31 reproach +1 elector +1 torches +2 transmissible +6 eagerness +3 curable +1 evoke +2 enact +5 conforming +6 blackening +10 anyones +8 footed +1791 acts +6 murderers +7 radically +1 widest +1 theia +10 accorded +2 tonsure +2 unconcerned +5 elementary +1 adherents +220 equality +1 realm +1 footsteps +994 instance +61 remaining +2 scraped +9 forestall +53 helped +1 lapillus +1 legitimate +1 airs +2 temperamentally +5 strangled +31 confined +1 neophytes +65 gratitude +1 pierre +2 populace +271 why +5 level +84 turned +153 exercise +1 enlistment +6 immaculate +3 knees +1 novice +3 stratagems +1 blames +1 passurus +5 fortuitous +1 riotously +8 plotinus +153 seeks +2 leisurely +15 month +1 intrusted +13 sweetly +8 devises +260 lit +3 hollow +17 calm +1 dragons +1 laud +1 shorn +2 posts +5 tongued +28067 not +1 improvidence +1 reddere +10 peaceful +164 proposition +1 illusory +306 distinguished +31 suggestion +73 ours +5 worn +3 dissolving +8 classes +25 immutation +3 departments +192 custom +34 ambition +1 rixosus +2 salute +1 quomodo +3 comm +2 quaked +33 numerically +1 uncomeliness +76 honors +9 simulate +11 completes +1 emerged +40 rape +11 tri +5 xlii +2 edge +2 provocative +4 missions +1 makeable +18 principality +9 lighter +50 limited +387 movements +3 disputation +11 wonted +1 channel +10 slightest +1 pars +10 wisely +10 oppress +39 ensues +1 consuetud +11 gall +26 veil +105 greatness +1 scoundrels +1 cinders +2 roasted +1 donned +35 accepted +1 sincerely +4 radical +18 protestation +3 mourned +3 ethereal +1 havoc +2 omni +1 foro +4 affectation +1 infringed +1 enfeeble +47 begun +17 despising +1 ineptly +3 epict +21 confused +1 deficiencies +7 boasts +29 amongst +1 gratifies +1 incubi +1 assumptions +9 influences +2 cham +1 workmanship +10 presumes +5 utmost +1 banausia +2 venia +1 unbinding +31 irony +35 grow +7 precise +6 disagrees +2 revering +80 certainty +3 eunomius +1 expired +1 autumn +10 opens +2 cargo +11 prudently +8 asketh +43 arguments +141 intends +3 catechized +322 jerome +2 superbia +5 harmonizes +78 repentance +1 darkening +5 deserveth +1 stupid +231 prov +58 conduces +1 suffocated +77 concerns +1184 mortal +1 ridicules +1 stays +1 bridled +1 equalling +6 martin +13 ed +21230 for +8 sensuous +8 significance +115 uses +1 lateran +1 mediocriter +1 extracts +1 fading +24 styled +2 practically +50 homily +158 continence +1 monos +1 conjugation +23 adopt +334 civ +9 tyrannical +3 logicians +8 equable +1 mahomet +7 grasps +9 specify +5 arian +1 array +7 discovers +1 detected +13 physics +23 ate +1 thankful +1 pebbles +1 unparticipated +56 dimensions +11 remark +9 cit +6 productions +5 fondling +202 reduced +3 sluggard +1 anticipation +61 agrees +1 acid +9 problem +2 nicolai +6 meanwhile +1 godolias +1926 christs +1 outlasts +2 mardochai +1 homilies +1 theatres +4 watery +24 homage +2 beards +3 inaccessible +178 tim +2 streams +18 betokened +201 offer +4 sprinkle +4 spirituality +13 occasionally +1 novum +1 enmesh +1 hiram +14074 from +1 citing +11 sallust +2 popes +1 sensations +1714 perfect +1 sterilized +15 intensely +370 choice +1 hexin +42 usefulness +1 walled +1 embroiling +2 joke +1 trophies +2 presage +2 sluggish +74 purity +1 synthetically +2 approbation +1 stripping +12 multiply +11 effeminate +3 midday +16 amiss +12 thorns +2 motionless +9 significant +1 rescuing +1 planteth +985 follows +4 negatively +103 fashion +9 seduced +5 voti +1 bondman +12 modified +3 equilibrium +10 qualified +1 brigand +5 prologue +26 seemed +1 dreamed +1 condignae +1 speakest +1 forecasteth +1 largitas +1 analyze +1 mattered +1 allowances +331 wherein +1 chickens +84 contact +2 principals +1 grenoble +4 disintegrated +10 beneficent +3 thamar +57 looked +442 temporal +1 ordinately +3 swollen +56 expounds +1 maunder +4 intimation +1 trustfully +1 anaclete +3 plentiful +41 conveyed +300 wit +1 bondmen +6 anticipated +2 unfailingly +5 inferred +8 mightest +4 abolish +1 mob +2 vogue +1 apollinarists +4 connections +3 recesses +279 fifth +1 providendo +2 abstinences +504 objects +2 chordis +1 cement +40 touching +4 knives +3 laboreth +1 connect +7 vinegar +3 publicity +7 troublesome +2 halted +5 contemning +32 unseen +2 improbable +3 entices +1 portray +1 christen +9 parties +1 eminency +71 efficacy +13 aurea +32 termed +2 libero +2 hazardous +3 flees +1 miseriam +33 leprosy +4 astonishment +1 discharged +13 spite +3 inhabit +3 nets +1 diminishment +222 laws +5 separable +2 witnessed +27 subtle +1 intoxicates +94 ten +1 betokening +6 bonaventure +1 turnest +7 sympathy +1 lucifer +75 bede +1 precincts +29 logical +1 interchangeable +7 whereupon +2 liken +2 damnify +281 definition +2 nether +1 obsequiousness +22 appointment +652 rom +1 agapit +1 rheims +6 contemptuous +3 insulted +1 deinotike +7 withstands +7 eunuch +2 musica +104 indirectly +2 subordinated +30 oaths +1 devolved +44 touched +130 christian +5 bestial +4 supplications +1 thorough +31 shut +1 premise +1 rinse +44 treated +162 fails +1 institutione +6 ignores +7 appeals +47 discretion +1 patrum +4 stream +3 decencies +1 tantamount +4 centum +87 blindness +2 sumere +14 spot +34 flock +4 ovibus +1 embodying +30 performs +9 individuated +204 opposite +16 blows +5 chap +1 satyrs +6 oracles +58 ruler +3 endow +2 hardheartedness +2 nod +2 quisquis +8 history +23 evangelists +1 consummates +1 tire +2 fleeting +2 lamech +621 better +4 principled +94 plain +4 xxxvii +1 standards +1 tenant +4 rarely +1 deposition +1 wastes +3 notary +2 retail +3 cheerfulness +24 bearer +3 virile +668 points +8 accommodated +4 prosecutor +3 caesarea +26 treasure +14 benevolence +16 supplies +4 meted +321 dead +19 stage +13 handed +1 vol +1 shuffling +8 gentleness +4 amended +194 defects +2 priapus +8 lovest +107 satisfaction +1 antiquit +12 motions +1 donations +15 cruel +62 giver +11 refusing +1 expending +1 charmer +3 tests +9 guides +29 receptive +25 meditation +1 breves +12 persecutors +2 neglected +21 early +42 leading +2 ostrich +2 admonere +1 unisexual +1 walkers +5 sixty +52 operates +74 iniquity +2 nisi +2 omnis +85 followed +1 counselors +1 drama +1 deiformity +7 perversity +1 shabbiness +4 uprooting +80 obstacles +1 revilers +311 members +2 canonic +11 convinced +37 rapt +1 gloriously +2 defectively +5 impelling +137 depend +311 passive +2 remembering +1 empowers +22 quoting +1 suicides +1 traveled +4 poisoned +22 addressed +12 transfer +4 condescension +1 role +8 trusts +1 reestablished +4 privy +502 habits +2 selection +6 adversaries +1 entreated +20 tremble +5 beating +2 demonstrator +267 ambrose +1 t +1 seditiously +1 crept +606 found +9 intuition +5 opposing +9 getting +3 swift +42 implying +4 coarseness +1 contiguity +2 affable +600 universal +8 distraction +67 changes +17 errs +52 freed +2 wardens +1 furious +2 alcuin +16 speeches +2 contrarieties +1 orb +1 maledici +16 plainly +3 volume +7 escapes +45 political +23 obstinacy +12 supernaturally +18 sources +1 kinsman +1 exonerate +16 employing +1 nominibus +16 laughter +25 urgency +1 sightliness +1 incomprehended +98 sacrilege +3 cxl +1 circus +24 transcends +15 fresh +5 causa +4 investigate +1 alienate +16 proclaimed +3 imputable +12 sunday +98 learn +13 disturbances +1 timbers +5 lean +6 presentation +1015 namely +2 baruch +14 impedes +16 nourish +3 innascibles +19 redeem +36 brightness +1 bases +1 consuluisti +590 inquiry +3 hers +1 unheard +279 ever +282 changed +1 vicariously +4 azymes +11 hierarchies +575 whose +6 gets +1 dogfish +5 cheerful +113 abstinence +1 eastward +3 culpable +1 meeteth +2 didymus +1 defaults +24 dial +1 willfully +81 affected +494 science +74 boasting +42 reached +3 blade +1 mispronounce +1 peevish +1 ninthly +10 uniformly +21 hay +14 differed +6 persistent +1 redoubled +1 judex +4 seduce +1 aeromancy +1 stealeth +1 damnum +3 responding +1 metiendo +55 alike +2 impetrative +1 quaking +5 jesting +2 syrians +1 destitution +1 leaf +17 omits +3 weigh +6 interfere +2 damp +15 apostolic +1669 nor +4 laborers +1 hagios +51 unsuitable +1 yes +1 disseminated +8 intermediary +2 forecasting +51 eaten +15 hours +18 tithe +1 bowed +1 persecuting +44 regeneration +11 psalm +2 extolled +1 evokes +3 hector +1 harsh +1 unnecessarily +1 jur +20 consisted +594 over +16 commentator +1 salary +118 expression +8 c +112 course +60 divers +2 advantageous +5 l +2082 own +19 assimilation +69 strictly +29 fittingness +1 apathy +11 aiming +52 allow +1 corollaries +6 catch +32 forget +1 creatable +194 necessarily +6 affirms +22 forming +11 foresee +56 assigns +7 susceptive +2 listening +60 asked +375 save +1 slackens +3 profiting +17 trading +1 ccxciii +82 causing +44 aspects +8 unpardonable +3 navigation +4 insolent +2 attenuated +1 communicability +1 herods +19 convince +66 endowed +5 unlimited +1 consecutively +12 sinneth +14 homogeneous +18 downwards +1 rally +1 spilt +1 uterine +2 belongeth +1 praecept +3 sunrise +23 resisting +2 farm +1 babylonians +2 bribe +19 continuity +18 idleness +1 divinities +3 cordis +12 pupil +3 mites +1 disregarding +2 dictionary +5 birthplace +4 recited +1 contentedness +30 thither +15 phrase +4 rebels +11 statute +10 invoke +7 hymns +1 restricts +1 cclxxcii +10 meats +14 fettered +1 deviser +1 primit +2 connoted +1 machabees +22 subtraction +9 enrolled +24 participating +1 cyphers +6 purged +29 seeds +3 week +2 differentiation +14 withdrew +4 backbite +1864 been +4 impossibilities +8 adventitious +1 magn +54 intense +234 piety +6 tainted +1 terce +3 fits +3 perseverantia +2 procul +7 sustain +3 contests +2 executioner +1 discordance +1 hermetical +199 speaks +3 individualization +3 saturday +1 animalibus +7 nakedness +139 ungodly +2 span +1 personando +10 pointing +2 joachims +52 forbade +1 diaconate +6 lenten +1 anthony +1 amassed +3 vouchsafe +6 underwent +2 flexibility +218 ordered +1 app +4 tragedian +9 cassiodorus +1 elia +274 priests +4 alius +769 nevertheless +6 representative +1 zenith +8 discharge +2 phlegm +1 ancestry +34 communicated +105 negligence +87 hierarchy +2 unified +40 elias +1 particularizes +9 acknowledgment +3 invited +9 egyptian +7 achab +4 ending +1 harken +65 moment +549 heart +1 sew +7 smoke +1 prevision +1 cherish +6 fetters +241 entirely +8 blameless +17 bravely +6 passionate +5 preconceived +18 shared +2 averse +1 adjudicated +617 salvation +1 herodionem +2 bottles +31 clothing +9 appealing +3 insincerely +1 polish +4 actor +1 habere +34 fill +1 miseratio +1 spatula +58 denied +3 seers +34 decide +38 forces +24 statutes +1 superabound +1 proph +1 stupefied +1 jejunium +1 cajoling +2 adjustability +1 african +1 fortunatum +5 defended +5 delegated +2 complied +2 herd +1 postul +1 honorary +1 exhaustion +8 workmen +7 redound +15 operated +166 considers +17 theologian +5 dared +3 unfruitful +2 substituting +16 execute +123 befitting +2 preeminence +5 harder +1 thrust +1 tops +4 stewardship +1 genere +1 oblig +1 hunting +3 pursuance +472 judge +1 rows +3 disparity +8 tooth +1 denunciations +1 blest +1 faciendo +2 insomniis +3 griefs +10 yields +1 unshrinkingly +2 tetragrammaton +4 videndo +2833 cannot +2 redeems +6 unhealthy +190 took +1 celebrant +137 vows +16 validity +3 renovation +3 drowned +14 discordant +30 caution +24 tolerated +27 perpetuity +12 rarefaction +5 enactments +1 belieth +2 faces +3 comparable +8 mindful +20 inclining +166 wife +1 declarations +334 viii +2 sensile +2 transcendentals +205 hier +1 proscribe +4 arbitrator +6 foretells +1 insulter +2 bridge +84 mary +1 smiths +21 acceptation +2 amuse +8 foresees +7 branches +2 disintegration +4 physicist +34 raising +620 religious +5 devour +3287 our +1 extinguish +48 xxi +3 taming +13 wheaten +15 orat +1935 about +1 putrefying +1 rachael +32 firmness +1 overspreading +12 infuses +274 sacramental +6 propassion +158 high +1 masso +38 hypostases +7 ravening +8 director +1 thankworthy +1 apposite +74 denoting +3 curtain +53 holding +52 approaches +2 paleness +312 increase +3 palsy +1 push +174 eyes +3 exemplified +1 adjicimus +1 main +855 eternal +1 aminadab +17 coveted +1 preponderance +1 emphatic +200 qq +46 parish +5 syllogize +128 face +16 astrologers +1 trusty +65 rewards +1 goatskins +95 solicitude +24 regist +3 supp +1 appetizing +1 dikaion +6 rough +8 authoritatively +3 indiscretion +8 plucking +6 apocalypse +1 undermining +14 assembly +1 ois +32 affects +1 relict +2 dine +4 abel +3 pigeon +28 occasioned +2 zachaeus +2 discriminates +1 honorat +6 repair +70 denoted +100 commenting +163 tract +3 deride +1 electionem +1 heifers +1 torturer +6 questioning +1 divulge +13 elicited +3 dissemblers +40 reaches +97 voice +2 amidst +4 rebelled +2 heterogeneous +24 communicable +2575 intellect +5 compensated +1 enjoining +3 josaphat +13 purple +2 certam +1 temperately +63 progress +36 wherefrom +1299 state +1 cardine +1 culled +1 genealogies +7 detracts +4 sacrarium +16 altered +3 excepting +2189 person +2 disparagingly +1 synchronizes +3 termination +1 applications +13 relieved +1 goddess +73 simony +38 conducive +3 bowing +66 passed +47 generator +1 summary +4 relapse +2 prospect +1 impairs +31 retaliation +15 invoked +7 laymen +99 revealed +2 incautiously +1 savored +12 detest +8 foreknows +10 darksome +3 categorematical +1 fiction +1 blunted +2 chamber +1 alternation +2 peaceable +1 unsoiled +10 nazareth +5 intelligibly +767 heaven +116 intellective +10 handiwork +2 whales +3 jaws +1 symbolizes +22 womans +2 strictness +168 gratuitous +2 bondsman +2 revengeful +7 usufruct +1 cradle +1 discoursed +1 exhausts +12 heli +1 aboundest +2 degradation +1 brightly +30 drawing +5 diversely +16 provoke +1 loquacious +38 ev +10 someones +164 die +1 unsold +28 expiation +145 cross +1 abhorred +3 sumptuously +1 seminales +46 identical +15 establishing +10 admitting +9 covering +60 rite +5 seats +10 wondered +1 vituperated +1 denouncer +346 concupiscible +5 conc +1 virility +1 akmaiois +1 monomachy +1 hamartias +9 bailiff +648 knows +1 emissenus +2 bria +5 retarded +1 qualitys +2 entangles +44 almsdeeds +1 devouring +35 totality +3 impending +6 unities +46 descent +1 heres +1 exhortations +8 brutality +1 extracting +2 enkindling +2 executions +1 turmoil +1 cemented +263 deut +2 palpable +1 imported +24 incommunicable +8 ira +1 roboam +11 backbiters +24 regulate +41 poured +1 dicta +1 forge +3 agreements +8 stripped +4 inconsistency +2 scattereth +24 equivocally +2 rancour +1 propitious +1 campaign +673 mode +5 searcher +1 retributive +1 severing +161 womb +63 mothers +12 leg +53 continues +1 treasurest +7 leans +17 heated +1 divinationes +16 evidenced +1 homicid +29 descending +3 scene +3 precludes +15 heals +1 habitus +2 inhering +12 fatherless +4 bar +1 magnifies +1 reverences +3 grievousness +69 relates +1 alight +16 pagans +26 deserved +7 dioscor +3 discusses +7 assurance +26 reputed +11 maintaining +35 exercises +2 relentless +2 disaccords +3 gainers +2 varieties +3 creep +23 administration +1 purloin +29 sacram +1 amounted +3 pythonic +1 classified +1 abolishes +21 enjoys +125 following +3 illustrious +2 ambitione +1 incircumspection +1 vit +118 destroy +1 ride +30 habitually +2 beda +37 strike +1 schooling +4 egg +7 convenient +19 restrains +3 pedem +2 freeing +1 boasted +126 cap +8 poisonous +18 reasonably +15 solemnized +5 apprehensions +6 promptitude +5 claimed +4 joram +2 announces +248 fault +3 liquor +1 defendants +6 lieth +25 provides +2 thebes +1 wreck +53 seeking +17 coarse +2 iliad +1 wield +2 virtutis +3 oppression +1 manservant +3 brutal +1 paterius +3 deduced +1 hurl +9 shoulder +165 gal +1 coffer +1 huge +3 commodities +16 disagreeable +2 rescind +38 christians +1 pining +1 slayings +2 slighteth +24 enjoying +1 behest +3 dilates +15 apost +2 sympathizes +5 imperative +9 steadfast +65 denominated +19 counts +1 fur +200 return +3 bronze +1 incestus +9 maim +71 swearing +3 board +53 happened +3 chattels +1 started +8 gracious +15 reviled +52 broken +1 hallowings +2 flatter +1 arrogantly +1 jonathan +2 camels +2 practicing +21 petitions +3 trifle +2 inactive +23 insincerity +1 reputations +467 priest +7 talking +1 sensibilibus +4 partook +6 desisting +1 mishaps +2 regenerating +1 hernia +1 catholicus +35 syllogism +1 endangers +5 industry +1 bolts +1 list +10 frailty +25 commensurate +19 impenitence +56 indifferent +5 cato +10 affectibus +115 going +13 groans +1 scripta +2 winning +2 arrangements +3 augury +6 busied +320 actual +95 endure +3 vitiated +3 necks +108 forgiveness +2 railer +4 associating +1 feedeth +1 wakeneth +435 measure +1 stupefying +3 overwhelming +5 absolving +3 allege +7227 i +863 creatures +1 manor +8 sparing +97 resulting +1 reproval +8 evangelical +1 altering +20 exposition +9 inquired +1 certainties +3 piously +2 ochozias +10 recollection +34 neglect +1 oppositely +3 depresses +9 blasphemed +1 attenuate +1 butter +1 beseem +192 envy +1 novi +2 magical +31 justifying +1 sickened +1 retailing +4036 same +1 largest +2 penny +196 theological +1 predominating +2 donation +27 reside +1 rufinus +102 philosophers +1 perspicuity +1715 movement +3 infames +16 total +1 quickest +1 witch +17 situated +2 imperil +6 preclude +4 autem +6 rate +3 immersions +1 dearer +8 superfluities +1 changelessness +7 encounter +91 institution +1 outbreak +1 painters +25 gratuitously +588 impossible +1 synodical +17 suspended +1 mocketh +2 depreciation +39 behooves +30 avicenna +30 wheat +1 pharaos +2 whereat +41 falsity +5 fond +2 robert +1113 known +1 toiled +1 theodoret +7 restless +3 chattering +21 weariness +1 tithable +210 past +5 leadeth +2 flux +3 contestation +2 flatulent +1 unhurt +44 occupied +197 liberality +60 negative +3 stories +1 clutches +528 difference +19 language +4 mortification +4 breasts +1 deface +3 vase +2 disquiet +8 issuing +1 peregin +7 ant +1 devotee +79 contracted +1 awhoring +4 entry +18 permits +83 possessions +3 gregarious +2 strained +22 safeguarding +43 doctors +15 disordered +2 denouncement +1378 moral +31 guided +3 celibacy +5 heinous +1 obstruct +61 opposites +4 suspense +1 charadrius +2 robbing +1 lets +1 sulphurous +6 suspicions +9 superabundant +1 forgoing +2 straightforward +372 parents +2 phantoms +1 ephrata +3 felician +97 wrong +4 geometrician +3 theodore +8 weighs +44 almsgiving +1 booz +50 assign +1 scatter +2 seductive +1 forma +32 wonders +28 dictates +12 minor +2 defaming +16 stricter +1 oza +1 transcended +7 manger +2 wary +302 names +1 edomite +157 obstacle +9 dwellings +11 atone +22 letters +1 cliv +6 concomitant +2 pick +6 kid +1 shamefully +2 blaming +2 innoc +331 inclination +104 restored +7 ananias +1 truce +1 isaacs +1 sailors +7 invincible +2 expert +3 contumelious +68 concern +11 enclosed +19 graven +107 whiteness +1 explored +24 quotes +110 add +3 evade +21 appoint +17 embrace +3 ago +18 proceeded +37 ancients +4 mendacio +2 adapts +1 disbelief +10629 on +1 leanness +25 anointed +15 incomprehensible +1 usurping +6 reigned +1 overtake +7 credit +319 superior +2 sanctus +40 gener +1 guilisarius +47 thief +15 renouncing +7 embraced +1 husks +5 chemical +3 deo +82 perjury +5 scattered +100 ecclesiastical +3 revenged +5 arithmetic +2 bondservants +1 flits +1 preponderate +5 relieving +134 fasting +12 skill +1 diac +1 buckgoats +13 counselling +64 rapture +29 affinity +106 paternity +3 manes +8 prey +89 whosoever +19 obliged +185 devotion +1 retrenched +1 solum +1 habitu +3 firmaments +2 appetibility +1 impressionable +2 detesteth +1 obscurities +1 educating +20 grows +3 fastening +1 volatility +40 profits +3 reminiscence +5 heartedness +56 solemn +1 artistically +7 headlong +4 playing +5 entity +1 consuluist +9 prefigured +1 edited +1 increatable +1 rustico +4 solutions +8 metaphors +2 circumstantial +1 dromedaries +2 unwontedness +8 privative +2 enoch +2 repines +1 irreparability +7 famous +1 overpower +1 purgationibus +2 dominative +2 groanings +19 premises +2 warms +3 remind +10 preparatory +5 fivefold +1 orbit +1 senatorial +88 mixed +1 nicanor +1 patrimonial +25 busy +407 set +1 reproacheth +1 permissions +3 cliii +39 test +3 replying +1 diadems +3 noonday +53 jerusalem +3 reconcile +107 resist +1 persecuted +1 postulated +10 pursuits +1 spiritualized +1 sancte +2 strait +140 subsisting +2 grandeur +2 overflowed +1 votes +1 exhibits +3 pelagians +2 vendor +1 theatrically +2931 thus +2 prius +59 explanation +6 kindling +1 cariath +1 quenched +1 omnino +1 kidnaping +25 cloud +1 tempters +1 adjutors +8 attributing +1 saviors +1 overthrowing +3 liars +2 adversus +18 cooperating +482 born +904 operation +2 plunder +2 opaque +20 reprobate +4 owl +3 inadequately +148 commandment +1 funerals +1 conceits +1 register +1 consecrationibus +1 breach +1 riot +33 insufficient +1 stratagem +1 sluggishly +10 departing +1 amiable +803 judgment +11 palate +24 step +130 owing +50 thirst +3 salutation +1 sprouting +7 chrysostoms +2 recites +1 digs +244 perfected +1 systems +3 epicureans +5 painted +35 lasts +3 turneth +1 caprice +83 predestined +35 sacramentally +48 immortality +5 blasphemer +4486 their +3 humanly +2 wields +2322 belongs +17 baptisms +1 locust +14 infamy +4 clement +116 enemies +1 conspired +3 personification +80 unchangeable +2 jests +7 attending +15 request +3 steady +2 insisted +2 celebr +1 popularity +10 countries +4 nahum +1 travel +21 regnative +1 akolasia +8 widely +1 willows +560 senses +1 indignum +5 patriarch +7 multiple +1 contumacious +3 fable +33 twelfth +2 wrestles +92 superfluous +1 provincial +31 speaker +3 embryo +44 immovable +71 commits +10 prohibitions +29 discern +2 minors +18 prosperity +1 intensifies +421 wine +1 unveil +42 enlightening +2 illuminates +4 soberly +6 silk +5 wishers +6 aloof +9 sleeps +42 safeguard +11 tob +10 adjective +2 undermined +1 lawyers +66 gold +53 forgive +18 preventing +1 astrology +3 vigils +29 withstand +3 deprecatory +1 strainedtis +3 entitled +3 accelerated +8 casts +3 ephron +436 everything +1 fluctuation +36 utility +1 eighteenth +1 oratory +2 credendi +1 frankness +9 endanger +207 rise +4 shorter +13 consens +113 contrariety +345 brought +2 thwarting +1 discreet +1 deigning +1 overhead +16 casting +8 comprehending +2 luminosity +2 vomits +99 closely +23 jordan +3 solemnize +2 abbots +7 dispelled +41 personality +26 retained +1 artotyrytae +4 apollinaris +5 gedeon +1 abrogate +12 transmit +56 using +2 thickened +3 accumulate +2 integrally +17 appropriation +3 effectual +3 incomplex +16 atonement +1 spatulamancy +2 breads +2 streets +11 enabled +6 philip +2 impeccability +2 miserum +136 preceding +19 imminent +1 encamp +17 starry +2 across +2 republic +1 gaza +3 ethiopian +192 circumstance +2 taunt +21 surpassed +1 avowing +1 scholars +15 driven +4 acquaintance +9 despairs +1 entreats +1 brittle +1 brilliancy +5 honestly +26 exception +1 italian +2 girt +3 wrangle +25 gate +124 incompatible +95 infinity +37 augustines +6 suitability +13 lazarus +1 pebble +6 irreverently +5 relationships +1 microcosm +3 collects +10 alter +49 deficient +1 reacting +1 lucium +5 frequency +124 enjoyment +2 vesture +1 epoch +64 excused +2 ignatius +122 considering +517 demons +1 crates +5 dearly +4 potter +3 treadeth +1 observable +1 fatlings +22 behavior +29 accustomed +2 hazard +2 weigher +2 theatre +9 holier +10 assistants +20 shepherd +49 untrue +1 amasius +4 suggested +1 consumer +10 centurion +1 videns +1 nascitura +2 corresponded +6 negations +1 extirpating +3 supercelestial +2 toucheth +6 kinsfolk +2 expended +23 cyprian +2 boorish +2 partiality +1 annuls +428 unity +66 incontinent +1 deterrent +29 communicates +395 observed +5 maturity +1 armies +15 officiis +7 valiant +19 apparitions +5 psalmist +11 undone +61 completed +1 generalities +8 reproving +21 decrees +85 folly +1 juramento +1 forevermore +14 subtlety +8 concurring +3 minglings +466 distinction +26 saving +2 warrant +3 wheresoever +27 eminence +78 capacity +11 neck +318 corruption +2 indiscreetly +1 estimates +3 rectifying +25 continued +25 hurts +18 efficiently +98 worldly +1 prayest +151 directs +9 finish +1 babbling +1 adorns +3 discerns +1 cleanthes +2 wording +6 miss +12 sanctuary +70 walk +24 possessor +1 asclep +2 extensively +1 ischyos +1 veni +2 divested +18 scars +24 reconciled +1 gavest +1 cai +7 circumscriptively +7 overthrow +233 pray +2 exterminate +3 conversed +1 aruspicy +219 motion +1 raged +1 commonness +1 dilig +2 prosp +7 entail +1 lethargy +69 episcopal +1 arid +7 perversely +1 openings +4 perfectively +71 foreknowledge +17 defilement +2 sink +11 stirred +1 blushes +3 necromancers +30 impeded +3 insinuates +7 banished +1 precipitates +220 six +55 nation +2 sheaves +1 unsatiable +12 divinations +1 alteram +1 harmfulness +1 preponderant +1 protraction +16 succeeded +1 flute +1 arete +3 typal +21 returning +1 choices +36 atmosphere +6 inherence +6 copiously +3239 order +42 consummation +1 scarred +6 unhindered +2 designing +11 hereafter +1 incantation +2 foreseeing +2 reciting +1 crook +1 alternating +24 glass +3 vigilia +1 diligimus +19 summo +2 abstainer +268 sixth +1 weakening +134 primary +40 almighty +120 evang +3 passiveness +53 ascended +18 artist +1 crescon +2 jurare +2 decently +13 josue +16 bosom +4 refrained +575 sensible +1 recording +54 respective +8 encouraged +87 excludes +1 rabsaces +12 laity +5 midwife +7 constrained +1 carve +1 gleaned +1 testing +21 conditional +1 students +7 pursuing +48 falling +1 vestibule +215 adam +9 ostentation +10 foundations +1 mathathias +37 sensation +2 omissions +2 braves +1 toiling +1 scorpions +2 continuously +1 aquarii +2 profanes +3 anath +5 purposeless +1 concinentem +3 enmities +1 untruthfully +90 doctr +1 meadows +5 domination +26 canons +43 disgrace +12 alleged +1 beguiled +8 decay +1 voluptuousness +2 fickle +3 engenders +154 fulfil +1 whitsuntide +41 instruct +316 substances +18 boast +1 impersonates +18 assimilated +7 mediate +12 homicide +1291 mind +1 paphnutius +1 concords +5 supremacy +2 outsiders +25 departed +1 ponderatio +1 undivision +35 aim +56 causality +5 envies +62 penalty +1 sym +14 brass +2 ovib +3 vincent +15 scarcely +1 encroach +4 methods +7 accords +1 deify +3 flaw +1 peremptory +1 bartholomew +5 contentious +1 clever +1 stabbing +3 homine +13 usurer +1 expire +1 partib +4 innermost +6 melchiades +1 bargain +1 substands +1 revellings +2 ego +1 reformed +4 inferiority +1 ben +1 ensnare +7 speed +1 dulls +1 interruptedly +5 comprehensive +7 agility +1 presentient +2 prerequisite +1 probabilities +7 concomitantly +1 pervicacious +20 moderated +2 uproot +1 solent +1 obliqueness +46 contradiction +2 bottom +1 mete +92 ruled +7 chastised +17 amos +32 acquiring +1 proxy +46 vegetative +5 abstractedly +16 generate +46 affect +1 humbling +4 denominate +1 electio +55 conduce +20 extraneous +46 johns +146 gluttony +7 canticles +1 effaces +2 olymp +20 wonderful +9 displease +9 disorderly +1 reluctance +21 perverted +334 precedes +1 screech +2 indetractible +1 inflames +57 conclude +2 ail +8 abuses +5 ornate +2 migne +16 illiberality +1 eccentrics +5 scandalizing +1 underfoot +8 collected +2 convulsed +158 doubt +7 thereupon +1 griffon +51 unnatural +50 choosing +3 adonai +3 sc +1 gout +1 circumference +4 composites +2 witchcrafts +1 novitatum +68 strife +1 waxes +34 foreseen +1 flattering +2 antiochus +2 sapida +1 defamatory +99 needed +16 lordship +96 aright +3 wore +15 institutions +1 hurried +1 resounding +14 dissolution +1 slackening +84 grave +4 compelling +4 underground +1 cultivating +3 insolence +88 attained +31 bore +1 reprover +9 substituted +23 authorities +3 springing +399 prayer +2 meno +1 lashes +2 thieve +25 alive +116 agree +3 accusers +3 exhausted +13 seldom +1 worshipers +7 emptied +1 heinousness +20 serpents +20 prefers +3 tidings +2 contravene +2 mispronounced +37 monk +101 whenever +9 closer +1 scratches +1 intercepted +6 desireth +8 stephen +49 burial +1 misunderstanding +6 repelling +24 cutting +4 unfeigned +2 disappointed +5 distasteful +24 seated +2 cent +9 martha +3 letting +34 purified +190 inflicted +1 chananaeans +105 proposed +2 numeric +25 nine +4 revenue +1 retracting +4 conqueror +20 rock +3 copper +2 feasible +27 shameful +1 theolog +9 lifting +1 fulnesses +6 addeth +261 acquired +4 reacts +3 welcomed +3 purses +5 girdle +8 visual +1 engine +36 genealogy +20 sufficiency +5 contemned +2 timor +3 suppression +5 sufferer +71820 to +1 risked +3 intervened +5 nequaquam +135 properties +1 fortitudine +24 predication +33 supper +132 teach +1 sympathize +2 collection +3 dignities +99 venereal +10 allowable +1 vineyards +8 displeased +56 reducible +15 limb +1 confusing +7 intoxicating +11 proclaim +2 pronunciation +2 disputant +1 diocletian +26 milk +19 clouds +1 obsessed +22 goeth +46 appropriate +1 culprit +17 fix +3 meditated +1 inviolable +3 allotment +2 deterioration +2 destroyer +2 commentators +1 surprises +4 extirpated +13 undergo +11 behind +1106 prudence +3 lustre +1 pollicitat +6 friendships +8 xliii +24 patiently +12 justifications +13 stock +1 wreath +1 forgot +1 origins +3547 also +7 indissoluble +11 deserts +29 heading +10 recognition +15 sustained +2 harshly +1 repentest +56 oblation +10 ineffable +3 aloes +5 tie +1 bristle +8 particle +235 ecclus +2 equinox +2 responsiones +1 betwixt +552 chiefly +11 foes +10 hallowing +30 besought +4 pained +52 concupiscences +7 approached +2 complaining +2 manlike +1 isolated +14 detained +2 swan +4 lightly +6 hired +1 numerable +67 judged +1 leucippus +8 distributions +29 detestation +1 superstitiously +1 housekeeping +12 cow +5 incarn +7 archangel +1 notandum +1 crozier +6 numbering +33 feeling +31 abides +1142 true +28 crimes +1 reeking +2 deaths +58 enchiridion +2 represses +1 prune +1 succour +4 contumely +6 hewn +11 accusing +1338 secondly +27 reign +12 adulterer +2 scandalizes +9 thirteen +1 mistakenly +1 lectures +2 mustard +541 heavenly +89 usury +2 resound +7120 an +2 unmerited +135 brother +54 break +65 owe +126 organ +1 minimizing +1 abdias +6 thinketh +1 eligantur +4 sterile +3 volus +1 concluding +65 fraternal +192 longer +1 stationed +222 included +1 jactare +3 attuned +1 stratagematum +4 oldness +92 primarily +45 expedient +1 mortgages +9 genuine +1 tendered +9 rely +34 partakes +1 stayed +2 mer +46 represent +17 theory +43 society +3 lepers +1 discounts +5 custody +3 unsoundness +167 waters +22 archdeacons +25 withdrawing +1 omnibus +4 tax +40 blotted +70 inordinateness +2 overshaded +5 murders +5348 above +1 nekron +1 knewest +5 wealthy +20 xxxvi +1 humorous +11 outer +2 tota +17 reflection +109 heretics +13 departure +81 perfections +1 residuum +1 nimbly +1 inebriates +1 introspects +1 simples +193 coming +4 uprightness +261 practical +1 definimus +2 baseness +1 contractor +2 overtakes +2 episcopus +35 xxx +1 unearthly +2 attestations +1 dupe +7 nutrition +15 sooner +1 unsuitability +1 hairy +74 rising +2 subtracting +35 victory +1 acquirend +2 substantia +1 emptiness +12 intimate +1 pollutions +9 hierarchical +2 ob +3115 art +8 delivers +1 sunamite +35 backbiter +4 pitiful +28 temptations +11 await +1 tes +164 hinder +1 venal +5 immanent +73 accept +8 spared +2 heathenish +1 cred +1 manuscript +22 ascending +6 bane +4 devilish +8 invites +2 hermit +2 despoils +6 obligatory +19 paternal +4 undergoing +1 groups +21 abroad +1 pleasurableness +2 sanguine +167 duty +1 virtute +1 augurari +152 stone +1 linking +245 et +2 judaizing +13 rights +4 france +529 vow +13 xliv +6 recoils +5 atoms +13 defends +2 affront +4 range +2 figural +4 generandi +23 deals +3 privatively +1 milan +4 pharisee +66 evidently +2 compunction +1 bernards +5 destructive +3 misled +1 artless +16 necessities +3 indecent +1 kindler +3 derides +3 immunity +1 device +5 studies +2 renowned +22 uniting +94 infusion +3 contaminated +5 repeatedly +78 writing +11 standpoint +1 ccxliii +3 ensued +10350 his +8 prosperi +6 substantives +3 patent +3 dulled +52 absurd +8 strabus +19 cleaves +1 sellings +1 cruditas +18 wherewithal +4 tempers +1 praestringuntur +54 repeated +4 mastery +2 bitterly +1 ekasta +17 humbled +1 agnes +14 imparted +177 desired +1 sating +2 cathol +8 prisoners +1 brake +1 evinces +3 swiftness +92 shape +10 craft +1446 perfection +9 ethics +2 upbraiding +4 comely +1 telous +12 offending +1 detesting +17 unspotted +18 enumerates +1 givings +2 miseries +6 tame +11 innascibility +23 intending +1 wayfaring +1 unfathomable +3 vegetius +3 perilous +45 killed +21 ceasing +6 suppressed +1 homil +2 audience +7 discovering +3 forestalling +1 disunites +4 purchased +12 mockery +12 unbaptized +1 ardently +1 efficere +23 shunning +10 maintains +1 spurned +27 reading +208 subjects +2 anniversary +1 grudgingly +111 fourthly +3 sundays +1 expositions +7 impelled +1 idly +4 nourishing +24 thrones +1 bicubical +2 rase +488 potentiality +3 doings +13 prohibited +1 plaintive +1 germinating +19 herod +2 truthfully +1 impotence +100 nearer +2 abandoning +1 unyielding +5 breaketh +2 rhetorical +1 lectors +40 tears +2 repressed +4 notionally +3 penetrated +2 proportionally +1 adjectively +3 boil +3 rebelling +2 chains +2 quae +84 eccles +3 fortiori +1 soph +17 desist +75 below +42 lived +2 printed +36 fulfilling +95 specially +64 instinct +2 legislators +5 scientia +72 entering +1 amazed +19 helping +3 thrive +3 latins +13 praedic +4 repulse +6 intellectuality +3 phases +33 enjoined +1 watched +2 illuminative +27 lent +2 depressing +14 timidity +7 winter +4 uneducated +5 concourse +10 untruth +220 scripture +3 reappear +1 imprudently +1 arabic +2 freezing +3 credited +5 flatters +418 how +1 ponders +21 deceitful +1 reunion +1 squeamishness +1 paulinum +3 tasks +11 xxv +1 ignis +3 risible +227 addition +1 impact +4 prize +11 numeral +1 moabites +9 distaste +11 protection +11 austere +1763 others +2 cxvi +1 lightens +13 leader +1 lieutenants +8 delicacy +1041 take +1 metriotes +64 adapted +1 miscarry +12 exceedingly +91 ready +3 lamp +3 behoved +5 convincing +2 seasoning +1 liberties +5 shapeless +2 idioms +12 efficaciously +4 nativ +676 unless +17 episcopate +9 decides +1 filias +1 slightness +3 settlement +423 contained +32 inspiration +11 grapes +1 malefactors +663 makes +2 appellative +1 proprio +1 grandchildren +14 thousands +3 judah +21 concomitance +11 phantasy +2 equipment +2 trustworthy +1 spirare +2 towns +2 supped +1 auditorium +3 aggregation +11 ezechiel +282 qu +8 dishonoring +1 trustful +15 terminate +3 discriminate +9 awarded +122 moving +11 narrow +6 creditor +3 concreated +99 apprehensive +38 simultaneous +2 planks +2 debility +42 operative +1 impassable +1 guaranteed +55 intrinsic +2 deafness +12 mercifully +87 types +4 harmonize +3 pan +2 circles +4 infidels +330 explained +8 intentional +86 agents +138 finite +10 sanctioned +7 hatest +399 sacrifice +49 instrumentally +12 heifer +7 misers +1 immeasurably +24 region +5 deserted +2 vel +26 seasons +1 awful +1 gravities +2 transgressed +3 limping +524 saying +1 planter +2 inculcated +56 primitive +6 venerated +1 voids +119 affection +5 win +2 braga +695 head +3 reverts +3 fasters +26 promulgation +2 ingrafted +14 inseparable +7 adhered +24 occupation +4 blaspheming +1 murmur +2 grammatically +2 inscribere +2 elench +1 tergum +1 spatulamantia +491 caused +18 approval +1 digger +16 confessed +1 possessest +1 stoppeth +7 offends +61 liberal +2 shirks +25 metaphorical +6 mendicancy +771 world +6814 there +1 citron +1 wrap +15 canst +1 tarry +1 pancrat +47 mutually +3 venerable +1 dominio +154 rectitude +255 praise +1 sore +4 infuse +11 model +25 debtor +31 isaias +12 onslaught +36 trees +4 attendance +7 liv +1 critic +13 upbringing +8 aids +1 paulinam +17 disposal +271 accidentally +2 donatist +1 moistening +16 martyr +8 triangle +1 jarring +11 relies +63 void +18 vegetal +1 roast +1 funebr +1 tuarum +4 inv +2 fierceness +30 successive +2 excites +2 strain +1 libanus +59 immediate +1 modification +11 justifies +28 susceptible +109 preceded +2 substantiate +1 actio +3 conference +15 genesis +18 ministrations +168 strength +1 hires +3 m +4 subtract +25 dispute +5 quits +1 levied +14 poenit +5 slayer +1 harmonizing +1 cleavage +10 confessions +86 directing +81 inordinately +32 contraction +1 mischiefs +4 spiritualities +1 distended +5 disagreement +1 england +1 torn +5 defamed +4 arrangement +19 grain +2 formers +22 raises +213 sinned +7 ff +2 erudition +2 phaedo +16 creed +5 compassion +1 fantastic +19 reveal +2 wiles +5 popular +3 thunder +125 wrought +32 concludes +17 attempt +98 night +1 slips +105 overcome +1 heaping +46 xviii +2 dole +2 discharges +2 deliberated +6693 says +136 corresponds +1 potency +13 authorship +1 boxers +10 arians +7 resign +1 sunlight +22 redeemed +2 jokes +1 foreordained +7 solve +14 flower +5 distract +112 righteousness +11 lxxx +286 peace +434 actually +1 postpone +6 wearied +10 childs +1 urgently +1 sententiae +2 invitation +2 betakes +2 cancelled +8 remits +2 plougheth +2 vincible +2 decoy +1 imploring +1 femina +1 initium +1 grafted +224 doctrine +39 forthwith +87 fomes +65 commonly +5 implore +169 tithes +1 similes +1 parishioners +1 patiendo +1 juris +4 derogate +5 circumcising +15 commend +1 chambers +26 virginal +1 buyings +4 monast +1 subtracts +1 promoters +68 amount +2 excusable +1 consilium +1041 out +10 definitely +1 nicetas +2 untruthful +103 sell +7 affording +5 verbis +5 forecast +148 during +1 notoriety +420 grievous +7 persians +1 cord +11 deum +1 mayors +4 photinus +1 forearmed +16 uncleannesses +1 trl +12 fee +5 godparents +189 commandments +25 positions +1 avempace +1 hearkens +1 insures +15 keys +3 immodesty +82 sit +3 belt +24 ass +5 postponed +1 al +74 fulfilment +21 believeth +9 physicians +1 prefigurative +296 trinity +36 knoweth +24 detriment diff --git a/tests/fst_tests.cpp b/tests/fst_tests.cpp index 298c104..4c8da4a 100644 --- a/tests/fst_tests.cpp +++ b/tests/fst_tests.cpp @@ -16,17 +16,17 @@ using namespace de; -typedef Rec R; +typedef StringRec R; typedef FSTrie Shard; -#include "include/shard_standard.h" -#include "include/rangequery.h" +#include "include/shard_string.h" +//#include "include/rangequery.h" Suite *unit_testing() { Suite *unit = suite_create("Fast-succinct Trie Shard Unit Testing"); - inject_rangequery_tests(unit); + // inject_rangequery_tests(unit); inject_shard_tests(unit); return unit; diff --git a/tests/include/shard_standard.h b/tests/include/shard_standard.h index 7d17dcb..55e4c7b 100644 --- a/tests/include/shard_standard.h +++ b/tests/include/shard_standard.h @@ -37,17 +37,17 @@ START_TEST(t_mbuffer_init) auto buffer = new MutableBuffer(512, 1024); for (uint64_t i = 512; i > 0; i--) { uint32_t v = i; - buffer->append({i, v, 1}); + buffer->append({i, v}); } for (uint64_t i = 1; i <= 256; ++i) { uint32_t v = i; - buffer->append({i, v, 1}, true); + buffer->append({i, v}, true); } for (uint64_t i = 257; i <= 512; ++i) { uint32_t v = i + 1; - buffer->append({i, v, 1}); + buffer->append({i, v}); } Shard* shard = new Shard(buffer->get_buffer_view()); diff --git a/tests/include/shard_string.h b/tests/include/shard_string.h new file mode 100644 index 0000000..27ee782 --- /dev/null +++ b/tests/include/shard_string.h @@ -0,0 +1,168 @@ +/* + * tests/include/shard_string.h + * + * Standardized unit tests for Shard objects with string keys + * + * Copyright (C) 2023 Douglas Rumbaugh + * + * Distributed under the Modified BSD License. + * + * WARNING: This file must be included in the main unit test set + * after the definition of an appropriate Shard and R + * type. In particular, R needs to implement the key-value + * pair interface. For other types of record, you'll need to + * use a different set of unit tests. + */ +#pragma once + +/* + * Uncomment these lines temporarily to remove errors in this file + * temporarily for development purposes. They should be removed prior + * to building, to ensure no duplicate definitions. These includes/defines + * should be included in the source file that includes this one, above the + * include statement. + */ +#include "shard/FSTrie.h" +#include "testing.h" +#include +using namespace de; +typedef StringRec R; +typedef FSTrie Shard; + +START_TEST(t_mbuffer_init) +{ + + auto recs = read_string_data(kjv_wordlist, 1024); + + auto buffer = new MutableBuffer(512, 1024); + + for (uint64_t i = 0; i < 512; i++) { + buffer->append(recs[i]); + } + + for (uint64_t i = 0; i < 256; ++i) { + buffer->delete_record(recs[i]); + } + + for (uint64_t i = 512; i < 768; ++i) { + buffer->append(recs[i]); + } + + Shard* shard = new Shard(buffer->get_buffer_view()); + ck_assert_uint_eq(shard->get_record_count(), 512); + + delete buffer; + delete shard; +} + + +START_TEST(t_shard_init) +{ + size_t n = 512; + auto mbuffer1 = create_test_mbuffer(n); + auto mbuffer2 = create_test_mbuffer(n); + auto mbuffer3 = create_test_mbuffer(n); + + auto shard1 = new Shard(mbuffer1->get_buffer_view()); + auto shard2 = new Shard(mbuffer2->get_buffer_view()); + auto shard3 = new Shard(mbuffer3->get_buffer_view()); + + std::vector shards = {shard1, shard2, shard3}; + auto shard4 = new Shard(shards); + + ck_assert_int_eq(shard4->get_record_count(), n * 3); + ck_assert_int_eq(shard4->get_tombstone_count(), 0); + + size_t total_cnt = 0; + size_t shard1_idx = 0; + size_t shard2_idx = 0; + size_t shard3_idx = 0; + + for (size_t i = 0; i < shard4->get_record_count(); ++i) { + auto rec1 = shard1->get_record_at(shard1_idx); + auto rec2 = shard2->get_record_at(shard2_idx); + auto rec3 = shard3->get_record_at(shard3_idx); + + auto cur_rec = shard4->get_record_at(i); + + if (shard1_idx < n && cur_rec->rec == rec1->rec) { + ++shard1_idx; + } else if (shard2_idx < n && cur_rec->rec == rec2->rec) { + ++shard2_idx; + } else if (shard3_idx < n && cur_rec->rec == rec3->rec) { + ++shard3_idx; + } else { + assert(false); + } + } + + delete mbuffer1; + delete mbuffer2; + delete mbuffer3; + + delete shard1; + delete shard2; + delete shard3; + delete shard4; +} + +START_TEST(t_point_lookup) +{ + size_t n = 10000; + + auto buffer = create_test_mbuffer(n); + auto shard = Shard(buffer->get_buffer_view()); + + { + auto view = buffer->get_buffer_view(); + + for (size_t i=0; irec.key; + r.value = rec->rec.value; + + auto result = shard.point_lookup(r); + ck_assert_ptr_nonnull(result); + ck_assert_str_eq(result->rec.key.c_str(), r.key.c_str()); + ck_assert_int_eq(result->rec.value, r.value); + fprintf(stderr, "%ld\n", i); + } + } + + delete buffer; +} +END_TEST + + +START_TEST(t_point_lookup_miss) +{ + size_t n = 10000; + + auto buffer = create_test_mbuffer(n); + auto shard = Shard(buffer->get_buffer_view()); + + for (size_t i=n + 100; i<2*n; i++) { + R r; + r.key = std::string("computer"); + r.value = 1234; + + auto result = shard.point_lookup(r); + ck_assert_ptr_null(result); + } + + delete buffer; +} + +static void inject_shard_tests(Suite *suite) { + TCase *create = tcase_create("Shard constructor Testing"); + tcase_add_test(create, t_mbuffer_init); + tcase_add_test(create, t_shard_init); + tcase_set_timeout(create, 100); + suite_add_tcase(suite, create); + + TCase *pointlookup = tcase_create("Shard point lookup Testing"); + tcase_add_test(pointlookup, t_point_lookup); + tcase_add_test(pointlookup, t_point_lookup_miss); + suite_add_tcase(suite, pointlookup); +} diff --git a/tests/include/testing.h b/tests/include/testing.h index f935b53..a3c54c0 100644 --- a/tests/include/testing.h +++ b/tests/include/testing.h @@ -15,6 +15,8 @@ #include #include +#include +#include #include "util/types.h" #include "psu-util/alignment.h" @@ -25,6 +27,38 @@ typedef de::WeightedRecord WRec; typedef de::Record Rec; typedef de::EuclidPoint PRec; +typedef de::Record StringRec; + +std::string kjv_wordlist = "tests/data/kjv-wordlist.txt"; +std::string summa_wordlist = "tests/data/summa-wordlist.txt"; + +static std::vector read_string_data(std::string fname, size_t n) { + std::vector vec; + vec.reserve(n); + + std::fstream file; + file.open(fname, std::ios::in); + + for (size_t i=0; i std::vector strip_wrapping(std::vector> vec) { std::vector out(vec.size()); @@ -83,15 +117,26 @@ static de::MutableBuffer *create_test_mbuffer(size_t cnt) R rec; if constexpr (de::KVPInterface) { - for (size_t i = 0; i < cnt; i++) { - rec.key = rand(); - rec.value = rand(); - - if constexpr (de::WeightedRecordInterface) { - rec.weight = 1; + if constexpr (std::is_same_v) { + auto records = read_string_data(kjv_wordlist, cnt); + for (size_t i=0; i) { + rec.weight = 1; + } + + buffer->append(records[i]); } + } else { + for (size_t i = 0; i < cnt; i++) { + rec.key = rand(); + rec.value = rand(); + + if constexpr (de::WeightedRecordInterface) { + rec.weight = 1; + } - buffer->append(rec); + buffer->append(rec); + } } } else if constexpr (de::NDRecordInterface) { for (size_t i=0; i(50, 100); - Rec rec = {0, 5, 1}; + Rec rec = {0, 5}; /* insert records up to the low watermark */ size_t cnt = 0; -- cgit v1.2.3 From 9c4884c69486cfc78801ffe4e7cd1c581e0cdb87 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Fri, 22 Mar 2024 14:03:00 -0400 Subject: Disabled lookahead for paper revision --- .gitmodules | 6 ++++++ external/fast_succinct_trie | 1 + external/louds-fst | 1 + include/framework/structure/ExtensionStructure.h | 2 +- 4 files changed, 9 insertions(+), 1 deletion(-) create mode 160000 external/fast_succinct_trie create mode 160000 external/louds-fst diff --git a/.gitmodules b/.gitmodules index 1b0adfe..aac5eb8 100644 --- a/.gitmodules +++ b/.gitmodules @@ -25,3 +25,9 @@ [submodule "external/louds-patricia"] path = external/louds-patricia url = git@github.com:s-yata/louds-patricia.git +[submodule "external/louds-fst"] + path = external/louds-fst + url = git@github.com:kampersanda/fast_succinct_trie.git +[submodule "external/fast_succinct_trie"] + path = external/fast_succinct_trie + url = git@github.com:dbrumbaugh/fast_succinct_trie.git diff --git a/external/fast_succinct_trie b/external/fast_succinct_trie new file mode 160000 index 0000000..d679ada --- /dev/null +++ b/external/fast_succinct_trie @@ -0,0 +1 @@ +Subproject commit d679adac2e52ea2150f045d3d04ea93a9bcaf312 diff --git a/external/louds-fst b/external/louds-fst new file mode 160000 index 0000000..e0fcae0 --- /dev/null +++ b/external/louds-fst @@ -0,0 +1 @@ +Subproject commit e0fcae0ae2fbcbaa448cc297b5bf28755bf159a4 diff --git a/include/framework/structure/ExtensionStructure.h b/include/framework/structure/ExtensionStructure.h index dbfb543..ffba1c1 100644 --- a/include/framework/structure/ExtensionStructure.h +++ b/include/framework/structure/ExtensionStructure.h @@ -287,7 +287,7 @@ public: } ReconstructionVector reconstructions; - size_t LOOKAHEAD = 2; + size_t LOOKAHEAD = 1; for (size_t i=0; i Date: Fri, 22 Mar 2024 14:03:49 -0400 Subject: Record.h: Removed manual constructor and adjusted wrapped header fields --- include/framework/interface/Record.h | 36 ++++++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/include/framework/interface/Record.h b/include/framework/interface/Record.h index f4105c6..39880bd 100644 --- a/include/framework/interface/Record.h +++ b/include/framework/interface/Record.h @@ -54,6 +54,11 @@ concept WrappedInterface = RecordInterface && requires(R r, R s, bool b) { {r.is_deleted()} -> std::convertible_to; {r.set_tombstone(b)}; {r.is_tombstone()} -> std::convertible_to; + {r.set_timestamp()}; + {r.get_timestamp()} -> std::convertible_to; + {r.clear_timestamp()}; + {r.is_deleted()} -> std::convertible_to; + {r.set_visible()}; {r < s} -> std::convertible_to; {r == s} ->std::convertible_to; }; @@ -71,9 +76,29 @@ struct Wrapped { return header & 2; } + inline void set_visible() { + header |= 4; + } + + inline bool is_visible() const { + return header & 4; + } + + inline void set_timestamp(int ts) { + header |= (ts << 3); + } + + inline int get_timestamp() const { + return header >> 3; + } + + inline void clear_timestamp() { + header &= 7; + } + inline void set_tombstone(bool val=true) { if (val) { - header |= val; + header |= 1; } else { header &= 0; } @@ -98,15 +123,6 @@ struct Record { K key; V value; - Record &operator=(const Record &other) { - this->key = K(); - - this->key = other.key; - this->value = other.value; - - return *this; - } - inline bool operator<(const Record& other) const { return key < other.key || (key == other.key && value < other.value); } -- cgit v1.2.3 From 147f0df58e1ff4973bffb7e4628e6b2fdc20eb57 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Fri, 22 Mar 2024 14:04:40 -0400 Subject: FSTrie testing and debugging --- benchmarks/string_insertion_tput.cpp | 92 ++++++++++++++++++++++++++ include/shard/FSTrie.h | 121 ++++++----------------------------- tests/include/shard_string.h | 8 +-- tests/include/testing.h | 6 +- 4 files changed, 118 insertions(+), 109 deletions(-) create mode 100644 benchmarks/string_insertion_tput.cpp diff --git a/benchmarks/string_insertion_tput.cpp b/benchmarks/string_insertion_tput.cpp new file mode 100644 index 0000000..d205175 --- /dev/null +++ b/benchmarks/string_insertion_tput.cpp @@ -0,0 +1,92 @@ +/* + * + */ + +#define ENABLE_TIMER + +#include +#include + +#include "framework/DynamicExtension.h" +#include "shard/FSTrie.h" +#include "query/rangequery.h" +#include "framework/interface/Record.h" + +#include "psu-util/timer.h" +#include "psu-util/progress.h" + + +typedef de::Record Rec; +typedef de::FSTrie Trie; +typedef de::rq::Query Q; +typedef de::DynamicExtension Ext; //, de::LayoutPolicy::TEIRING, de::DeletePolicy::TAGGING, de::SerialScheduler> Ext; + +std::vector strings; + +void insert_thread(int64_t start, int64_t end, Ext *extension) { + for (uint64_t i=start; iinsert(r)) { + _mm_pause(); + } + } +} + +void read_data(std::string fname, size_t n=10000000) { + strings.reserve(n); + + std::fstream file; + file.open(fname, std::ios::in); + + size_t i=0; + std::string line; + while (i < n && std::getline(file, line, '\n')) { + strings.emplace_back(line); + i++; + psudb::progress_update((double) i / (double) n, "Reading file:"); + } +} + +int main(int argc, char **argv) { + size_t n = 100000000; + + std::vector counts = {1 , 2, 4, 8}; //, 16, 32, 64}; + // + read_data("benchmarks/data/ursa-genome.txt", n); + + fprintf(stderr, "Finished reading from file.\n"); + + for (auto thread_count : counts) { + + auto extension = new Ext(1000, 12000, 8); + + size_t per_thread = n / thread_count; + + std::thread threads[thread_count]; + + TIMER_INIT(); + TIMER_START(); + for (size_t i=0; iget_record_count(), + thread_count, tput); + + delete extension; + } + + fflush(stderr); +} + diff --git a/include/shard/FSTrie.h b/include/shard/FSTrie.h index 62aa0b7..aa3c9f4 100644 --- a/include/shard/FSTrie.h +++ b/include/shard/FSTrie.h @@ -1,13 +1,11 @@ /* * include/shard/FSTrie.h * - * Copyright (C) 2023 Douglas B. Rumbaugh + * Copyright (C) 2024 Douglas B. Rumbaugh * * Distributed under the Modified BSD License. * * A shard shim around the FSTrie learned index. - * - * TODO: The code in this file is very poorly commented. */ #pragma once @@ -15,9 +13,7 @@ #include #include "framework/ShardRequirements.h" -#include "FST.hpp" -#include "psu-ds/BloomFilter.h" -#include "util/bf_config.h" +#include "fst.hpp" #include "util/SortedMerge.h" using psudb::CACHELINE_SIZE; @@ -28,14 +24,13 @@ using psudb::byte; namespace de { -template +template class FSTrie { private: + typedef decltype(R::key) K; typedef decltype(R::value) V; - - static_assert(std::is_same_v || std::is_same_v, - "FST requires either string or uint64_t keys"); + static_assert(std::is_same_v, "FST requires std::string keys."); public: FSTrie(BufferView buffer) @@ -50,22 +45,12 @@ public: std::vector keys; keys.reserve(buffer.get_record_count()); - std::vector values; - values.reserve(buffer.get_record_count()); - - size_t longest_key = 0; - /* * Copy the contents of the buffer view into a temporary buffer, and * sort them. We still need to iterate over these temporary records to * apply tombstone/deleted record filtering, as well as any possible * per-record processing that is required by the shard being built. */ - /* - auto temp_buffer = (Wrapped *) psudb::sf_aligned_calloc(CACHELINE_SIZE, - buffer.get_record_count(), - sizeof(Wrapped)); - */ auto temp_buffer = new Wrapped[buffer.get_record_count()](); for (size_t i=0; i>()); for (size_t i=0; i) { - if (m_data[cnt].rec.key.size() > longest_key) { - longest_key = m_data[cnt].rec.key.size(); - } - } - cnt++; } @@ -99,11 +77,8 @@ public: } m_reccnt = cnt; - m_fst = FST(); - if constexpr (std::is_same_v) { - m_fst.load(keys, values, longest_key); - } else { - m_fst.load(keys, values); + if (m_reccnt > 0) { + m_fst = new fst::Trie(keys); } delete[] temp_buffer; @@ -124,10 +99,6 @@ public: std::vector keys; keys.reserve(attemp_reccnt); - std::vector values; - values.reserve(attemp_reccnt); - - size_t longest_key = 0; // FIXME: For smaller cursor arrays, it may be more efficient to skip // the priority queue and just do a scan. PriorityQueue> pq(cursors.size()); @@ -155,16 +126,9 @@ public: } else { auto& cursor = cursors[now.version]; /* skip over records that have been deleted via tagging */ - if (!cursor.ptr->is_deleted()) { + if (!cursor.ptr->is_deleted() && cursor.ptr->rec.key != "") { m_data[m_reccnt] = *cursor.ptr; keys.push_back(m_data[m_reccnt].rec.key); - values.push_back(m_data[m_reccnt].rec.value); - - if constexpr (std::is_same_v) { - if (m_data[m_reccnt].rec.key.size() > longest_key) { - longest_key = m_data[m_reccnt].rec.key.size(); - } - } m_reccnt++; } @@ -179,37 +143,24 @@ public: } if (m_reccnt > 0) { - m_fst = FST(); - if constexpr (std::is_same_v) { - m_fst.load(keys, values, longest_key); - } else { - m_fst.load(keys, values); - } + m_fst = new fst::Trie(keys); } } ~FSTrie() { delete[] m_data; + delete m_fst; } Wrapped *point_lookup(const R &rec, bool filter=false) { - size_t idx; - bool res; - if constexpr (std::is_same_v) { - res = m_fst.lookup((uint8_t*)rec.key.c_str(), rec.key.size(), idx); - } else { - res = m_fst.lookup(rec.key, idx); - } - if (res && m_data[idx].rec.key != rec.key) { - fprintf(stderr, "ERROR!\n"); - } + auto idx = m_fst->exactSearch(rec.key); - if (res) { - return m_data + idx; + if (idx == fst::kNotFound) { + return nullptr; } - return nullptr; + return m_data + idx; } Wrapped* get_data() const { @@ -231,53 +182,21 @@ public: size_t get_memory_usage() { - return m_fst.mem() + m_alloc_size; + return m_fst->getMemoryUsage() + m_alloc_size; } size_t get_aux_memory_usage() { return 0; } - size_t get_lower_bound(const K& key) { - auto itr = FSTIter(); - - const K temp_key = key; - - bool res; - if constexpr (std::is_same_v) { - res = m_fst.lowerBound(temp_key.c_str(), key.size(), itr); - } else { - res = m_fst.lowerBound(temp_key, itr); - } - - return itr.value(); - } - - size_t get_upper_bound(const K& key) { - auto itr = FSTIter(); - - const K temp_key = key; - - bool res; - if constexpr (std::is_same_v) { - res = m_fst.lowerBound(temp_key.c_str(), key.size(), itr); - } else { - res = m_fst.lowerBound(temp_key, itr); - } - - size_t idx = itr.value(); - while (idx < m_reccnt && m_data[idx].rec.key <= key) { - idx++; - } - - return idx; - } + size_t get_lower_bound(R &rec) {return 0;} + size_t get_upper_bound(R &rec) {return 0;} private: Wrapped* m_data; size_t m_reccnt; size_t m_alloc_size; - FST m_fst; + fst::Trie *m_fst; }; } diff --git a/tests/include/shard_string.h b/tests/include/shard_string.h index 27ee782..fa51630 100644 --- a/tests/include/shard_string.h +++ b/tests/include/shard_string.h @@ -58,7 +58,7 @@ START_TEST(t_mbuffer_init) START_TEST(t_shard_init) { - size_t n = 512; + size_t n = 2048; auto mbuffer1 = create_test_mbuffer(n); auto mbuffer2 = create_test_mbuffer(n); auto mbuffer3 = create_test_mbuffer(n); @@ -117,16 +117,14 @@ START_TEST(t_point_lookup) auto view = buffer->get_buffer_view(); for (size_t i=0; irec.key; - r.value = rec->rec.value; + R r = rec->rec; auto result = shard.point_lookup(r); ck_assert_ptr_nonnull(result); ck_assert_str_eq(result->rec.key.c_str(), r.key.c_str()); ck_assert_int_eq(result->rec.value, r.value); - fprintf(stderr, "%ld\n", i); + //fprintf(stderr, "%ld\n", i); } } diff --git a/tests/include/testing.h b/tests/include/testing.h index a3c54c0..2315daa 100644 --- a/tests/include/testing.h +++ b/tests/include/testing.h @@ -51,7 +51,7 @@ static std::vector read_string_data(std::string fname, size_t n) { r.value = atol(field.c_str()); std::getline(ls, field, '\n'); r.key = std::string(field); - + vec.push_back(r); } @@ -116,8 +116,8 @@ static de::MutableBuffer *create_test_mbuffer(size_t cnt) auto buffer = new de::MutableBuffer(cnt/2, cnt); R rec; - if constexpr (de::KVPInterface) { - if constexpr (std::is_same_v) { + if constexpr (de::KVPInterface){ + if constexpr (std::is_same_v) { auto records = read_string_data(kjv_wordlist, cnt); for (size_t i=0; i) { -- cgit v1.2.3 From 3b7bd57fa2af388b4de41f9b5e58e26b1306d983 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Fri, 22 Mar 2024 14:04:58 -0400 Subject: MutableBuffer: added visibility flag to records and refactored timestamp --- include/framework/structure/MutableBuffer.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/include/framework/structure/MutableBuffer.h b/include/framework/structure/MutableBuffer.h index 1ed0200..7db3980 100644 --- a/include/framework/structure/MutableBuffer.h +++ b/include/framework/structure/MutableBuffer.h @@ -77,16 +77,20 @@ public: wrec.header = 0; if (tombstone) wrec.set_tombstone(); + // FIXME: because of the mod, it isn't correct to use `pos` + // as the ordering timestamp in the header anymore. size_t pos = tail % m_cap; m_data[pos] = wrec; - m_data[pos].header |= (pos << 2); + m_data[pos].set_timestamp(pos); if (tombstone) { m_tscnt.fetch_add(1); if (m_tombstone_filter) m_tombstone_filter->insert(rec); } + m_data[pos].set_visible(); + return 1; } -- cgit v1.2.3 From 3d80e9fa42273f7e0029ecb66fd13fd78fc4a694 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Fri, 22 Mar 2024 14:05:35 -0400 Subject: CMakelists: updates --- CMakeLists.txt | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 65afc9f..f4c90dd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,7 +6,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED True) set(namespace "de") project("Practical Dynamic Extension" VERSION 0.1.0) -set(debug true) +set(debug false) set(tests True) set(bench true) set(old_bench False) @@ -25,7 +25,7 @@ if (debug) add_compile_options(-fsanitize=undefined) add_link_options(-fsanitize=undefined) else() - add_compile_options(-O3) + add_compile_options(-O3 -g) endif() # Test build instructions @@ -125,9 +125,10 @@ if (tests) add_executable(fst_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/fst_tests.cpp) - target_link_libraries(fst_tests PUBLIC gsl check subunit pthread atomic FST) + target_link_libraries(fst_tests PUBLIC gsl check subunit pthread atomic) target_link_options(fst_tests PUBLIC -mcx16) - target_include_directories(fst_tests PRIVATE include external/psudb-common/cpp/include external/PLEX/include external/fast-succinct-trie/fst/include) + target_include_directories(fst_tests PRIVATE include + external/psudb-common/cpp/include external/PLEX/include external/fast_succinct_trie/include) endif() if (bench) @@ -143,6 +144,13 @@ if (bench) target_include_directories(insertion_tput PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) target_link_options(insertion_tput PUBLIC -mcx16) + + add_executable(string_insertion_tput ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/string_insertion_tput.cpp) + target_link_libraries(string_insertion_tput PUBLIC gsl pthread gomp atomic) + target_include_directories(string_insertion_tput PRIVATE include external external/fast_succinct_trie/include external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) + target_link_options(string_insertion_tput PUBLIC -mcx16) + + add_executable(query_workload_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/query_workload_bench.cpp) target_link_libraries(query_workload_bench PUBLIC gsl pthread gomp atomic) target_include_directories(query_workload_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) -- cgit v1.2.3 From d0aebc685b245e51bf47cff8e28f811e43073d5e Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Fri, 22 Mar 2024 14:15:00 -0400 Subject: PGM.h: fixed an out of bounds array access on point lookup misses. --- include/shard/PGM.h | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/include/shard/PGM.h b/include/shard/PGM.h index e2752ef..ff9ce2d 100644 --- a/include/shard/PGM.h +++ b/include/shard/PGM.h @@ -147,14 +147,16 @@ public: return m_reccnt; } - // If the region to search is less than some pre-specified - // amount, perform a linear scan to locate the record. + /* + * If the region to search is less than some pre-specified + * amount, perform a linear scan to locate the record. + */ if (bound.hi - bound.lo < 256) { while (idx < bound.hi && m_data[idx].rec.key < key) { idx++; } } else { - // Otherwise, perform a binary search + /* Otherwise, perform a binary search */ idx = bound.lo; size_t max = bound.hi; @@ -169,10 +171,26 @@ public: } + /* + * the upper bound returned by PGM is one passed the end of the + * array. If we are at that point, we should just return "not found" + */ + if (idx == m_reccnt) { + return idx; + } + + /* + * We may have walked one passed the actual lower bound, so check + * the index before the current one to see if it is the actual bound + */ if (m_data[idx].rec.key > key && idx > 0 && m_data[idx-1].rec.key <= key) { return idx-1; } + /* + * Otherwise, check idx. If it is a valid bound, then return it, + * otherwise return "not found". + */ return (m_data[idx].rec.key >= key) ? idx : m_reccnt; } -- cgit v1.2.3 From 0e2d10f10974def7cd86b6b3529d7ffce9285f11 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Fri, 22 Mar 2024 14:18:40 -0400 Subject: Record.h: Fixed wrapped record concept --- include/framework/interface/Record.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/framework/interface/Record.h b/include/framework/interface/Record.h index 39880bd..d380f9b 100644 --- a/include/framework/interface/Record.h +++ b/include/framework/interface/Record.h @@ -47,17 +47,17 @@ concept AlexInterface = KVPInterface && requires(R r) { }; template -concept WrappedInterface = RecordInterface && requires(R r, R s, bool b) { +concept WrappedInterface = RecordInterface && requires(R r, R s, bool b, int i) { {r.header} -> std::convertible_to; r.rec; {r.set_delete()}; {r.is_deleted()} -> std::convertible_to; {r.set_tombstone(b)}; {r.is_tombstone()} -> std::convertible_to; - {r.set_timestamp()}; + {r.set_timestamp(i)}; {r.get_timestamp()} -> std::convertible_to; {r.clear_timestamp()}; - {r.is_deleted()} -> std::convertible_to; + {r.is_visible()} -> std::convertible_to; {r.set_visible()}; {r < s} -> std::convertible_to; {r == s} ->std::convertible_to; -- cgit v1.2.3 From 7619c90e10adc441e525c98ad068a3639096d0c9 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Fri, 22 Mar 2024 14:22:44 -0400 Subject: Concurrent Extension test cleanup/minor tweaks --- tests/de_level_concurrent.cpp | 2 +- tests/de_tier_concurrent.cpp | 2 +- tests/include/concurrent_extension.h | 9 +-------- 3 files changed, 3 insertions(+), 10 deletions(-) diff --git a/tests/de_level_concurrent.cpp b/tests/de_level_concurrent.cpp index 2039efb..d1e0496 100644 --- a/tests/de_level_concurrent.cpp +++ b/tests/de_level_concurrent.cpp @@ -29,7 +29,7 @@ typedef DynamicExtension, rq::Query>, LayoutPolicy Suite *unit_testing() { - Suite *unit = suite_create("DynamicExtension: Tombstone Leveling Testing"); + Suite *unit = suite_create("DynamicExtension: Concurrent Leveling Testing"); inject_dynamic_extension_tests(unit); return unit; diff --git a/tests/de_tier_concurrent.cpp b/tests/de_tier_concurrent.cpp index 722b9bd..bb2ec7f 100644 --- a/tests/de_tier_concurrent.cpp +++ b/tests/de_tier_concurrent.cpp @@ -29,7 +29,7 @@ typedef DynamicExtension, rq::Query>, LayoutPolicy Suite *unit_testing() { - Suite *unit = suite_create("DynamicExtension: Tombstone Leveling Testing"); + Suite *unit = suite_create("DynamicExtension: Concurrent Tiering Testing"); inject_dynamic_extension_tests(unit); return unit; diff --git a/tests/include/concurrent_extension.h b/tests/include/concurrent_extension.h index 0993fac..2948292 100644 --- a/tests/include/concurrent_extension.h +++ b/tests/include/concurrent_extension.h @@ -170,10 +170,8 @@ START_TEST(t_range_query) p.lower_bound = lower_key; p.upper_bound = upper_key; - //fprintf(stderr, "query start\n"); auto result = test_de->query(&p); auto r = result.get(); - //fprintf(stderr, "query stop\n"); std::sort(r.begin(), r.end()); ck_assert_int_eq(r.size(), 251); @@ -349,12 +347,7 @@ START_TEST(t_static_structure) uint64_t prev_key = 0; for (size_t i=0; iget_record_count(); i++) { auto k = flat->get_record_at(i)->rec.key; - if (flat->get_record_at(i)->is_tombstone()) { - fprintf(stderr, "%ld %ld %ld\n", flat->get_record_at(i-1)->rec.key, - flat->get_record_at(i)->rec.key, - flat->get_record_at(i+1)->rec.key); - } - // ck_assert(!flat->get_record_at(i)->is_tombstone()); + //ck_assert(!flat->get_record_at(i)->is_tombstone()); ck_assert_int_ge(k, prev_key); prev_key = k; } -- cgit v1.2.3 From fb4312a883dd0e382ecbcfe1119479e6f44d32a6 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Fri, 22 Mar 2024 15:35:14 -0400 Subject: PointLookup: added a point lookup query for unique indexes, and some tests --- include/query/pointlookup.h | 117 ++++++++++++++++++++++++++++++++++++++++++++ include/shard/FSTrie.h | 6 +++ tests/fst_tests.cpp | 4 +- tests/include/pointlookup.h | 111 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 236 insertions(+), 2 deletions(-) create mode 100644 include/query/pointlookup.h create mode 100644 tests/include/pointlookup.h diff --git a/include/query/pointlookup.h b/include/query/pointlookup.h new file mode 100644 index 0000000..caaa320 --- /dev/null +++ b/include/query/pointlookup.h @@ -0,0 +1,117 @@ +/* + * include/query/pointlookup.h + * + * Copyright (C) 2024 Douglas B. Rumbaugh + * + * Distributed under the Modified BSD License. + * + * A query class for point lookup operations. + * + * TODO: Currently, this only supports point lookups for unique keys (which + * is the case for the trie that we're building this to use). It would be + * pretty straightforward to extend it to return *all* records that match + * the search_key (including tombstone cancellation--it's invertible) to + * support non-unique indexes, or at least those implementing + * lower_bound(). + */ +#pragma once + +#include "framework/QueryRequirements.h" + +namespace de { namespace pl { + +template +struct Parms { + decltype(R::key) search_key; +}; + +template +struct State { +}; + +template +struct BufferState { + BufferView *buffer; + + BufferState(BufferView *buffer) + : buffer(buffer) {} +}; + +template S> +class Query { +public: + constexpr static bool EARLY_ABORT=true; + constexpr static bool SKIP_DELETE_FILTER=true; + + static void *get_query_state(S *shard, void *parms) { + return nullptr; + } + + static void* get_buffer_query_state(BufferView *buffer, void *parms) { + auto res = new BufferState(buffer); + + return res; + } + + static void process_query_states(void *query_parms, std::vector &shard_states, void* buffer_state) { + return; + } + + static std::vector> query(S *shard, void *q_state, void *parms) { + auto p = (Parms *) parms; + auto s = (State *) q_state; + + std::vector> result; + + auto r = shard->point_lookup({p->search_key, 0}); + + if (r) { + result.push_back(*r); + } + + return result; + } + + static std::vector> buffer_query(void *state, void *parms) { + auto p = (Parms *) parms; + auto s = (BufferState *) state; + + std::vector> records; + for (size_t i=0; ibuffer->get_record_count(); i++) { + auto rec = s->buffer->get(i); + + if (rec->rec.key == p->search_key) { + records.push_back(*rec); + return records; + } + } + + return records; + } + + static std::vector merge(std::vector>> &results, void *parms) { + std::vector output; + for (auto r : results) { + if (r.size() > 0) { + if (r[0].is_deleted() || r[0].is_tombstone()) { + return output; + } + + output.append(r[0].rec); + return output; + } + } + } + + static void delete_query_state(void *state) { + auto s = (State *) state; + delete s; + } + + static void delete_buffer_query_state(void *state) { + auto s = (BufferState *) state; + delete s; + } +}; + +}} diff --git a/include/shard/FSTrie.h b/include/shard/FSTrie.h index aa3c9f4..50bf982 100644 --- a/include/shard/FSTrie.h +++ b/include/shard/FSTrie.h @@ -160,6 +160,12 @@ public: return nullptr; } + // FIXME: for convenience, I'm treating this Trie as a unique index + // for now, so no need to scan forward and/or check values. This + // also makes the point lookup query class a lot easier to make. + // Ultimately, though, we can support non-unique indexes with some + // extra work. + return m_data + idx; } diff --git a/tests/fst_tests.cpp b/tests/fst_tests.cpp index 4c8da4a..778f64a 100644 --- a/tests/fst_tests.cpp +++ b/tests/fst_tests.cpp @@ -20,14 +20,14 @@ typedef StringRec R; typedef FSTrie Shard; #include "include/shard_string.h" -//#include "include/rangequery.h" +#include "include/pointlookup.h" Suite *unit_testing() { Suite *unit = suite_create("Fast-succinct Trie Shard Unit Testing"); - // inject_rangequery_tests(unit); inject_shard_tests(unit); + inject_pointlookup_tests(unit); return unit; } diff --git a/tests/include/pointlookup.h b/tests/include/pointlookup.h new file mode 100644 index 0000000..bf4810b --- /dev/null +++ b/tests/include/pointlookup.h @@ -0,0 +1,111 @@ +/* + * tests/include/pointlookup.h + * + * Standardized unit tests for point lookups against supporting + * shard types (must be unique for the moment) + * + * Copyright (C) 2024 Douglas Rumbaugh + * + * Distributed under the Modified BSD License. + * + * WARNING: This file must be included in the main unit test set + * after the definition of an appropriate Shard and R + * type. In particular, R needs to implement the key-value + * pair interface and Shard needs to support lower_bound. + * For other types of record and shard, you'll need to + * use a different set of unit tests. + */ +#pragma once + +/* + * Uncomment these lines temporarily to remove errors in this file + * temporarily for development purposes. They should be removed prior + * to building, to ensure no duplicate definitions. These includes/defines + * should be included in the source file that includes this one, above the + * include statement. + */ + +#include "shard/FSTrie.h" +#include "query/pointlookup.h" +#include "testing.h" + +#include + +using namespace de; +typedef StringRec R; +typedef FSTrie Shard; + +START_TEST(t_point_lookup_query) +{ + auto buffer = create_test_mbuffer(1000); + auto shard = Shard(buffer->get_buffer_view()); + + pl::Parms parms; + { + auto bv = buffer->get_buffer_view(); + for (size_t i=0; irec.key; + + parms.search_key = key; + auto state = pl::Query::get_query_state(&shard, &parms); + auto result = pl::Query::query(&shard, state, &parms); + pl::Query::delete_query_state(state); + + ck_assert_int_eq(result.size(), 1); + ck_assert_str_eq(result[0].rec.key.c_str(), key.c_str()); + ck_assert_int_eq(result[0].rec.value, bv.get(i)->rec.value); + } + + /* point lookup miss; result size should be 0 */ + parms.search_key = "computer"; + auto state = pl::Query::get_query_state(&shard, &parms); + auto result = pl::Query::query(&shard, state, &parms); + pl::Query::delete_query_state(state); + + ck_assert_int_eq(result.size(), 0); + } + + delete buffer; +} +END_TEST + + +START_TEST(t_buffer_point_lookup) +{ + + auto buffer = create_test_mbuffer(1000); + pl::Parms parms; + { + auto view = buffer->get_buffer_view(); + for (int i=view.get_record_count()-1; i>=0; i--) { + parms.search_key = view.get(i)->rec.key; + + auto state = pl::Query::get_buffer_query_state(&view, &parms); + auto result = pl::Query::buffer_query(state, &parms); + pl::Query::delete_buffer_query_state(state); + + ck_assert_int_eq(result.size(), 1); + ck_assert_str_eq(result[0].rec.key.c_str(), view.get(i)->rec.key.c_str()); + ck_assert_int_eq(result[0].rec.value, view.get(i)->rec.value); + } + + /* point lookup miss; result size should be 0 */ + parms.search_key = "computer"; + auto state = pl::Query::get_buffer_query_state(&view, &parms); + auto result = pl::Query::buffer_query(state, &parms); + pl::Query::delete_buffer_query_state(state); + + ck_assert_int_eq(result.size(), 0); + } + + delete buffer; +} +END_TEST + + +static void inject_pointlookup_tests(Suite *suite) { + TCase *point_lookup_query = tcase_create("Point Lookup Testing"); + tcase_add_test(point_lookup_query, t_point_lookup_query); + tcase_add_test(point_lookup_query, t_buffer_point_lookup); + suite_add_tcase(suite, point_lookup_query); +} -- cgit v1.2.3 From b1b5ab106122e6917f6b34452be95e617506f05d Mon Sep 17 00:00:00 2001 From: "Douglas B. Rumbaugh" Date: Mon, 25 Mar 2024 12:54:17 -0400 Subject: Updates for build on OpenBSD Necessary updates to get the codebase building under OpenBSD 7.5 with clang. This is a minimal set of changes to get building to work, which includes disabling several things that aren't directly compatable. More work will be necessary to get full functionality. In particular, Triespline, PGM, and the reference M-tree do not currently build on OpenBSD with clang due to GNU dependencies or other gcc specific features. --- CMakeLists.txt | 161 +++++++++++-------------------- benchmarks/include/benchmark_types.h | 4 +- benchmarks/include/standard_benchmarks.h | 7 ++ benchmarks/watermark_testing.cpp | 6 +- include/framework/DynamicExtension.h | 6 ++ include/framework/structure/BufferView.h | 2 +- include/query/rangequery.h | 2 +- include/util/SortedMerge.h | 2 +- 8 files changed, 78 insertions(+), 112 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f4c90dd..4d449dd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,14 +9,22 @@ project("Practical Dynamic Extension" VERSION 0.1.0) set(debug false) set(tests True) set(bench true) -set(old_bench False) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin") set(CMAKE_CXX_FLAGS=-latomic -mcx16) -add_compile_options(-Iinclude -Iexternal/PLEX/include -Iexternal -mcx16 -fconcepts-diagnostics-depth=3) +add_compile_options(-Iinclude -Iexternal/PLEX/include -Iexternal -mcx16) # -fconcepts-diagnostics-depth=3) + +if (BSD) + add_link_options(-L/usr/local/lib) + add_compile_options(-I/usr/local/include) + set(CMAKE_CXX_EXTENSIONS) +else() +target_link_libraries() +endif() + if (debug) add_compile_options(-g -O0) @@ -34,98 +42,106 @@ if (tests) file(MAKE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/tests/data") add_executable(augbtree_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/augbtree_tests.cpp) - target_link_libraries(augbtree_tests PUBLIC gsl check subunit pthread atomic) + target_link_libraries(augbtree_tests PUBLIC gsl cblas check pthread atomic) target_link_options(augbtree_tests PUBLIC -mcx16) target_include_directories(augbtree_tests PRIVATE include external/psudb-common/cpp/include external/ctpl) add_executable(internal_level_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/internal_level_tests.cpp) - target_link_libraries(internal_level_tests PUBLIC gsl check subunit pthread atomic) + target_link_libraries(internal_level_tests PUBLIC gsl cblas check pthread atomic) target_link_options(internal_level_tests PUBLIC -mcx16) target_include_directories(internal_level_tests PRIVATE include external/psudb-common/cpp/include) add_executable(mutable_buffer_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/mutable_buffer_tests.cpp) - target_link_libraries(mutable_buffer_tests PUBLIC gsl check subunit pthread atomic) + target_link_libraries(mutable_buffer_tests PUBLIC gsl cblas check pthread atomic) target_link_options(mutable_buffer_tests PUBLIC -mcx16) target_include_directories(mutable_buffer_tests PRIVATE include external/psudb-common/cpp/include) add_executable(rangequery_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/rangequery_tests.cpp) - target_link_libraries(rangequery_tests PUBLIC gsl check subunit pthread atomic) + target_link_libraries(rangequery_tests PUBLIC gsl cblas check pthread atomic) target_link_options(rangequery_tests PUBLIC -mcx16) target_include_directories(rangequery_tests PRIVATE include external/psudb-common/cpp/include) add_executable(rangecount_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/rangecount_tests.cpp) - target_link_libraries(rangecount_tests PUBLIC gsl check subunit pthread atomic) + target_link_libraries(rangecount_tests PUBLIC gsl cblas check pthread atomic) target_link_options(rangecount_tests PUBLIC -mcx16) target_include_directories(rangecount_tests PRIVATE include external/psudb-common/cpp/include) add_executable(vptree_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/vptree_tests.cpp) - target_link_libraries(vptree_tests PUBLIC gsl check subunit pthread atomic) + target_link_libraries(vptree_tests PUBLIC gsl cblas check pthread atomic) target_link_options(vptree_tests PUBLIC -mcx16) target_include_directories(vptree_tests PRIVATE include external/vptree external/psudb-common/cpp/include) add_executable(de_tier_tag ${CMAKE_CURRENT_SOURCE_DIR}/tests/de_tier_tag.cpp) - target_link_libraries(de_tier_tag PUBLIC gsl check subunit pthread atomic) + target_link_libraries(de_tier_tag PUBLIC gsl cblas check pthread atomic) target_link_options(de_tier_tag PUBLIC -mcx16) target_include_directories(de_tier_tag PRIVATE include external/psudb-common/cpp/include external) add_executable(de_tier_tomb ${CMAKE_CURRENT_SOURCE_DIR}/tests/de_tier_tomb.cpp) - target_link_libraries(de_tier_tomb PUBLIC gsl check subunit pthread atomic) + target_link_libraries(de_tier_tomb PUBLIC gsl cblas check pthread atomic) target_link_options(de_tier_tomb PUBLIC -mcx16) target_include_directories(de_tier_tomb PRIVATE include external/PLEX/include external/psudb-common/cpp/include external) add_executable(de_level_tag ${CMAKE_CURRENT_SOURCE_DIR}/tests/de_level_tag.cpp) - target_link_libraries(de_level_tag PUBLIC gsl check subunit pthread atomic) + target_link_libraries(de_level_tag PUBLIC gsl cblas check pthread atomic) target_link_options(de_level_tag PUBLIC -mcx16) target_include_directories(de_level_tag PRIVATE include external/psudb-common/cpp/include external) add_executable(de_level_tomb ${CMAKE_CURRENT_SOURCE_DIR}/tests/de_level_tomb.cpp) - target_link_libraries(de_level_tomb PUBLIC gsl check subunit pthread atomic) + target_link_libraries(de_level_tomb PUBLIC gsl cblas check pthread atomic) target_link_options(de_level_tomb PUBLIC -mcx16) target_include_directories(de_level_tomb PRIVATE include external/ctpl external/PLEX/include external/psudb-common/cpp/include external) add_executable(de_level_concurrent ${CMAKE_CURRENT_SOURCE_DIR}/tests/de_level_concurrent.cpp) - target_link_libraries(de_level_concurrent PUBLIC gsl check subunit pthread atomic) + target_link_libraries(de_level_concurrent PUBLIC gsl cblas check pthread atomic) target_link_options(de_level_concurrent PUBLIC -mcx16) target_include_directories(de_level_concurrent PRIVATE include external/ctpl external/PLEX/include external/psudb-common/cpp/include external) add_executable(de_tier_concurrent ${CMAKE_CURRENT_SOURCE_DIR}/tests/de_tier_concurrent.cpp) - target_link_libraries(de_tier_concurrent PUBLIC gsl check subunit pthread atomic) + target_link_libraries(de_tier_concurrent PUBLIC gsl cblas check pthread atomic) target_link_options(de_tier_concurrent PUBLIC -mcx16) target_include_directories(de_tier_concurrent PRIVATE include external/ctpl external/PLEX/include external/psudb-common/cpp/include external) add_executable(memisam_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/memisam_tests.cpp) - target_link_libraries(memisam_tests PUBLIC gsl check subunit pthread atomic) + target_link_libraries(memisam_tests PUBLIC gsl cblas check pthread atomic) target_link_options(memisam_tests PUBLIC -mcx16) target_include_directories(memisam_tests PRIVATE include external/psudb-common/cpp/include) add_executable(triespline_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/triespline_tests.cpp) - target_link_libraries(triespline_tests PUBLIC gsl check subunit pthread atomic) + target_link_libraries(triespline_tests PUBLIC gsl cblas check pthread atomic) target_link_options(triespline_tests PUBLIC -mcx16) target_include_directories(triespline_tests PRIVATE include external/psudb-common/cpp/include external/PLEX/include) add_executable(alias_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/alias_tests.cpp) - target_link_libraries(alias_tests PUBLIC gsl check subunit pthread atomic) + target_link_libraries(alias_tests PUBLIC gsl cblas check pthread atomic) target_link_options(alias_tests PUBLIC -mcx16) target_include_directories(alias_tests PRIVATE include external/psudb-common/cpp/include) - add_executable(pgm_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/pgm_tests.cpp) - target_link_libraries(pgm_tests PUBLIC gsl check subunit pthread gomp atomic) - target_include_directories(pgm_tests PRIVATE include external/PGM-index/include external/psudb-common/cpp/include) - target_link_options(pgm_tests PUBLIC -mcx16) - target_compile_options(pgm_tests PUBLIC -fopenmp) + # OpenBSD doesn't have OpenMP support, so don't build the PGM code on that + # platform. + if (!BSD) + add_executable(pgm_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/pgm_tests.cpp) + target_link_libraries(pgm_tests PUBLIC gsl cblas check pthread gomp atomic) + target_include_directories(pgm_tests PRIVATE include external/PGM-index/include external/psudb-common/cpp/include) + target_link_options(pgm_tests PUBLIC -mcx16) + target_compile_options(pgm_tests PUBLIC -fopenmp) + endif() + # Triespline code doesn't build under OpenBSD either due to ambiguous function call; + # this is likely a difference between gcc and clang, rather than an OS thing +if (!BSD) add_executable(triespline_debug ${CMAKE_CURRENT_SOURCE_DIR}/tests/triespline_debug.cpp) - target_link_libraries(triespline_debug PUBLIC gsl check subunit pthread atomic) + target_link_libraries(triespline_debug PUBLIC gsl cblas check pthread atomic) target_link_options(triespline_debug PUBLIC -mcx16) target_include_directories(triespline_debug PRIVATE include external/psudb-common/cpp/include external/PLEX/include) +endif() add_executable(fst_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/fst_tests.cpp) - target_link_libraries(fst_tests PUBLIC gsl check subunit pthread atomic) + target_link_libraries(fst_tests PUBLIC gsl cblas check pthread atomic) target_link_options(fst_tests PUBLIC -mcx16) target_include_directories(fst_tests PRIVATE include external/psudb-common/cpp/include external/PLEX/include external/fast_succinct_trie/include) @@ -135,137 +151,68 @@ if (bench) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin/benchmarks") add_executable(reconstruction_interference ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/reconstruction_interference.cpp) - target_link_libraries(reconstruction_interference PUBLIC gsl pthread gomp atomic) + target_link_libraries(reconstruction_interference PUBLIC gsl cblas pthread atomic) target_link_options(reconstruction_interference PUBLIC -mcx16) target_include_directories(reconstruction_interference PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) add_executable(insertion_tput ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/insertion_tput.cpp) - target_link_libraries(insertion_tput PUBLIC gsl pthread gomp atomic) + target_link_libraries(insertion_tput PUBLIC gsl cblas pthread atomic) target_include_directories(insertion_tput PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) target_link_options(insertion_tput PUBLIC -mcx16) add_executable(string_insertion_tput ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/string_insertion_tput.cpp) - target_link_libraries(string_insertion_tput PUBLIC gsl pthread gomp atomic) + target_link_libraries(string_insertion_tput PUBLIC gsl cblas pthread atomic) target_include_directories(string_insertion_tput PRIVATE include external external/fast_succinct_trie/include external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) target_link_options(string_insertion_tput PUBLIC -mcx16) add_executable(query_workload_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/query_workload_bench.cpp) - target_link_libraries(query_workload_bench PUBLIC gsl pthread gomp atomic) + target_link_libraries(query_workload_bench PUBLIC gsl cblas pthread atomic) target_include_directories(query_workload_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) target_link_options(query_workload_bench PUBLIC -mcx16) add_executable(insert_query_tput ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/insert_query_tput.cpp) - target_link_libraries(insert_query_tput PUBLIC gsl pthread gomp atomic) + target_link_libraries(insert_query_tput PUBLIC gsl cblas pthread atomic) target_include_directories(insert_query_tput PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) target_link_options(insert_query_tput PUBLIC -mcx16) #add_executable(btree_insert_query_tput ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/btree_insert_query_tput.cpp) - #target_link_libraries(btree_insert_query_tput PUBLIC gsl pthread gomp atomic) + #target_link_libraries(btree_insert_query_tput PUBLIC gsl cblas pthread atomic) #target_include_directories(btree_insert_query_tput PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) #target_link_options(btree_insert_query_tput PUBLIC -mcx16) add_executable(watermark_testing ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/watermark_testing.cpp) - target_link_libraries(watermark_testing PUBLIC gsl pthread gomp atomic) + target_link_libraries(watermark_testing PUBLIC gsl cblas pthread atomic) target_include_directories(watermark_testing PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) target_link_options(watermark_testing PUBLIC -mcx16) add_executable(irs_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/irs_bench.cpp) - target_link_libraries(irs_bench PUBLIC gsl pthread gomp atomic) + target_link_libraries(irs_bench PUBLIC gsl cblas pthread atomic) target_include_directories(irs_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) target_link_options(irs_bench PUBLIC -mcx16) add_executable(vptree_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vptree_bench.cpp) - target_link_libraries(vptree_bench PUBLIC gsl pthread gomp atomic) + target_link_libraries(vptree_bench PUBLIC gsl cblas pthread atomic) target_include_directories(vptree_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) target_link_options(vptree_bench PUBLIC -mcx16) +if(!BSD) add_executable(ts_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/ts_bench.cpp) - target_link_libraries(ts_bench PUBLIC gsl pthread gomp atomic) + target_link_libraries(ts_bench PUBLIC gsl cblas pthread atomic) target_include_directories(ts_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) target_link_options(ts_bench PUBLIC -mcx16) +endif() #add_executable(static_dynamic_comp ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/static_dynamic_comp.cpp) - #target_link_libraries(static_dynamic_comp PUBLIC gsl pthread gomp atomic) + #target_link_libraries(static_dynamic_comp PUBLIC gsl cblas pthread atomic) #target_include_directories(static_dynamic_comp PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) #target_link_options(static_dynamic_comp PUBLIC -mcx16) add_executable(insert_tail_latency ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/insert_tail_latency.cpp) - target_link_libraries(insert_tail_latency PUBLIC gsl pthread gomp atomic) + target_link_libraries(insert_tail_latency PUBLIC gsl cblas pthread atomic) target_include_directories(insert_tail_latency PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) target_link_options(insert_tail_latency PUBLIC -mcx16) endif() - -if (old_bench) - add_executable(alias_wss_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/alias_wss_bench.cpp) - target_link_libraries(alias_wss_bench PUBLIC gsl pthread gomp) - target_include_directories(alias_wss_bench PRIVATE include external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include) - target_compile_options(alias_wss_bench PUBLIC -fopenmp) - - add_executable(triespline_rq_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/triespline_rq_bench.cpp) - target_link_libraries(triespline_rq_bench PUBLIC gsl pthread gomp) - target_include_directories(triespline_rq_bench PRIVATE include external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include) - target_compile_options(triespline_rq_bench PUBLIC -fopenmp) - - add_executable(pgm_rq_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/pgm_rq_bench.cpp) - target_link_libraries(pgm_rq_bench PUBLIC gsl pthread gomp) - target_include_directories(pgm_rq_bench PRIVATE include external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include) - target_compile_options(pgm_rq_bench PUBLIC -fopenmp) - - add_executable(pgm_pl_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/pgm_pl_bench.cpp) - target_link_libraries(pgm_pl_bench PUBLIC gsl pthread gomp) - target_include_directories(pgm_pl_bench PRIVATE include external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include) - target_compile_options(pgm_pl_bench PUBLIC -fopenmp) - - add_executable(upgm_rq_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/upgm_rq_bench.cpp) - target_link_libraries(upgm_rq_bench PUBLIC gsl pthread gomp) - target_include_directories(upgm_rq_bench PRIVATE include external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include) - target_compile_options(upgm_rq_bench PUBLIC -fopenmp) - set_property(TARGET upgm_rq_bench PROPERTY CXX_STANDARD 17) - - add_executable(upgm_pl_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/upgm_pl_bench.cpp) - target_link_libraries(upgm_pl_bench PUBLIC gsl pthread gomp) - target_include_directories(upgm_pl_bench PRIVATE include external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include) - target_compile_options(upgm_pl_bench PUBLIC -fopenmp) - set_property(TARGET upgm_pl_bench PROPERTY CXX_STANDARD 17) - - add_executable(isam_irs_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/isam_irs_bench.cpp) - target_link_libraries(isam_irs_bench PUBLIC gsl pthread gomp) - target_include_directories(isam_irs_bench PRIVATE include external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include) - target_compile_options(isam_irs_bench PUBLIC -fopenmp) - - add_executable(isam_rq_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/isam_rq_bench.cpp) - target_link_libraries(isam_rq_bench PUBLIC gsl pthread gomp) - target_include_directories(isam_rq_bench PRIVATE include external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include) - target_compile_options(isam_rq_bench PUBLIC -fopenmp) - - add_executable(btree_irs_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/btree_irs_bench.cpp) - target_link_libraries(btree_irs_bench PUBLIC gsl pthread gomp) - target_include_directories(btree_irs_bench PRIVATE include external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include) - target_compile_options(btree_irs_bench PUBLIC -fopenmp) - - add_executable(btree_rq_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/btree_rq_bench.cpp) - target_link_libraries(btree_rq_bench PUBLIC gsl pthread gomp) - target_include_directories(btree_rq_bench PRIVATE include external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include) - target_compile_options(btree_rq_bench PUBLIC -fopenmp) - - add_executable(alex_rq_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/alex_rq_bench.cpp) - target_link_libraries(alex_rq_bench PUBLIC gsl pthread gomp) - target_include_directories(alex_rq_bench PRIVATE include external/alex/src/core external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include) - target_compile_options(alex_rq_bench PUBLIC -fopenmp -march=native) - set_property(TARGET alex_rq_bench PROPERTY CXX_STANDARD 14) - - add_executable(vptree_knn_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vptree_knn_bench.cpp) - target_link_libraries(vptree_knn_bench PUBLIC gsl pthread gomp) - target_include_directories(vptree_knn_bench PRIVATE include external/m-tree/cpp external/vptree external/PGM-index/include external/PLEX/include bench/include) - target_compile_options(vptree_knn_bench PUBLIC -fopenmp) - - add_executable(mtree_knn_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/mtree_knn_bench.cpp) - target_link_libraries(mtree_knn_bench PUBLIC gsl pthread gomp) - target_include_directories(mtree_knn_bench PRIVATE include external/m-tree/cpp external/vptree external/PGM-index/include external/PLEX/include bench/include) - target_compile_options(mtree_knn_bench PUBLIC -fopenmp -fpermissive) - -endif() diff --git a/benchmarks/include/benchmark_types.h b/benchmarks/include/benchmark_types.h index 85e9565..fcdeac6 100644 --- a/benchmarks/include/benchmark_types.h +++ b/benchmarks/include/benchmark_types.h @@ -2,7 +2,6 @@ #include #include "psu-ds/BTree.h" -#include "mtree.h" #include "framework/interface/Record.h" /* TLX BTree definitions*/ @@ -46,5 +45,8 @@ struct euclidean_distance { } }; +#ifdef _GNU_SOURCE +#include "mtree.h" typedef mt::mtree MTree; +#endif diff --git a/benchmarks/include/standard_benchmarks.h b/benchmarks/include/standard_benchmarks.h index a42cdd6..5fc549d 100644 --- a/benchmarks/include/standard_benchmarks.h +++ b/benchmarks/include/standard_benchmarks.h @@ -102,8 +102,10 @@ static bool insert_tput_bench(DE &de_index, std::fstream &file, size_t insert_cn if (applied_deletes < delete_cnt && delete_idx < delete_vec.size() && gsl_rng_uniform(rng) < delete_prop) { if constexpr (std::is_same_v) { de_index.erase_one(delete_vec[delete_idx++].key); + #ifdef _GNU_SOURCE } else if constexpr (std::is_same_v) { de_index.remove(delete_vec[delete_idx++]); + #endif } else { de_index.erase(delete_vec[delete_idx++]); } @@ -111,11 +113,16 @@ static bool insert_tput_bench(DE &de_index, std::fstream &file, size_t insert_cn } // insert the record; + #ifdef _GNU_SOURCE if constexpr (std::is_same_v) { de_index.add(insert_vec[i]); } else { de_index.insert(insert_vec[i]); } + #else + de_index.insert(insert_vec[i]); + #endif + applied_inserts++; } auto insert_stop = std::chrono::high_resolution_clock::now(); diff --git a/benchmarks/watermark_testing.cpp b/benchmarks/watermark_testing.cpp index 5fa0c0d..c56fc63 100644 --- a/benchmarks/watermark_testing.cpp +++ b/benchmarks/watermark_testing.cpp @@ -12,6 +12,7 @@ #include "psu-util/timer.h" #include +#include typedef uint64_t K; typedef de::Record Rec; @@ -32,7 +33,10 @@ int main(int argc, char **argv) { keys[i] = i; } - std::random_shuffle(keys.begin(), keys.end()); + std::random_device rd; + std::mt19937 g(rd()); + + std::shuffle(keys.begin(), keys.end(), g); TIMER_INIT(); diff --git a/include/framework/DynamicExtension.h b/include/framework/DynamicExtension.h index 3e1ce50..44ad454 100644 --- a/include/framework/DynamicExtension.h +++ b/include/framework/DynamicExtension.h @@ -685,6 +685,7 @@ private: return processed_records; } +#ifdef _GNU_SOURCE void SetThreadAffinity() { int core = m_next_core.fetch_add(1) % m_core_cnt; cpu_set_t mask; @@ -707,6 +708,11 @@ private: CPU_SET(core, &mask); ::sched_setaffinity(0, sizeof(mask), &mask); } +#else + void SetThreadAffinity() { + + } +#endif void end_job(_Epoch *epoch) { diff --git a/include/framework/structure/BufferView.h b/include/framework/structure/BufferView.h index 9e0872b..44a2044 100644 --- a/include/framework/structure/BufferView.h +++ b/include/framework/structure/BufferView.h @@ -20,7 +20,7 @@ namespace de { -typedef std::_Bind ReleaseFunction; +typedef std::function ReleaseFunction; template class BufferView { diff --git a/include/query/rangequery.h b/include/query/rangequery.h index 24b38ec..e6ab581 100644 --- a/include/query/rangequery.h +++ b/include/query/rangequery.h @@ -121,7 +121,7 @@ public: for (size_t i = 0; i < tmp_n; ++i) if (results[i].size() > 0){ auto base = results[i].data(); - cursors.emplace_back(Cursor{base, base + results[i].size(), 0, results[i].size()}); + cursors.emplace_back(Cursor>{base, base + results[i].size(), 0, results[i].size()}); assert(i == cursors.size() - 1); total += results[i].size(); pq.push(cursors[i].ptr, tmp_n - i - 1); diff --git a/include/util/SortedMerge.h b/include/util/SortedMerge.h index 8a1e782..c149189 100644 --- a/include/util/SortedMerge.h +++ b/include/util/SortedMerge.h @@ -58,7 +58,7 @@ static std::vector>> build_cursor_vec(std::vector &shards, for (size_t i = 0; i < shards.size(); ++i) { if (shards[i]) { auto base = shards[i]->get_data(); - cursors.emplace_back(Cursor{base, base + shards[i]->get_record_count(), 0, shards[i]->get_record_count()}); + cursors.emplace_back(Cursor>{base, base + shards[i]->get_record_count(), 0, shards[i]->get_record_count()}); *reccnt += shards[i]->get_record_count(); *tscnt += shards[i]->get_tombstone_count(); } else { -- cgit v1.2.3 From d26c2029b19af02f5d86010f4925f3203a3dbaf2 Mon Sep 17 00:00:00 2001 From: "Douglas B. Rumbaugh" Date: Mon, 25 Mar 2024 13:40:45 -0400 Subject: CMakelists: disable ASAN and UBSAN when building on OpenBSD --- CMakeLists.txt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4d449dd..08a8225 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,10 +28,12 @@ endif() if (debug) add_compile_options(-g -O0) - add_compile_options(-fsanitize=address) - add_link_options(-fsanitize=address) - add_compile_options(-fsanitize=undefined) - add_link_options(-fsanitize=undefined) + if (!BSD) + add_compile_options(-fsanitize=address) + add_link_options(-fsanitize=address) + add_compile_options(-fsanitize=undefined) + add_link_options(-fsanitize=undefined) + endif() else() add_compile_options(-O3 -g) endif() -- cgit v1.2.3 From 3fb7bdce1a7b8a4a27a96c1a3ba759ad6c00b8ba Mon Sep 17 00:00:00 2001 From: "Douglas B. Rumbaugh" Date: Mon, 25 Mar 2024 13:51:16 -0400 Subject: Clean up extraneous file --- benchmarks/CMak | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 benchmarks/CMak diff --git a/benchmarks/CMak b/benchmarks/CMak deleted file mode 100644 index e69de29..0000000 -- cgit v1.2.3 From 145a1ded7c5c3a6ee8191680c289ec3e64f4c776 Mon Sep 17 00:00:00 2001 From: "Douglas B. Rumbaugh" Date: Tue, 26 Mar 2024 15:35:00 -0400 Subject: Updated to new version of psudb-common --- external/psudb-common | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/psudb-common b/external/psudb-common index ef14fe0..18a3e33 160000 --- a/external/psudb-common +++ b/external/psudb-common @@ -1 +1 @@ -Subproject commit ef14fe0f5c1ec52107b187dbe803f472767bd68c +Subproject commit 18a3e3383ed77e7a9cfab240f54378c43de203bf -- cgit v1.2.3 From 7e7fd9f7339eee2f1ae974c662a447532dfb1b1a Mon Sep 17 00:00:00 2001 From: "Douglas B. Rumbaugh" Date: Tue, 26 Mar 2024 16:35:12 -0400 Subject: Updated FSTrie benchmark and some minor fixes --- benchmarks/string_insertion_tput.cpp | 73 ++++++++++++++++++++++-------------- include/query/pointlookup.h | 4 +- include/shard/FSTrie.h | 2 +- 3 files changed, 49 insertions(+), 30 deletions(-) diff --git a/benchmarks/string_insertion_tput.cpp b/benchmarks/string_insertion_tput.cpp index d205175..e41e996 100644 --- a/benchmarks/string_insertion_tput.cpp +++ b/benchmarks/string_insertion_tput.cpp @@ -9,7 +9,7 @@ #include "framework/DynamicExtension.h" #include "shard/FSTrie.h" -#include "query/rangequery.h" +#include "query/pointlookup.h" #include "framework/interface/Record.h" #include "psu-util/timer.h" @@ -18,8 +18,8 @@ typedef de::Record Rec; typedef de::FSTrie Trie; -typedef de::rq::Query Q; -typedef de::DynamicExtension Ext; //, de::LayoutPolicy::TEIRING, de::DeletePolicy::TAGGING, de::SerialScheduler> Ext; +typedef de::pl::Query Q; +typedef de::DynamicExtension Ext; std::vector strings; @@ -47,45 +47,62 @@ void read_data(std::string fname, size_t n=10000000) { } } +void usage(char *name) { + fprintf(stderr, "Usage:\n%s datafile record_count\n", name); +} + int main(int argc, char **argv) { - size_t n = 100000000; - std::vector counts = {1 , 2, 4, 8}; //, 16, 32, 64}; - // - read_data("benchmarks/data/ursa-genome.txt", n); + if (argc < 3) { + usage(argv[0]); + exit(EXIT_FAILURE); + } - fprintf(stderr, "Finished reading from file.\n"); + std::string fname = std::string(argv[1]); + size_t n = atol(argv[2]); - for (auto thread_count : counts) { + read_data(fname, n); - auto extension = new Ext(1000, 12000, 8); + if (strings.size() == 0) { + fprintf(stderr, "[E]: No string data read from file. Aborting execution.\n"); + } else { + fprintf(stderr, "Finished reading from file.\n"); + } - size_t per_thread = n / thread_count; + auto extension = new Ext(1000, 12000, 8); - std::thread threads[thread_count]; + TIMER_INIT(); + TIMER_START(); + insert_thread(0, strings.size(), extension); + TIMER_STOP(); - TIMER_INIT(); - TIMER_START(); - for (size_t i=0; i parms; + parms.search_key = strings[j]; - TIMER_STOP(); + auto res = extension->query(&parms); + auto ans = res.get(); - auto total_time = TIMER_RESULT(); + assert(ans[0].value == j); + } + TIMER_STOP(); - double tput = (double) n / (double) total_time * 1e9; + auto query_time = TIMER_RESULT(); - fprintf(stdout, "%ld\t%d\t%lf\n", extension->get_record_count(), - thread_count, tput); - delete extension; - } + double i_tput = (double) n / (double) total_time * 1e9; + size_t q_lat = total_time / m; + + fprintf(stdout, "%ld\t\t%lf\t%ld\n", extension->get_record_count(), + i_tput, q_lat); + + + delete extension; fflush(stderr); } diff --git a/include/query/pointlookup.h b/include/query/pointlookup.h index caaa320..35d38e3 100644 --- a/include/query/pointlookup.h +++ b/include/query/pointlookup.h @@ -97,10 +97,12 @@ public: return output; } - output.append(r[0].rec); + output.push_back(r[0].rec); return output; } } + + return output; } static void delete_query_state(void *state) { diff --git a/include/shard/FSTrie.h b/include/shard/FSTrie.h index 50bf982..95f396f 100644 --- a/include/shard/FSTrie.h +++ b/include/shard/FSTrie.h @@ -61,7 +61,7 @@ public: std::sort(base, stop, std::less>()); for (size_t i=0; i Date: Thu, 11 Apr 2024 12:23:21 -0400 Subject: stuff --- CMakeLists.txt | 76 +++++++++++++++++++++++------------------------- include/shard/ISAMTree.h | 2 +- 2 files changed, 38 insertions(+), 40 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 08a8225..8395fc7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,8 @@ cmake_minimum_required(VERSION 3.13) +#set(CMAKE_C_COMPILER clang) +#set(CMAKE_CXX_COMPILER clang++) + set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED True) @@ -21,11 +24,8 @@ if (BSD) add_link_options(-L/usr/local/lib) add_compile_options(-I/usr/local/include) set(CMAKE_CXX_EXTENSIONS) -else() -target_link_libraries() endif() - if (debug) add_compile_options(-g -O0) if (!BSD) @@ -44,106 +44,104 @@ if (tests) file(MAKE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/tests/data") add_executable(augbtree_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/augbtree_tests.cpp) - target_link_libraries(augbtree_tests PUBLIC gsl cblas check pthread atomic) + target_link_libraries(augbtree_tests PUBLIC gsl check subunit pthread atomic) target_link_options(augbtree_tests PUBLIC -mcx16) target_include_directories(augbtree_tests PRIVATE include external/psudb-common/cpp/include external/ctpl) add_executable(internal_level_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/internal_level_tests.cpp) - target_link_libraries(internal_level_tests PUBLIC gsl cblas check pthread atomic) + target_link_libraries(internal_level_tests PUBLIC gsl check subunit pthread atomic) target_link_options(internal_level_tests PUBLIC -mcx16) target_include_directories(internal_level_tests PRIVATE include external/psudb-common/cpp/include) add_executable(mutable_buffer_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/mutable_buffer_tests.cpp) - target_link_libraries(mutable_buffer_tests PUBLIC gsl cblas check pthread atomic) + target_link_libraries(mutable_buffer_tests PUBLIC gsl check subunit pthread atomic) target_link_options(mutable_buffer_tests PUBLIC -mcx16) target_include_directories(mutable_buffer_tests PRIVATE include external/psudb-common/cpp/include) add_executable(rangequery_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/rangequery_tests.cpp) - target_link_libraries(rangequery_tests PUBLIC gsl cblas check pthread atomic) + target_link_libraries(rangequery_tests PUBLIC gsl check subunit pthread atomic) target_link_options(rangequery_tests PUBLIC -mcx16) target_include_directories(rangequery_tests PRIVATE include external/psudb-common/cpp/include) add_executable(rangecount_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/rangecount_tests.cpp) - target_link_libraries(rangecount_tests PUBLIC gsl cblas check pthread atomic) + target_link_libraries(rangecount_tests PUBLIC gsl check subunit pthread atomic) target_link_options(rangecount_tests PUBLIC -mcx16) target_include_directories(rangecount_tests PRIVATE include external/psudb-common/cpp/include) add_executable(vptree_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/vptree_tests.cpp) - target_link_libraries(vptree_tests PUBLIC gsl cblas check pthread atomic) + target_link_libraries(vptree_tests PUBLIC gsl check subunit pthread atomic) target_link_options(vptree_tests PUBLIC -mcx16) target_include_directories(vptree_tests PRIVATE include external/vptree external/psudb-common/cpp/include) add_executable(de_tier_tag ${CMAKE_CURRENT_SOURCE_DIR}/tests/de_tier_tag.cpp) - target_link_libraries(de_tier_tag PUBLIC gsl cblas check pthread atomic) + target_link_libraries(de_tier_tag PUBLIC gsl check subunit pthread atomic) target_link_options(de_tier_tag PUBLIC -mcx16) target_include_directories(de_tier_tag PRIVATE include external/psudb-common/cpp/include external) add_executable(de_tier_tomb ${CMAKE_CURRENT_SOURCE_DIR}/tests/de_tier_tomb.cpp) - target_link_libraries(de_tier_tomb PUBLIC gsl cblas check pthread atomic) + target_link_libraries(de_tier_tomb PUBLIC gsl check subunit pthread atomic) target_link_options(de_tier_tomb PUBLIC -mcx16) target_include_directories(de_tier_tomb PRIVATE include external/PLEX/include external/psudb-common/cpp/include external) add_executable(de_level_tag ${CMAKE_CURRENT_SOURCE_DIR}/tests/de_level_tag.cpp) - target_link_libraries(de_level_tag PUBLIC gsl cblas check pthread atomic) + target_link_libraries(de_level_tag PUBLIC gsl check subunit pthread atomic) target_link_options(de_level_tag PUBLIC -mcx16) target_include_directories(de_level_tag PRIVATE include external/psudb-common/cpp/include external) add_executable(de_level_tomb ${CMAKE_CURRENT_SOURCE_DIR}/tests/de_level_tomb.cpp) - target_link_libraries(de_level_tomb PUBLIC gsl cblas check pthread atomic) + target_link_libraries(de_level_tomb PUBLIC gsl check subunit pthread atomic) target_link_options(de_level_tomb PUBLIC -mcx16) target_include_directories(de_level_tomb PRIVATE include external/ctpl external/PLEX/include external/psudb-common/cpp/include external) add_executable(de_level_concurrent ${CMAKE_CURRENT_SOURCE_DIR}/tests/de_level_concurrent.cpp) - target_link_libraries(de_level_concurrent PUBLIC gsl cblas check pthread atomic) + target_link_libraries(de_level_concurrent PUBLIC gsl check subunit pthread atomic) target_link_options(de_level_concurrent PUBLIC -mcx16) target_include_directories(de_level_concurrent PRIVATE include external/ctpl external/PLEX/include external/psudb-common/cpp/include external) add_executable(de_tier_concurrent ${CMAKE_CURRENT_SOURCE_DIR}/tests/de_tier_concurrent.cpp) - target_link_libraries(de_tier_concurrent PUBLIC gsl cblas check pthread atomic) + target_link_libraries(de_tier_concurrent PUBLIC gsl check subunit pthread atomic) target_link_options(de_tier_concurrent PUBLIC -mcx16) target_include_directories(de_tier_concurrent PRIVATE include external/ctpl external/PLEX/include external/psudb-common/cpp/include external) add_executable(memisam_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/memisam_tests.cpp) - target_link_libraries(memisam_tests PUBLIC gsl cblas check pthread atomic) + target_link_libraries(memisam_tests PUBLIC gsl check subunit pthread atomic) target_link_options(memisam_tests PUBLIC -mcx16) target_include_directories(memisam_tests PRIVATE include external/psudb-common/cpp/include) add_executable(triespline_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/triespline_tests.cpp) - target_link_libraries(triespline_tests PUBLIC gsl cblas check pthread atomic) + target_link_libraries(triespline_tests PUBLIC gsl check subunit pthread atomic) target_link_options(triespline_tests PUBLIC -mcx16) target_include_directories(triespline_tests PRIVATE include external/psudb-common/cpp/include external/PLEX/include) add_executable(alias_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/alias_tests.cpp) - target_link_libraries(alias_tests PUBLIC gsl cblas check pthread atomic) + target_link_libraries(alias_tests PUBLIC gsl check subunit pthread atomic) target_link_options(alias_tests PUBLIC -mcx16) target_include_directories(alias_tests PRIVATE include external/psudb-common/cpp/include) # OpenBSD doesn't have OpenMP support, so don't build the PGM code on that # platform. - if (!BSD) - add_executable(pgm_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/pgm_tests.cpp) - target_link_libraries(pgm_tests PUBLIC gsl cblas check pthread gomp atomic) - target_include_directories(pgm_tests PRIVATE include external/PGM-index/include external/psudb-common/cpp/include) - target_link_options(pgm_tests PUBLIC -mcx16) - target_compile_options(pgm_tests PUBLIC -fopenmp) - endif() - - + #if (!BSD) + # add_executable(pgm_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/pgm_tests.cpp) + #target_link_libraries(pgm_tests PUBLIC gsl cblas check subunit pthread gomp atomic) + #target_include_directories(pgm_tests PRIVATE include external/PGM-index/include external/psudb-common/cpp/include) + #target_link_options(pgm_tests PUBLIC -mcx16) + #target_compile_options(pgm_tests PUBLIC -fopenmp) + #endif() # Triespline code doesn't build under OpenBSD either due to ambiguous function call; # this is likely a difference between gcc and clang, rather than an OS thing if (!BSD) add_executable(triespline_debug ${CMAKE_CURRENT_SOURCE_DIR}/tests/triespline_debug.cpp) - target_link_libraries(triespline_debug PUBLIC gsl cblas check pthread atomic) + target_link_libraries(triespline_debug PUBLIC gsl check subunit pthread atomic) target_link_options(triespline_debug PUBLIC -mcx16) target_include_directories(triespline_debug PRIVATE include external/psudb-common/cpp/include external/PLEX/include) endif() add_executable(fst_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/fst_tests.cpp) - target_link_libraries(fst_tests PUBLIC gsl cblas check pthread atomic) + target_link_libraries(fst_tests PUBLIC gsl check subunit pthread atomic) target_link_options(fst_tests PUBLIC -mcx16) target_include_directories(fst_tests PRIVATE include external/psudb-common/cpp/include external/PLEX/include external/fast_succinct_trie/include) @@ -153,29 +151,29 @@ if (bench) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin/benchmarks") add_executable(reconstruction_interference ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/reconstruction_interference.cpp) - target_link_libraries(reconstruction_interference PUBLIC gsl cblas pthread atomic) + target_link_libraries(reconstruction_interference PUBLIC gsl pthread atomic) target_link_options(reconstruction_interference PUBLIC -mcx16) target_include_directories(reconstruction_interference PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) add_executable(insertion_tput ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/insertion_tput.cpp) - target_link_libraries(insertion_tput PUBLIC gsl cblas pthread atomic) + target_link_libraries(insertion_tput PUBLIC gsl pthread atomic) target_include_directories(insertion_tput PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) target_link_options(insertion_tput PUBLIC -mcx16) add_executable(string_insertion_tput ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/string_insertion_tput.cpp) - target_link_libraries(string_insertion_tput PUBLIC gsl cblas pthread atomic) + target_link_libraries(string_insertion_tput PUBLIC gsl pthread atomic) target_include_directories(string_insertion_tput PRIVATE include external external/fast_succinct_trie/include external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) target_link_options(string_insertion_tput PUBLIC -mcx16) add_executable(query_workload_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/query_workload_bench.cpp) - target_link_libraries(query_workload_bench PUBLIC gsl cblas pthread atomic) + target_link_libraries(query_workload_bench PUBLIC gsl pthread atomic) target_include_directories(query_workload_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) target_link_options(query_workload_bench PUBLIC -mcx16) add_executable(insert_query_tput ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/insert_query_tput.cpp) - target_link_libraries(insert_query_tput PUBLIC gsl cblas pthread atomic) + target_link_libraries(insert_query_tput PUBLIC gsl pthread atomic) target_include_directories(insert_query_tput PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) target_link_options(insert_query_tput PUBLIC -mcx16) @@ -186,24 +184,24 @@ if (bench) #target_link_options(btree_insert_query_tput PUBLIC -mcx16) add_executable(watermark_testing ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/watermark_testing.cpp) - target_link_libraries(watermark_testing PUBLIC gsl cblas pthread atomic) + target_link_libraries(watermark_testing PUBLIC gsl pthread atomic) target_include_directories(watermark_testing PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) target_link_options(watermark_testing PUBLIC -mcx16) add_executable(irs_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/irs_bench.cpp) - target_link_libraries(irs_bench PUBLIC gsl cblas pthread atomic) + target_link_libraries(irs_bench PUBLIC gsl pthread atomic) target_include_directories(irs_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) target_link_options(irs_bench PUBLIC -mcx16) add_executable(vptree_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vptree_bench.cpp) - target_link_libraries(vptree_bench PUBLIC gsl cblas pthread atomic) + target_link_libraries(vptree_bench PUBLIC gsl pthread atomic) target_include_directories(vptree_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) target_link_options(vptree_bench PUBLIC -mcx16) if(!BSD) add_executable(ts_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/ts_bench.cpp) - target_link_libraries(ts_bench PUBLIC gsl cblas pthread atomic) + target_link_libraries(ts_bench PUBLIC gsl pthread atomic) target_include_directories(ts_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) target_link_options(ts_bench PUBLIC -mcx16) endif() @@ -214,7 +212,7 @@ endif() #target_link_options(static_dynamic_comp PUBLIC -mcx16) add_executable(insert_tail_latency ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/insert_tail_latency.cpp) - target_link_libraries(insert_tail_latency PUBLIC gsl cblas pthread atomic) + target_link_libraries(insert_tail_latency PUBLIC gsl pthread atomic) target_include_directories(insert_tail_latency PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) target_link_options(insert_tail_latency PUBLIC -mcx16) endif() diff --git a/include/shard/ISAMTree.h b/include/shard/ISAMTree.h index 3763271..af62c92 100644 --- a/include/shard/ISAMTree.h +++ b/include/shard/ISAMTree.h @@ -70,7 +70,7 @@ public: * without this, gcc seems to hoist the building of the array * _above_ its allocation under -O3, resulting in memfaults. */ - asm volatile ("" ::: "memory"); + //asm volatile ("" ::: "memory"); auto res = sorted_array_from_bufferview(std::move(buffer), m_data, m_bf); m_reccnt = res.record_count; -- cgit v1.2.3 From 1209553e9b44c355f38736fa53d4130ffff937f0 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Thu, 11 Apr 2024 12:23:29 -0400 Subject: trie_bench: Added static query latency --- benchmarks/string_insertion_tput.cpp | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/benchmarks/string_insertion_tput.cpp b/benchmarks/string_insertion_tput.cpp index e41e996..5a46a80 100644 --- a/benchmarks/string_insertion_tput.cpp +++ b/benchmarks/string_insertion_tput.cpp @@ -93,13 +93,31 @@ int main(int argc, char **argv) { TIMER_STOP(); auto query_time = TIMER_RESULT(); + + auto shard = extension->create_static_structure(); + TIMER_START(); + for (size_t i=0; i parms; + parms.search_key = strings[j]; + + auto res = Q::query(shard, nullptr, &parms); + } + TIMER_STOP(); + + auto shard_query_time = TIMER_RESULT(); double i_tput = (double) n / (double) total_time * 1e9; - size_t q_lat = total_time / m; + size_t q_lat = query_time / m; + size_t s_q_lat = shard_query_time / m; + + fprintf(stdout, "%ld\t\t%lf\t%ld\t%ld\n", extension->get_record_count(), + i_tput, q_lat, s_q_lat); + + + - fprintf(stdout, "%ld\t\t%lf\t%ld\n", extension->get_record_count(), - i_tput, q_lat); delete extension; -- cgit v1.2.3 From 0cf96983011bc05a2ed275d3588e41aa4fe3c7a1 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Mon, 15 Apr 2024 10:22:21 -0400 Subject: Added a dynamic trie benchmark --- .gitmodules | 3 ++ CMakeLists.txt | 4 ++ benchmarks/poplar_trie.cpp | 98 ++++++++++++++++++++++++++++++++++++++++++++++ external/poplar-trie | 1 + 4 files changed, 106 insertions(+) create mode 100644 benchmarks/poplar_trie.cpp create mode 160000 external/poplar-trie diff --git a/.gitmodules b/.gitmodules index aac5eb8..e5edcb6 100644 --- a/.gitmodules +++ b/.gitmodules @@ -31,3 +31,6 @@ [submodule "external/fast_succinct_trie"] path = external/fast_succinct_trie url = git@github.com:dbrumbaugh/fast_succinct_trie.git +[submodule "external/poplar-trie"] + path = external/poplar-trie + url = git@github.com:kampersanda/poplar-trie.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 8395fc7..314fc8c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -177,6 +177,10 @@ if (bench) target_include_directories(insert_query_tput PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) target_link_options(insert_query_tput PUBLIC -mcx16) + add_executable(poplar_trie ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/poplar_trie.cpp) + target_link_libraries(poplar_trie PUBLIC gsl pthread atomic) + target_include_directories(poplar_trie PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include external/poplar-trie/include) + target_link_options(poplar_trie PUBLIC -mcx16) #add_executable(btree_insert_query_tput ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/btree_insert_query_tput.cpp) #target_link_libraries(btree_insert_query_tput PUBLIC gsl cblas pthread atomic) diff --git a/benchmarks/poplar_trie.cpp b/benchmarks/poplar_trie.cpp new file mode 100644 index 0000000..6a04cb9 --- /dev/null +++ b/benchmarks/poplar_trie.cpp @@ -0,0 +1,98 @@ +/* + * + */ + +#define ENABLE_TIMER + +#include +#include + +#include "poplar.hpp" + +#include "psu-util/timer.h" +#include "psu-util/progress.h" + +std::vector strings; + +typedef poplar::plain_bonsai_map Trie; + +void insert_thread(int64_t start, int64_t end, Trie * trie) { + for (uint64_t i=start; iupdate(strings[i]); + *res = i+1; + } +} + +void read_data(std::string fname, size_t n=10000000) { + strings.reserve(n); + + std::fstream file; + file.open(fname, std::ios::in); + + size_t i=0; + std::string line; + while (i < n && std::getline(file, line, '\n')) { + strings.emplace_back(line); + i++; + psudb::progress_update((double) i / (double) n, "Reading file:"); + } +} + +void usage(char *name) { + fprintf(stderr, "Usage:\n%s datafile record_count\n", name); +} + +int main(int argc, char **argv) { + + if (argc < 3) { + usage(argv[0]); + exit(EXIT_FAILURE); + } + + std::string fname = std::string(argv[1]); + size_t n = atol(argv[2]); + + read_data(fname, n); + + if (strings.size() == 0) { + fprintf(stderr, "[E]: No string data read from file. Aborting execution.\n"); + } else { + fprintf(stderr, "Finished reading from file.\n"); + } + + auto trie = new Trie(); + + TIMER_INIT(); + TIMER_START(); + insert_thread(0, strings.size(), trie); + TIMER_STOP(); + + auto total_time = TIMER_RESULT(); + + size_t m = 100; + TIMER_START(); + for (size_t i=0; ifind(strings[j]); + if (*res != j-1) { + fprintf(stderr, "%ld %d %s\n", j, *res, strings[j].c_str()); + } + assert(*(res)+1 == j); + } + TIMER_STOP(); + + auto query_time = TIMER_RESULT(); + + + double i_tput = (double) n / (double) total_time * 1e9; + size_t q_lat = query_time / m; + + fprintf(stdout, "%ld\t\t%lf\t%ld\n", trie->size(), + i_tput, q_lat); + + delete trie; + + fflush(stderr); +} + diff --git a/external/poplar-trie b/external/poplar-trie new file mode 160000 index 0000000..4d8aaa9 --- /dev/null +++ b/external/poplar-trie @@ -0,0 +1 @@ +Subproject commit 4d8aaa9d1e84ba10dc338c1a5acc590bb6d86c50 -- cgit v1.2.3 From 428658bc76b5b9eec46d3b7e415b5d114ddd3f79 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Mon, 15 Apr 2024 12:50:26 -0400 Subject: Print size statistics --- benchmarks/poplar_trie.cpp | 6 ++++-- benchmarks/string_insertion_tput.cpp | 18 +++++++++++------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/benchmarks/poplar_trie.cpp b/benchmarks/poplar_trie.cpp index 6a04cb9..c85e718 100644 --- a/benchmarks/poplar_trie.cpp +++ b/benchmarks/poplar_trie.cpp @@ -75,10 +75,10 @@ int main(int argc, char **argv) { size_t j = rand() % strings.size(); auto res = trie->find(strings[j]); - if (*res != j-1) { + if (*res != (j+1)) { fprintf(stderr, "%ld %d %s\n", j, *res, strings[j].c_str()); } - assert(*(res)+1 == j); + //assert(*(res)+1 == j); } TIMER_STOP(); @@ -91,6 +91,8 @@ int main(int argc, char **argv) { fprintf(stdout, "%ld\t\t%lf\t%ld\n", trie->size(), i_tput, q_lat); + trie->show_stats(std::cerr, 1); + delete trie; fflush(stderr); diff --git a/benchmarks/string_insertion_tput.cpp b/benchmarks/string_insertion_tput.cpp index 5a46a80..4923b09 100644 --- a/benchmarks/string_insertion_tput.cpp +++ b/benchmarks/string_insertion_tput.cpp @@ -88,6 +88,10 @@ int main(int argc, char **argv) { auto res = extension->query(&parms); auto ans = res.get(); + if (ans[0].value != j) { + fprintf(stderr, "ext:\t%ld %ld %s\n", ans[0].value, j, strings[j].c_str()); + } + assert(ans[0].value == j); } TIMER_STOP(); @@ -103,6 +107,10 @@ int main(int argc, char **argv) { parms.search_key = strings[j]; auto res = Q::query(shard, nullptr, &parms); + + if (res[0].rec.value != j) { + fprintf(stderr, "static:\t%ld %ld %s\n", res[0].rec.value, j, strings[j].c_str()); + } } TIMER_STOP(); @@ -112,15 +120,11 @@ int main(int argc, char **argv) { size_t q_lat = query_time / m; size_t s_q_lat = shard_query_time / m; - fprintf(stdout, "%ld\t\t%lf\t%ld\t%ld\n", extension->get_record_count(), - i_tput, q_lat, s_q_lat); - - - - - + fprintf(stdout, "%ld\t\t%lf\t%ld\t%ld\t%ld\t%ld\n", extension->get_record_count(), + i_tput, q_lat, s_q_lat, extension->get_memory_usage(), shard->get_memory_usage()); delete extension; + delete shard; fflush(stderr); } -- cgit v1.2.3 From 2c69253f382cd0c6d41db57c45119c33c315bb9c Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Mon, 15 Apr 2024 12:51:01 -0400 Subject: Missed file from last commit --- include/framework/DynamicExtension.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/framework/DynamicExtension.h b/include/framework/DynamicExtension.h index 44ad454..9e1b8fa 100644 --- a/include/framework/DynamicExtension.h +++ b/include/framework/DynamicExtension.h @@ -201,7 +201,7 @@ public: */ size_t get_memory_usage() { auto epoch = get_active_epoch(); - auto t= epoch->get_buffer().get_memory_usage() + epoch->get_structure()->get_memory_usage(); + auto t = m_buffer->get_memory_usage() + epoch->get_structure()->get_memory_usage(); end_job(epoch); return t; -- cgit v1.2.3 From b25beb13773072c3b143842b45a7c32a1108f347 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Mon, 15 Apr 2024 14:00:27 -0400 Subject: Updated FSTrie to use const char * instead of std::string Note: this requires the caller to manage the memory of the strings --- CMakeLists.txt | 2 +- benchmarks/string_insertion_tput.cpp | 18 ++++---- external/psudb-common | 2 +- include/framework/interface/Record.h | 17 ++++++++ include/shard/FSTrie.h | 18 +++----- tests/include/concurrent_extension.h | 6 +-- tests/include/pointlookup.h | 18 ++++---- tests/include/rangecount.h | 18 +++----- tests/include/rangequery.h | 18 +++----- tests/include/shard_standard.h | 10 ++--- tests/include/shard_string.h | 7 ++- tests/include/testing.h | 82 +++++++++++++++--------------------- 12 files changed, 93 insertions(+), 123 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 314fc8c..3c73545 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,7 +9,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED True) set(namespace "de") project("Practical Dynamic Extension" VERSION 0.1.0) -set(debug false) +set(debug true) set(tests True) set(bench true) diff --git a/benchmarks/string_insertion_tput.cpp b/benchmarks/string_insertion_tput.cpp index 4923b09..f4a519a 100644 --- a/benchmarks/string_insertion_tput.cpp +++ b/benchmarks/string_insertion_tput.cpp @@ -16,16 +16,16 @@ #include "psu-util/progress.h" -typedef de::Record Rec; +typedef de::Record Rec; typedef de::FSTrie Trie; typedef de::pl::Query Q; typedef de::DynamicExtension Ext; -std::vector strings; +std::vector> strings; void insert_thread(int64_t start, int64_t end, Ext *extension) { for (uint64_t i=start; iinsert(r)) { _mm_pause(); } @@ -41,7 +41,7 @@ void read_data(std::string fname, size_t n=10000000) { size_t i=0; std::string line; while (i < n && std::getline(file, line, '\n')) { - strings.emplace_back(line); + strings.emplace_back(std::unique_ptr(strdup(line.c_str()))); i++; psudb::progress_update((double) i / (double) n, "Reading file:"); } @@ -82,14 +82,13 @@ int main(int argc, char **argv) { TIMER_START(); for (size_t i=0; i parms; - parms.search_key = strings[j]; + de::pl::Parms parms = {strings[j].get()}; auto res = extension->query(&parms); auto ans = res.get(); if (ans[0].value != j) { - fprintf(stderr, "ext:\t%ld %ld %s\n", ans[0].value, j, strings[j].c_str()); + fprintf(stderr, "ext:\t%ld %ld %s\n", ans[0].value, j, strings[j].get()); } assert(ans[0].value == j); @@ -103,13 +102,12 @@ int main(int argc, char **argv) { TIMER_START(); for (size_t i=0; i parms; - parms.search_key = strings[j]; + de::pl::Parms parms = {strings[j].get()}; auto res = Q::query(shard, nullptr, &parms); if (res[0].rec.value != j) { - fprintf(stderr, "static:\t%ld %ld %s\n", res[0].rec.value, j, strings[j].c_str()); + fprintf(stderr, "static:\t%ld %ld %s\n", res[0].rec.value, j, strings[j].get()); } } TIMER_STOP(); diff --git a/external/psudb-common b/external/psudb-common index 18a3e33..ef14fe0 160000 --- a/external/psudb-common +++ b/external/psudb-common @@ -1 +1 @@ -Subproject commit 18a3e3383ed77e7a9cfab240f54378c43de203bf +Subproject commit ef14fe0f5c1ec52107b187dbe803f472767bd68c diff --git a/include/framework/interface/Record.h b/include/framework/interface/Record.h index d380f9b..19ccadd 100644 --- a/include/framework/interface/Record.h +++ b/include/framework/interface/Record.h @@ -132,6 +132,23 @@ struct Record { } }; +template +struct Record { + const char* key; + V value; + size_t len; + + inline bool operator<(const Record& other) const { + size_t n = std::min(len, other.len) + 1; + return strncmp(key, other.key, n) < 0; + } + + inline bool operator==(const Record& other) const { + size_t n = std::min(len, other.len) + 1; + return strncmp(key, other.key, n) == 0; + } +}; + template struct WeightedRecord { K key; diff --git a/include/shard/FSTrie.h b/include/shard/FSTrie.h index 95f396f..be678ff 100644 --- a/include/shard/FSTrie.h +++ b/include/shard/FSTrie.h @@ -30,7 +30,7 @@ private: typedef decltype(R::key) K; typedef decltype(R::value) V; - static_assert(std::is_same_v, "FST requires std::string keys."); + static_assert(std::is_same_v, "FST requires const char* keys."); public: FSTrie(BufferView buffer) @@ -42,7 +42,7 @@ public: m_alloc_size = sizeof(Wrapped) * buffer.get_record_count(); size_t cnt = 0; - std::vector keys; + std::vector keys; keys.reserve(buffer.get_record_count()); /* @@ -68,14 +68,10 @@ public: m_data[cnt] = temp_buffer[i]; m_data[cnt].clear_timestamp(); - keys.push_back(m_data[cnt].rec.key); + keys.push_back(std::string(m_data[cnt].rec.key)); cnt++; } - for (size_t i=0; i 0) { m_fst = new fst::Trie(keys); @@ -96,7 +92,7 @@ public: m_data = new Wrapped[attemp_reccnt](); m_alloc_size = attemp_reccnt * sizeof(Wrapped); - std::vector keys; + std::vector keys; keys.reserve(attemp_reccnt); // FIXME: For smaller cursor arrays, it may be more efficient to skip @@ -128,7 +124,7 @@ public: /* skip over records that have been deleted via tagging */ if (!cursor.ptr->is_deleted() && cursor.ptr->rec.key != "") { m_data[m_reccnt] = *cursor.ptr; - keys.push_back(m_data[m_reccnt].rec.key); + keys.push_back(std::string(m_data[m_reccnt].rec.key)); m_reccnt++; } @@ -138,10 +134,6 @@ public: } } - for (size_t i=0; i 0) { m_fst = new fst::Trie(keys); } diff --git a/tests/include/concurrent_extension.h b/tests/include/concurrent_extension.h index 2948292..927a094 100644 --- a/tests/include/concurrent_extension.h +++ b/tests/include/concurrent_extension.h @@ -97,8 +97,7 @@ START_TEST(t_insert_with_mem_merges) R r = {key, val}; for (size_t i=0; i<1000; i++) { ck_assert_int_eq(test_de->insert(r), 1); - r.key++; - r.value++; + r = R{r.key + 1, r.value + 1}; } ck_assert_int_eq(test_de->get_record_count(), 1000); @@ -114,8 +113,7 @@ START_TEST(t_insert_with_mem_merges) size_t cnt = 0; do { if (test_de->insert(r)) { - r.key++; - r.value++; + r = R{r.key + 1, r.value + 1}; cnt++; ck_assert_int_eq(test_de->get_record_count(), cnt + 1000); } else { diff --git a/tests/include/pointlookup.h b/tests/include/pointlookup.h index bf4810b..84e71f2 100644 --- a/tests/include/pointlookup.h +++ b/tests/include/pointlookup.h @@ -40,24 +40,25 @@ START_TEST(t_point_lookup_query) auto buffer = create_test_mbuffer(1000); auto shard = Shard(buffer->get_buffer_view()); - pl::Parms parms; { auto bv = buffer->get_buffer_view(); for (size_t i=0; irec.key; - parms.search_key = key; + pl::Parms parms = {key}; auto state = pl::Query::get_query_state(&shard, &parms); auto result = pl::Query::query(&shard, state, &parms); pl::Query::delete_query_state(state); ck_assert_int_eq(result.size(), 1); - ck_assert_str_eq(result[0].rec.key.c_str(), key.c_str()); + ck_assert_str_eq(result[0].rec.key, key); ck_assert_int_eq(result[0].rec.value, bv.get(i)->rec.value); } /* point lookup miss; result size should be 0 */ - parms.search_key = "computer"; + const char *c = "computer"; + pl::Parms parms = {c}; + auto state = pl::Query::get_query_state(&shard, &parms); auto result = pl::Query::query(&shard, state, &parms); pl::Query::delete_query_state(state); @@ -74,23 +75,24 @@ START_TEST(t_buffer_point_lookup) { auto buffer = create_test_mbuffer(1000); - pl::Parms parms; { auto view = buffer->get_buffer_view(); for (int i=view.get_record_count()-1; i>=0; i--) { - parms.search_key = view.get(i)->rec.key; + pl::Parms parms = {view.get(i)->rec.key}; auto state = pl::Query::get_buffer_query_state(&view, &parms); auto result = pl::Query::buffer_query(state, &parms); pl::Query::delete_buffer_query_state(state); ck_assert_int_eq(result.size(), 1); - ck_assert_str_eq(result[0].rec.key.c_str(), view.get(i)->rec.key.c_str()); + ck_assert_str_eq(result[0].rec.key, view.get(i)->rec.key); ck_assert_int_eq(result[0].rec.value, view.get(i)->rec.value); } /* point lookup miss; result size should be 0 */ - parms.search_key = "computer"; + const char *c = "computer"; + pl::Parms parms = {c}; + auto state = pl::Query::get_buffer_query_state(&view, &parms); auto result = pl::Query::buffer_query(state, &parms); pl::Query::delete_buffer_query_state(state); diff --git a/tests/include/rangecount.h b/tests/include/rangecount.h index fdd66d9..c97d64c 100644 --- a/tests/include/rangecount.h +++ b/tests/include/rangecount.h @@ -40,9 +40,7 @@ START_TEST(t_range_count) auto buffer = create_sequential_mbuffer(100, 1000); auto shard = Shard(buffer->get_buffer_view()); - rc::Parms parms; - parms.lower_bound = 300; - parms.upper_bound = 500; + rc::Parms parms = {300, 500}; auto state = rc::Query::get_query_state(&shard, &parms); auto result = rc::Query::query(&shard, state, &parms); @@ -60,9 +58,7 @@ START_TEST(t_buffer_range_count) { auto buffer = create_sequential_mbuffer(100, 1000); - rc::Parms parms; - parms.lower_bound = 300; - parms.upper_bound = 500; + rc::Parms parms = {300, 500}; { auto view = buffer->get_buffer_view(); @@ -87,9 +83,7 @@ START_TEST(t_range_count_merge) auto shard1 = Shard(buffer1->get_buffer_view()); auto shard2 = Shard(buffer2->get_buffer_view()); - rc::Parms parms; - parms.lower_bound = 150; - parms.upper_bound = 500; + rc::Parms parms = {150, 500}; size_t result_size = parms.upper_bound - parms.lower_bound + 1 - 200; @@ -128,10 +122,8 @@ START_TEST(t_lower_bound) auto merged = Shard(shards); - for (size_t i=100; i<1000; i++) { - R r; - r.key = i; - r.value = i; + for (uint32_t i=100; i<1000; i++) { + R r = R{i, i}; auto idx = merged.get_lower_bound(i); diff --git a/tests/include/rangequery.h b/tests/include/rangequery.h index a8a73f7..a3b761e 100644 --- a/tests/include/rangequery.h +++ b/tests/include/rangequery.h @@ -39,9 +39,7 @@ START_TEST(t_range_query) auto buffer = create_sequential_mbuffer(100, 1000); auto shard = Shard(buffer->get_buffer_view()); - rq::Parms parms; - parms.lower_bound = 300; - parms.upper_bound = 500; + rq::Parms parms = {300, 500}; auto state = rq::Query::get_query_state(&shard, &parms); auto result = rq::Query::query(&shard, state, &parms); @@ -62,9 +60,7 @@ START_TEST(t_buffer_range_query) { auto buffer = create_sequential_mbuffer(100, 1000); - rq::Parms parms; - parms.lower_bound = 300; - parms.upper_bound = 500; + rq::Parms parms = {300, 500}; { auto view = buffer->get_buffer_view(); @@ -92,9 +88,7 @@ START_TEST(t_range_query_merge) auto shard1 = Shard(buffer1->get_buffer_view()); auto shard2 = Shard(buffer2->get_buffer_view()); - rq::Parms parms; - parms.lower_bound = 150; - parms.upper_bound = 500; + rq::Parms parms = {150, 500}; size_t result_size = parms.upper_bound - parms.lower_bound + 1 - 200; @@ -149,10 +143,8 @@ START_TEST(t_lower_bound) auto merged = Shard(shards); - for (size_t i=100; i<1000; i++) { - R r; - r.key = i; - r.value = i; + for (uint32_t i=100; i<1000; i++) { + R r = R{i, i}; auto idx = merged.get_lower_bound(i); diff --git a/tests/include/shard_standard.h b/tests/include/shard_standard.h index 55e4c7b..2809d74 100644 --- a/tests/include/shard_standard.h +++ b/tests/include/shard_standard.h @@ -150,10 +150,8 @@ START_TEST(t_point_lookup) auto view = buffer->get_buffer_view(); for (size_t i=0; irec.key; - r.value = rec->rec.value; + R r = {rec->rec.key, rec->rec.value}; auto result = isam.point_lookup(r); ck_assert_ptr_nonnull(result); @@ -174,10 +172,8 @@ START_TEST(t_point_lookup_miss) auto buffer = create_double_seq_mbuffer(n, false); auto isam = Shard(buffer->get_buffer_view()); - for (size_t i=n + 100; i<2*n; i++) { - R r; - r.key = i; - r.value = i; + for (uint32_t i=n + 100; i<2*n; i++) { + R r = R{i, i}; auto result = isam.point_lookup(r); ck_assert_ptr_null(result); diff --git a/tests/include/shard_string.h b/tests/include/shard_string.h index fa51630..2d7a72a 100644 --- a/tests/include/shard_string.h +++ b/tests/include/shard_string.h @@ -122,7 +122,7 @@ START_TEST(t_point_lookup) auto result = shard.point_lookup(r); ck_assert_ptr_nonnull(result); - ck_assert_str_eq(result->rec.key.c_str(), r.key.c_str()); + ck_assert_str_eq(result->rec.key, r.key); ck_assert_int_eq(result->rec.value, r.value); //fprintf(stderr, "%ld\n", i); } @@ -141,9 +141,8 @@ START_TEST(t_point_lookup_miss) auto shard = Shard(buffer->get_buffer_view()); for (size_t i=n + 100; i<2*n; i++) { - R r; - r.key = std::string("computer"); - r.value = 1234; + const char *c = "computer"; + R r = {c, 1234, 8}; auto result = shard.point_lookup(r); ck_assert_ptr_null(result); diff --git a/tests/include/testing.h b/tests/include/testing.h index 2315daa..d0bff2d 100644 --- a/tests/include/testing.h +++ b/tests/include/testing.h @@ -27,14 +27,17 @@ typedef de::WeightedRecord WRec; typedef de::Record Rec; typedef de::EuclidPoint PRec; -typedef de::Record StringRec; +typedef de::Record StringRec; -std::string kjv_wordlist = "tests/data/kjv-wordlist.txt"; -std::string summa_wordlist = "tests/data/summa-wordlist.txt"; +static std::string kjv_wordlist = "tests/data/kjv-wordlist.txt"; +static std::string summa_wordlist = "tests/data/summa-wordlist.txt"; + +static std::vector> string_data; static std::vector read_string_data(std::string fname, size_t n) { std::vector vec; vec.reserve(n); + string_data.reserve(n); std::fstream file; file.open(fname, std::ios::in); @@ -44,13 +47,17 @@ static std::vector read_string_data(std::string fname, size_t n) { if (!std::getline(file, line, '\n')) break; std::stringstream ls(line); - StringRec r; std::string field; std::getline(ls, field, '\t'); - r.value = atol(field.c_str()); + auto val = atol(field.c_str()); std::getline(ls, field, '\n'); - r.key = std::string(field); + + char *c = strdup(field.c_str()); + + string_data.push_back(std::unique_ptr(c)); + + StringRec r(string_data[string_data.size() -1].get(), val, field.size()); vec.push_back(r); } @@ -62,7 +69,7 @@ static std::vector read_string_data(std::string fname, size_t n) { template std::vector strip_wrapping(std::vector> vec) { std::vector out(vec.size()); - for (size_t i=0; i *create_test_mbuffer(size_t cnt) { auto buffer = new de::MutableBuffer(cnt/2, cnt); - R rec; if constexpr (de::KVPInterface){ - if constexpr (std::is_same_v) { + if constexpr (std::is_same_v){ auto records = read_string_data(kjv_wordlist, cnt); for (size_t i=0; i) { - rec.weight = 1; - } - buffer->append(records[i]); } } else { for (size_t i = 0; i < cnt; i++) { - rec.key = rand(); - rec.value = rand(); - if constexpr (de::WeightedRecordInterface) { - rec.weight = 1; + buffer->append({(uint64_t) rand(), (uint32_t) rand(), 1}); + } else { + buffer->append({(uint64_t) rand(), (uint32_t) rand()}); } - - buffer->append(rec); } } } else if constexpr (de::NDRecordInterface) { for (size_t i=0; iappend({a, b}); + buffer->append({(uint64_t) rand(), (uint64_t) rand()}); } } @@ -155,25 +152,19 @@ static de::MutableBuffer *create_sequential_mbuffer(size_t start, size_t stop size_t cnt = stop - start; auto buffer = new de::MutableBuffer(cnt/2, cnt); - for (size_t i=start; i) { - rec.key = i; - rec.value = i; - } else if constexpr (de::NDRecordInterface) { - rec = {i, i}; - } + for (uint32_t i=start; i) { - rec.weight = 1; + buffer->append({i, i, 1}); + } else { + buffer->append({i, i}); } - - buffer->append(rec); } return buffer; } +/* template static de::MutableBuffer *create_test_mbuffer_tombstones(size_t cnt, size_t ts_cnt) { @@ -183,13 +174,13 @@ static de::MutableBuffer *create_test_mbuffer_tombstones(size_t cnt, size_t t R rec; for (size_t i = 0; i < cnt; i++) { - rec.key = rand(); - rec.value = rand(); - if constexpr (de::WeightedRecordInterface) { - rec.weight = 1; + rec = {rand(), rand(), 1}; + } else { + rec = {rand(), rand(), 1}; } + if (i < ts_cnt) { tombstones.push_back({rec.key, rec.value}); } @@ -204,6 +195,7 @@ static de::MutableBuffer *create_test_mbuffer_tombstones(size_t cnt, size_t t return buffer; } +*/ template requires de::WeightedRecordInterface && de::KVPInterface @@ -234,20 +226,12 @@ static de::MutableBuffer *create_double_seq_mbuffer(size_t cnt, bool ts=false { auto buffer = new de::MutableBuffer(cnt/2, cnt); - for (size_t i = 0; i < cnt / 2; i++) { - R rec; - rec.key = i; - rec.value = i; - - buffer->append(rec, ts); + for (uint32_t i = 0; i < cnt / 2; i++) { + buffer->append({i, i}, ts); } - for (size_t i = 0; i < cnt / 2; i++) { - R rec; - rec.key = i; - rec.value = i + 1; - - buffer->append(rec, ts); + for (uint32_t i = 0; i < cnt / 2; i++) { + buffer->append({i, i+1}, ts); } return buffer; -- cgit v1.2.3 From effd0cc520aba707254ca30f8bb8761925356ff0 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Mon, 15 Apr 2024 14:06:02 -0400 Subject: Updated psudb-common to new version --- external/psudb-common | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/psudb-common b/external/psudb-common index ef14fe0..18a3e33 160000 --- a/external/psudb-common +++ b/external/psudb-common @@ -1 +1 @@ -Subproject commit ef14fe0f5c1ec52107b187dbe803f472767bd68c +Subproject commit 18a3e3383ed77e7a9cfab240f54378c43de203bf -- cgit v1.2.3 From b34e90b0ca84b5506625930defac997c44bf37c0 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Mon, 15 Apr 2024 14:10:55 -0400 Subject: submodule cleanup/update --- .gitmodules | 6 ------ external/fast-succinct-trie | 1 - external/fast_succinct_trie | 2 +- external/vptree | 1 - 4 files changed, 1 insertion(+), 9 deletions(-) delete mode 160000 external/fast-succinct-trie delete mode 160000 external/vptree diff --git a/.gitmodules b/.gitmodules index e5edcb6..a18695a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,9 +4,6 @@ [submodule "external/PGM-index"] path = external/PGM-index url = https://github.com/gvinciguerra/PGM-index.git -[submodule "external/vptree"] - path = external/vptree - url = https://github.com/pderkowski/vptree.git [submodule "external/m-tree"] path = external/m-tree url = git@github.com:dbrumbaugh/M-Tree @@ -19,9 +16,6 @@ [submodule "external/ctpl"] path = external/ctpl url = git@github.com:vit-vit/CTPL.git -[submodule "external/fast-succinct-trie"] - path = external/fast-succinct-trie - url = git@github.com:efficient/fast-succinct-trie.git [submodule "external/louds-patricia"] path = external/louds-patricia url = git@github.com:s-yata/louds-patricia.git diff --git a/external/fast-succinct-trie b/external/fast-succinct-trie deleted file mode 160000 index 2ff7d98..0000000 --- a/external/fast-succinct-trie +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 2ff7d982f567c128312ea80457fd95dc75acd347 diff --git a/external/fast_succinct_trie b/external/fast_succinct_trie index d679ada..dc24c85 160000 --- a/external/fast_succinct_trie +++ b/external/fast_succinct_trie @@ -1 +1 @@ -Subproject commit d679adac2e52ea2150f045d3d04ea93a9bcaf312 +Subproject commit dc24c85f915c11a6969cf88fd71ff7630c32b38f diff --git a/external/vptree b/external/vptree deleted file mode 160000 index 00c2073..0000000 --- a/external/vptree +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 00c20730faf7ee560e52f23a8bc5e0bb8c0e02a8 -- cgit v1.2.3 From 7c2f43ff039795576bc0014c367b893fbbaceca4 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Fri, 19 Apr 2024 14:39:33 -0400 Subject: Benchmark updates --- .gitmodules | 3 +++ benchmarks/include/standard_benchmarks.h | 18 +++++++++++++++++- benchmarks/irs_bench.cpp | 15 +++++++++++++-- benchmarks/pgm_bench.cpp | 15 +++++++++++++-- benchmarks/ts_bench.cpp | 21 ++++++++++++++++----- benchmarks/vptree_bench.cpp | 15 +++++++++++++-- external/hat-trie | 1 + include/framework/DynamicExtension.h | 4 +++- include/framework/structure/ExtensionStructure.h | 2 ++ include/shard/Alias.h | 2 +- include/shard/AugBTree.h | 2 +- include/shard/FSTrie.h | 8 ++++---- include/shard/ISAMTree.h | 14 +++----------- include/shard/PGM.h | 6 +++--- include/shard/TrieSpline.h | 10 ++++------ include/shard/VPTree.h | 2 +- 16 files changed, 98 insertions(+), 40 deletions(-) create mode 160000 external/hat-trie diff --git a/.gitmodules b/.gitmodules index a18695a..0cb5e92 100644 --- a/.gitmodules +++ b/.gitmodules @@ -28,3 +28,6 @@ [submodule "external/poplar-trie"] path = external/poplar-trie url = git@github.com:kampersanda/poplar-trie.git +[submodule "external/hat-trie"] + path = external/hat-trie + url = git@github.com:Tessil/hat-trie.git diff --git a/benchmarks/include/standard_benchmarks.h b/benchmarks/include/standard_benchmarks.h index 5fc549d..fe53d62 100644 --- a/benchmarks/include/standard_benchmarks.h +++ b/benchmarks/include/standard_benchmarks.h @@ -21,7 +21,7 @@ static size_t g_deleted_records = 0; static double delete_proportion = 0.05; template -static void run_queries(DE *extension, std::vector &queries, gsl_rng *rng) { +static void run_queries(DE *extension, std::vector &queries) { size_t total; for (size_t i=0; i &queries, gsl_rng *rng) { } +template +static void run_static_queries(S *shard, std::vector &queries) { + size_t total; + for (size_t i=0; i static void insert_records(DE *extension, size_t start, size_t stop, std::vector &records, std::vector &to_delete, diff --git a/benchmarks/irs_bench.cpp b/benchmarks/irs_bench.cpp index 9895295..84cd8b2 100644 --- a/benchmarks/irs_bench.cpp +++ b/benchmarks/irs_bench.cpp @@ -72,12 +72,23 @@ int main(int argc, char **argv) { size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); TIMER_START(); - run_queries(extension, queries, rng); + run_queries(extension, queries); TIMER_STOP(); auto query_latency = TIMER_RESULT() / queries.size(); - fprintf(stdout, "T\t%ld\t%ld\t%ld\n", insert_throughput, query_latency, g_deleted_records); + auto shard = extension->create_static_structure(); + + TIMER_START(); + run_static_queries(shard, queries); + TIMER_STOP(); + + auto static_latency = TIMER_RESULT() / queries.size(); + + auto ext_size = extension->get_memory_usage() + extension->get_aux_memory_usage(); + auto static_size = shard->get_memory_usage();// + shard->get_aux_memory_usage(); + + fprintf(stdout, "%ld\t%ld\t%ld\t%ld\t%ld\n", insert_throughput, query_latency, ext_size, static_latency, static_size); gsl_rng_free(rng); delete extension; diff --git a/benchmarks/pgm_bench.cpp b/benchmarks/pgm_bench.cpp index 3643abb..ac3ed1b 100644 --- a/benchmarks/pgm_bench.cpp +++ b/benchmarks/pgm_bench.cpp @@ -69,12 +69,23 @@ int main(int argc, char **argv) { size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); TIMER_START(); - run_queries(extension, queries, rng); + run_queries(extension, queries); TIMER_STOP(); auto query_latency = TIMER_RESULT() / queries.size(); - fprintf(stdout, "T\t%ld\t%ld\t%ld\n", insert_throughput, query_latency, g_deleted_records); + auto shard = extension->create_static_structure(); + + TIMER_START(); + run_static_queries(shard, queries); + TIMER_STOP(); + + auto static_latency = TIMER_RESULT() / queries.size(); + + auto ext_size = extension->get_memory_usage() + extension->get_aux_memory_usage(); + auto static_size = shard->get_memory_usage(); // + shard->get_aux_memory_usage(); + + fprintf(stdout, "%ld\t%ld\t%ld\t%ld\t%ld\n", insert_throughput, query_latency, ext_size, static_latency, static_size); gsl_rng_free(rng); delete extension; diff --git a/benchmarks/ts_bench.cpp b/benchmarks/ts_bench.cpp index 3dc619e..93e7616 100644 --- a/benchmarks/ts_bench.cpp +++ b/benchmarks/ts_bench.cpp @@ -19,9 +19,9 @@ typedef de::Record Rec; -typedef de::TrieSpline PGM; -typedef de::rc::Query Q; -typedef de::DynamicExtension Ext; +typedef de::TrieSpline Shard; +typedef de::rc::Query Q; +typedef de::DynamicExtension Ext; typedef de::rc::Parms QP; void usage(char *progname) { @@ -69,12 +69,23 @@ int main(int argc, char **argv) { size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); TIMER_START(); - run_queries(extension, queries, rng); + run_queries(extension, queries); TIMER_STOP(); auto query_latency = TIMER_RESULT() / queries.size(); - fprintf(stdout, "T\t%ld\t%ld\t%ld\n", insert_throughput, query_latency, g_deleted_records); + auto shard = extension->create_static_structure(); + + TIMER_START(); + run_static_queries(shard, queries); + TIMER_STOP(); + + auto static_latency = TIMER_RESULT() / queries.size(); + + auto ext_size = extension->get_memory_usage() + extension->get_aux_memory_usage(); + auto static_size = shard->get_memory_usage(); //+ shard->get_aux_memory_usage(); + + fprintf(stdout, "%ld\t%ld\t%ld\t%ld\t%ld\n", insert_throughput, query_latency, ext_size, static_latency, static_size); gsl_rng_free(rng); delete extension; diff --git a/benchmarks/vptree_bench.cpp b/benchmarks/vptree_bench.cpp index f4c7d0e..1219076 100644 --- a/benchmarks/vptree_bench.cpp +++ b/benchmarks/vptree_bench.cpp @@ -75,12 +75,23 @@ int main(int argc, char **argv) { fprintf(stderr, "[I] Running Query Benchmark\n"); TIMER_START(); - run_queries(extension, queries, rng); + run_queries(extension, queries); TIMER_STOP(); auto query_latency = TIMER_RESULT() / queries.size(); - fprintf(stdout, "T\t%ld\t%ld\t%ld\n", insert_throughput, query_latency, g_deleted_records); + auto shard = extension->create_static_structure(); + + TIMER_START(); + run_static_queries(shard, queries); + TIMER_STOP(); + + auto static_latency = TIMER_RESULT() / queries.size(); + + auto ext_size = extension->get_memory_usage() + extension->get_aux_memory_usage(); + auto static_size = shard->get_memory_usage(); // + shard->get_aux_memory_usage(); + + fprintf(stdout, "%ld\t%ld\t%ld\t%ld\t%ld\n", insert_throughput, query_latency, ext_size, static_latency, static_size); gsl_rng_free(rng); delete extension; diff --git a/external/hat-trie b/external/hat-trie new file mode 160000 index 0000000..906e6ab --- /dev/null +++ b/external/hat-trie @@ -0,0 +1 @@ +Subproject commit 906e6abd1e7063f1dacd3a6b270aa654b525eb0a diff --git a/include/framework/DynamicExtension.h b/include/framework/DynamicExtension.h index 9e1b8fa..9d54777 100644 --- a/include/framework/DynamicExtension.h +++ b/include/framework/DynamicExtension.h @@ -204,6 +204,8 @@ public: auto t = m_buffer->get_memory_usage() + epoch->get_structure()->get_memory_usage(); end_job(epoch); + fprintf(stderr, "total: %ld\n", t); + return t; } @@ -214,7 +216,7 @@ public: */ size_t get_aux_memory_usage() { auto epoch = get_active_epoch(); - auto t = epoch->get_buffer().get_aux_memory_usage() + epoch->get_structure()->get_aux_memory_usage(); + auto t = m_buffer->get_memory_usage() + epoch->get_structure()->get_aux_memory_usage(); end_job(epoch); return t; diff --git a/include/framework/structure/ExtensionStructure.h b/include/framework/structure/ExtensionStructure.h index ffba1c1..6ad7aad 100644 --- a/include/framework/structure/ExtensionStructure.h +++ b/include/framework/structure/ExtensionStructure.h @@ -161,9 +161,11 @@ public: size_t get_memory_usage() { size_t cnt = 0; for (size_t i=0; iget_memory_usage()); if (m_levels[i]) cnt += m_levels[i]->get_memory_usage(); } + fprintf(stderr, "%ld\n", cnt); return cnt; } diff --git a/include/shard/Alias.h b/include/shard/Alias.h index 9275952..72147d7 100644 --- a/include/shard/Alias.h +++ b/include/shard/Alias.h @@ -148,7 +148,7 @@ public: size_t get_memory_usage() { - return m_alloc_size; + return 0; } size_t get_aux_memory_usage() { diff --git a/include/shard/AugBTree.h b/include/shard/AugBTree.h index 54931bd..c60cbcd 100644 --- a/include/shard/AugBTree.h +++ b/include/shard/AugBTree.h @@ -148,7 +148,7 @@ public: } size_t get_memory_usage() { - return m_alloc_size + m_node_cnt * sizeof(AugBTreeNode>); + return m_node_cnt * sizeof(AugBTreeNode>); } size_t get_aux_memory_usage() { diff --git a/include/shard/FSTrie.h b/include/shard/FSTrie.h index be678ff..3783b38 100644 --- a/include/shard/FSTrie.h +++ b/include/shard/FSTrie.h @@ -74,7 +74,7 @@ public: m_reccnt = cnt; if (m_reccnt > 0) { - m_fst = new fst::Trie(keys); + m_fst = new fst::Trie(keys, true, 1); } delete[] temp_buffer; @@ -135,7 +135,7 @@ public: } if (m_reccnt > 0) { - m_fst = new fst::Trie(keys); + m_fst = new fst::Trie(keys, true, 1); } } @@ -180,11 +180,11 @@ public: size_t get_memory_usage() { - return m_fst->getMemoryUsage() + m_alloc_size; + return m_fst->getMemoryUsage(); } size_t get_aux_memory_usage() { - return 0; + return m_alloc_size; } size_t get_lower_bound(R &rec) {return 0;} diff --git a/include/shard/ISAMTree.h b/include/shard/ISAMTree.h index af62c92..1cca506 100644 --- a/include/shard/ISAMTree.h +++ b/include/shard/ISAMTree.h @@ -51,7 +51,7 @@ constexpr static size_t LEAF_FANOUT = NODE_SZ / sizeof(R); public: ISAMTree(BufferView buffer) - : m_bf(new BloomFilter(BF_FPR, buffer.get_tombstone_count(), BF_HASH_FUNCS)) + : m_bf(nullptr) , m_isam_nodes(nullptr) , m_root(nullptr) , m_reccnt(0) @@ -59,19 +59,12 @@ public: , m_internal_node_cnt(0) , m_deleted_cnt(0) , m_alloc_size(0) - , m_data(nullptr) { m_alloc_size = psudb::sf_aligned_alloc(CACHELINE_SIZE, buffer.get_record_count() * sizeof(Wrapped), (byte**) &m_data); - /* - * without this, gcc seems to hoist the building of the array - * _above_ its allocation under -O3, resulting in memfaults. - */ - //asm volatile ("" ::: "memory"); - auto res = sorted_array_from_bufferview(std::move(buffer), m_data, m_bf); m_reccnt = res.record_count; m_tombstone_cnt = res.tombstone_count; @@ -90,13 +83,12 @@ public: , m_internal_node_cnt(0) , m_deleted_cnt(0) , m_alloc_size(0) - , m_data(nullptr) { size_t attemp_reccnt = 0; size_t tombstone_count = 0; auto cursors = build_cursor_vec(shards, &attemp_reccnt, &tombstone_count); - m_bf = new BloomFilter(BF_FPR, tombstone_count, BF_HASH_FUNCS); + m_bf = nullptr; m_alloc_size = psudb::sf_aligned_alloc(CACHELINE_SIZE, attemp_reccnt * sizeof(Wrapped), (byte **) &m_data); @@ -149,7 +141,7 @@ public: size_t get_memory_usage() { - return m_alloc_size + m_internal_node_cnt * NODE_SZ; + return m_internal_node_cnt * NODE_SZ; } size_t get_aux_memory_usage() { diff --git a/include/shard/PGM.h b/include/shard/PGM.h index ff9ce2d..a3f9749 100644 --- a/include/shard/PGM.h +++ b/include/shard/PGM.h @@ -39,8 +39,7 @@ private: public: PGM(BufferView buffer) - : m_data(nullptr) - , m_bf(new BloomFilter(BF_FPR, buffer.get_tombstone_count(), BF_HASH_FUNCS)) + : m_bf(nullptr) , m_reccnt(0) , m_tombstone_cnt(0) , m_alloc_size(0) { @@ -49,6 +48,7 @@ public: buffer.get_record_count() * sizeof(Wrapped), (byte**) &m_data); + auto res = sorted_array_from_bufferview(std::move(buffer), m_data, m_bf); m_reccnt = res.record_count; m_tombstone_cnt = res.tombstone_count; @@ -132,7 +132,7 @@ public: size_t get_memory_usage() { - return m_pgm.size_in_bytes() + m_alloc_size; + return m_pgm.size_in_bytes(); } size_t get_aux_memory_usage() { diff --git a/include/shard/TrieSpline.h b/include/shard/TrieSpline.h index 2a432e8..023390e 100644 --- a/include/shard/TrieSpline.h +++ b/include/shard/TrieSpline.h @@ -36,13 +36,12 @@ private: public: TrieSpline(BufferView buffer) - : m_data(nullptr) - , m_reccnt(0) + : m_reccnt(0) , m_tombstone_cnt(0) , m_alloc_size(0) , m_max_key(0) , m_min_key(0) - , m_bf(new BloomFilter(BF_FPR, buffer.get_tombstone_count(), BF_HASH_FUNCS)) + , m_bf(nullptr) { m_alloc_size = psudb::sf_aligned_alloc(CACHELINE_SIZE, buffer.get_record_count() * @@ -79,7 +78,6 @@ public: size_t tombstone_count = 0; auto cursors = build_cursor_vec(shards, &attemp_reccnt, &tombstone_count); - m_bf = new BloomFilter(BF_FPR, tombstone_count, BF_HASH_FUNCS); m_alloc_size = psudb::sf_aligned_alloc(CACHELINE_SIZE, attemp_reccnt * sizeof(Wrapped), (byte **) &m_data); @@ -107,7 +105,7 @@ public: } Wrapped *point_lookup(const R &rec, bool filter=false) { - if (filter && !m_bf->lookup(rec)) { + if (filter && m_bf && !m_bf->lookup(rec)) { return nullptr; } @@ -144,7 +142,7 @@ public: size_t get_memory_usage() { - return m_ts.GetSize() + m_alloc_size; + return m_ts.GetSize(); } size_t get_aux_memory_usage() { diff --git a/include/shard/VPTree.h b/include/shard/VPTree.h index 62857ce..d5a2393 100644 --- a/include/shard/VPTree.h +++ b/include/shard/VPTree.h @@ -175,7 +175,7 @@ public: } size_t get_memory_usage() { - return m_node_cnt * sizeof(vpnode) + m_reccnt * sizeof(R*) + m_alloc_size; + return m_node_cnt * sizeof(vpnode) + m_reccnt * sizeof(R*); } size_t get_aux_memory_usage() { -- cgit v1.2.3 From 34fd8ad935e6359d20a5d6c949e67495d0842f8f Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Fri, 19 Apr 2024 14:40:19 -0400 Subject: More trie baseline tests --- CMakeLists.txt | 52 +++++++--- benchmarks/cedar_trie.cpp | 97 ++++++++++++++++++ benchmarks/hat_trie.cpp | 98 ++++++++++++++++++ benchmarks/louds_insertion_tput.cpp | 112 ++++++++++++++++++++ external/psudb-common | 2 +- include/shard/LoudsPatricia.h | 199 ++++++++++++++++++++++++++++++++++++ tests/louds_tests.cpp | 55 ++++++++++ 7 files changed, 598 insertions(+), 17 deletions(-) create mode 100644 benchmarks/cedar_trie.cpp create mode 100644 benchmarks/hat_trie.cpp create mode 100644 benchmarks/louds_insertion_tput.cpp create mode 100644 include/shard/LoudsPatricia.h create mode 100644 tests/louds_tests.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 3c73545..c62085f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,7 +9,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED True) set(namespace "de") project("Practical Dynamic Extension" VERSION 0.1.0) -set(debug true) +set(debug false) set(tests True) set(bench true) @@ -18,7 +18,7 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin") set(CMAKE_CXX_FLAGS=-latomic -mcx16) -add_compile_options(-Iinclude -Iexternal/PLEX/include -Iexternal -mcx16) # -fconcepts-diagnostics-depth=3) +add_compile_options(-Iinclude -Iexternal/PLEX/include -Iexternal -mcx16 -march=native) # -fconcepts-diagnostics-depth=3) if (BSD) add_link_options(-L/usr/local/lib) @@ -122,29 +122,29 @@ if (tests) # OpenBSD doesn't have OpenMP support, so don't build the PGM code on that # platform. - #if (!BSD) - # add_executable(pgm_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/pgm_tests.cpp) - #target_link_libraries(pgm_tests PUBLIC gsl cblas check subunit pthread gomp atomic) - #target_include_directories(pgm_tests PRIVATE include external/PGM-index/include external/psudb-common/cpp/include) - #target_link_options(pgm_tests PUBLIC -mcx16) - #target_compile_options(pgm_tests PUBLIC -fopenmp) - #endif() + add_executable(pgm_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/pgm_tests.cpp) + target_link_libraries(pgm_tests PUBLIC gsl check subunit pthread gomp atomic) + target_include_directories(pgm_tests PRIVATE include external/PGM-index/include external/psudb-common/cpp/include) + target_link_options(pgm_tests PUBLIC -mcx16) + target_compile_options(pgm_tests PUBLIC -fopenmp) # Triespline code doesn't build under OpenBSD either due to ambiguous function call; # this is likely a difference between gcc and clang, rather than an OS thing -if (!BSD) add_executable(triespline_debug ${CMAKE_CURRENT_SOURCE_DIR}/tests/triespline_debug.cpp) target_link_libraries(triespline_debug PUBLIC gsl check subunit pthread atomic) target_link_options(triespline_debug PUBLIC -mcx16) target_include_directories(triespline_debug PRIVATE include external/psudb-common/cpp/include external/PLEX/include) -endif() add_executable(fst_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/fst_tests.cpp) target_link_libraries(fst_tests PUBLIC gsl check subunit pthread atomic) target_link_options(fst_tests PUBLIC -mcx16) - target_include_directories(fst_tests PRIVATE include - external/psudb-common/cpp/include external/PLEX/include external/fast_succinct_trie/include) + target_include_directories(fst_tests PRIVATE include external/psudb-common/cpp/include external/PLEX/include external/fast_succinct_trie/include external/louds-patricia) + + add_executable(louds_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/louds_tests.cpp) + target_link_libraries(louds_tests PUBLIC gsl check subunit pthread atomic) + target_link_options(louds_tests PUBLIC -mcx16) + target_include_directories(louds_tests PRIVATE include external/psudb-common/cpp/include external/PLEX/include external/fast_succinct_trie/include external/louds-patricia) endif() if (bench) @@ -167,6 +167,12 @@ if (bench) target_link_options(string_insertion_tput PUBLIC -mcx16) + add_executable(louds_insertion_tput ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/louds_insertion_tput.cpp) + target_link_libraries(louds_insertion_tput PUBLIC gsl pthread atomic) + target_include_directories(louds_insertion_tput PRIVATE include external external/fast_succinct_trie/include external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include external/louds-patricia) + target_link_options(louds_insertion_tput PUBLIC -mcx16) + + add_executable(query_workload_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/query_workload_bench.cpp) target_link_libraries(query_workload_bench PUBLIC gsl pthread atomic) target_include_directories(query_workload_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) @@ -182,6 +188,17 @@ if (bench) target_include_directories(poplar_trie PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include external/poplar-trie/include) target_link_options(poplar_trie PUBLIC -mcx16) + add_executable(hat_trie ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/hat_trie.cpp) + target_link_libraries(hat_trie PUBLIC gsl pthread atomic) + target_include_directories(hat_trie PRIVATE include external + external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include external/hat-trie/include/tsl) + target_link_options(hat_trie PUBLIC -mcx16) + + add_executable(cedar_trie ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/cedar_trie.cpp) + target_link_libraries(cedar_trie PUBLIC gsl pthread atomic) + target_include_directories(cedar_trie PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include external/hat-trie/include/tsl) + target_link_options(cedar_trie PUBLIC -mcx16) + #add_executable(btree_insert_query_tput ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/btree_insert_query_tput.cpp) #target_link_libraries(btree_insert_query_tput PUBLIC gsl cblas pthread atomic) #target_include_directories(btree_insert_query_tput PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) @@ -202,13 +219,16 @@ if (bench) target_include_directories(vptree_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) target_link_options(vptree_bench PUBLIC -mcx16) - -if(!BSD) add_executable(ts_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/ts_bench.cpp) target_link_libraries(ts_bench PUBLIC gsl pthread atomic) target_include_directories(ts_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) target_link_options(ts_bench PUBLIC -mcx16) -endif() + + add_executable(pgm_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/pgm_bench.cpp) + target_link_libraries(pgm_bench PUBLIC gsl pthread atomic gomp) + target_include_directories(pgm_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) + target_link_options(pgm_bench PUBLIC -mcx16) + target_compile_options(pgm_bench PUBLIC -fopenmp) #add_executable(static_dynamic_comp ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/static_dynamic_comp.cpp) #target_link_libraries(static_dynamic_comp PUBLIC gsl cblas pthread atomic) diff --git a/benchmarks/cedar_trie.cpp b/benchmarks/cedar_trie.cpp new file mode 100644 index 0000000..7499ce7 --- /dev/null +++ b/benchmarks/cedar_trie.cpp @@ -0,0 +1,97 @@ +/* + * + */ + +#define ENABLE_TIMER + +#include +#include +#include + +#include "cedar.h" + +#include "psu-util/timer.h" +#include "psu-util/progress.h" + +std::vector strings; + +typedef cedar::da Trie; + +void insert_thread(int64_t start, int64_t end, Trie * trie) { + for (uint64_t i=start; iupdate(strings[i].c_str(), strings[i].size(), i+1); + } +} + +void read_data(std::string fname, size_t n=10000000) { + strings.reserve(n); + + std::fstream file; + file.open(fname, std::ios::in); + + size_t i=0; + std::string line; + while (i < n && std::getline(file, line, '\n')) { + strings.emplace_back(line); + i++; + psudb::progress_update((double) i / (double) n, "Reading file:"); + } +} + +void usage(char *name) { + fprintf(stderr, "Usage:\n%s datafile record_count\n", name); +} + +int main(int argc, char **argv) { + + if (argc < 3) { + usage(argv[0]); + exit(EXIT_FAILURE); + } + + std::string fname = std::string(argv[1]); + size_t n = atol(argv[2]); + + read_data(fname, n); + + if (strings.size() == 0) { + fprintf(stderr, "[E]: No string data read from file. Aborting execution.\n"); + } else { + fprintf(stderr, "Finished reading from file.\n"); + } + + auto trie = new Trie(); + + TIMER_INIT(); + TIMER_START(); + insert_thread(0, strings.size(), trie); + TIMER_STOP(); + + auto total_time = TIMER_RESULT(); + + size_t m = 100; + TIMER_START(); + for (size_t i=0; iexactMatchSearch(strings[j].c_str()); + //assert(*(res)+1 == j); + } + TIMER_STOP(); + + auto query_time = TIMER_RESULT(); + + + double i_tput = (double) n / (double) total_time * 1e9; + size_t q_lat = query_time / m; + + fprintf(stdout, "%ld\t\t%lf\t%ld\n", trie->size(), + i_tput, q_lat); + + fprintf(stdout, "%ld\n", trie->total_size()); + + delete trie; + + fflush(stderr); +} + diff --git a/benchmarks/hat_trie.cpp b/benchmarks/hat_trie.cpp new file mode 100644 index 0000000..3b4c7d3 --- /dev/null +++ b/benchmarks/hat_trie.cpp @@ -0,0 +1,98 @@ +/* + * + */ + +#define ENABLE_TIMER + +#include +#include + +#include "htrie_map.h" + +#include "psu-util/timer.h" +#include "psu-util/progress.h" + +std::vector strings; + +typedef tsl::htrie_map Trie; + +void insert_thread(int64_t start, int64_t end, Trie * trie) { + for (uint64_t i=start; iinsert(strings[i].c_str(), i+1); + } +} + +void read_data(std::string fname, size_t n=10000000) { + strings.reserve(n); + + std::fstream file; + file.open(fname, std::ios::in); + + size_t i=0; + std::string line; + while (i < n && std::getline(file, line, '\n')) { + strings.emplace_back(line); + i++; + psudb::progress_update((double) i / (double) n, "Reading file:"); + } +} + +void usage(char *name) { + fprintf(stderr, "Usage:\n%s datafile record_count\n", name); +} + +int main(int argc, char **argv) { + + if (argc < 3) { + usage(argv[0]); + exit(EXIT_FAILURE); + } + + std::string fname = std::string(argv[1]); + size_t n = atol(argv[2]); + + read_data(fname, n); + + if (strings.size() == 0) { + fprintf(stderr, "[E]: No string data read from file. Aborting execution.\n"); + } else { + fprintf(stderr, "Finished reading from file.\n"); + } + + auto trie = new Trie(); + + TIMER_INIT(); + TIMER_START(); + insert_thread(0, strings.size(), trie); + TIMER_STOP(); + + auto total_time = TIMER_RESULT(); + + size_t m = 100; + TIMER_START(); + for (size_t i=0; ifind(strings[j]); + if (*res != (j+1)) { + fprintf(stderr, "%ld %d %s\n", j, *res, strings[j].c_str()); + } + //assert(*(res)+1 == j); + } + TIMER_STOP(); + + auto query_time = TIMER_RESULT(); + + + double i_tput = (double) n / (double) total_time * 1e9; + size_t q_lat = query_time / m; + + fprintf(stdout, "%ld\t\t%lf\t%ld\n", trie->size(), + i_tput, q_lat); + + + delete trie; + + fflush(stderr); +} + diff --git a/benchmarks/louds_insertion_tput.cpp b/benchmarks/louds_insertion_tput.cpp new file mode 100644 index 0000000..d772f3b --- /dev/null +++ b/benchmarks/louds_insertion_tput.cpp @@ -0,0 +1,112 @@ +/* + * + */ + +#define ENABLE_TIMER + +#include +#include + +#include "framework/DynamicExtension.h" +#include "shard/LoudsPatricia.h" +#include "query/pointlookup.h" +#include "framework/interface/Record.h" + +#include "psu-util/timer.h" +#include "psu-util/progress.h" + + +typedef de::Record Rec; +typedef de::LoudsPatricia Trie; +typedef de::pl::Query Q; +typedef de::DynamicExtension Ext; + +std::vector> strings; + +void insert_thread(int64_t start, int64_t end, Ext *extension) { + for (uint64_t i=start; iinsert(r)) { + _mm_pause(); + } + } +} + +void read_data(std::string fname, size_t n=10000000) { + strings.reserve(n); + + std::fstream file; + file.open(fname, std::ios::in); + + size_t i=0; + std::string line; + while (i < n && std::getline(file, line, '\n')) { + strings.emplace_back(std::unique_ptr(strdup(line.c_str()))); + i++; + psudb::progress_update((double) i / (double) n, "Reading file:"); + } +} + +void usage(char *name) { + fprintf(stderr, "Usage:\n%s datafile record_count\n", name); +} + +int main(int argc, char **argv) { + + if (argc < 3) { + usage(argv[0]); + exit(EXIT_FAILURE); + } + + std::string fname = std::string(argv[1]); + size_t n = atol(argv[2]); + + read_data(fname, n); + + if (strings.size() == 0) { + fprintf(stderr, "[E]: No string data read from file. Aborting execution.\n"); + } else { + fprintf(stderr, "Finished reading from file.\n"); + } + + std::vector scale_factors = {2, 4, 6, 8, 10, 12}; + std::vector buffer_sizes = {1000, 2000, 5000, 10000, 12000, 15000}; + + for (auto &sf : scale_factors) { + for (auto &bf_sz : buffer_sizes) { + + auto extension = new Ext(bf_sz, bf_sz, sf); + + TIMER_INIT(); + TIMER_START(); + insert_thread(0, strings.size(), extension); + TIMER_STOP(); + + auto total_time = TIMER_RESULT(); + + size_t m = 100; + TIMER_START(); + for (size_t i=0; i parms = {strings[j].get()}; + + auto res = extension->query(&parms); + auto ans = res.get(); + } + TIMER_STOP(); + + auto query_time = TIMER_RESULT(); + + double i_tput = (double) n / (double) total_time * 1e9; + size_t q_lat = query_time / m; + + fprintf(stdout, "%ld\t%ld\t%ld\t%lf\t%ld\t%ld\n", extension->get_record_count(), + bf_sz, sf, i_tput, q_lat, extension->get_memory_usage()); + + delete extension; + + fflush(stderr); + } + } +} + diff --git a/external/psudb-common b/external/psudb-common index 18a3e33..6f938d6 160000 --- a/external/psudb-common +++ b/external/psudb-common @@ -1 +1 @@ -Subproject commit 18a3e3383ed77e7a9cfab240f54378c43de203bf +Subproject commit 6f938d68945343881160cae5fdef3a8eccb6b031 diff --git a/include/shard/LoudsPatricia.h b/include/shard/LoudsPatricia.h new file mode 100644 index 0000000..3452839 --- /dev/null +++ b/include/shard/LoudsPatricia.h @@ -0,0 +1,199 @@ +/* + * include/shard/LoudsPatricia.h + * + * Copyright (C) 2024 Douglas B. Rumbaugh + * + * Distributed under the Modified BSD License. + * + * A shard shim around the LoudsPatricia learned index. + */ +#pragma once + + +#include + +#include "framework/ShardRequirements.h" +#include "louds-patricia.hpp" +#include "util/SortedMerge.h" + +using psudb::CACHELINE_SIZE; +using psudb::BloomFilter; +using psudb::PriorityQueue; +using psudb::queue_record; +using psudb::byte; + +namespace de { + +template +class LoudsPatricia { +private: + + typedef decltype(R::key) K; + typedef decltype(R::value) V; + static_assert(std::is_same_v, "FST requires const char* keys."); + +public: + LoudsPatricia(BufferView buffer) + : m_data(nullptr) + , m_reccnt(0) + , m_alloc_size(0) + { + m_data = new Wrapped[buffer.get_record_count()](); + m_alloc_size = sizeof(Wrapped) * buffer.get_record_count(); + + m_louds = new louds::Patricia(); + + size_t cnt = 0; + std::vector keys; + keys.reserve(buffer.get_record_count()); + + /* + * Copy the contents of the buffer view into a temporary buffer, and + * sort them. We still need to iterate over these temporary records to + * apply tombstone/deleted record filtering, as well as any possible + * per-record processing that is required by the shard being built. + */ + auto temp_buffer = new Wrapped[buffer.get_record_count()](); + for (size_t i=0; i>()); + + for (size_t i=0; iadd(std::string(m_data[cnt].rec.key)); + cnt++; + } + + m_reccnt = cnt; + if (m_reccnt > 0) { + m_louds->build(); + } + + delete[] temp_buffer; + } + + LoudsPatricia(std::vector &shards) + : m_data(nullptr) + , m_reccnt(0) + , m_alloc_size(0) + { + size_t attemp_reccnt = 0; + size_t tombstone_count = 0; + auto cursors = build_cursor_vec(shards, &attemp_reccnt, &tombstone_count); + + m_data = new Wrapped[attemp_reccnt](); + m_alloc_size = attemp_reccnt * sizeof(Wrapped); + + m_louds = new louds::Patricia(); + + // FIXME: For smaller cursor arrays, it may be more efficient to skip + // the priority queue and just do a scan. + PriorityQueue> pq(cursors.size()); + for (size_t i=0; i 1 ? pq.peek(1) : queue_record>{nullptr, 0}; + /* + * if the current record is not a tombstone, and the next record is + * a tombstone that matches the current one, then the current one + * has been deleted, and both it and its tombstone can be skipped + * over. + */ + if (!now.data->is_tombstone() && next.data != nullptr && + now.data->rec == next.data->rec && next.data->is_tombstone()) { + + pq.pop(); pq.pop(); + auto& cursor1 = cursors[now.version]; + auto& cursor2 = cursors[next.version]; + if (advance_cursor(cursor1)) pq.push(cursor1.ptr, now.version); + if (advance_cursor(cursor2)) pq.push(cursor2.ptr, next.version); + } else { + auto& cursor = cursors[now.version]; + /* skip over records that have been deleted via tagging */ + if (!cursor.ptr->is_deleted() && cursor.ptr->rec.key != "") { + m_data[m_reccnt] = *cursor.ptr; + m_louds->add(std::string(m_data[m_reccnt].rec.key)); + m_reccnt++; + } + pq.pop(); + + if (advance_cursor(cursor)) pq.push(cursor.ptr, now.version); + } + } + + if (m_reccnt > 0) { + m_louds->build(); + } + } + + ~LoudsPatricia() { + delete[] m_data; + delete m_louds; + } + + Wrapped *point_lookup(const R &rec, bool filter=false) { + + auto idx = m_louds->lookup(std::string(rec.key)); + + if (idx == -1) { + return nullptr; + } + + // FIXME: for convenience, I'm treating this Trie as a unique index + // for now, so no need to scan forward and/or check values. This + // also makes the point lookup query class a lot easier to make. + // Ultimately, though, we can support non-unique indexes with some + // extra work. + return m_data + idx; + } + + Wrapped* get_data() const { + return m_data; + } + + size_t get_record_count() const { + return m_reccnt; + } + + size_t get_tombstone_count() const { + return 0; + } + + const Wrapped* get_record_at(size_t idx) const { + if (idx >= m_reccnt) return nullptr; + return m_data + idx; + } + + + size_t get_memory_usage() { + return m_louds->size(); + } + + size_t get_aux_memory_usage() { + return m_alloc_size; + } + + size_t get_lower_bound(R &rec) {return 0;} + size_t get_upper_bound(R &rec) {return 0;} + +private: + + Wrapped* m_data; + size_t m_reccnt; + size_t m_alloc_size; + louds::Patricia *m_louds; +}; +} diff --git a/tests/louds_tests.cpp b/tests/louds_tests.cpp new file mode 100644 index 0000000..7eed54a --- /dev/null +++ b/tests/louds_tests.cpp @@ -0,0 +1,55 @@ +/* + * tests/isam_tests.cpp + * + * Unit tests for ISAM Tree shard + * + * Copyright (C) 2023 Douglas Rumbaugh + * Dong Xie + * + * Distributed under the Modified BSD License. + * + */ + +#include "shard/LoudsPatricia.h" +#include "include/testing.h" +#include + +using namespace de; + +typedef StringRec R; +typedef LoudsPatricia Shard; + +#include "include/shard_string.h" +#include "include/pointlookup.h" + +Suite *unit_testing() +{ + Suite *unit = suite_create("Fast-succinct Trie Shard Unit Testing"); + + inject_shard_tests(unit); + inject_pointlookup_tests(unit); + + return unit; +} + + +int shard_unit_tests() +{ + int failed = 0; + Suite *unit = unit_testing(); + SRunner *unit_shardner = srunner_create(unit); + + srunner_run_all(unit_shardner, CK_NORMAL); + failed = srunner_ntests_failed(unit_shardner); + srunner_free(unit_shardner); + + return failed; +} + + +int main() +{ + int unit_failed = shard_unit_tests(); + + return (unit_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE; +} -- cgit v1.2.3 From b8168b37a6dd91295903f52ee878a57f149b261d Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Fri, 19 Apr 2024 15:02:44 -0400 Subject: PGM Shard: Fully disabled bloom filter --- include/shard/PGM.h | 1 - 1 file changed, 1 deletion(-) diff --git a/include/shard/PGM.h b/include/shard/PGM.h index a3f9749..691385e 100644 --- a/include/shard/PGM.h +++ b/include/shard/PGM.h @@ -74,7 +74,6 @@ public: size_t tombstone_count = 0; auto cursors = build_cursor_vec(shards, &attemp_reccnt, &tombstone_count); - m_bf = new BloomFilter(BF_FPR, tombstone_count, BF_HASH_FUNCS); m_alloc_size = psudb::sf_aligned_alloc(CACHELINE_SIZE, attemp_reccnt * sizeof(Wrapped), (byte **) &m_data); -- cgit v1.2.3 From e677947ed6f40d7847e9989d1226e1e8e0b3e03c Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Fri, 19 Apr 2024 15:03:45 -0400 Subject: Removed debug print statements --- include/framework/DynamicExtension.h | 2 -- include/framework/structure/ExtensionStructure.h | 2 -- 2 files changed, 4 deletions(-) diff --git a/include/framework/DynamicExtension.h b/include/framework/DynamicExtension.h index 9d54777..b154be8 100644 --- a/include/framework/DynamicExtension.h +++ b/include/framework/DynamicExtension.h @@ -204,8 +204,6 @@ public: auto t = m_buffer->get_memory_usage() + epoch->get_structure()->get_memory_usage(); end_job(epoch); - fprintf(stderr, "total: %ld\n", t); - return t; } diff --git a/include/framework/structure/ExtensionStructure.h b/include/framework/structure/ExtensionStructure.h index 6ad7aad..ffba1c1 100644 --- a/include/framework/structure/ExtensionStructure.h +++ b/include/framework/structure/ExtensionStructure.h @@ -161,11 +161,9 @@ public: size_t get_memory_usage() { size_t cnt = 0; for (size_t i=0; iget_memory_usage()); if (m_levels[i]) cnt += m_levels[i]->get_memory_usage(); } - fprintf(stderr, "%ld\n", cnt); return cnt; } -- cgit v1.2.3 From ae189be91ec135629c7ad62888cd98183494c075 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Fri, 19 Apr 2024 15:43:57 -0400 Subject: Adjusted benchmark parameters --- benchmarks/irs_bench.cpp | 2 +- benchmarks/pgm_bench.cpp | 2 +- benchmarks/ts_bench.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/benchmarks/irs_bench.cpp b/benchmarks/irs_bench.cpp index 84cd8b2..976adf9 100644 --- a/benchmarks/irs_bench.cpp +++ b/benchmarks/irs_bench.cpp @@ -19,7 +19,7 @@ typedef de::Record Rec; typedef de::ISAMTree Shard; typedef de::irs::Query Q; -typedef de::DynamicExtension Ext; +typedef de::DynamicExtension Ext; typedef de::irs::Parms QP; void usage(char *progname) { diff --git a/benchmarks/pgm_bench.cpp b/benchmarks/pgm_bench.cpp index ac3ed1b..e0baab4 100644 --- a/benchmarks/pgm_bench.cpp +++ b/benchmarks/pgm_bench.cpp @@ -21,7 +21,7 @@ typedef de::Record Rec; typedef de::PGM Shard; typedef de::rc::Query Q; -typedef de::DynamicExtension Ext; +typedef de::DynamicExtension Ext; typedef de::rc::Parms QP; void usage(char *progname) { diff --git a/benchmarks/ts_bench.cpp b/benchmarks/ts_bench.cpp index 93e7616..3d44ac5 100644 --- a/benchmarks/ts_bench.cpp +++ b/benchmarks/ts_bench.cpp @@ -21,7 +21,7 @@ typedef de::Record Rec; typedef de::TrieSpline Shard; typedef de::rc::Query Q; -typedef de::DynamicExtension Ext; +typedef de::DynamicExtension Ext; typedef de::rc::Parms QP; void usage(char *progname) { -- cgit v1.2.3 From 8479f3ce863dfb6d3b20ff4678fa6fe92ee86b52 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Fri, 19 Apr 2024 16:50:18 -0400 Subject: Fixed some benchmarking bugs --- benchmarks/include/standard_benchmarks.h | 6 ++++++ benchmarks/irs_bench.cpp | 2 +- include/query/irs.h | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/benchmarks/include/standard_benchmarks.h b/benchmarks/include/standard_benchmarks.h index fe53d62..83e3aaa 100644 --- a/benchmarks/include/standard_benchmarks.h +++ b/benchmarks/include/standard_benchmarks.h @@ -40,6 +40,12 @@ static void run_static_queries(S *shard, std::vector &queries) { auto q = &queries[i]; auto state = Q::get_query_state(shard, q); + + std::vector shards = {shard}; + std::vector states = {state}; + + Q::process_query_states(q, states, nullptr); + auto res = Q::query(shard, state, q); total += res.size(); diff --git a/benchmarks/irs_bench.cpp b/benchmarks/irs_bench.cpp index 976adf9..36d88f6 100644 --- a/benchmarks/irs_bench.cpp +++ b/benchmarks/irs_bench.cpp @@ -50,7 +50,7 @@ int main(int argc, char **argv) { } /* read in the range queries and add sample size and rng for sampling */ auto queries = read_range_queries(q_fname, .001); - for (auto q : queries) { + for (auto &q : queries) { q.sample_size = 1000; q.rng = rng; } diff --git a/include/query/irs.h b/include/query/irs.h index e2d9325..51eb4e2 100644 --- a/include/query/irs.h +++ b/include/query/irs.h @@ -103,7 +103,7 @@ public: weights.push_back((bs) ? bs->records.size() : 0); } - size_t total_weight = 0; + size_t total_weight = weights[0]; for (auto &s : shard_states) { auto state = (State *) s; total_weight += state->total_weight; -- cgit v1.2.3 From 438feac7e56fee425d9c6f1a43298ff9dc5b71d1 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Fri, 19 Apr 2024 17:38:16 -0400 Subject: Properly implemented support for iteratively decomposable problems --- benchmarks/include/standard_benchmarks.h | 6 --- include/framework/DynamicExtension.h | 40 ++++++++------- include/framework/interface/Query.h | 6 ++- include/query/irs.h | 85 +++++++++++++++++++++----------- include/query/knn.h | 7 ++- include/query/pointlookup.h | 8 ++- include/query/rangecount.h | 8 +-- include/query/rangequery.h | 7 ++- include/query/wirs.h | 13 +++-- include/query/wss.h | 13 +++-- tests/include/pointlookup.h | 14 +++--- tests/include/rangecount.h | 3 +- tests/include/rangequery.h | 3 +- tests/include/shard_string.h | 8 +-- tests/include/wirs.h | 3 +- 15 files changed, 140 insertions(+), 84 deletions(-) diff --git a/benchmarks/include/standard_benchmarks.h b/benchmarks/include/standard_benchmarks.h index 83e3aaa..f5af558 100644 --- a/benchmarks/include/standard_benchmarks.h +++ b/benchmarks/include/standard_benchmarks.h @@ -22,20 +22,17 @@ static double delete_proportion = 0.05; template static void run_queries(DE *extension, std::vector &queries) { - size_t total; for (size_t i=0; iquery(q); auto r = res.get(); - total += r.size(); } } template static void run_static_queries(S *shard, std::vector &queries) { - size_t total; for (size_t i=0; i &queries) { std::vector states = {state}; Q::process_query_states(q, states, nullptr); - auto res = Q::query(shard, state, q); - - total += res.size(); } } diff --git a/include/framework/DynamicExtension.h b/include/framework/DynamicExtension.h index b154be8..6fd95c6 100644 --- a/include/framework/DynamicExtension.h +++ b/include/framework/DynamicExtension.h @@ -546,30 +546,34 @@ private: std::vector> shards; std::vector states = vers->get_query_states(shards, parms); + std::vector results; Q::process_query_states(parms, states, buffer_state); - std::vector>> query_results(shards.size() + 1); - for (size_t i=0; i> local_results; - ShardID shid; - - if (i == 0) { /* process the buffer first */ - local_results = Q::buffer_query(buffer_state, parms); - shid = INVALID_SHID; - } else { - local_results = Q::query(shards[i - 1].second, states[i - 1], parms); - shid = shards[i - 1].first; - } + do { + std::vector>> query_results(shards.size() + 1); + for (size_t i=0; i> local_results; + ShardID shid; + + if (i == 0) { /* process the buffer first */ + local_results = Q::buffer_query(buffer_state, parms); + shid = INVALID_SHID; + } else { + local_results = Q::query(shards[i - 1].second, states[i - 1], parms); + shid = shards[i - 1].first; + } - query_results[i] = std::move(filter_deletes(local_results, shid, vers, &buffer)); + query_results[i] = std::move(filter_deletes(local_results, shid, vers, &buffer)); - if constexpr (Q::EARLY_ABORT) { - if (query_results[i].size() > 0) break; + if constexpr (Q::EARLY_ABORT) { + if (query_results[i].size() > 0) break; + } } - } + Q::merge(query_results, parms, results); + + } while (Q::repeat(parms, results, states, buffer_state)); - auto result = Q::merge(query_results, parms); - args->result_set.set_value(std::move(result)); + args->result_set.set_value(std::move(results)); ((DynamicExtension *) args->extension)->end_job(epoch); diff --git a/include/framework/interface/Query.h b/include/framework/interface/Query.h index 3d487f0..577d6cd 100644 --- a/include/framework/interface/Query.h +++ b/include/framework/interface/Query.h @@ -13,17 +13,19 @@ namespace de{ template -concept QueryInterface = requires(void *p, S *sh, std::vector &s, std::vector>> &rv, BufferView *bv) { +concept QueryInterface = requires(void *p, S *sh, std::vector &s, std::vector>> &rv, BufferView *bv, std::vector &resv) { {Q::get_query_state(sh, p)} -> std::convertible_to; {Q::get_buffer_query_state(bv, p)} -> std::convertible_to; {Q::process_query_states(p, s, p)}; {Q::query(sh, p, p)} -> std::convertible_to>>; {Q::buffer_query(p, p)} -> std::convertible_to>>; - {Q::merge(rv, p)} -> std::convertible_to>; + {Q::merge(rv, p, resv)}; {Q::delete_query_state(p)} -> std::same_as; {Q::delete_buffer_query_state(p)} -> std::same_as; + {Q::repeat(p, resv, s, p)} -> std::same_as; + {Q::EARLY_ABORT} -> std::convertible_to; {Q::SKIP_DELETE_FILTER} -> std::convertible_to; }; diff --git a/include/query/irs.h b/include/query/irs.h index 51eb4e2..879d070 100644 --- a/include/query/irs.h +++ b/include/query/irs.h @@ -40,7 +40,12 @@ struct BufferState { size_t sample_size; BufferView *buffer; + psudb::Alias *alias; + BufferState(BufferView *buffer) : buffer(buffer) {} + ~BufferState() { + delete alias; + } }; template S, bool Rejection=true> @@ -72,6 +77,7 @@ public: res->cutoff = res->buffer->get_record_count(); res->sample_size = 0; + res->alias = nullptr; if constexpr (Rejection) { return res; @@ -96,39 +102,51 @@ public: std::vector shard_sample_sizes(shard_states.size()+1, 0); size_t buffer_sz = 0; - std::vector weights; - if constexpr (Rejection) { - weights.push_back((bs) ? bs->cutoff : 0); - } else { - weights.push_back((bs) ? bs->records.size() : 0); + /* for simplicity of static structure testing */ + if (!bs) { + assert(shard_states.size() == 1); + auto state = (State *) shard_states[0]; + state->sample_size = p->sample_size; + return; } - size_t total_weight = weights[0]; - for (auto &s : shard_states) { - auto state = (State *) s; - total_weight += state->total_weight; - weights.push_back(state->total_weight); - } + /* we only need to build the shard alias on the first call */ + if (bs->alias == nullptr) { + std::vector weights; + if constexpr (Rejection) { + weights.push_back((bs) ? bs->cutoff : 0); + } else { + weights.push_back((bs) ? bs->records.size() : 0); + } - // if no valid records fall within the query range, just - // set all of the sample sizes to 0 and bail out. - if (total_weight == 0) { - for (size_t i=0; i *) shard_states[i]; - state->sample_size = 0; + size_t total_weight = weights[0]; + for (auto &s : shard_states) { + auto state = (State *) s; + total_weight += state->total_weight; + weights.push_back(state->total_weight); } - return; - } + // if no valid records fall within the query range, just + // set all of the sample sizes to 0 and bail out. + if (total_weight == 0) { + for (size_t i=0; i *) shard_states[i]; + state->sample_size = 0; + } - std::vector normalized_weights; - for (auto w : weights) { - normalized_weights.push_back((double) w / (double) total_weight); + return; + } + + std::vector normalized_weights; + for (auto w : weights) { + normalized_weights.push_back((double) w / (double) total_weight); + } + + bs->alias = new psudb::Alias(normalized_weights); } - auto shard_alias = psudb::Alias(normalized_weights); for (size_t i=0; isample_size; i++) { - auto idx = shard_alias.get(p->rng); + auto idx = bs->alias->get(p->rng); if (idx == 0) { buffer_sz++; } else { @@ -198,16 +216,12 @@ public: return result; } - static std::vector merge(std::vector>> &results, void *parms) { - std::vector output; - + static void merge(std::vector>> &results, void *parms, std::vector &output) { for (size_t i=0; i *) state; delete s; } + + static bool repeat(void *parms, std::vector &results, std::vector states, void* buffer_state) { + auto p = (Parms *) parms; + + if (results.size() < p->sample_size) { + auto q = *p; + q.sample_size -= results.size(); + process_query_states(&q, states, buffer_state); + return true; + } + + return false; + } }; }} diff --git a/include/query/knn.h b/include/query/knn.h index 19dcf5c..c856a74 100644 --- a/include/query/knn.h +++ b/include/query/knn.h @@ -114,7 +114,7 @@ public: return results; } - static std::vector merge(std::vector>> &results, void *parms) { + static std::vector merge(std::vector>> &results, void *parms, std::vector &output) { Parms *p = (Parms *) parms; R rec = p->point; size_t k = p->k; @@ -136,7 +136,6 @@ public: } } - std::vector output; while (pq.size() > 0) { output.emplace_back(*pq.peek().data); pq.pop(); @@ -154,6 +153,10 @@ public: auto s = (BufferState *) state; delete s; } + + static bool repeat(void *parms, std::vector &results, std::vector states, void* buffer_state) { + return false; + } }; }} diff --git a/include/query/pointlookup.h b/include/query/pointlookup.h index 35d38e3..94c2bce 100644 --- a/include/query/pointlookup.h +++ b/include/query/pointlookup.h @@ -89,8 +89,7 @@ public: return records; } - static std::vector merge(std::vector>> &results, void *parms) { - std::vector output; + static std::vector merge(std::vector>> &results, void *parms, std::vector &output) { for (auto r : results) { if (r.size() > 0) { if (r[0].is_deleted() || r[0].is_tombstone()) { @@ -114,6 +113,11 @@ public: auto s = (BufferState *) state; delete s; } + + + static bool repeat(void *parms, std::vector &results, std::vector states, void* buffer_state) { + return false; + } }; }} diff --git a/include/query/rangecount.h b/include/query/rangecount.h index 6c57809..c20feaa 100644 --- a/include/query/rangecount.h +++ b/include/query/rangecount.h @@ -134,12 +134,10 @@ public: return records; } - static std::vector merge(std::vector>> &results, void *parms) { - + static std::vector merge(std::vector>> &results, void *parms, std::vector &output) { R res; res.key = 0; res.value = 0; - std::vector output; output.emplace_back(res); for (size_t i=0; i *) state; delete s; } + + static bool repeat(void *parms, std::vector &results, std::vector states, void* buffer_state) { + return false; + } }; }} diff --git a/include/query/rangequery.h b/include/query/rangequery.h index e6ab581..e0690e6 100644 --- a/include/query/rangequery.h +++ b/include/query/rangequery.h @@ -109,7 +109,7 @@ public: return records; } - static std::vector merge(std::vector>> &results, void *parms) { + static std::vector merge(std::vector>> &results, void *parms, std::vector &output) { std::vector>> cursors; cursors.reserve(results.size()); @@ -133,7 +133,6 @@ public: return std::vector(); } - std::vector output; output.reserve(total); while (pq.size()) { @@ -169,6 +168,10 @@ public: auto s = (BufferState *) state; delete s; } + + static bool repeat(void *parms, std::vector &results, std::vector states, void* buffer_state) { + return false; + } }; }} diff --git a/include/query/wirs.h b/include/query/wirs.h index ae82194..62b43f6 100644 --- a/include/query/wirs.h +++ b/include/query/wirs.h @@ -219,9 +219,7 @@ public: return result; } - static std::vector merge(std::vector>> &results, void *parms) { - std::vector output; - + static std::vector merge(std::vector>> &results, void *parms, std::vector &output) { for (size_t i=0; i *) state; delete s; } + + static bool repeat(void *parms, std::vector &results, std::vector states, void* buffer_state) { + auto p = (Parms *) parms; + + if (results.size() < p->sample_size) { + return true; + } + return false; + } }; }} diff --git a/include/query/wss.h b/include/query/wss.h index 8797035..fb0b414 100644 --- a/include/query/wss.h +++ b/include/query/wss.h @@ -183,9 +183,7 @@ public: return result; } - static std::vector merge(std::vector>> &results, void *parms) { - std::vector output; - + static std::vector merge(std::vector>> &results, void *parms, std::vector &output) { for (size_t i=0; i *) state; delete s; } + + static bool repeat(void *parms, std::vector &results, std::vector states, void* buffer_state) { + auto p = (Parms *) parms; + + if (results.size() < p->sample_size) { + return true; + } + return false; + } }; }} diff --git a/tests/include/pointlookup.h b/tests/include/pointlookup.h index 84e71f2..71a1099 100644 --- a/tests/include/pointlookup.h +++ b/tests/include/pointlookup.h @@ -25,15 +25,15 @@ * include statement. */ -#include "shard/FSTrie.h" +//#include "shard/FSTrie.h" #include "query/pointlookup.h" #include "testing.h" #include using namespace de; -typedef StringRec R; -typedef FSTrie Shard; +//typedef StringRec R; +//typedef FSTrie Shard; START_TEST(t_point_lookup_query) { @@ -51,8 +51,8 @@ START_TEST(t_point_lookup_query) pl::Query::delete_query_state(state); ck_assert_int_eq(result.size(), 1); - ck_assert_str_eq(result[0].rec.key, key); - ck_assert_int_eq(result[0].rec.value, bv.get(i)->rec.value); + //ck_assert_str_eq(result[0].rec.key, key); + //ck_assert_int_eq(result[0].rec.value, bv.get(i)->rec.value); } /* point lookup miss; result size should be 0 */ @@ -85,8 +85,8 @@ START_TEST(t_buffer_point_lookup) pl::Query::delete_buffer_query_state(state); ck_assert_int_eq(result.size(), 1); - ck_assert_str_eq(result[0].rec.key, view.get(i)->rec.key); - ck_assert_int_eq(result[0].rec.value, view.get(i)->rec.value); + //ck_assert_str_eq(result[0].rec.key, view.get(i)->rec.key); + //ck_assert_int_eq(result[0].rec.value, view.get(i)->rec.value); } /* point lookup miss; result size should be 0 */ diff --git a/tests/include/rangecount.h b/tests/include/rangecount.h index c97d64c..1951221 100644 --- a/tests/include/rangecount.h +++ b/tests/include/rangecount.h @@ -100,7 +100,8 @@ START_TEST(t_range_count_merge) ck_assert_int_eq(results[0].size(), 1); ck_assert_int_eq(results[1].size(), 1); - auto result = rc::Query::merge(results, nullptr); + std::vector result; + rc::Query::merge(results, nullptr, result); ck_assert_int_eq(result[0].key, result_size); diff --git a/tests/include/rangequery.h b/tests/include/rangequery.h index a3b761e..f90e107 100644 --- a/tests/include/rangequery.h +++ b/tests/include/rangequery.h @@ -113,7 +113,8 @@ START_TEST(t_range_query_merge) } } - auto result = rq::Query::merge(proc_results, nullptr); + std::vector result; + rq::Query::merge(proc_results, nullptr, result); std::sort(result.begin(), result.end()); ck_assert_int_eq(result.size(), result_size); diff --git a/tests/include/shard_string.h b/tests/include/shard_string.h index 2d7a72a..881f41a 100644 --- a/tests/include/shard_string.h +++ b/tests/include/shard_string.h @@ -26,8 +26,8 @@ #include "testing.h" #include using namespace de; -typedef StringRec R; -typedef FSTrie Shard; +//typedef StringRec R; +//typedef FSTrie Shard; START_TEST(t_mbuffer_init) { @@ -122,8 +122,8 @@ START_TEST(t_point_lookup) auto result = shard.point_lookup(r); ck_assert_ptr_nonnull(result); - ck_assert_str_eq(result->rec.key, r.key); - ck_assert_int_eq(result->rec.value, r.value); + //ck_assert_str_eq(result->rec.key, r.key); + //ck_assert_int_eq(result->rec.value, r.value); //fprintf(stderr, "%ld\n", i); } } diff --git a/tests/include/wirs.h b/tests/include/wirs.h index 90cd22d..4c0630f 100644 --- a/tests/include/wirs.h +++ b/tests/include/wirs.h @@ -117,7 +117,8 @@ START_TEST(t_range_query_merge) } } - auto result = rq::Query::merge(proc_results, nullptr); + std::vector result; + rq::Query::merge(proc_results, nullptr, result); std::sort(result.begin(), result.end()); ck_assert_int_eq(result.size(), result_size); -- cgit v1.2.3 From 735d397513bc0160ba9ecb17c32c4441ed125f52 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Mon, 22 Apr 2024 10:24:41 -0400 Subject: TS+PGM: Inlined manually the sorted array merge for performance reasons --- include/shard/PGM.h | 119 +++++++++++++++++++++++++++++---- include/shard/TrieSpline.h | 163 +++++++++++++++++++++++++++++++++++++++------ 2 files changed, 248 insertions(+), 34 deletions(-) diff --git a/include/shard/PGM.h b/include/shard/PGM.h index 691385e..509796b 100644 --- a/include/shard/PGM.h +++ b/include/shard/PGM.h @@ -49,16 +49,62 @@ public: sizeof(Wrapped), (byte**) &m_data); - auto res = sorted_array_from_bufferview(std::move(buffer), m_data, m_bf); - m_reccnt = res.record_count; - m_tombstone_cnt = res.tombstone_count; + std::vector keys; + /* + * Copy the contents of the buffer view into a temporary buffer, and + * sort them. We still need to iterate over these temporary records to + * apply tombstone/deleted record filtering, as well as any possible + * per-record processing that is required by the shard being built. + */ + auto temp_buffer = (Wrapped *) psudb::sf_aligned_calloc(CACHELINE_SIZE, + buffer.get_record_count(), + sizeof(Wrapped)); + buffer.copy_to_buffer((byte *) temp_buffer); - if (m_reccnt > 0) { - std::vector keys; - for (size_t i=0; i>()); + + merge_info info = {0, 0}; + + /* + * Iterate over the temporary buffer to process the records, copying + * them into buffer as needed + */ + while (base < stop) { + if (!base->is_tombstone() && (base + 1 < stop) + && base->rec == (base + 1)->rec && (base + 1)->is_tombstone()) { + base += 2; + continue; + } else if (base->is_deleted()) { + base += 1; + continue; } + // FIXME: this shouldn't be necessary, but the tagged record + // bypass doesn't seem to be working on this code-path, so this + // ensures that tagged records from the buffer are able to be + // dropped, eventually. It should only need to be &= 1 + base->header &= 3; + keys.emplace_back(base->rec.key); + m_data[info.record_count++] = *base; + + if (base->is_tombstone()) { + info.tombstone_count++; + if (m_bf){ + m_bf->insert(base->rec); + } + } + + base++; + } + + free(temp_buffer); + + m_reccnt = info.record_count; + m_tombstone_cnt = info.tombstone_count; + + if (m_reccnt > 0) { m_pgm = pgm::PGMIndex(keys); } } @@ -77,17 +123,62 @@ public: m_alloc_size = psudb::sf_aligned_alloc(CACHELINE_SIZE, attemp_reccnt * sizeof(Wrapped), (byte **) &m_data); + std::vector keys; - auto res = sorted_array_merge(cursors, m_data, m_bf); - m_reccnt = res.record_count; - m_tombstone_cnt = res.tombstone_count; + // FIXME: For smaller cursor arrays, it may be more efficient to skip + // the priority queue and just do a scan. + PriorityQueue> pq(cursors.size()); + for (size_t i=0; i 0) { - std::vector keys; - for (size_t i=0; i 1 ? pq.peek(1) : queue_record>{nullptr, 0}; + /* + * if the current record is not a tombstone, and the next record is + * a tombstone that matches the current one, then the current one + * has been deleted, and both it and its tombstone can be skipped + * over. + */ + if (!now.data->is_tombstone() && next.data != nullptr && + now.data->rec == next.data->rec && next.data->is_tombstone()) { + + pq.pop(); pq.pop(); + auto& cursor1 = cursors[now.version]; + auto& cursor2 = cursors[next.version]; + if (advance_cursor(cursor1)) pq.push(cursor1.ptr, now.version); + if (advance_cursor(cursor2)) pq.push(cursor2.ptr, next.version); + } else { + auto& cursor = cursors[now.version]; + /* skip over records that have been deleted via tagging */ + if (!cursor.ptr->is_deleted()) { + keys.emplace_back(cursor.ptr->rec.key); + m_data[info.record_count++] = *cursor.ptr; + + /* + * if the record is a tombstone, increment the ts count and + * insert it into the bloom filter if one has been + * provided. + */ + if (cursor.ptr->is_tombstone()) { + info.tombstone_count++; + if (m_bf) { + m_bf->insert(cursor.ptr->rec); + } + } + } + pq.pop(); + + if (advance_cursor(cursor)) pq.push(cursor.ptr, now.version); } + } + m_reccnt = info.record_count; + m_tombstone_cnt = info.tombstone_count; + + if (m_reccnt > 0) { m_pgm = pgm::PGMIndex(keys); } } diff --git a/include/shard/TrieSpline.h b/include/shard/TrieSpline.h index 023390e..3ae72f8 100644 --- a/include/shard/TrieSpline.h +++ b/include/shard/TrieSpline.h @@ -48,26 +48,82 @@ public: sizeof(Wrapped), (byte**) &m_data); - auto res = sorted_array_from_bufferview(std::move(buffer), m_data, m_bf); - m_reccnt = res.record_count; - m_tombstone_cnt = res.tombstone_count; + /* + * Copy the contents of the buffer view into a temporary buffer, and + * sort them. We still need to iterate over these temporary records to + * apply tombstone/deleted record filtering, as well as any possible + * per-record processing that is required by the shard being built. + */ + auto temp_buffer = (Wrapped *) psudb::sf_aligned_calloc(CACHELINE_SIZE, + buffer.get_record_count(), + sizeof(Wrapped)); + buffer.copy_to_buffer((byte *) temp_buffer); + + auto base = temp_buffer; + auto stop = base + buffer.get_record_count(); + std::sort(base, stop, std::less>()); + + auto tmp_min_key = temp_buffer[0].rec.key; + auto tmp_max_key = temp_buffer[buffer.get_record_count() - 1].rec.key; + auto bldr = ts::Builder(tmp_min_key, tmp_max_key, E); + + merge_info info = {0, 0}; + + m_min_key = tmp_max_key; + m_max_key = tmp_min_key; + + /* + * Iterate over the temporary buffer to process the records, copying + * them into buffer as needed + */ + while (base < stop) { + if (!base->is_tombstone() && (base + 1 < stop) + && base->rec == (base + 1)->rec && (base + 1)->is_tombstone()) { + base += 2; + continue; + } else if (base->is_deleted()) { + base += 1; + continue; + } - if (m_reccnt > 0) { - m_min_key = m_data[0].rec.key; - m_max_key = m_data[m_reccnt-1].rec.key; + // FIXME: this shouldn't be necessary, but the tagged record + // bypass doesn't seem to be working on this code-path, so this + // ensures that tagged records from the buffer are able to be + // dropped, eventually. It should only need to be &= 1 + base->header &= 3; + bldr.AddKey(base->rec.key); + m_data[info.record_count++] = *base; + + if (base->is_tombstone()) { + info.tombstone_count++; + if (m_bf){ + m_bf->insert(base->rec); + } + } + + if (base->rec.key < m_min_key) { + m_min_key = base->rec.key; + } - auto bldr = ts::Builder(m_min_key, m_max_key, E); - for (size_t i=0; irec.key > m_max_key) { + m_max_key = base->rec.key; } + base++; + } + + free(temp_buffer); + + m_reccnt = info.record_count; + m_tombstone_cnt = info.tombstone_count; + + if (m_reccnt > 0) { m_ts = bldr.Finalize(); } } TrieSpline(std::vector &shards) - : m_data(nullptr) - , m_reccnt(0) + : m_reccnt(0) , m_tombstone_cnt(0) , m_alloc_size(0) , m_max_key(0) @@ -82,19 +138,86 @@ public: attemp_reccnt * sizeof(Wrapped), (byte **) &m_data); - auto res = sorted_array_merge(cursors, m_data, m_bf); - m_reccnt = res.record_count; - m_tombstone_cnt = res.tombstone_count; + // FIXME: For smaller cursor arrays, it may be more efficient to skip + // the priority queue and just do a scan. + PriorityQueue> pq(cursors.size()); + for (size_t i=0; i 0) { - m_min_key = m_data[0].rec.key; - m_max_key = m_data[m_reccnt-1].rec.key; + auto tmp_max_key = shards[0]->m_max_key; + auto tmp_min_key = shards[0]->m_min_key; + + for (size_t i=0; im_max_key > tmp_max_key) { + tmp_max_key = shards[i]->m_max_key; + } - auto bldr = ts::Builder(m_min_key, m_max_key, E); - for (size_t i=0; im_min_key < tmp_min_key) { + tmp_min_key = shards[i]->m_min_key; } + } + auto bldr = ts::Builder(tmp_min_key, tmp_max_key, E); + + m_max_key = tmp_min_key; + m_min_key = tmp_max_key; + + merge_info info = {0, 0}; + while (pq.size()) { + auto now = pq.peek(); + auto next = pq.size() > 1 ? pq.peek(1) : queue_record>{nullptr, 0}; + /* + * if the current record is not a tombstone, and the next record is + * a tombstone that matches the current one, then the current one + * has been deleted, and both it and its tombstone can be skipped + * over. + */ + if (!now.data->is_tombstone() && next.data != nullptr && + now.data->rec == next.data->rec && next.data->is_tombstone()) { + + pq.pop(); pq.pop(); + auto& cursor1 = cursors[now.version]; + auto& cursor2 = cursors[next.version]; + if (advance_cursor(cursor1)) pq.push(cursor1.ptr, now.version); + if (advance_cursor(cursor2)) pq.push(cursor2.ptr, next.version); + } else { + auto& cursor = cursors[now.version]; + /* skip over records that have been deleted via tagging */ + if (!cursor.ptr->is_deleted()) { + bldr.AddKey(cursor.ptr->rec.key); + m_data[info.record_count++] = *cursor.ptr; + + /* + * if the record is a tombstone, increment the ts count and + * insert it into the bloom filter if one has been + * provided. + */ + if (cursor.ptr->is_tombstone()) { + info.tombstone_count++; + if (m_bf) { + m_bf->insert(cursor.ptr->rec); + } + } + + if (cursor.ptr->rec.key < m_min_key) { + m_min_key = cursor.ptr->rec.key; + } + + if (cursor.ptr->rec.key > m_max_key) { + m_max_key = cursor.ptr->rec.key; + } + } + pq.pop(); + + if (advance_cursor(cursor)) pq.push(cursor.ptr, now.version); + } + } + + m_reccnt = info.record_count; + m_tombstone_cnt = info.tombstone_count; + + if (m_reccnt > 0) { m_ts = bldr.Finalize(); } } -- cgit v1.2.3 From 0bb5b46ec2b64be17f6269631915e62d02e315e4 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Mon, 22 Apr 2024 12:27:43 -0400 Subject: Added plain BSM and MDSP BSM benchmark --- benchmarks/include/file_util.h | 16 ++++ benchmarks/include/standard_benchmarks.h | 23 +++++- benchmarks/include/triespline_bsm.h | 134 +++++++++++++++++++++++++++++++ benchmarks/ts_bsm_bench.cpp | 70 ++++++++++++++++ benchmarks/ts_mdsp_bench.cpp | 70 ++++++++++++++++ 5 files changed, 311 insertions(+), 2 deletions(-) create mode 100644 benchmarks/include/triespline_bsm.h create mode 100644 benchmarks/ts_bsm_bench.cpp create mode 100644 benchmarks/ts_mdsp_bench.cpp diff --git a/benchmarks/include/file_util.h b/benchmarks/include/file_util.h index 2a3300a..ea8b42e 100644 --- a/benchmarks/include/file_util.h +++ b/benchmarks/include/file_util.h @@ -97,6 +97,22 @@ static std::vector read_sosd_file(std::string &fname, size_t n) { return records; } +template +static std::vector> read_sosd_file_pair(std::string &fname, size_t n) { + std::fstream file; + file.open(fname, std::ios::in | std::ios::binary); + + std::vector> records(n); + for (size_t i=0; i +template static void run_queries(DE *extension, std::vector &queries) { for (size_t i=0; iquery(q); - auto r = res.get(); + if constexpr (!BSM) { + auto r = res.get(); + } } } @@ -47,6 +50,22 @@ static void run_static_queries(S *shard, std::vector &queries) { } +/* + * Insert records into a standard Bentley-Saxe extension. Deletes are not + * supported. + */ +template +static void insert_records(psudb::bsm::BentleySaxe *extension, + size_t start, size_t stop, std::vector &records) { + + psudb::progress_update(0, "Insert Progress"); + size_t reccnt = 0; + for (size_t i=start; iinsert(records[i]); + } + + psudb::progress_update(1, "Insert Progress"); +} template diff --git a/benchmarks/include/triespline_bsm.h b/benchmarks/include/triespline_bsm.h new file mode 100644 index 0000000..9613a62 --- /dev/null +++ b/benchmarks/include/triespline_bsm.h @@ -0,0 +1,134 @@ +#pragma once + +#include +#include +#include "ts/builder.h" + +template +class BSMTrieSpline { +private: + typedef std::pair R; + +public: + struct RangeQueryParameters { + K lower_bound; + K upper_bound; + }; + +public: + static BSMTrieSpline *build(std::vector &records) { + std::sort(records.begin(), records.end()); + return new BSMTrieSpline(records); + } + + static BSMTrieSpline *build_presorted(std::vector &records) { + return new BSMTrieSpline(records); + } + + std::vector unbuild() { + return std::move(m_data); + } + + std::vector query(void *q) { + std::vector rs; + + /* return an empty result set if q is invalid */ + if (q == nullptr) { + return rs; + } + + auto parms = (BSMTrieSpline::RangeQueryParameters*) q; + + size_t idx = lower_bound(parms->lower_bound); + + while (idx < m_data.size() && m_data[idx].first < parms->upper_bound) { + rs.emplace_back(m_data[idx++]); + } + + return std::move(rs); + } + + std::vector query_merge(std::vector &rsa, std::vector &rsb) { + rsa.insert(rsa.end(), rsb.begin(), rsb.end()); + return std::move(rsa); + } + + size_t record_count() { + return m_data.size(); + } + + + ~BSMTrieSpline() = default; + + +private: + std::vector m_data; + K m_max_key; + K m_min_key; + ts::TrieSpline m_ts; + + BSMTrieSpline(std::vector &records) { + m_data = std::move(records); + m_min_key = m_data[0].first; + m_max_key = m_data[m_data.size() - 1].first; + + auto bldr = ts::Builder(m_min_key, m_max_key, E); + for (size_t i=0; i 1) { + m_ts = bldr.Finalize(); + } + } + + size_t lower_bound(K key) { + if (m_data.size() == 0) { + return 1; + } else if (m_data.size() == 1) { + if (m_data[0].first < key) { + return 1; + } else { + return 0; + } + } + + auto bound = m_ts.GetSearchBound(key); + size_t idx = bound.begin; + + if (idx >= m_data.size()) { + return m_data.size(); + } + + // If the region to search is less than some pre-specified + // amount, perform a linear scan to locate the record. + if (bound.end - bound.begin < 256) { + while (idx < bound.end && m_data[idx].first < key) { + idx++; + } + } else { + // Otherwise, perform a binary search + idx = bound.begin; + size_t max = bound.end; + + while (idx < max) { + size_t mid = (idx + max) / 2; + if (key > m_data[mid].first) { + idx = mid + 1; + } else { + max = mid; + } + } + } + + if (idx == m_data.size()) { + return m_data.size(); + } + + if (m_data[idx].first > key && idx > 0 && m_data[idx-1].first <= key) { + return idx-1; + } + + return idx; + } +}; diff --git a/benchmarks/ts_bsm_bench.cpp b/benchmarks/ts_bsm_bench.cpp new file mode 100644 index 0000000..366abce --- /dev/null +++ b/benchmarks/ts_bsm_bench.cpp @@ -0,0 +1,70 @@ +/* + * + */ + +#define ENABLE_TIMER + +#include + +#include "include/triespline_bsm.h" +#include "psu-util/bentley-saxe.h" +#include "framework/interface/Record.h" +#include "include/file_util.h" +#include "query/rangecount.h" +#include "psu-util/timer.h" +#include "include/standard_benchmarks.h" + +typedef std::pair Rec; +typedef de::Record FRec; + +typedef BSMTrieSpline Shard; +typedef de::rc::Parms QP; +typedef psudb::bsm::BentleySaxe Ext; + +void usage(char *progname) { + fprintf(stderr, "%s reccnt datafile queryfile", progname); +} + +int main(int argc, char **argv) { + + if (argc < 4) { + usage(argv[0]); + exit(EXIT_FAILURE); + } + + size_t n = atol(argv[1]); + std::string d_fname = std::string(argv[2]); + std::string q_fname = std::string(argv[3]); + + auto extension = new psudb::bsm::BentleySaxe(); + gsl_rng *rng = gsl_rng_alloc(gsl_rng_mt19937); + + auto data = read_sosd_file_pair(d_fname, n); + auto queries = read_range_queries(q_fname, .001); + + /* warmup structure w/ 10% of records */ + size_t warmup = .1 * n; + insert_records(extension, 0, warmup, data); + + TIMER_INIT(); + + TIMER_START(); + insert_records(extension, warmup, data.size(), data); + TIMER_STOP(); + + auto insert_latency = TIMER_RESULT(); + size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); + + TIMER_START(); + run_queries(extension, queries); + TIMER_STOP(); + + auto query_latency = TIMER_RESULT() / queries.size(); + + fprintf(stdout, "%ld\t%ld\n", insert_throughput, query_latency); + + gsl_rng_free(rng); + delete extension; + fflush(stderr); +} + diff --git a/benchmarks/ts_mdsp_bench.cpp b/benchmarks/ts_mdsp_bench.cpp new file mode 100644 index 0000000..5e5001d --- /dev/null +++ b/benchmarks/ts_mdsp_bench.cpp @@ -0,0 +1,70 @@ +/* + * + */ + +#define ENABLE_TIMER + +#include + +#include "include/triespline_bsm.h" +#include "psu-util/bentley-saxe.h" +#include "framework/interface/Record.h" +#include "include/file_util.h" +#include "query/rangecount.h" +#include "psu-util/timer.h" +#include "include/standard_benchmarks.h" + +typedef std::pair Rec; +typedef de::Record FRec; + +typedef BSMTrieSpline Shard; +typedef de::rc::Parms QP; +typedef psudb::bsm::BentleySaxe Ext; + +void usage(char *progname) { + fprintf(stderr, "%s reccnt datafile queryfile", progname); +} + +int main(int argc, char **argv) { + + if (argc < 4) { + usage(argv[0]); + exit(EXIT_FAILURE); + } + + size_t n = atol(argv[1]); + std::string d_fname = std::string(argv[2]); + std::string q_fname = std::string(argv[3]); + + auto extension = new psudb::bsm::BentleySaxe(); + gsl_rng *rng = gsl_rng_alloc(gsl_rng_mt19937); + + auto data = read_sosd_file_pair(d_fname, n); + auto queries = read_range_queries(q_fname, .001); + + /* warmup structure w/ 10% of records */ + size_t warmup = .1 * n; + insert_records(extension, 0, warmup, data); + + TIMER_INIT(); + + TIMER_START(); + insert_records(extension, warmup, data.size(), data); + TIMER_STOP(); + + auto insert_latency = TIMER_RESULT(); + size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); + + TIMER_START(); + run_queries(extension, queries); + TIMER_STOP(); + + auto query_latency = TIMER_RESULT() / queries.size(); + + fprintf(stdout, "%ld\t%ld\n", insert_throughput, query_latency); + + gsl_rng_free(rng); + delete extension; + fflush(stderr); +} + -- cgit v1.2.3 From 4a1dde3148e0e84b47c884bc0bb69c60678b4558 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Mon, 22 Apr 2024 15:09:07 -0400 Subject: Benchmark update+reorganization The Alex benchmark isn't updated yet. --- CMakeLists.txt | 111 +++++++++++------ benchmarks/include/benchmark_types.h | 5 +- benchmarks/include/standard_benchmarks.h | 69 +++++++++-- benchmarks/irs_bench.cpp | 97 --------------- benchmarks/pgm_bench.cpp | 94 -------------- benchmarks/string_insertion_tput.cpp | 32 ++--- benchmarks/ts_bench.cpp | 94 -------------- benchmarks/ts_bsm_bench.cpp | 70 ----------- benchmarks/ts_mdsp_bench.cpp | 70 ----------- benchmarks/vldb/alex_bench.cpp | 205 +++++++++++++++++++++++++++++++ benchmarks/vldb/btree_bench.cpp | 90 ++++++++++++++ benchmarks/vldb/dynamic_pgm_bench.cpp | 77 ++++++++++++ benchmarks/vldb/irs_bench.cpp | 97 +++++++++++++++ benchmarks/vldb/mtree_bench.cpp | 80 ++++++++++++ benchmarks/vldb/pgm_bench.cpp | 94 ++++++++++++++ benchmarks/vldb/ts_bench.cpp | 94 ++++++++++++++ benchmarks/vldb/ts_bsm_bench.cpp | 70 +++++++++++ benchmarks/vldb/ts_mdsp_bench.cpp | 70 +++++++++++ benchmarks/vldb/vptree_bench.cpp | 100 +++++++++++++++ benchmarks/vptree_bench.cpp | 100 --------------- 20 files changed, 1123 insertions(+), 596 deletions(-) delete mode 100644 benchmarks/irs_bench.cpp delete mode 100644 benchmarks/pgm_bench.cpp delete mode 100644 benchmarks/ts_bench.cpp delete mode 100644 benchmarks/ts_bsm_bench.cpp delete mode 100644 benchmarks/ts_mdsp_bench.cpp create mode 100644 benchmarks/vldb/alex_bench.cpp create mode 100644 benchmarks/vldb/btree_bench.cpp create mode 100644 benchmarks/vldb/dynamic_pgm_bench.cpp create mode 100644 benchmarks/vldb/irs_bench.cpp create mode 100644 benchmarks/vldb/mtree_bench.cpp create mode 100644 benchmarks/vldb/pgm_bench.cpp create mode 100644 benchmarks/vldb/ts_bench.cpp create mode 100644 benchmarks/vldb/ts_bsm_bench.cpp create mode 100644 benchmarks/vldb/ts_mdsp_bench.cpp create mode 100644 benchmarks/vldb/vptree_bench.cpp delete mode 100644 benchmarks/vptree_bench.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index c62085f..8e6cdfc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,7 +11,8 @@ project("Practical Dynamic Extension" VERSION 0.1.0) set(debug false) set(tests True) -set(bench true) +set(bench false) +set(vldb_bench true) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) @@ -147,96 +148,136 @@ if (tests) target_include_directories(louds_tests PRIVATE include external/psudb-common/cpp/include external/PLEX/include external/fast_succinct_trie/include external/louds-patricia) endif() +if (vldb_bench) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin/benchmarks") + + add_executable(irs_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/irs_bench.cpp) + target_link_libraries(irs_bench PUBLIC gsl pthread atomic) + target_include_directories(irs_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) + target_link_options(irs_bench PUBLIC -mcx16) + + add_executable(vptree_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/vptree_bench.cpp) + target_link_libraries(vptree_bench PUBLIC gsl pthread atomic) + target_include_directories(vptree_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) + target_link_options(vptree_bench PUBLIC -mcx16) + + add_executable(ts_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/ts_bench.cpp) + target_link_libraries(ts_bench PUBLIC gsl pthread atomic) + target_include_directories(ts_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) + target_link_options(ts_bench PUBLIC -mcx16) + + add_executable(ts_bsm_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/ts_bsm_bench.cpp) + target_link_libraries(ts_bsm_bench PUBLIC gsl pthread atomic) + target_include_directories(ts_bsm_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) + target_link_options(ts_bsm_bench PUBLIC -mcx16) + + add_executable(ts_mdsp_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/ts_mdsp_bench.cpp) + target_link_libraries(ts_mdsp_bench PUBLIC gsl pthread atomic) + target_include_directories(ts_mdsp_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) + target_link_options(ts_mdsp_bench PUBLIC -mcx16) + + add_executable(pgm_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/pgm_bench.cpp) + target_link_libraries(pgm_bench PUBLIC gsl pthread atomic gomp) + target_include_directories(pgm_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) + target_link_options(pgm_bench PUBLIC -mcx16) + target_compile_options(pgm_bench PUBLIC -fopenmp) + + add_executable(dynamic_pgm_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/dynamic_pgm_bench.cpp) + target_link_libraries(dynamic_pgm_bench PUBLIC gsl pthread atomic gomp) + target_include_directories(dynamic_pgm_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) + target_link_options(dynamic_pgm_bench PUBLIC -mcx16) + target_compile_options(dynamic_pgm_bench PUBLIC -fopenmp) + + add_executable(btree_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/btree_bench.cpp) + target_link_libraries(btree_bench PUBLIC gsl pthread atomic gomp) + target_include_directories(btree_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) + target_link_options(btree_bench PUBLIC -mcx16) + target_compile_options(btree_bench PUBLIC -fopenmp) + + #add_executable(alex_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/alex_bench.cpp) + #target_link_libraries(alex_bench PUBLIC gsl pthread atomic gomp) + #target_include_directories(alex_bench PRIVATE include external/benchmarks/include external/psudb-common/cpp/include external/alex/src/core/) + #target_link_options(alex_bench PUBLIC -mcx16) + #target_compile_options(alex_bench PUBLIC -fopenmp -std=c++17) + + add_executable(mtree_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/mtree_bench.cpp) + target_link_libraries(mtree_bench PUBLIC gsl pthread atomic gomp) + target_include_directories(mtree_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) + target_link_options(mtree_bench PUBLIC -mcx16) + target_compile_options(mtree_bench PUBLIC -fopenmp) +endif() + + + if (bench) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin/benchmarks") add_executable(reconstruction_interference ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/reconstruction_interference.cpp) target_link_libraries(reconstruction_interference PUBLIC gsl pthread atomic) target_link_options(reconstruction_interference PUBLIC -mcx16) - target_include_directories(reconstruction_interference PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) + target_include_directories(reconstruction_interference PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) add_executable(insertion_tput ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/insertion_tput.cpp) target_link_libraries(insertion_tput PUBLIC gsl pthread atomic) - target_include_directories(insertion_tput PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) + target_include_directories(insertion_tput PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) target_link_options(insertion_tput PUBLIC -mcx16) add_executable(string_insertion_tput ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/string_insertion_tput.cpp) target_link_libraries(string_insertion_tput PUBLIC gsl pthread atomic) - target_include_directories(string_insertion_tput PRIVATE include external external/fast_succinct_trie/include external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) + target_include_directories(string_insertion_tput PRIVATE include external external/fast_succinct_trie/include external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) target_link_options(string_insertion_tput PUBLIC -mcx16) add_executable(louds_insertion_tput ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/louds_insertion_tput.cpp) target_link_libraries(louds_insertion_tput PUBLIC gsl pthread atomic) - target_include_directories(louds_insertion_tput PRIVATE include external external/fast_succinct_trie/include external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include external/louds-patricia) + target_include_directories(louds_insertion_tput PRIVATE include external external/fast_succinct_trie/include external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include external/louds-patricia) target_link_options(louds_insertion_tput PUBLIC -mcx16) add_executable(query_workload_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/query_workload_bench.cpp) target_link_libraries(query_workload_bench PUBLIC gsl pthread atomic) - target_include_directories(query_workload_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) + target_include_directories(query_workload_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) target_link_options(query_workload_bench PUBLIC -mcx16) add_executable(insert_query_tput ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/insert_query_tput.cpp) target_link_libraries(insert_query_tput PUBLIC gsl pthread atomic) - target_include_directories(insert_query_tput PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) + target_include_directories(insert_query_tput PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) target_link_options(insert_query_tput PUBLIC -mcx16) add_executable(poplar_trie ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/poplar_trie.cpp) target_link_libraries(poplar_trie PUBLIC gsl pthread atomic) - target_include_directories(poplar_trie PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include external/poplar-trie/include) + target_include_directories(poplar_trie PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include external/poplar-trie/include) target_link_options(poplar_trie PUBLIC -mcx16) add_executable(hat_trie ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/hat_trie.cpp) target_link_libraries(hat_trie PUBLIC gsl pthread atomic) target_include_directories(hat_trie PRIVATE include external - external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include external/hat-trie/include/tsl) + external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include external/hat-trie/include/tsl) target_link_options(hat_trie PUBLIC -mcx16) add_executable(cedar_trie ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/cedar_trie.cpp) target_link_libraries(cedar_trie PUBLIC gsl pthread atomic) - target_include_directories(cedar_trie PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include external/hat-trie/include/tsl) + target_include_directories(cedar_trie PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include external/hat-trie/include/tsl) target_link_options(cedar_trie PUBLIC -mcx16) #add_executable(btree_insert_query_tput ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/btree_insert_query_tput.cpp) #target_link_libraries(btree_insert_query_tput PUBLIC gsl cblas pthread atomic) - #target_include_directories(btree_insert_query_tput PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) + #target_include_directories(btree_insert_query_tput PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) #target_link_options(btree_insert_query_tput PUBLIC -mcx16) add_executable(watermark_testing ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/watermark_testing.cpp) target_link_libraries(watermark_testing PUBLIC gsl pthread atomic) - target_include_directories(watermark_testing PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) + target_include_directories(watermark_testing PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) target_link_options(watermark_testing PUBLIC -mcx16) - add_executable(irs_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/irs_bench.cpp) - target_link_libraries(irs_bench PUBLIC gsl pthread atomic) - target_include_directories(irs_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) - target_link_options(irs_bench PUBLIC -mcx16) - - add_executable(vptree_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vptree_bench.cpp) - target_link_libraries(vptree_bench PUBLIC gsl pthread atomic) - target_include_directories(vptree_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) - target_link_options(vptree_bench PUBLIC -mcx16) - - add_executable(ts_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/ts_bench.cpp) - target_link_libraries(ts_bench PUBLIC gsl pthread atomic) - target_include_directories(ts_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) - target_link_options(ts_bench PUBLIC -mcx16) - - add_executable(pgm_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/pgm_bench.cpp) - target_link_libraries(pgm_bench PUBLIC gsl pthread atomic gomp) - target_include_directories(pgm_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) - target_link_options(pgm_bench PUBLIC -mcx16) - target_compile_options(pgm_bench PUBLIC -fopenmp) - #add_executable(static_dynamic_comp ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/static_dynamic_comp.cpp) #target_link_libraries(static_dynamic_comp PUBLIC gsl cblas pthread atomic) - #target_include_directories(static_dynamic_comp PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) + #target_include_directories(static_dynamic_comp PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) #target_link_options(static_dynamic_comp PUBLIC -mcx16) add_executable(insert_tail_latency ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/insert_tail_latency.cpp) target_link_libraries(insert_tail_latency PUBLIC gsl pthread atomic) - target_include_directories(insert_tail_latency PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include) + target_include_directories(insert_tail_latency PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) target_link_options(insert_tail_latency PUBLIC -mcx16) endif() diff --git a/benchmarks/include/benchmark_types.h b/benchmarks/include/benchmark_types.h index fcdeac6..13964e8 100644 --- a/benchmarks/include/benchmark_types.h +++ b/benchmarks/include/benchmark_types.h @@ -3,8 +3,9 @@ #include #include "psu-ds/BTree.h" #include "framework/interface/Record.h" +#include "pgm/pgm_index_dynamic.hpp" -/* TLX BTree definitions*/ +/* BTree definitions*/ template struct btree_record { K key; @@ -50,3 +51,5 @@ struct euclidean_distance { typedef mt::mtree MTree; #endif +typedef pgm::DynamicPGMIndex> PGM; + diff --git a/benchmarks/include/standard_benchmarks.h b/benchmarks/include/standard_benchmarks.h index 74bf93f..aaef679 100644 --- a/benchmarks/include/standard_benchmarks.h +++ b/benchmarks/include/standard_benchmarks.h @@ -14,6 +14,7 @@ #include "framework/DynamicExtension.h" #include "framework/interface/Query.h" +#include "query/irs.h" #include "psu-util/progress.h" #include "benchmark_types.h" #include "psu-util/bentley-saxe.h" @@ -24,15 +25,41 @@ static double delete_proportion = 0.05; template static void run_queries(DE *extension, std::vector &queries) { for (size_t i=0; iquery(q); - if constexpr (!BSM) { - auto r = res.get(); + if constexpr (std::is_same_v) { + std::vector result; + auto res = extension->get_nearest_by_limit(queries[i].point, queries[i].k); + + auto itr = res.begin(); + while (itr != res.end()) { + result.emplace_back(itr->data); + itr++; + } + } else if constexpr (std::is_same_v) { + size_t tot = 0; + auto ptr = extension->find(queries[i].lower_bound); + while (ptr != extension->end() && ptr->first <= queries[i].upper_bound) { + tot++; + ++ptr; + } + } else { + auto res = extension->query(&queries[i]); + if constexpr (!BSM) { + auto r = res.get(); + } } } } +template +static void run_btree_queries(BenchBTree *btree, std::vector> &queries) { + std::vector sample_set; + sample_set.reserve(queries[0].sample_size); + + for (size_t i=0; irange_sample(queries[i].lower_bound, queries[i].upper_bound, queries[i].sample_size, sample_set, queries[i].rng); + } +} + template static void run_static_queries(S *shard, std::vector &queries) { @@ -68,26 +95,42 @@ static void insert_records(psudb::bsm::BentleySaxe *extension, } -template -static void insert_records(DE *extension, size_t start, size_t stop, +template +static void insert_records(DE *structure, size_t start, size_t stop, std::vector &records, std::vector &to_delete, size_t &delete_idx, bool delete_records, gsl_rng *rng) { psudb::progress_update(0, "Insert Progress"); size_t reccnt = 0; for (size_t i=start; iinsert(records[i])) { - psudb::progress_update((double) i / (double)(stop - start), "Insert Progress"); - usleep(1); + + if constexpr (std::is_same_v) { + structure->insert(records[i]); + } else if constexpr (std::is_same_v) { + structure->add(records[i]); + } else if constexpr (std::is_same_v) { + structure->insert_or_assign(records[i].key, records[i].value); + } else { + while (!structure->insert(records[i])) { + psudb::progress_update((double) i / (double)(stop - start), "Insert Progress"); + usleep(1); + } } if (delete_records && gsl_rng_uniform(rng) <= delete_proportion && to_delete[delete_idx] <= i) { - while (!extension->erase(records[to_delete[delete_idx]])) { - usleep(1); + if constexpr (std::is_same_v) { + structure->erase_one(records[to_delete[delete_idx]].key); + } else if constexpr (std::is_same_v) { + structure->remove(records[to_delete[delete_idx]]); + } else if constexpr (std::is_same_v) { + structure->erase(records[to_delete[delete_idx]].key); + } else { + while (!structure->erase(records[to_delete[delete_idx]])) { + usleep(1); + } } - delete_idx++; g_deleted_records++; } diff --git a/benchmarks/irs_bench.cpp b/benchmarks/irs_bench.cpp deleted file mode 100644 index 36d88f6..0000000 --- a/benchmarks/irs_bench.cpp +++ /dev/null @@ -1,97 +0,0 @@ -/* - * - */ - -#define ENABLE_TIMER - -#include "framework/DynamicExtension.h" -#include "shard/ISAMTree.h" -#include "query/irs.h" -#include "framework/interface/Record.h" -#include "include/file_util.h" - -#include - -#include "psu-util/timer.h" -#include "include/standard_benchmarks.h" - - -typedef de::Record Rec; -typedef de::ISAMTree Shard; -typedef de::irs::Query Q; -typedef de::DynamicExtension Ext; -typedef de::irs::Parms QP; - -void usage(char *progname) { - fprintf(stderr, "%s reccnt datafile queryfile", progname); -} - -int main(int argc, char **argv) { - - if (argc < 4) { - usage(argv[0]); - exit(EXIT_FAILURE); - } - - size_t n = atol(argv[1]); - std::string d_fname = std::string(argv[2]); - std::string q_fname = std::string(argv[3]); - - auto extension = new Ext(12000, 12001, 8, 0, 64); - gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937); - - auto data = read_sosd_file(d_fname, n); - std::vector to_delete(n * delete_proportion); - size_t j=0; - for (size_t i=0; i(q_fname, .001); - for (auto &q : queries) { - q.sample_size = 1000; - q.rng = rng; - } - - /* warmup structure w/ 10% of records */ - size_t warmup = .3 * n; - size_t delete_idx = 0; - insert_records(extension, 0, warmup, data, to_delete, delete_idx, false, rng); - - extension->await_next_epoch(); - - TIMER_INIT(); - - TIMER_START(); - insert_records(extension, warmup, data.size(), data, to_delete, delete_idx, true, rng); - TIMER_STOP(); - - auto insert_latency = TIMER_RESULT(); - size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); - - TIMER_START(); - run_queries(extension, queries); - TIMER_STOP(); - - auto query_latency = TIMER_RESULT() / queries.size(); - - auto shard = extension->create_static_structure(); - - TIMER_START(); - run_static_queries(shard, queries); - TIMER_STOP(); - - auto static_latency = TIMER_RESULT() / queries.size(); - - auto ext_size = extension->get_memory_usage() + extension->get_aux_memory_usage(); - auto static_size = shard->get_memory_usage();// + shard->get_aux_memory_usage(); - - fprintf(stdout, "%ld\t%ld\t%ld\t%ld\t%ld\n", insert_throughput, query_latency, ext_size, static_latency, static_size); - - gsl_rng_free(rng); - delete extension; - fflush(stderr); -} - diff --git a/benchmarks/pgm_bench.cpp b/benchmarks/pgm_bench.cpp deleted file mode 100644 index e0baab4..0000000 --- a/benchmarks/pgm_bench.cpp +++ /dev/null @@ -1,94 +0,0 @@ -/* - * - */ - -#define ENABLE_TIMER - -#include - -#include "framework/DynamicExtension.h" -#include "shard/PGM.h" -#include "query/rangecount.h" -#include "framework/interface/Record.h" -#include "include/file_util.h" -#include "include/standard_benchmarks.h" - -#include - -#include "psu-util/timer.h" - - -typedef de::Record Rec; -typedef de::PGM Shard; -typedef de::rc::Query Q; -typedef de::DynamicExtension Ext; -typedef de::rc::Parms QP; - -void usage(char *progname) { - fprintf(stderr, "%s reccnt datafile queryfile", progname); -} - -int main(int argc, char **argv) { - - if (argc < 4) { - usage(argv[0]); - exit(EXIT_FAILURE); - } - - size_t n = atol(argv[1]); - std::string d_fname = std::string(argv[2]); - std::string q_fname = std::string(argv[3]); - - auto extension = new Ext(12000, 12001, 8, 0, 64); - gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937); - - auto data = read_sosd_file(d_fname, n); - std::vector to_delete(n * delete_proportion); - size_t j=0; - for (size_t i=0; i(q_fname, .001); - - /* warmup structure w/ 10% of records */ - size_t warmup = .1 * n; - size_t delete_idx = 0; - insert_records(extension, 0, warmup, data, to_delete, delete_idx, false, rng); - - extension->await_next_epoch(); - - TIMER_INIT(); - - TIMER_START(); - insert_records(extension, warmup, data.size(), data, to_delete, delete_idx, true, rng); - TIMER_STOP(); - - auto insert_latency = TIMER_RESULT(); - size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); - - TIMER_START(); - run_queries(extension, queries); - TIMER_STOP(); - - auto query_latency = TIMER_RESULT() / queries.size(); - - auto shard = extension->create_static_structure(); - - TIMER_START(); - run_static_queries(shard, queries); - TIMER_STOP(); - - auto static_latency = TIMER_RESULT() / queries.size(); - - auto ext_size = extension->get_memory_usage() + extension->get_aux_memory_usage(); - auto static_size = shard->get_memory_usage(); // + shard->get_aux_memory_usage(); - - fprintf(stdout, "%ld\t%ld\t%ld\t%ld\t%ld\n", insert_throughput, query_latency, ext_size, static_latency, static_size); - - gsl_rng_free(rng); - delete extension; - fflush(stderr); -} - diff --git a/benchmarks/string_insertion_tput.cpp b/benchmarks/string_insertion_tput.cpp index f4a519a..8fa7f44 100644 --- a/benchmarks/string_insertion_tput.cpp +++ b/benchmarks/string_insertion_tput.cpp @@ -69,7 +69,13 @@ int main(int argc, char **argv) { fprintf(stderr, "Finished reading from file.\n"); } - auto extension = new Ext(1000, 12000, 8); + std::vector scale_factors = {2, 4, 6, 8, 10, 12}; + std::vector buffer_sizes = {1000, 2000, 5000, 10000, 12000, 15000}; + + for (auto &sf : scale_factors) { + for (auto &bf_sz : buffer_sizes) { + + auto extension = new Ext(bf_sz, bf_sz, sf); TIMER_INIT(); TIMER_START(); @@ -97,33 +103,15 @@ int main(int argc, char **argv) { auto query_time = TIMER_RESULT(); - - auto shard = extension->create_static_structure(); - TIMER_START(); - for (size_t i=0; i parms = {strings[j].get()}; - - auto res = Q::query(shard, nullptr, &parms); - - if (res[0].rec.value != j) { - fprintf(stderr, "static:\t%ld %ld %s\n", res[0].rec.value, j, strings[j].get()); - } - } - TIMER_STOP(); - - auto shard_query_time = TIMER_RESULT(); - double i_tput = (double) n / (double) total_time * 1e9; size_t q_lat = query_time / m; - size_t s_q_lat = shard_query_time / m; - fprintf(stdout, "%ld\t\t%lf\t%ld\t%ld\t%ld\t%ld\n", extension->get_record_count(), - i_tput, q_lat, s_q_lat, extension->get_memory_usage(), shard->get_memory_usage()); + fprintf(stdout, "%ld\t%ld\t%ld\t%lf\t%ld\t%ld\n", extension->get_record_count(), + bf_sz, sf, i_tput, q_lat, extension->get_memory_usage()); delete extension; - delete shard; + }} fflush(stderr); } diff --git a/benchmarks/ts_bench.cpp b/benchmarks/ts_bench.cpp deleted file mode 100644 index 3d44ac5..0000000 --- a/benchmarks/ts_bench.cpp +++ /dev/null @@ -1,94 +0,0 @@ -/* - * - */ - -#define ENABLE_TIMER - -#include - -#include "framework/DynamicExtension.h" -#include "shard/TrieSpline.h" -#include "query/rangecount.h" -#include "framework/interface/Record.h" -#include "include/file_util.h" -#include "include/standard_benchmarks.h" - -#include - -#include "psu-util/timer.h" - - -typedef de::Record Rec; -typedef de::TrieSpline Shard; -typedef de::rc::Query Q; -typedef de::DynamicExtension Ext; -typedef de::rc::Parms QP; - -void usage(char *progname) { - fprintf(stderr, "%s reccnt datafile queryfile", progname); -} - -int main(int argc, char **argv) { - - if (argc < 4) { - usage(argv[0]); - exit(EXIT_FAILURE); - } - - size_t n = atol(argv[1]); - std::string d_fname = std::string(argv[2]); - std::string q_fname = std::string(argv[3]); - - auto extension = new Ext(12000, 12001, 8, 0, 64); - gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937); - - auto data = read_sosd_file(d_fname, n); - std::vector to_delete(n * delete_proportion); - size_t j=0; - for (size_t i=0; i(q_fname, .001); - - /* warmup structure w/ 10% of records */ - size_t warmup = .1 * n; - size_t delete_idx = 0; - insert_records(extension, 0, warmup, data, to_delete, delete_idx, false, rng); - - extension->await_next_epoch(); - - TIMER_INIT(); - - TIMER_START(); - insert_records(extension, warmup, data.size(), data, to_delete, delete_idx, true, rng); - TIMER_STOP(); - - auto insert_latency = TIMER_RESULT(); - size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); - - TIMER_START(); - run_queries(extension, queries); - TIMER_STOP(); - - auto query_latency = TIMER_RESULT() / queries.size(); - - auto shard = extension->create_static_structure(); - - TIMER_START(); - run_static_queries(shard, queries); - TIMER_STOP(); - - auto static_latency = TIMER_RESULT() / queries.size(); - - auto ext_size = extension->get_memory_usage() + extension->get_aux_memory_usage(); - auto static_size = shard->get_memory_usage(); //+ shard->get_aux_memory_usage(); - - fprintf(stdout, "%ld\t%ld\t%ld\t%ld\t%ld\n", insert_throughput, query_latency, ext_size, static_latency, static_size); - - gsl_rng_free(rng); - delete extension; - fflush(stderr); -} - diff --git a/benchmarks/ts_bsm_bench.cpp b/benchmarks/ts_bsm_bench.cpp deleted file mode 100644 index 366abce..0000000 --- a/benchmarks/ts_bsm_bench.cpp +++ /dev/null @@ -1,70 +0,0 @@ -/* - * - */ - -#define ENABLE_TIMER - -#include - -#include "include/triespline_bsm.h" -#include "psu-util/bentley-saxe.h" -#include "framework/interface/Record.h" -#include "include/file_util.h" -#include "query/rangecount.h" -#include "psu-util/timer.h" -#include "include/standard_benchmarks.h" - -typedef std::pair Rec; -typedef de::Record FRec; - -typedef BSMTrieSpline Shard; -typedef de::rc::Parms QP; -typedef psudb::bsm::BentleySaxe Ext; - -void usage(char *progname) { - fprintf(stderr, "%s reccnt datafile queryfile", progname); -} - -int main(int argc, char **argv) { - - if (argc < 4) { - usage(argv[0]); - exit(EXIT_FAILURE); - } - - size_t n = atol(argv[1]); - std::string d_fname = std::string(argv[2]); - std::string q_fname = std::string(argv[3]); - - auto extension = new psudb::bsm::BentleySaxe(); - gsl_rng *rng = gsl_rng_alloc(gsl_rng_mt19937); - - auto data = read_sosd_file_pair(d_fname, n); - auto queries = read_range_queries(q_fname, .001); - - /* warmup structure w/ 10% of records */ - size_t warmup = .1 * n; - insert_records(extension, 0, warmup, data); - - TIMER_INIT(); - - TIMER_START(); - insert_records(extension, warmup, data.size(), data); - TIMER_STOP(); - - auto insert_latency = TIMER_RESULT(); - size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); - - TIMER_START(); - run_queries(extension, queries); - TIMER_STOP(); - - auto query_latency = TIMER_RESULT() / queries.size(); - - fprintf(stdout, "%ld\t%ld\n", insert_throughput, query_latency); - - gsl_rng_free(rng); - delete extension; - fflush(stderr); -} - diff --git a/benchmarks/ts_mdsp_bench.cpp b/benchmarks/ts_mdsp_bench.cpp deleted file mode 100644 index 5e5001d..0000000 --- a/benchmarks/ts_mdsp_bench.cpp +++ /dev/null @@ -1,70 +0,0 @@ -/* - * - */ - -#define ENABLE_TIMER - -#include - -#include "include/triespline_bsm.h" -#include "psu-util/bentley-saxe.h" -#include "framework/interface/Record.h" -#include "include/file_util.h" -#include "query/rangecount.h" -#include "psu-util/timer.h" -#include "include/standard_benchmarks.h" - -typedef std::pair Rec; -typedef de::Record FRec; - -typedef BSMTrieSpline Shard; -typedef de::rc::Parms QP; -typedef psudb::bsm::BentleySaxe Ext; - -void usage(char *progname) { - fprintf(stderr, "%s reccnt datafile queryfile", progname); -} - -int main(int argc, char **argv) { - - if (argc < 4) { - usage(argv[0]); - exit(EXIT_FAILURE); - } - - size_t n = atol(argv[1]); - std::string d_fname = std::string(argv[2]); - std::string q_fname = std::string(argv[3]); - - auto extension = new psudb::bsm::BentleySaxe(); - gsl_rng *rng = gsl_rng_alloc(gsl_rng_mt19937); - - auto data = read_sosd_file_pair(d_fname, n); - auto queries = read_range_queries(q_fname, .001); - - /* warmup structure w/ 10% of records */ - size_t warmup = .1 * n; - insert_records(extension, 0, warmup, data); - - TIMER_INIT(); - - TIMER_START(); - insert_records(extension, warmup, data.size(), data); - TIMER_STOP(); - - auto insert_latency = TIMER_RESULT(); - size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); - - TIMER_START(); - run_queries(extension, queries); - TIMER_STOP(); - - auto query_latency = TIMER_RESULT() / queries.size(); - - fprintf(stdout, "%ld\t%ld\n", insert_throughput, query_latency); - - gsl_rng_free(rng); - delete extension; - fflush(stderr); -} - diff --git a/benchmarks/vldb/alex_bench.cpp b/benchmarks/vldb/alex_bench.cpp new file mode 100644 index 0000000..f75afa6 --- /dev/null +++ b/benchmarks/vldb/alex_bench.cpp @@ -0,0 +1,205 @@ +#include "alex.h" +#include "include/standalone_utility.h" + +typedef uint64_t key_type; +typedef uint64_t value_type; + +typedef alex::Alex Alex; + +struct record { + key_type key; + value_type value; +}; + +struct query { + key_type lower_bound; + key_type upper_bound; +}; + +template +static bool build_insert_vec(std::fstream &file, std::vector &vec, size_t n, + double delete_prop, std::vector &to_delete, bool binary=false) { + vec.clear(); + for (size_t i=0; i to_delete, bool progress=true, bool binary=false) { + size_t batch = std::min(.1 * count, 25000.0); + + std::pair *insert_vec = new std::pair[count]; + Alex *alex = new Alex(); + + size_t cnt = 0; + record rec; + while (cnt < count && next_record(file, rec)) { + insert_vec[cnt] = {rec.key, rec.value}; + cnt++; + } + + std::sort(insert_vec, insert_vec + count); + + alex->bulk_load(insert_vec, count); + delete[] insert_vec; + + return alex; +} + + +static void alex_rq_insert(Alex &alex, std::fstream &file, size_t insert_cnt, double delete_prop, std::vector &to_delete, bool binary=false) { + size_t delete_cnt = insert_cnt * delete_prop; + + size_t applied_deletes = 0; + size_t applied_inserts = 0; + + size_t BATCH=1000; + + std::vector insert_vec; + std::vector delete_vec; + insert_vec.reserve(BATCH); + delete_vec.reserve(BATCH*delete_prop); + + size_t delete_idx = 0; + + bool continue_benchmark = true; + + size_t total_time = 0; + + while (applied_inserts < insert_cnt && continue_benchmark) { + continue_benchmark = build_insert_vec(file, insert_vec, BATCH, delete_prop, to_delete, binary); + progress_update((double) applied_inserts / (double) insert_cnt, "inserting:"); + if (applied_deletes < delete_cnt) { + build_delete_vec(to_delete, delete_vec, BATCH*delete_prop); + delete_idx = 0; + } + + if (insert_vec.size() == 0) { + break; + } + + auto insert_start = std::chrono::high_resolution_clock::now(); + for (size_t i=0; i(insert_stop - insert_start).count(); + } + + progress_update(1.0, "inserting:"); + + size_t throughput = (((double) (applied_inserts + applied_deletes) / (double) total_time) * 1e9); + + fprintf(stdout, "%ld\t", throughput); +} + + + +static void alex_rq_bench(Alex &alex, std::vector queries, size_t trial_cnt=1) +{ + char progbuf[25]; + sprintf(progbuf, "sampling:"); + + size_t batch_size = 100; + size_t batches = trial_cnt / batch_size; + size_t total_time = 0; + + std::vector result_set; + + for (int i=0; i(stop - start).count(); + } + + size_t latency = total_time / (trial_cnt * queries.size()); + + fprintf(stdout, "%ld\t", latency); +} + +int main(int argc, char **argv) +{ + if (argc < 5) { + fprintf(stderr, "Usage: alex_rq_bench \n"); + exit(EXIT_FAILURE); + } + + std::string filename = std::string(argv[1]); + size_t record_count = atol(argv[2]); + double delete_prop = atof(argv[3]); + std::string qfilename = std::string(argv[4]); + + size_t buffer_cap = 12000; + size_t scale_factor = 6; + double max_delete_prop = delete_prop; + bool use_osm = false; + + double insert_batch = 0.8; + + init_bench_env(record_count, true, use_osm); + auto queries = read_range_queries(qfilename, .0001); + + std::fstream datafile; + datafile.open(filename, std::ios::in | std::ios::binary); + + std::vector to_delete; + + // warm up the tree with initial_insertions number of initially inserted + // records + size_t warmup_cnt = insert_batch * record_count; + auto alex = warmup(datafile, warmup_cnt, delete_prop, to_delete, true, true); + + fprintf(stderr, "Size: %ld\n", alex->size()); + size_t insert_cnt = record_count - warmup_cnt; + + alex_rq_insert(*alex, datafile, insert_cnt, delete_prop, to_delete, true); + size_t memory_usage = alex->model_size() + alex->data_size(); + + fprintf(stderr, "Size: %ld\n", alex->size()); + fprintf(stdout, "%ld\t", memory_usage); + + alex_rq_bench(*alex, queries); + fprintf(stdout, "\n"); + + delete_bench_env(); + delete alex; + fflush(stdout); + fflush(stderr); + + exit(EXIT_SUCCESS); +} diff --git a/benchmarks/vldb/btree_bench.cpp b/benchmarks/vldb/btree_bench.cpp new file mode 100644 index 0000000..12107c6 --- /dev/null +++ b/benchmarks/vldb/btree_bench.cpp @@ -0,0 +1,90 @@ +/* + * + */ + +#define ENABLE_TIMER + +#include "shard/ISAMTree.h" +#include "query/irs.h" +#include "framework/interface/Record.h" +#include "file_util.h" +#include "benchmark_types.h" + +#include + +#include "psu-util/timer.h" +#include "standard_benchmarks.h" +#include "psu-ds/BTree.h" + +typedef btree_record Rec; + +typedef de::ISAMTree Shard; +typedef de::irs::Query Q; +typedef de::irs::Parms QP; + +void usage(char *progname) { + fprintf(stderr, "%s reccnt datafile queryfile", progname); +} + +int main(int argc, char **argv) { + + if (argc < 4) { + usage(argv[0]); + exit(EXIT_FAILURE); + } + + size_t n = atol(argv[1]); + std::string d_fname = std::string(argv[2]); + std::string q_fname = std::string(argv[3]); + + auto btree = BenchBTree(); + + gsl_rng *rng = gsl_rng_alloc(gsl_rng_mt19937); + + auto data = read_sosd_file(d_fname, n); + std::vector to_delete(n * delete_proportion); + size_t j=0; + for (size_t i=0; i(q_fname, .001); + for (auto &q : queries) { + q.sample_size = 1000; + q.rng = rng; + } + + /* warmup structure w/ 10% of records */ + size_t warmup = .3 * n; + size_t delete_idx = 0; + insert_records(&btree, 0, warmup, data, to_delete, delete_idx, false, rng); + + TIMER_INIT(); + + TIMER_START(); + insert_records(&btree, warmup, data.size(), data, to_delete, delete_idx, true, rng); + TIMER_STOP(); + + auto insert_latency = TIMER_RESULT(); + size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); + + TIMER_START(); + run_btree_queries(&btree, queries); + TIMER_STOP(); + + auto query_latency = TIMER_RESULT() / queries.size(); + + auto btree_size = btree.get_stats().inner_nodes * psudb::btree_default_traits::inner_slots * (sizeof(int64_t) + sizeof(void*)); + + /* account for memory wasted on gaps in the structure */ + btree_size += btree.get_stats().leaves * psudb::btree_default_traits::leaf_slots * sizeof(Rec); + btree_size -= btree.size() * sizeof(Rec); + + fprintf(stdout, "%ld\t%ld\t%ld\n", insert_throughput, query_latency, btree_size); + + gsl_rng_free(rng); + fflush(stderr); +} + diff --git a/benchmarks/vldb/dynamic_pgm_bench.cpp b/benchmarks/vldb/dynamic_pgm_bench.cpp new file mode 100644 index 0000000..249bc92 --- /dev/null +++ b/benchmarks/vldb/dynamic_pgm_bench.cpp @@ -0,0 +1,77 @@ +/* + * + */ + +#define ENABLE_TIMER + +#include + +#include "query/rangecount.h" +#include "framework/interface/Record.h" +#include "file_util.h" +#include "standard_benchmarks.h" +#include + +#include "psu-util/timer.h" + + +typedef de::Record Rec; +typedef de::rc::Parms QP; + +void usage(char *progname) { + fprintf(stderr, "%s reccnt datafile queryfile", progname); +} + +int main(int argc, char **argv) { + + if (argc < 4) { + usage(argv[0]); + exit(EXIT_FAILURE); + } + + size_t n = atol(argv[1]); + std::string d_fname = std::string(argv[2]); + std::string q_fname = std::string(argv[3]); + + std::vector> tmp_data; + PGM pgm(tmp_data.begin(), tmp_data.end()); + gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937); + + auto data = read_sosd_file(d_fname, n); + std::vector to_delete(n * delete_proportion); + size_t j=0; + for (size_t i=0; i(q_fname, .001); + + /* warmup structure w/ 10% of records */ + size_t warmup = .1 * n; + size_t delete_idx = 0; + insert_records(&pgm, 0, warmup, data, to_delete, delete_idx, false, rng); + + TIMER_INIT(); + + TIMER_START(); + insert_records(&pgm, warmup, data.size(), data, to_delete, delete_idx, true, rng); + TIMER_STOP(); + + auto insert_latency = TIMER_RESULT(); + size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); + + TIMER_START(); + run_queries(&pgm, queries); + TIMER_STOP(); + + auto query_latency = TIMER_RESULT() / queries.size(); + + auto ext_size = pgm.size_in_bytes(); + + fprintf(stdout, "%ld\t%ld\t%ld\n", insert_throughput, query_latency, ext_size); + + gsl_rng_free(rng); + fflush(stderr); +} + diff --git a/benchmarks/vldb/irs_bench.cpp b/benchmarks/vldb/irs_bench.cpp new file mode 100644 index 0000000..ca1e555 --- /dev/null +++ b/benchmarks/vldb/irs_bench.cpp @@ -0,0 +1,97 @@ +/* + * + */ + +#define ENABLE_TIMER + +#include "framework/DynamicExtension.h" +#include "shard/ISAMTree.h" +#include "query/irs.h" +#include "framework/interface/Record.h" +#include "file_util.h" + +#include + +#include "psu-util/timer.h" +#include "standard_benchmarks.h" + + +typedef de::Record Rec; +typedef de::ISAMTree Shard; +typedef de::irs::Query Q; +typedef de::DynamicExtension Ext; +typedef de::irs::Parms QP; + +void usage(char *progname) { + fprintf(stderr, "%s reccnt datafile queryfile", progname); +} + +int main(int argc, char **argv) { + + if (argc < 4) { + usage(argv[0]); + exit(EXIT_FAILURE); + } + + size_t n = atol(argv[1]); + std::string d_fname = std::string(argv[2]); + std::string q_fname = std::string(argv[3]); + + auto extension = new Ext(12000, 12001, 8, 0, 64); + gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937); + + auto data = read_sosd_file(d_fname, n); + std::vector to_delete(n * delete_proportion); + size_t j=0; + for (size_t i=0; i(q_fname, .001); + for (auto &q : queries) { + q.sample_size = 1000; + q.rng = rng; + } + + /* warmup structure w/ 10% of records */ + size_t warmup = .3 * n; + size_t delete_idx = 0; + insert_records(extension, 0, warmup, data, to_delete, delete_idx, false, rng); + + extension->await_next_epoch(); + + TIMER_INIT(); + + TIMER_START(); + insert_records(extension, warmup, data.size(), data, to_delete, delete_idx, true, rng); + TIMER_STOP(); + + auto insert_latency = TIMER_RESULT(); + size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); + + TIMER_START(); + run_queries(extension, queries); + TIMER_STOP(); + + auto query_latency = TIMER_RESULT() / queries.size(); + + auto shard = extension->create_static_structure(); + + TIMER_START(); + run_static_queries(shard, queries); + TIMER_STOP(); + + auto static_latency = TIMER_RESULT() / queries.size(); + + auto ext_size = extension->get_memory_usage() + extension->get_aux_memory_usage(); + auto static_size = shard->get_memory_usage();// + shard->get_aux_memory_usage(); + + fprintf(stdout, "%ld\t%ld\t%ld\t%ld\t%ld\n", insert_throughput, query_latency, ext_size, static_latency, static_size); + + gsl_rng_free(rng); + delete extension; + fflush(stderr); +} + diff --git a/benchmarks/vldb/mtree_bench.cpp b/benchmarks/vldb/mtree_bench.cpp new file mode 100644 index 0000000..35f56be --- /dev/null +++ b/benchmarks/vldb/mtree_bench.cpp @@ -0,0 +1,80 @@ +/* + * + */ + +#define ENABLE_TIMER + +#include "query/knn.h" +#include "file_util.h" +#include "standard_benchmarks.h" + +#include + +#include "psu-util/timer.h" + + +typedef Word2VecRec Rec; +typedef de::knn::Parms QP; + +void usage(char *progname) { + fprintf(stderr, "%s reccnt datafile queryfile\n", progname); +} + +int main(int argc, char **argv) { + + if (argc < 4) { + usage(argv[0]); + exit(EXIT_FAILURE); + } + + size_t n = atol(argv[1]); + std::string d_fname = std::string(argv[2]); + std::string q_fname = std::string(argv[3]); + + auto mtree = new MTree(); + gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937); + + fprintf(stderr, "[I] Reading data file...\n"); + auto data = read_vector_file(d_fname, n); + + fprintf(stderr, "[I] Generating delete vector\n"); + std::vector to_delete(n * delete_proportion); + size_t j=0; + for (size_t i=0; i(q_fname, 10); + + fprintf(stderr, "[I] Warming up structure...\n"); + /* warmup structure w/ 10% of records */ + size_t warmup = .1 * n; + size_t delete_idx = 0; + insert_records(mtree, 0, warmup, data, to_delete, delete_idx, false, rng); + + TIMER_INIT(); + + fprintf(stderr, "[I] Running Insertion Benchmark\n"); + TIMER_START(); + insert_records(mtree, warmup, data.size(), data, to_delete, delete_idx, true, rng); + TIMER_STOP(); + + auto insert_latency = TIMER_RESULT(); + size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); + + fprintf(stderr, "[I] Running Query Benchmark\n"); + TIMER_START(); + run_queries(mtree, queries); + TIMER_STOP(); + + auto query_latency = TIMER_RESULT() / queries.size(); + + fprintf(stdout, "%ld\t%ld\n", insert_throughput, query_latency); + + gsl_rng_free(rng); + delete mtree; + fflush(stderr); +} + diff --git a/benchmarks/vldb/pgm_bench.cpp b/benchmarks/vldb/pgm_bench.cpp new file mode 100644 index 0000000..f63ec8e --- /dev/null +++ b/benchmarks/vldb/pgm_bench.cpp @@ -0,0 +1,94 @@ +/* + * + */ + +#define ENABLE_TIMER + +#include + +#include "framework/DynamicExtension.h" +#include "shard/PGM.h" +#include "query/rangecount.h" +#include "framework/interface/Record.h" +#include "file_util.h" +#include "standard_benchmarks.h" + +#include + +#include "psu-util/timer.h" + + +typedef de::Record Rec; +typedef de::PGM Shard; +typedef de::rc::Query Q; +typedef de::DynamicExtension Ext; +typedef de::rc::Parms QP; + +void usage(char *progname) { + fprintf(stderr, "%s reccnt datafile queryfile", progname); +} + +int main(int argc, char **argv) { + + if (argc < 4) { + usage(argv[0]); + exit(EXIT_FAILURE); + } + + size_t n = atol(argv[1]); + std::string d_fname = std::string(argv[2]); + std::string q_fname = std::string(argv[3]); + + auto extension = new Ext(12000, 12001, 8, 0, 64); + gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937); + + auto data = read_sosd_file(d_fname, n); + std::vector to_delete(n * delete_proportion); + size_t j=0; + for (size_t i=0; i(q_fname, .001); + + /* warmup structure w/ 10% of records */ + size_t warmup = .1 * n; + size_t delete_idx = 0; + insert_records(extension, 0, warmup, data, to_delete, delete_idx, false, rng); + + extension->await_next_epoch(); + + TIMER_INIT(); + + TIMER_START(); + insert_records(extension, warmup, data.size(), data, to_delete, delete_idx, true, rng); + TIMER_STOP(); + + auto insert_latency = TIMER_RESULT(); + size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); + + TIMER_START(); + run_queries(extension, queries); + TIMER_STOP(); + + auto query_latency = TIMER_RESULT() / queries.size(); + + auto shard = extension->create_static_structure(); + + TIMER_START(); + run_static_queries(shard, queries); + TIMER_STOP(); + + auto static_latency = TIMER_RESULT() / queries.size(); + + auto ext_size = extension->get_memory_usage() + extension->get_aux_memory_usage(); + auto static_size = shard->get_memory_usage(); // + shard->get_aux_memory_usage(); + + fprintf(stdout, "%ld\t%ld\t%ld\t%ld\t%ld\n", insert_throughput, query_latency, ext_size, static_latency, static_size); + + gsl_rng_free(rng); + delete extension; + fflush(stderr); +} + diff --git a/benchmarks/vldb/ts_bench.cpp b/benchmarks/vldb/ts_bench.cpp new file mode 100644 index 0000000..a84635f --- /dev/null +++ b/benchmarks/vldb/ts_bench.cpp @@ -0,0 +1,94 @@ +/* + * + */ + +#define ENABLE_TIMER + +#include + +#include "framework/DynamicExtension.h" +#include "shard/TrieSpline.h" +#include "query/rangecount.h" +#include "framework/interface/Record.h" +#include "file_util.h" +#include "standard_benchmarks.h" + +#include + +#include "psu-util/timer.h" + + +typedef de::Record Rec; +typedef de::TrieSpline Shard; +typedef de::rc::Query Q; +typedef de::DynamicExtension Ext; +typedef de::rc::Parms QP; + +void usage(char *progname) { + fprintf(stderr, "%s reccnt datafile queryfile", progname); +} + +int main(int argc, char **argv) { + + if (argc < 4) { + usage(argv[0]); + exit(EXIT_FAILURE); + } + + size_t n = atol(argv[1]); + std::string d_fname = std::string(argv[2]); + std::string q_fname = std::string(argv[3]); + + auto extension = new Ext(12000, 12001, 8, 0, 64); + gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937); + + auto data = read_sosd_file(d_fname, n); + std::vector to_delete(n * delete_proportion); + size_t j=0; + for (size_t i=0; i(q_fname, .001); + + /* warmup structure w/ 10% of records */ + size_t warmup = .1 * n; + size_t delete_idx = 0; + insert_records(extension, 0, warmup, data, to_delete, delete_idx, false, rng); + + extension->await_next_epoch(); + + TIMER_INIT(); + + TIMER_START(); + insert_records(extension, warmup, data.size(), data, to_delete, delete_idx, true, rng); + TIMER_STOP(); + + auto insert_latency = TIMER_RESULT(); + size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); + + TIMER_START(); + run_queries(extension, queries); + TIMER_STOP(); + + auto query_latency = TIMER_RESULT() / queries.size(); + + auto shard = extension->create_static_structure(); + + TIMER_START(); + run_static_queries(shard, queries); + TIMER_STOP(); + + auto static_latency = TIMER_RESULT() / queries.size(); + + auto ext_size = extension->get_memory_usage() + extension->get_aux_memory_usage(); + auto static_size = shard->get_memory_usage(); //+ shard->get_aux_memory_usage(); + + fprintf(stdout, "%ld\t%ld\t%ld\t%ld\t%ld\n", insert_throughput, query_latency, ext_size, static_latency, static_size); + + gsl_rng_free(rng); + delete extension; + fflush(stderr); +} + diff --git a/benchmarks/vldb/ts_bsm_bench.cpp b/benchmarks/vldb/ts_bsm_bench.cpp new file mode 100644 index 0000000..706433d --- /dev/null +++ b/benchmarks/vldb/ts_bsm_bench.cpp @@ -0,0 +1,70 @@ +/* + * + */ + +#define ENABLE_TIMER + +#include + +#include "triespline_bsm.h" +#include "psu-util/bentley-saxe.h" +#include "framework/interface/Record.h" +#include "file_util.h" +#include "query/rangecount.h" +#include "psu-util/timer.h" +#include "standard_benchmarks.h" + +typedef std::pair Rec; +typedef de::Record FRec; + +typedef BSMTrieSpline Shard; +typedef de::rc::Parms QP; +typedef psudb::bsm::BentleySaxe Ext; + +void usage(char *progname) { + fprintf(stderr, "%s reccnt datafile queryfile", progname); +} + +int main(int argc, char **argv) { + + if (argc < 4) { + usage(argv[0]); + exit(EXIT_FAILURE); + } + + size_t n = atol(argv[1]); + std::string d_fname = std::string(argv[2]); + std::string q_fname = std::string(argv[3]); + + auto extension = new psudb::bsm::BentleySaxe(); + gsl_rng *rng = gsl_rng_alloc(gsl_rng_mt19937); + + auto data = read_sosd_file_pair(d_fname, n); + auto queries = read_range_queries(q_fname, .001); + + /* warmup structure w/ 10% of records */ + size_t warmup = .1 * n; + insert_records(extension, 0, warmup, data); + + TIMER_INIT(); + + TIMER_START(); + insert_records(extension, warmup, data.size(), data); + TIMER_STOP(); + + auto insert_latency = TIMER_RESULT(); + size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); + + TIMER_START(); + run_queries(extension, queries); + TIMER_STOP(); + + auto query_latency = TIMER_RESULT() / queries.size(); + + fprintf(stdout, "%ld\t%ld\n", insert_throughput, query_latency); + + gsl_rng_free(rng); + delete extension; + fflush(stderr); +} + diff --git a/benchmarks/vldb/ts_mdsp_bench.cpp b/benchmarks/vldb/ts_mdsp_bench.cpp new file mode 100644 index 0000000..4c5bf1e --- /dev/null +++ b/benchmarks/vldb/ts_mdsp_bench.cpp @@ -0,0 +1,70 @@ +/* + * + */ + +#define ENABLE_TIMER + +#include + +#include "triespline_bsm.h" +#include "psu-util/bentley-saxe.h" +#include "framework/interface/Record.h" +#include "file_util.h" +#include "query/rangecount.h" +#include "psu-util/timer.h" +#include "standard_benchmarks.h" + +typedef std::pair Rec; +typedef de::Record FRec; + +typedef BSMTrieSpline Shard; +typedef de::rc::Parms QP; +typedef psudb::bsm::BentleySaxe Ext; + +void usage(char *progname) { + fprintf(stderr, "%s reccnt datafile queryfile", progname); +} + +int main(int argc, char **argv) { + + if (argc < 4) { + usage(argv[0]); + exit(EXIT_FAILURE); + } + + size_t n = atol(argv[1]); + std::string d_fname = std::string(argv[2]); + std::string q_fname = std::string(argv[3]); + + auto extension = new psudb::bsm::BentleySaxe(); + gsl_rng *rng = gsl_rng_alloc(gsl_rng_mt19937); + + auto data = read_sosd_file_pair(d_fname, n); + auto queries = read_range_queries(q_fname, .001); + + /* warmup structure w/ 10% of records */ + size_t warmup = .1 * n; + insert_records(extension, 0, warmup, data); + + TIMER_INIT(); + + TIMER_START(); + insert_records(extension, warmup, data.size(), data); + TIMER_STOP(); + + auto insert_latency = TIMER_RESULT(); + size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); + + TIMER_START(); + run_queries(extension, queries); + TIMER_STOP(); + + auto query_latency = TIMER_RESULT() / queries.size(); + + fprintf(stdout, "%ld\t%ld\n", insert_throughput, query_latency); + + gsl_rng_free(rng); + delete extension; + fflush(stderr); +} + diff --git a/benchmarks/vldb/vptree_bench.cpp b/benchmarks/vldb/vptree_bench.cpp new file mode 100644 index 0000000..613c556 --- /dev/null +++ b/benchmarks/vldb/vptree_bench.cpp @@ -0,0 +1,100 @@ +/* + * + */ + +#define ENABLE_TIMER + +#include "framework/DynamicExtension.h" +#include "shard/VPTree.h" +#include "query/knn.h" +#include "framework/interface/Record.h" +#include "file_util.h" +#include "standard_benchmarks.h" + +#include + +#include "psu-util/timer.h" + + +typedef Word2VecRec Rec; + +typedef de::VPTree Shard; +typedef de::knn::Query Q; +typedef de::DynamicExtension Ext; +typedef de::knn::Parms QP; + +void usage(char *progname) { + fprintf(stderr, "%s reccnt datafile queryfile", progname); +} + +int main(int argc, char **argv) { + + if (argc < 4) { + usage(argv[0]); + exit(EXIT_FAILURE); + } + + size_t n = atol(argv[1]); + std::string d_fname = std::string(argv[2]); + std::string q_fname = std::string(argv[3]); + + auto extension = new Ext(100, 1000, 8, 0, 64); + gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937); + + fprintf(stderr, "[I] Reading data file...\n"); + auto data = read_vector_file(d_fname, n); + + fprintf(stderr, "[I] Generating delete vector\n"); + std::vector to_delete(n * delete_proportion); + size_t j=0; + for (size_t i=0; i(q_fname, 10); + + fprintf(stderr, "[I] Warming up structure...\n"); + /* warmup structure w/ 10% of records */ + size_t warmup = .1 * n; + size_t delete_idx = 0; + insert_records(extension, 0, warmup, data, to_delete, delete_idx, false, rng); + + extension->await_next_epoch(); + + TIMER_INIT(); + + fprintf(stderr, "[I] Running Insertion Benchmark\n"); + TIMER_START(); + insert_records(extension, warmup, data.size(), data, to_delete, delete_idx, true, rng); + TIMER_STOP(); + + auto insert_latency = TIMER_RESULT(); + size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); + + fprintf(stderr, "[I] Running Query Benchmark\n"); + TIMER_START(); + run_queries(extension, queries); + TIMER_STOP(); + + auto query_latency = TIMER_RESULT() / queries.size(); + + auto shard = extension->create_static_structure(); + + TIMER_START(); + run_static_queries(shard, queries); + TIMER_STOP(); + + auto static_latency = TIMER_RESULT() / queries.size(); + + auto ext_size = extension->get_memory_usage() + extension->get_aux_memory_usage(); + auto static_size = shard->get_memory_usage(); // + shard->get_aux_memory_usage(); + + fprintf(stdout, "%ld\t%ld\t%ld\t%ld\t%ld\n", insert_throughput, query_latency, ext_size, static_latency, static_size); + + gsl_rng_free(rng); + delete extension; + fflush(stderr); +} + diff --git a/benchmarks/vptree_bench.cpp b/benchmarks/vptree_bench.cpp deleted file mode 100644 index 1219076..0000000 --- a/benchmarks/vptree_bench.cpp +++ /dev/null @@ -1,100 +0,0 @@ -/* - * - */ - -#define ENABLE_TIMER - -#include "framework/DynamicExtension.h" -#include "shard/VPTree.h" -#include "query/knn.h" -#include "framework/interface/Record.h" -#include "include/file_util.h" -#include "include/standard_benchmarks.h" - -#include - -#include "psu-util/timer.h" - - -typedef Word2VecRec Rec; - -typedef de::VPTree Shard; -typedef de::knn::Query Q; -typedef de::DynamicExtension Ext; -typedef de::knn::Parms QP; - -void usage(char *progname) { - fprintf(stderr, "%s reccnt datafile queryfile", progname); -} - -int main(int argc, char **argv) { - - if (argc < 4) { - usage(argv[0]); - exit(EXIT_FAILURE); - } - - size_t n = atol(argv[1]); - std::string d_fname = std::string(argv[2]); - std::string q_fname = std::string(argv[3]); - - auto extension = new Ext(100, 1000, 8, 0, 64); - gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937); - - fprintf(stderr, "[I] Reading data file...\n"); - auto data = read_vector_file(d_fname, n); - - fprintf(stderr, "[I] Generating delete vector\n"); - std::vector to_delete(n * delete_proportion); - size_t j=0; - for (size_t i=0; i(q_fname, 10); - - fprintf(stderr, "[I] Warming up structure...\n"); - /* warmup structure w/ 10% of records */ - size_t warmup = .1 * n; - size_t delete_idx = 0; - insert_records(extension, 0, warmup, data, to_delete, delete_idx, false, rng); - - extension->await_next_epoch(); - - TIMER_INIT(); - - fprintf(stderr, "[I] Running Insertion Benchmark\n"); - TIMER_START(); - insert_records(extension, warmup, data.size(), data, to_delete, delete_idx, true, rng); - TIMER_STOP(); - - auto insert_latency = TIMER_RESULT(); - size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); - - fprintf(stderr, "[I] Running Query Benchmark\n"); - TIMER_START(); - run_queries(extension, queries); - TIMER_STOP(); - - auto query_latency = TIMER_RESULT() / queries.size(); - - auto shard = extension->create_static_structure(); - - TIMER_START(); - run_static_queries(shard, queries); - TIMER_STOP(); - - auto static_latency = TIMER_RESULT() / queries.size(); - - auto ext_size = extension->get_memory_usage() + extension->get_aux_memory_usage(); - auto static_size = shard->get_memory_usage(); // + shard->get_aux_memory_usage(); - - fprintf(stdout, "%ld\t%ld\t%ld\t%ld\t%ld\n", insert_throughput, query_latency, ext_size, static_latency, static_size); - - gsl_rng_free(rng); - delete extension; - fflush(stderr); -} - -- cgit v1.2.3 From 76fe96b18bfe748dcc5a3d4c0301cc6df9f9acce Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Mon, 22 Apr 2024 15:16:14 -0400 Subject: Updated psudb-common --- external/psudb-common | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/psudb-common b/external/psudb-common index 6f938d6..a34bedf 160000 --- a/external/psudb-common +++ b/external/psudb-common @@ -1 +1 @@ -Subproject commit 6f938d68945343881160cae5fdef3a8eccb6b031 +Subproject commit a34bedfa068765ca2cbd4c643b648a5e0d7dd2e1 -- cgit v1.2.3 From 4d6a164f85352ca9f297b28bd1b677c8fc6ab4f3 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Mon, 22 Apr 2024 15:31:03 -0400 Subject: TS Parameter sweep benchmark --- CMakeLists.txt | 5 ++ benchmarks/vldb/ts_parmsweep.cpp | 124 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 129 insertions(+) create mode 100644 benchmarks/vldb/ts_parmsweep.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 8e6cdfc..3d812a0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -166,6 +166,11 @@ if (vldb_bench) target_include_directories(ts_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) target_link_options(ts_bench PUBLIC -mcx16) + add_executable(ts_parmsweep ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/ts_parmsweep.cpp) + target_link_libraries(ts_parmsweep PUBLIC gsl pthread atomic) + target_include_directories(ts_parmsweep PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) + target_link_options(ts_parmsweep PUBLIC -mcx16) + add_executable(ts_bsm_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/ts_bsm_bench.cpp) target_link_libraries(ts_bsm_bench PUBLIC gsl pthread atomic) target_include_directories(ts_bsm_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) diff --git a/benchmarks/vldb/ts_parmsweep.cpp b/benchmarks/vldb/ts_parmsweep.cpp new file mode 100644 index 0000000..fd71e11 --- /dev/null +++ b/benchmarks/vldb/ts_parmsweep.cpp @@ -0,0 +1,124 @@ +/* + * + */ + +#define ENABLE_TIMER + +#include "framework/DynamicExtension.h" +#include "shard/TrieSpline.h" +#include "query/rangecount.h" +#include "framework/interface/Record.h" +#include "file_util.h" +#include "standard_benchmarks.h" + +#include + +#include "psu-util/timer.h" + + +typedef de::Record Rec; +typedef de::TrieSpline Shard; +typedef de::rc::Query Q; +typedef de::DynamicExtension Ext; +typedef de::DynamicExtension Ext2; +typedef de::rc::Parms QP; + +void usage(char *progname) { + fprintf(stderr, "%s reccnt datafile queryfile\n", progname); +} + +int main(int argc, char **argv) { + + if (argc < 4) { + usage(argv[0]); + exit(EXIT_FAILURE); + } + + size_t n = atol(argv[1]); + std::string d_fname = std::string(argv[2]); + std::string q_fname = std::string(argv[3]); + + gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937); + + auto data = read_sosd_file(d_fname, n); + std::vector to_delete(n * delete_proportion); + size_t j=0; + for (size_t i=0; i(q_fname, .001); + + const std::vector policies = {de::LayoutPolicy::LEVELING, de::LayoutPolicy::TEIRING}; + const std::vector buffer_sizes = {1000, 4000, 8000, 12000, 15000, 20000}; + const std::vector scale_factors = {2, 4, 6, 8, 10, 12}; + + for (const auto &bs : buffer_sizes) { + for (const auto &sf : scale_factors) { + auto extension = new Ext(bs, bs, sf, 0, 64); + /* warmup structure w/ 10% of records */ + size_t warmup = .1 * n; + size_t delete_idx = 0; + insert_records(extension, 0, warmup, data, to_delete, delete_idx, false, rng); + + extension->await_next_epoch(); + + TIMER_INIT(); + + TIMER_START(); + insert_records(extension, warmup, data.size(), data, to_delete, delete_idx, true, rng); + TIMER_STOP(); + + auto insert_latency = TIMER_RESULT(); + size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); + + TIMER_START(); + run_queries(extension, queries); + TIMER_STOP(); + + auto query_latency = TIMER_RESULT() / queries.size(); + + auto ext_size = extension->get_memory_usage() + extension->get_aux_memory_usage(); + + fprintf(stdout, "TIERING\t%ld\t%ld\t%ld\t%ld\t%ld\n", bs, sf, insert_throughput, query_latency, ext_size); + delete extension; + } + } + + for (const auto &bs : buffer_sizes) { + for (const auto &sf : scale_factors) { + auto extension = new Ext2(bs, bs, sf, 0, 64); + /* warmup structure w/ 10% of records */ + size_t warmup = .1 * n; + size_t delete_idx = 0; + insert_records(extension, 0, warmup, data, to_delete, delete_idx, false, rng); + + extension->await_next_epoch(); + + TIMER_INIT(); + + TIMER_START(); + insert_records(extension, warmup, data.size(), data, to_delete, delete_idx, true, rng); + TIMER_STOP(); + + auto insert_latency = TIMER_RESULT(); + size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); + + TIMER_START(); + run_queries(extension, queries); + TIMER_STOP(); + + auto query_latency = TIMER_RESULT() / queries.size(); + + auto ext_size = extension->get_memory_usage() + extension->get_aux_memory_usage(); + + fprintf(stdout, "LEVELING\t%ld\t%ld\t%ld\t%ld\t%ld\n", bs, sf, insert_throughput, query_latency, ext_size); + delete extension; + } + } + + gsl_rng_free(rng); + fflush(stderr); +} + -- cgit v1.2.3 From e65edcf4030afdaef6955f366fd29d7518aa7352 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Mon, 22 Apr 2024 15:31:14 -0400 Subject: Fixed usage printf() in benchmarks --- benchmarks/vldb/btree_bench.cpp | 2 +- benchmarks/vldb/dynamic_pgm_bench.cpp | 2 +- benchmarks/vldb/irs_bench.cpp | 2 +- benchmarks/vldb/pgm_bench.cpp | 2 +- benchmarks/vldb/ts_bench.cpp | 2 +- benchmarks/vldb/ts_bsm_bench.cpp | 2 +- benchmarks/vldb/ts_mdsp_bench.cpp | 2 +- benchmarks/vldb/vptree_bench.cpp | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/benchmarks/vldb/btree_bench.cpp b/benchmarks/vldb/btree_bench.cpp index 12107c6..6d1be9f 100644 --- a/benchmarks/vldb/btree_bench.cpp +++ b/benchmarks/vldb/btree_bench.cpp @@ -23,7 +23,7 @@ typedef de::irs::Query Q; typedef de::irs::Parms QP; void usage(char *progname) { - fprintf(stderr, "%s reccnt datafile queryfile", progname); + fprintf(stderr, "%s reccnt datafile queryfile\n", progname); } int main(int argc, char **argv) { diff --git a/benchmarks/vldb/dynamic_pgm_bench.cpp b/benchmarks/vldb/dynamic_pgm_bench.cpp index 249bc92..8d2f4dd 100644 --- a/benchmarks/vldb/dynamic_pgm_bench.cpp +++ b/benchmarks/vldb/dynamic_pgm_bench.cpp @@ -19,7 +19,7 @@ typedef de::Record Rec; typedef de::rc::Parms QP; void usage(char *progname) { - fprintf(stderr, "%s reccnt datafile queryfile", progname); + fprintf(stderr, "%s reccnt datafile queryfile\n", progname); } int main(int argc, char **argv) { diff --git a/benchmarks/vldb/irs_bench.cpp b/benchmarks/vldb/irs_bench.cpp index ca1e555..dabe79e 100644 --- a/benchmarks/vldb/irs_bench.cpp +++ b/benchmarks/vldb/irs_bench.cpp @@ -23,7 +23,7 @@ typedef de::DynamicExtension QP; void usage(char *progname) { - fprintf(stderr, "%s reccnt datafile queryfile", progname); + fprintf(stderr, "%s reccnt datafile queryfile\n", progname); } int main(int argc, char **argv) { diff --git a/benchmarks/vldb/pgm_bench.cpp b/benchmarks/vldb/pgm_bench.cpp index f63ec8e..498ef8f 100644 --- a/benchmarks/vldb/pgm_bench.cpp +++ b/benchmarks/vldb/pgm_bench.cpp @@ -25,7 +25,7 @@ typedef de::DynamicExtension QP; void usage(char *progname) { - fprintf(stderr, "%s reccnt datafile queryfile", progname); + fprintf(stderr, "%s reccnt datafile queryfile\n", progname); } int main(int argc, char **argv) { diff --git a/benchmarks/vldb/ts_bench.cpp b/benchmarks/vldb/ts_bench.cpp index a84635f..5a4cc13 100644 --- a/benchmarks/vldb/ts_bench.cpp +++ b/benchmarks/vldb/ts_bench.cpp @@ -25,7 +25,7 @@ typedef de::DynamicExtension QP; void usage(char *progname) { - fprintf(stderr, "%s reccnt datafile queryfile", progname); + fprintf(stderr, "%s reccnt datafile queryfile\n", progname); } int main(int argc, char **argv) { diff --git a/benchmarks/vldb/ts_bsm_bench.cpp b/benchmarks/vldb/ts_bsm_bench.cpp index 706433d..941e3da 100644 --- a/benchmarks/vldb/ts_bsm_bench.cpp +++ b/benchmarks/vldb/ts_bsm_bench.cpp @@ -22,7 +22,7 @@ typedef de::rc::Parms QP; typedef psudb::bsm::BentleySaxe Ext; void usage(char *progname) { - fprintf(stderr, "%s reccnt datafile queryfile", progname); + fprintf(stderr, "%s reccnt datafile queryfile\n", progname); } int main(int argc, char **argv) { diff --git a/benchmarks/vldb/ts_mdsp_bench.cpp b/benchmarks/vldb/ts_mdsp_bench.cpp index 4c5bf1e..44c641d 100644 --- a/benchmarks/vldb/ts_mdsp_bench.cpp +++ b/benchmarks/vldb/ts_mdsp_bench.cpp @@ -22,7 +22,7 @@ typedef de::rc::Parms QP; typedef psudb::bsm::BentleySaxe Ext; void usage(char *progname) { - fprintf(stderr, "%s reccnt datafile queryfile", progname); + fprintf(stderr, "%s reccnt datafile queryfile\n", progname); } int main(int argc, char **argv) { diff --git a/benchmarks/vldb/vptree_bench.cpp b/benchmarks/vldb/vptree_bench.cpp index 613c556..b17a57b 100644 --- a/benchmarks/vldb/vptree_bench.cpp +++ b/benchmarks/vldb/vptree_bench.cpp @@ -24,7 +24,7 @@ typedef de::DynamicExtension QP; void usage(char *progname) { - fprintf(stderr, "%s reccnt datafile queryfile", progname); + fprintf(stderr, "%s reccnt datafile queryfile\n", progname); } int main(int argc, char **argv) { -- cgit v1.2.3 From fb08023dea10c9a7673ceb2c8ef67718937717b8 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Tue, 23 Apr 2024 13:24:27 -0400 Subject: benchmarks/file_util: removed dependency on framework in prep for ALEX --- benchmarks/include/file_util.h | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/benchmarks/include/file_util.h b/benchmarks/include/file_util.h index ea8b42e..8dc1b5f 100644 --- a/benchmarks/include/file_util.h +++ b/benchmarks/include/file_util.h @@ -8,9 +8,6 @@ #include #include -#include "framework/interface/Record.h" -#include "query/irs.h" - #pragma once template @@ -81,7 +78,7 @@ static std::vector read_knn_queries(std::string fname, size_t k) { return queries; } -template +template static std::vector read_sosd_file(std::string &fname, size_t n) { std::fstream file; file.open(fname, std::ios::in | std::ios::binary); -- cgit v1.2.3 From d710125be2958f0b76c2601c357966fd74263c87 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Tue, 23 Apr 2024 13:24:50 -0400 Subject: BSMTriespline: updated to use a rangecount query --- benchmarks/include/triespline_bsm.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/benchmarks/include/triespline_bsm.h b/benchmarks/include/triespline_bsm.h index 9613a62..4276074 100644 --- a/benchmarks/include/triespline_bsm.h +++ b/benchmarks/include/triespline_bsm.h @@ -34,6 +34,7 @@ public: /* return an empty result set if q is invalid */ if (q == nullptr) { + rs.push_back({0, 0}); return rs; } @@ -41,15 +42,18 @@ public: size_t idx = lower_bound(parms->lower_bound); + size_t cnt = 0; while (idx < m_data.size() && m_data[idx].first < parms->upper_bound) { - rs.emplace_back(m_data[idx++]); + cnt++; } + rs.push_back({cnt, 0}); + return std::move(rs); } std::vector query_merge(std::vector &rsa, std::vector &rsb) { - rsa.insert(rsa.end(), rsb.begin(), rsb.end()); + rsa[0].first += rsb[0].first; return std::move(rsa); } @@ -57,10 +61,8 @@ public: return m_data.size(); } - ~BSMTrieSpline() = default; - private: std::vector m_data; K m_max_key; -- cgit v1.2.3 From 909ba1e59ce654db3ea9294201dec2bc826b0b72 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Tue, 23 Apr 2024 13:25:17 -0400 Subject: Added vptree parmsweep benchmark and fixed some CMake issues --- CMakeLists.txt | 12 ++++ benchmarks/vldb/vptree_parmsweep.cpp | 129 +++++++++++++++++++++++++++++++++++ 2 files changed, 141 insertions(+) create mode 100644 benchmarks/vldb/vptree_parmsweep.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 3d812a0..37926ca 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -155,31 +155,43 @@ if (vldb_bench) target_link_libraries(irs_bench PUBLIC gsl pthread atomic) target_include_directories(irs_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) target_link_options(irs_bench PUBLIC -mcx16) + target_compile_options(irs_bench PUBLIC -fopenmp) add_executable(vptree_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/vptree_bench.cpp) target_link_libraries(vptree_bench PUBLIC gsl pthread atomic) target_include_directories(vptree_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) target_link_options(vptree_bench PUBLIC -mcx16) + target_compile_options(vptree_bench PUBLIC -fopenmp) + + add_executable(vptree_parmsweep ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/vptree_parmsweep.cpp) + target_link_libraries(vptree_parmsweep PUBLIC gsl pthread atomic) + target_include_directories(vptree_parmsweep PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) + target_link_options(vptree_parmsweep PUBLIC -mcx16) + target_compile_options(vptree_parmsweep PUBLIC -fopenmp) add_executable(ts_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/ts_bench.cpp) target_link_libraries(ts_bench PUBLIC gsl pthread atomic) target_include_directories(ts_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) target_link_options(ts_bench PUBLIC -mcx16) + target_compile_options(ts_bench PUBLIC -fopenmp) add_executable(ts_parmsweep ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/ts_parmsweep.cpp) target_link_libraries(ts_parmsweep PUBLIC gsl pthread atomic) target_include_directories(ts_parmsweep PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) target_link_options(ts_parmsweep PUBLIC -mcx16) + target_compile_options(ts_parmsweep PUBLIC -fopenmp) add_executable(ts_bsm_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/ts_bsm_bench.cpp) target_link_libraries(ts_bsm_bench PUBLIC gsl pthread atomic) target_include_directories(ts_bsm_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) target_link_options(ts_bsm_bench PUBLIC -mcx16) + target_compile_options(ts_bsm_bench PUBLIC -fopenmp) add_executable(ts_mdsp_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/ts_mdsp_bench.cpp) target_link_libraries(ts_mdsp_bench PUBLIC gsl pthread atomic) target_include_directories(ts_mdsp_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) target_link_options(ts_mdsp_bench PUBLIC -mcx16) + target_compile_options(ts_mdsp_bench PUBLIC -fopenmp) add_executable(pgm_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/pgm_bench.cpp) target_link_libraries(pgm_bench PUBLIC gsl pthread atomic gomp) diff --git a/benchmarks/vldb/vptree_parmsweep.cpp b/benchmarks/vldb/vptree_parmsweep.cpp new file mode 100644 index 0000000..2cbd521 --- /dev/null +++ b/benchmarks/vldb/vptree_parmsweep.cpp @@ -0,0 +1,129 @@ +/* + * + */ + +#define ENABLE_TIMER + +#include "framework/DynamicExtension.h" +#include "shard/VPTree.h" +#include "query/knn.h" +#include "framework/interface/Record.h" +#include "file_util.h" +#include "standard_benchmarks.h" + +#include + +#include "psu-util/timer.h" + + +typedef Word2VecRec Rec; + +typedef de::VPTree Shard; +typedef de::knn::Query Q; +typedef de::DynamicExtension Ext; +typedef de::DynamicExtension Ext2; +typedef de::knn::Parms QP; + +void usage(char *progname) { + fprintf(stderr, "%s reccnt datafile queryfile\n", progname); +} + +int main(int argc, char **argv) { + + if (argc < 4) { + usage(argv[0]); + exit(EXIT_FAILURE); + } + + size_t n = atol(argv[1]); + std::string d_fname = std::string(argv[2]); + std::string q_fname = std::string(argv[3]); + + gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937); + + auto data = read_vector_file(d_fname, n); + + std::vector to_delete(n * delete_proportion); + size_t j=0; + for (size_t i=0; i(q_fname, 10); + + + const std::vector policies = {de::LayoutPolicy::LEVELING, de::LayoutPolicy::TEIRING}; + const std::vector buffer_sizes = {100, 400, 800, 1200, 1500, 2000}; + const std::vector scale_factors = {2, 4, 6, 8, 10, 12}; + + for (const auto &bs : buffer_sizes) { + for (const auto &sf : scale_factors) { + auto extension = new Ext(bs, bs, sf, 0, 64); + + /* warmup structure w/ 10% of records */ + size_t warmup = .1 * n; + size_t delete_idx = 0; + insert_records(extension, 0, warmup, data, to_delete, delete_idx, false, rng); + + extension->await_next_epoch(); + + TIMER_INIT(); + + TIMER_START(); + insert_records(extension, warmup, data.size(), data, to_delete, delete_idx, true, rng); + TIMER_STOP(); + + auto insert_latency = TIMER_RESULT(); + size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); + + TIMER_START(); + run_queries(extension, queries); + TIMER_STOP(); + + auto query_latency = TIMER_RESULT() / queries.size(); + + auto ext_size = extension->get_memory_usage() + extension->get_aux_memory_usage(); + + fprintf(stdout, "TIERING\t%ld\t%ld\t%ld\t%ld\t%ld\n", bs, sf, insert_throughput, query_latency, ext_size); + delete extension; + } + } + + for (const auto &bs : buffer_sizes) { + for (const auto &sf : scale_factors) { + auto extension = new Ext2(bs, bs, sf, 0, 64); + + /* warmup structure w/ 10% of records */ + size_t warmup = .1 * n; + size_t delete_idx = 0; + insert_records(extension, 0, warmup, data, to_delete, delete_idx, false, rng); + + extension->await_next_epoch(); + + TIMER_INIT(); + + TIMER_START(); + insert_records(extension, warmup, data.size(), data, to_delete, delete_idx, true, rng); + TIMER_STOP(); + + auto insert_latency = TIMER_RESULT(); + size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); + + TIMER_START(); + run_queries(extension, queries); + TIMER_STOP(); + + auto query_latency = TIMER_RESULT() / queries.size(); + + auto ext_size = extension->get_memory_usage() + extension->get_aux_memory_usage(); + + fprintf(stdout, "LEVELING\t%ld\t%ld\t%ld\t%ld\t%ld\n", bs, sf, insert_throughput, query_latency, ext_size); + delete extension; + } + } + + gsl_rng_free(rng); + fflush(stderr); +} + -- cgit v1.2.3 From e801222023330cf36602d37be64091565172bd2d Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Mon, 29 Apr 2024 13:56:23 -0400 Subject: Updated dynamic PGM benchmark to use index size --- benchmarks/vldb/dynamic_pgm_bench.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmarks/vldb/dynamic_pgm_bench.cpp b/benchmarks/vldb/dynamic_pgm_bench.cpp index 8d2f4dd..580fa93 100644 --- a/benchmarks/vldb/dynamic_pgm_bench.cpp +++ b/benchmarks/vldb/dynamic_pgm_bench.cpp @@ -67,7 +67,7 @@ int main(int argc, char **argv) { auto query_latency = TIMER_RESULT() / queries.size(); - auto ext_size = pgm.size_in_bytes(); + auto ext_size = pgm.index_size_in_bytes(); fprintf(stdout, "%ld\t%ld\t%ld\n", insert_throughput, query_latency, ext_size); -- cgit v1.2.3 From c61164545f4c113fb17eb993e393bbf97373cfb3 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Mon, 29 Apr 2024 14:43:10 -0400 Subject: Alex benchmark --- CMakeLists.txt | 12 +-- benchmarks/vldb/alex_bench.cpp | 231 +++++++++++++++-------------------------- 2 files changed, 91 insertions(+), 152 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 37926ca..34b4bed 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,7 @@ cmake_minimum_required(VERSION 3.13) #set(CMAKE_CXX_COMPILER clang++) set(CMAKE_CXX_STANDARD 20) -set(CMAKE_CXX_STANDARD_REQUIRED True) +#set(CMAKE_CXX_STANDARD_REQUIRED True) set(namespace "de") project("Practical Dynamic Extension" VERSION 0.1.0) @@ -211,11 +211,11 @@ if (vldb_bench) target_link_options(btree_bench PUBLIC -mcx16) target_compile_options(btree_bench PUBLIC -fopenmp) - #add_executable(alex_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/alex_bench.cpp) - #target_link_libraries(alex_bench PUBLIC gsl pthread atomic gomp) - #target_include_directories(alex_bench PRIVATE include external/benchmarks/include external/psudb-common/cpp/include external/alex/src/core/) - #target_link_options(alex_bench PUBLIC -mcx16) - #target_compile_options(alex_bench PUBLIC -fopenmp -std=c++17) + add_executable(alex_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/alex_bench.cpp) + target_link_libraries(alex_bench PUBLIC gsl ) + target_include_directories(alex_bench PRIVATE external/psudb-common/cpp/include external/alex/src/core/ benchmarks/include) + target_compile_options(alex_bench PUBLIC -fopenmp) + set_property(TARGET alex_bench PROPERTY CXX_STANDARD 14) add_executable(mtree_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/mtree_bench.cpp) target_link_libraries(mtree_bench PUBLIC gsl pthread atomic gomp) diff --git a/benchmarks/vldb/alex_bench.cpp b/benchmarks/vldb/alex_bench.cpp index f75afa6..76df410 100644 --- a/benchmarks/vldb/alex_bench.cpp +++ b/benchmarks/vldb/alex_bench.cpp @@ -1,5 +1,10 @@ +#define ENABLE_TIMER + #include "alex.h" -#include "include/standalone_utility.h" + +#include "file_util.h" +#include "psu-util/progress.h" +#include "psu-util/timer.h" typedef uint64_t key_type; typedef uint64_t value_type; @@ -16,190 +21,124 @@ struct query { key_type upper_bound; }; -template -static bool build_insert_vec(std::fstream &file, std::vector &vec, size_t n, - double delete_prop, std::vector &to_delete, bool binary=false) { - vec.clear(); - for (size_t i=0; i to_delete, bool progress=true, bool binary=false) { - size_t batch = std::min(.1 * count, 25000.0); - - std::pair *insert_vec = new std::pair[count]; - Alex *alex = new Alex(); +static void insert_records(Alex *structure, size_t start, size_t stop, + std::vector &records, std::vector &to_delete, + size_t &delete_idx, bool delete_records, gsl_rng *rng) { - size_t cnt = 0; - record rec; - while (cnt < count && next_record(file, rec)) { - insert_vec[cnt] = {rec.key, rec.value}; - cnt++; - } + psudb::progress_update(0, "Insert Progress"); + size_t reccnt = 0; + for (size_t i=start; iinsert(records[i].key, records[i].value); - std::sort(insert_vec, insert_vec + count); + if (delete_records && gsl_rng_uniform(rng) <= + delete_proportion && to_delete[delete_idx] <= i) { - alex->bulk_load(insert_vec, count); - delete[] insert_vec; + structure->erase_one(records[i].key); + delete_idx++; + g_deleted_records++; + } + } - return alex; + psudb::progress_update(1, "Insert Progress"); } +size_t g_global_cnt = 0; -static void alex_rq_insert(Alex &alex, std::fstream &file, size_t insert_cnt, double delete_prop, std::vector &to_delete, bool binary=false) { - size_t delete_cnt = insert_cnt * delete_prop; - - size_t applied_deletes = 0; - size_t applied_inserts = 0; - - size_t BATCH=1000; - - std::vector insert_vec; - std::vector delete_vec; - insert_vec.reserve(BATCH); - delete_vec.reserve(BATCH*delete_prop); - - size_t delete_idx = 0; - - bool continue_benchmark = true; - - size_t total_time = 0; - - while (applied_inserts < insert_cnt && continue_benchmark) { - continue_benchmark = build_insert_vec(file, insert_vec, BATCH, delete_prop, to_delete, binary); - progress_update((double) applied_inserts / (double) insert_cnt, "inserting:"); - if (applied_deletes < delete_cnt) { - build_delete_vec(to_delete, delete_vec, BATCH*delete_prop); - delete_idx = 0; - } - - if (insert_vec.size() == 0) { - break; - } - - auto insert_start = std::chrono::high_resolution_clock::now(); - for (size_t i=0; i &queries) { + for (size_t i=0; ifind(queries[i].lower_bound); + while (ptr != alex->end() && ptr.key() <= queries[i].upper_bound) { + cnt++; + ptr++; } - auto insert_stop = std::chrono::high_resolution_clock::now(); - - total_time += std::chrono::duration_cast(insert_stop - insert_start).count(); - } - - progress_update(1.0, "inserting:"); - - size_t throughput = (((double) (applied_inserts + applied_deletes) / (double) total_time) * 1e9); - fprintf(stdout, "%ld\t", throughput); + g_global_cnt += cnt; + } } +Alex *warmup_alex(std::vector records, size_t cnt) { + if (cnt >= records.size()) { + fprintf(stderr, "[E] Requesting warmup with more records than are available.\n"); + exit(EXIT_FAILURE); + } + auto alex = new Alex(); + std::pair *insert_vec = new std::pair[cnt]; -static void alex_rq_bench(Alex &alex, std::vector queries, size_t trial_cnt=1) -{ - char progbuf[25]; - sprintf(progbuf, "sampling:"); - - size_t batch_size = 100; - size_t batches = trial_cnt / batch_size; - size_t total_time = 0; - - std::vector result_set; - - for (int i=0; i(stop - start).count(); + for (size_t i=0; ibulk_load(insert_vec, cnt); + delete[] insert_vec; - fprintf(stdout, "%ld\t", latency); + return alex; } int main(int argc, char **argv) { - if (argc < 5) { - fprintf(stderr, "Usage: alex_rq_bench \n"); + if (argc < 4) { + usage(argv[0]); exit(EXIT_FAILURE); } - std::string filename = std::string(argv[1]); - size_t record_count = atol(argv[2]); - double delete_prop = atof(argv[3]); - std::string qfilename = std::string(argv[4]); + size_t n = atol(argv[1]); + std::string d_fname = std::string(argv[2]); + std::string q_fname = std::string(argv[3]); + + gsl_rng *rng = gsl_rng_alloc(gsl_rng_mt19937); - size_t buffer_cap = 12000; - size_t scale_factor = 6; - double max_delete_prop = delete_prop; - bool use_osm = false; - double insert_batch = 0.8; + auto data = read_sosd_file(d_fname, n); + std::vector to_delete(n * delete_proportion); + size_t j=0; + for (size_t i=0; i(qfilename, .0001); + auto queries = read_range_queries(q_fname, .001); - std::fstream datafile; - datafile.open(filename, std::ios::in | std::ios::binary); - std::vector to_delete; + size_t warmup = .1 * n; + size_t delete_idx = 0; - // warm up the tree with initial_insertions number of initially inserted - // records - size_t warmup_cnt = insert_batch * record_count; - auto alex = warmup(datafile, warmup_cnt, delete_prop, to_delete, true, true); + auto alex = warmup_alex(data, warmup); - fprintf(stderr, "Size: %ld\n", alex->size()); - size_t insert_cnt = record_count - warmup_cnt; + TIMER_INIT(); - alex_rq_insert(*alex, datafile, insert_cnt, delete_prop, to_delete, true); - size_t memory_usage = alex->model_size() + alex->data_size(); + TIMER_START(); + insert_records(alex, warmup, data.size(), data, to_delete, delete_idx, true, rng); + TIMER_STOP(); - fprintf(stderr, "Size: %ld\n", alex->size()); - fprintf(stdout, "%ld\t", memory_usage); + auto insert_latency = TIMER_RESULT(); + size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); - alex_rq_bench(*alex, queries); - fprintf(stdout, "\n"); + TIMER_START(); + run_queries(alex, queries); + TIMER_STOP(); - delete_bench_env(); - delete alex; + auto query_latency = TIMER_RESULT() / queries.size(); + + auto ext_size = alex->model_size() + alex->data_size() - (alex->size() * sizeof(record)); + + fprintf(stdout, "%ld\t%ld\t%lld\t%ld\n", insert_throughput, query_latency, ext_size, g_global_cnt); fflush(stdout); + + gsl_rng_free(rng); fflush(stderr); + delete alex; + exit(EXIT_SUCCESS); } -- cgit v1.2.3 From 47a386b50d904d3f1b7ce3cfc13c29ea96dd1e43 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Tue, 30 Apr 2024 14:18:08 -0400 Subject: Added VPTree BSM benchmark --- CMakeLists.txt | 6 + benchmarks/include/standard_benchmarks.h | 39 +++- benchmarks/include/triespline_bsm.h | 3 +- benchmarks/include/vptree_bsm.h | 317 +++++++++++++++++++++++++++++++ benchmarks/vldb/mtree_bench.cpp | 2 +- benchmarks/vldb/vptree_bench.cpp | 6 +- external/psudb-common | 2 +- 7 files changed, 369 insertions(+), 6 deletions(-) create mode 100644 benchmarks/include/vptree_bsm.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 34b4bed..d88db24 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -169,6 +169,12 @@ if (vldb_bench) target_link_options(vptree_parmsweep PUBLIC -mcx16) target_compile_options(vptree_parmsweep PUBLIC -fopenmp) + add_executable(vptree_bsm_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/vptree_bsm_bench.cpp) + target_link_libraries(vptree_bsm_bench PUBLIC gsl pthread atomic) + target_include_directories(vptree_bsm_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) + target_link_options(vptree_bsm_bench PUBLIC -mcx16) + target_compile_options(vptree_bsm_bench PUBLIC -fopenmp) + add_executable(ts_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/ts_bench.cpp) target_link_libraries(ts_bench PUBLIC gsl pthread atomic) target_include_directories(ts_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) diff --git a/benchmarks/include/standard_benchmarks.h b/benchmarks/include/standard_benchmarks.h index aaef679..76b5f7c 100644 --- a/benchmarks/include/standard_benchmarks.h +++ b/benchmarks/include/standard_benchmarks.h @@ -34,6 +34,14 @@ static void run_queries(DE *extension, std::vector &queries) { result.emplace_back(itr->data); itr++; } + + #ifdef BENCH_PRINT_RESULTS + fprintf(stdout, "\n\n"); + for (auto &r : result) { + fprintf(stdout, "%ld %lf %lf %lf %lf %lf %lf\n", result.size(), r.data[0], + r.data[1], r.data[2], r.data[3], r.data[4], r.data[5]); + } + #endif } else if constexpr (std::is_same_v) { size_t tot = 0; auto ptr = extension->find(queries[i].lower_bound); @@ -44,7 +52,26 @@ static void run_queries(DE *extension, std::vector &queries) { } else { auto res = extension->query(&queries[i]); if constexpr (!BSM) { - auto r = res.get(); + auto result = res.get(); + #ifdef BENCH_PRINT_RESULTS + fprintf(stdout, "\n\n"); + for (int i=result.size()-1; i>=0; i--) { + auto &r = result[i]; + fprintf(stdout, "%ld %lf %lf %lf %lf %lf %lf\n", result.size(), r.data[0], + r.data[1], r.data[2], r.data[3], r.data[4], r.data[5]); + } + fflush(stdout); + #endif + } else { + #ifdef BENCH_PRINT_RESULTS + fprintf(stdout, "\n\n"); + for (int i=res.size()-1; i>=0; i--) { + auto &r = res[i]; + fprintf(stdout, "%ld %lf %lf %lf %lf %lf %lf\n", res.size(), r.data[0], + r.data[1], r.data[2], r.data[3], r.data[4], r.data[5]); + } + fflush(stdout); + #endif } } } @@ -73,6 +100,16 @@ static void run_static_queries(S *shard, std::vector &queries) { Q::process_query_states(q, states, nullptr); auto res = Q::query(shard, state, q); + + #ifdef BENCH_PRINT_RESULTS + fprintf(stdout, "\n\n"); + for (int i=res.size()-1; i>=0; i--) { + auto &r = res[i].rec; + fprintf(stdout, "%ld %lf %lf %lf %lf %lf %lf\n", res.size(), r.data[0], + r.data[1], r.data[2], r.data[3], r.data[4], r.data[5]); + } + fflush(stdout); + #endif } } diff --git a/benchmarks/include/triespline_bsm.h b/benchmarks/include/triespline_bsm.h index 4276074..dfddc43 100644 --- a/benchmarks/include/triespline_bsm.h +++ b/benchmarks/include/triespline_bsm.h @@ -2,6 +2,7 @@ #include #include +#include #include "ts/builder.h" template @@ -52,7 +53,7 @@ public: return std::move(rs); } - std::vector query_merge(std::vector &rsa, std::vector &rsb) { + std::vector query_merge(std::vector &rsa, std::vector &rsb, void *parms) { rsa[0].first += rsb[0].first; return std::move(rsa); } diff --git a/benchmarks/include/vptree_bsm.h b/benchmarks/include/vptree_bsm.h new file mode 100644 index 0000000..2f12fcb --- /dev/null +++ b/benchmarks/include/vptree_bsm.h @@ -0,0 +1,317 @@ +#pragma once + +#include +#include +#include +#include +#include + +#include "psu-ds/PriorityQueue.h" +#include "framework/interface/Record.h" + +template +class BSMVPTree { +public: + struct KNNQueryParms { + R point; + size_t k; + }; + +public: + static BSMVPTree *build(std::vector &records) { + return new BSMVPTree(records); + } + + static BSMVPTree *build_presorted(std::vector &records) { + return new BSMVPTree(records); + } + + std::vector unbuild() { + return std::move(m_data); + } + + std::vector query(void *q) { + std::vector rs; + + /* return an empty result set if q is invalid */ + if (q == nullptr) { + return rs; + } + + auto parms = (BSMVPTree::KNNQueryParms*) q; + auto pq = psudb::PriorityQueue>(parms->k, &parms->point); + + if (parms->k >= m_data.size()) { + for (size_t i=0; i::max(); + internal_search(m_root, parms->point, parms->k, pq, &farthest); + } + + size_t i=0; + while (pq.size() > 0) { + rs.push_back(*pq.peek().data); + pq.pop(); + } + return std::move(rs); + } + + std::vector query_merge(std::vector &rsa, std::vector &rsb, void* parms) { + KNNQueryParms *p = (KNNQueryParms *) parms; + R rec = p->point; + size_t k = p->k; + + std::vector output; + + psudb::PriorityQueue> pq(k, &rec); + + for (size_t i=0; icalc_distance(rec); + double cur_dist = rsa[i].calc_distance(rec); + + if (cur_dist < head_dist) { + pq.pop(); + pq.push(&rsa[i]); + } + } + } + + for (size_t i=0; icalc_distance(rec); + double cur_dist = rsb[i].calc_distance(rec); + + if (cur_dist < head_dist) { + pq.pop(); + pq.push(&rsb[i]); + } + } + } + + while (pq.size() > 0) { + output.emplace_back(*pq.peek().data); + pq.pop(); + } + + return std::move(output); + } + + size_t record_count() { + return m_data.size(); + } + + ~BSMVPTree() { + delete m_root; + } + +private: + + struct vp_ptr { + R *ptr; + double dist; + }; + + struct vpnode { + size_t start; + size_t stop; + bool leaf; + + double radius; + vpnode *inside; + vpnode *outside; + + vpnode() : start(0), stop(0), leaf(false), radius(0.0), inside(nullptr), outside(nullptr) {} + + ~vpnode() { + delete inside; + delete outside; + } + }; + + std::vector m_data; + std::vector m_ptrs; + vpnode *m_root; + + size_t m_node_cnt; + + BSMVPTree(std::vector &records) { + m_data = std::move(records); + m_node_cnt = 0; + + for (size_t i=0; i stop) { + return nullptr; + } + + /* base-case: create a leaf node */ + if (stop - start <= LEAFSZ) { + vpnode *node = new vpnode(); + node->start = start; + node->stop = stop; + node->leaf = true; + + m_node_cnt++; + return node; + } + + /* + * select a random element to be the root of the + * subtree + */ + auto i = start + gsl_rng_uniform_int(rng, stop - start + 1); + swap(start, i); + + /* for efficiency, we'll pre-calculate the distances between each point and the root */ + for (size_t i=start+1; i<=stop; i++) { + m_ptrs[i].dist = m_ptrs[start].ptr->calc_distance(*m_ptrs[i].ptr); + } + + /* + * partition elements based on their distance from the start, + * with those elements with distance falling below the median + * distance going into the left sub-array and those above + * the median in the right. This is easily done using QuickSelect. + */ + auto mid = (start + 1 + stop) / 2; + quickselect(start + 1, stop, mid, m_ptrs[start].ptr, rng); + + /* Create a new node based on this partitioning */ + vpnode *node = new vpnode(); + node->start = start; + + /* store the radius of the circle used for partitioning the node. */ + node->radius = m_ptrs[start].ptr->calc_distance(*m_ptrs[mid].ptr); + m_ptrs[start].dist = node->radius; + + /* recursively construct the left and right subtrees */ + node->inside = build_subtree(start + 1, mid-1, rng); + node->outside = build_subtree(mid, stop, rng); + + m_node_cnt++; + + return node; + } + + void quickselect(size_t start, size_t stop, size_t k, R *p, gsl_rng *rng) { + if (start == stop) return; + + auto pivot = partition(start, stop, p, rng); + + if (k < pivot) { + quickselect(start, pivot - 1, k, p, rng); + } else if (k > pivot) { + quickselect(pivot + 1, stop, k, p, rng); + } + } + + size_t partition(size_t start, size_t stop, R *p, gsl_rng *rng) { + auto pivot = start + gsl_rng_uniform_int(rng, stop - start); + + swap(pivot, stop); + + size_t j = start; + for (size_t i=start; i> &pq, double *farthest) { + + if (node == nullptr) return; + + if (node->leaf) { + for (size_t i=node->start; i<=node->stop; i++) { + double d = point.calc_distance(*m_ptrs[i].ptr); + if (d < *farthest) { + if (pq.size() == k) { + pq.pop(); + } + + pq.push(m_ptrs[i].ptr); + if (pq.size() == k) { + *farthest = point.calc_distance(*pq.peek().data); + } + } + } + + return; + } + + double d = point.calc_distance(*m_ptrs[node->start].ptr); + + if (d < *farthest) { + if (pq.size() == k) { + auto t = pq.peek().data; + pq.pop(); + } + pq.push(m_ptrs[node->start].ptr); + if (pq.size() == k) { + *farthest = point.calc_distance(*pq.peek().data); + } + } + + if (d < node->radius) { + if (d - (*farthest) <= node->radius) { + internal_search(node->inside, point, k, pq, farthest); + } + + if (d + (*farthest) >= node->radius) { + internal_search(node->outside, point, k, pq, farthest); + } + } else { + if (d + (*farthest) >= node->radius) { + internal_search(node->outside, point, k, pq, farthest); + } + + if (d - (*farthest) <= node->radius) { + internal_search(node->inside, point, k, pq, farthest); + } + } + } +}; diff --git a/benchmarks/vldb/mtree_bench.cpp b/benchmarks/vldb/mtree_bench.cpp index 35f56be..60425da 100644 --- a/benchmarks/vldb/mtree_bench.cpp +++ b/benchmarks/vldb/mtree_bench.cpp @@ -46,7 +46,7 @@ int main(int argc, char **argv) { } } fprintf(stderr, "[I] Reading Queries\n"); - auto queries = read_knn_queries(q_fname, 10); + auto queries = read_knn_queries(q_fname, 1000); fprintf(stderr, "[I] Warming up structure...\n"); /* warmup structure w/ 10% of records */ diff --git a/benchmarks/vldb/vptree_bench.cpp b/benchmarks/vldb/vptree_bench.cpp index b17a57b..0b98a52 100644 --- a/benchmarks/vldb/vptree_bench.cpp +++ b/benchmarks/vldb/vptree_bench.cpp @@ -38,7 +38,7 @@ int main(int argc, char **argv) { std::string d_fname = std::string(argv[2]); std::string q_fname = std::string(argv[3]); - auto extension = new Ext(100, 1000, 8, 0, 64); + auto extension = new Ext(1400, 1400, 8, 0, 64); gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937); fprintf(stderr, "[I] Reading data file...\n"); @@ -53,7 +53,7 @@ int main(int argc, char **argv) { } } fprintf(stderr, "[I] Reading Queries\n"); - auto queries = read_knn_queries(q_fname, 10); + auto queries = read_knn_queries(q_fname, 1000); fprintf(stderr, "[I] Warming up structure...\n"); /* warmup structure w/ 10% of records */ @@ -82,6 +82,7 @@ int main(int argc, char **argv) { auto shard = extension->create_static_structure(); + fprintf(stderr, "Running Static query tests\n\n"); TIMER_START(); run_static_queries(shard, queries); TIMER_STOP(); @@ -96,5 +97,6 @@ int main(int argc, char **argv) { gsl_rng_free(rng); delete extension; fflush(stderr); + fflush(stdout); } diff --git a/external/psudb-common b/external/psudb-common index a34bedf..97cb5f1 160000 --- a/external/psudb-common +++ b/external/psudb-common @@ -1 +1 @@ -Subproject commit a34bedfa068765ca2cbd4c643b648a5e0d7dd2e1 +Subproject commit 97cb5f16c1fc9eb61bcdd132cbd7610b970bc415 -- cgit v1.2.3 From 56e7a202b492fa26137b381eea73e4c773df069d Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Tue, 30 Apr 2024 14:50:53 -0400 Subject: VPTree BSM Benchmark --- benchmarks/vldb/vptree_bsm_bench.cpp | 74 ++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 benchmarks/vldb/vptree_bsm_bench.cpp diff --git a/benchmarks/vldb/vptree_bsm_bench.cpp b/benchmarks/vldb/vptree_bsm_bench.cpp new file mode 100644 index 0000000..0798ec2 --- /dev/null +++ b/benchmarks/vldb/vptree_bsm_bench.cpp @@ -0,0 +1,74 @@ +/* + * + */ + +#define ENABLE_TIMER + +#include "vptree_bsm.h" +#include "file_util.h" +#include "standard_benchmarks.h" +#include "query/knn.h" + +#include + +#include "psu-util/timer.h" + + +typedef Word2VecRec Rec; + +typedef BSMVPTree Shard; +typedef de::knn::Parms QP; +typedef psudb::bsm::BentleySaxe Ext; + +void usage(char *progname) { + fprintf(stderr, "%s reccnt datafile queryfile\n", progname); +} + +int main(int argc, char **argv) { + + if (argc < 4) { + usage(argv[0]); + exit(EXIT_FAILURE); + } + + size_t n = atol(argv[1]); + std::string d_fname = std::string(argv[2]); + std::string q_fname = std::string(argv[3]); + + auto extension = new Ext(); + gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937); + + fprintf(stderr, "[I] Reading data file...\n"); + auto data = read_vector_file(d_fname, n); + auto queries = read_knn_queries(q_fname, 1000); + + fprintf(stderr, "[I] Warming up structure...\n"); + /* warmup structure w/ 10% of records */ + size_t warmup = .1 * n; + insert_records(extension, 0, warmup, data); + + TIMER_INIT(); + + fprintf(stderr, "[I] Running Insertion Benchmark\n"); + TIMER_START(); + insert_records(extension, warmup, data.size(), data); + TIMER_STOP(); + + auto insert_latency = TIMER_RESULT(); + size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); + + fprintf(stderr, "[I] Running Query Benchmark\n"); + TIMER_START(); + run_queries(extension, queries); + TIMER_STOP(); + + auto query_latency = TIMER_RESULT() / queries.size(); + + fprintf(stdout, "%ld\t%ld\n", insert_throughput, query_latency); + + gsl_rng_free(rng); + delete extension; + fflush(stderr); + fflush(stdout); +} + -- cgit v1.2.3 From 160692f4b9f80c6eba7d18d3221fc1c3e3c3139e Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Wed, 1 May 2024 13:31:24 -0400 Subject: Added error checks to file opening, and generalized key types --- benchmarks/include/file_util.h | 40 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/benchmarks/include/file_util.h b/benchmarks/include/file_util.h index 8dc1b5f..b5b3417 100644 --- a/benchmarks/include/file_util.h +++ b/benchmarks/include/file_util.h @@ -15,6 +15,12 @@ static std::vector read_lookup_queries(std::string fname, double selectivity std::vector queries; FILE *qf = fopen(fname.c_str(), "r"); + + if (!qf) { + fprintf(stderr, "ERROR: Failed to open file %s\n", fname.c_str()); + exit(EXIT_FAILURE); + } + size_t start, stop; double sel; while (fscanf(qf, "%zu%zu%lf\n", &start, &stop, &sel) != EOF) { @@ -34,6 +40,12 @@ static std::vector read_range_queries(std::string &fname, double selectivity std::vector queries; FILE *qf = fopen(fname.c_str(), "r"); + + if (!qf) { + fprintf(stderr, "ERROR: Failed to open file %s\n", fname.c_str()); + exit(EXIT_FAILURE); + } + size_t start, stop; double sel; while (fscanf(qf, "%zu%zu%lf\n", &start, &stop, &sel) != EOF) { @@ -58,6 +70,11 @@ static std::vector read_knn_queries(std::string fname, size_t k) { char *line = NULL; size_t len = 0; + if (!qf) { + fprintf(stderr, "ERROR: Failed to open file %s\n", fname.c_str()); + exit(EXIT_FAILURE); + } + while (getline(&line, &len, qf) > 0) { char *token; QP query; @@ -83,10 +100,15 @@ static std::vector read_sosd_file(std::string &fname, size_t n) { std::fstream file; file.open(fname, std::ios::in | std::ios::binary); + if (!file.is_open()) { + fprintf(stderr, "ERROR: Failed to open file %s\n", fname.c_str()); + exit(EXIT_FAILURE); + } + std::vector records(n); for (size_t i=0; i> read_sosd_file_pair(std::string &fname, size std::fstream file; file.open(fname, std::ios::in | std::ios::binary); + if (!file.is_open()) { + fprintf(stderr, "ERROR: Failed to open file %s\n", fname.c_str()); + exit(EXIT_FAILURE); + } + std::vector> records(n); for (size_t i=0; i read_vector_file(std::string &fname, size_t n) { std::fstream file; file.open(fname, std::ios::in); + if (!file.is_open()) { + fprintf(stderr, "ERROR: Failed to open file %s\n", fname.c_str()); + exit(EXIT_FAILURE); + } + std::vector records; records.reserve(n); -- cgit v1.2.3 From 5636838a6e64760c291b00107657a90428a0f9e1 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Wed, 1 May 2024 15:59:48 -0400 Subject: File Util: fixed the reading in of undesired queries --- benchmarks/include/file_util.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmarks/include/file_util.h b/benchmarks/include/file_util.h index b5b3417..ebcf17e 100644 --- a/benchmarks/include/file_util.h +++ b/benchmarks/include/file_util.h @@ -49,7 +49,7 @@ static std::vector read_range_queries(std::string &fname, double selectivity size_t start, stop; double sel; while (fscanf(qf, "%zu%zu%lf\n", &start, &stop, &sel) != EOF) { - if (start < stop && std::abs(sel - selectivity) < 0.1) { + if (start < stop && std::abs(sel - selectivity) < 0.00001) { QP q; q.lower_bound = start; q.upper_bound = stop; -- cgit v1.2.3 From 349cfd5090f586b7ec189b72c00786522199fe34 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Wed, 1 May 2024 16:03:19 -0400 Subject: TS BSM Adjustments --- benchmarks/include/standard_benchmarks.h | 39 +++++++++++++++++++++++++++++++- benchmarks/include/triespline_bsm.h | 31 ++++++++++++++++++++----- benchmarks/vldb/ts_bsm_bench.cpp | 19 ++++++++++++---- 3 files changed, 78 insertions(+), 11 deletions(-) diff --git a/benchmarks/include/standard_benchmarks.h b/benchmarks/include/standard_benchmarks.h index 76b5f7c..1261a4c 100644 --- a/benchmarks/include/standard_benchmarks.h +++ b/benchmarks/include/standard_benchmarks.h @@ -22,6 +22,19 @@ static size_t g_deleted_records = 0; static double delete_proportion = 0.05; +static volatile size_t total = 0; + +template +static void run_queries(DE *extension, DE *ghost, std::vector &queries) { + for (size_t i=0; i res = extension->query(&queries[i]); + std::vector negres = ghost->query(&queries[i]); + auto result = res[0].first - negres[0].first; + total = result; + } +} + + template static void run_queries(DE *extension, std::vector &queries) { for (size_t i=0; i &queries) { fflush(stdout); #endif } else { + total = res.size(); #ifdef BENCH_PRINT_RESULTS fprintf(stdout, "\n\n"); for (int i=res.size()-1; i>=0; i--) { @@ -123,7 +137,6 @@ static void insert_records(psudb::bsm::BentleySaxe *extension, size_t start, size_t stop, std::vector &records) { psudb::progress_update(0, "Insert Progress"); - size_t reccnt = 0; for (size_t i=start; iinsert(records[i]); } @@ -132,6 +145,30 @@ static void insert_records(psudb::bsm::BentleySaxe *extension, } +template +static void insert_records(psudb::bsm::BentleySaxe *extension, + psudb::bsm::BentleySaxe *ghost, + size_t start, size_t stop, std::vector &records, + std::vector &to_delete, size_t &delete_idx, + gsl_rng *rng) { + + psudb::progress_update(0, "Insert Progress"); + size_t reccnt = 0; + for (size_t i=start; iinsert(records[i]); + + if (gsl_rng_uniform(rng) <= delete_proportion && to_delete[delete_idx] <= i) { + ghost->insert(records[to_delete[delete_idx]]); + delete_idx++; + g_deleted_records++; + } + + } + +} + + template static void insert_records(DE *structure, size_t start, size_t stop, std::vector &records, std::vector &to_delete, diff --git a/benchmarks/include/triespline_bsm.h b/benchmarks/include/triespline_bsm.h index dfddc43..eaf1079 100644 --- a/benchmarks/include/triespline_bsm.h +++ b/benchmarks/include/triespline_bsm.h @@ -18,11 +18,19 @@ public: public: static BSMTrieSpline *build(std::vector &records) { + if (records.size() == 0) { + return nullptr; + } + std::sort(records.begin(), records.end()); return new BSMTrieSpline(records); } static BSMTrieSpline *build_presorted(std::vector &records) { + if (records.size() == 0) { + return nullptr; + } + return new BSMTrieSpline(records); } @@ -44,8 +52,9 @@ public: size_t idx = lower_bound(parms->lower_bound); size_t cnt = 0; - while (idx < m_data.size() && m_data[idx].first < parms->upper_bound) { + while (idx < m_data.size() && m_data[idx].first <= parms->upper_bound) { cnt++; + idx++; } rs.push_back({cnt, 0}); @@ -54,6 +63,10 @@ public: } std::vector query_merge(std::vector &rsa, std::vector &rsb, void *parms) { + /* initialize rsa on the first merge */ + if (rsa.size() == 0) { + rsa.push_back({0, 0}); + } rsa[0].first += rsb[0].first; return std::move(rsa); } @@ -75,6 +88,10 @@ private: m_min_key = m_data[0].first; m_max_key = m_data[m_data.size() - 1].first; + if (m_data.size() < 50) { + return; + } + auto bldr = ts::Builder(m_min_key, m_max_key, E); for (size_t i=0; i= key) { + return i; + } } + + return m_data.size(); } auto bound = m_ts.GetSearchBound(key); diff --git a/benchmarks/vldb/ts_bsm_bench.cpp b/benchmarks/vldb/ts_bsm_bench.cpp index 941e3da..049fd35 100644 --- a/benchmarks/vldb/ts_bsm_bench.cpp +++ b/benchmarks/vldb/ts_bsm_bench.cpp @@ -37,26 +37,37 @@ int main(int argc, char **argv) { std::string q_fname = std::string(argv[3]); auto extension = new psudb::bsm::BentleySaxe(); + auto ghost = new psudb::bsm::BentleySaxe(); gsl_rng *rng = gsl_rng_alloc(gsl_rng_mt19937); auto data = read_sosd_file_pair(d_fname, n); - auto queries = read_range_queries(q_fname, .001); + std::vector to_delete(n * delete_proportion); + size_t j=0; + for (size_t i=0; i(q_fname, .0001); /* warmup structure w/ 10% of records */ size_t warmup = .1 * n; - insert_records(extension, 0, warmup, data); + size_t delete_idx = 0; + insert_records(extension, ghost, 0, warmup, data, to_delete, + delete_idx, rng); TIMER_INIT(); TIMER_START(); - insert_records(extension, warmup, data.size(), data); + insert_records(extension, ghost, warmup, data.size(), data, + to_delete, delete_idx, rng); TIMER_STOP(); auto insert_latency = TIMER_RESULT(); size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); TIMER_START(); - run_queries(extension, queries); + run_queries(extension, ghost, queries); TIMER_STOP(); auto query_latency = TIMER_RESULT() / queries.size(); -- cgit v1.2.3 From 5576c5524b48e43e4d6070c28de7c3c66582ed97 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Wed, 1 May 2024 16:05:07 -0400 Subject: Query optimizations --- include/query/knn.h | 4 ++-- include/query/rangecount.h | 42 ++++++++++++++++++++---------------------- 2 files changed, 22 insertions(+), 24 deletions(-) diff --git a/include/query/knn.h b/include/query/knn.h index c856a74..a227293 100644 --- a/include/query/knn.h +++ b/include/query/knn.h @@ -111,7 +111,7 @@ public: pq.pop(); } - return results; + return std::move(results); } static std::vector merge(std::vector>> &results, void *parms, std::vector &output) { @@ -141,7 +141,7 @@ public: pq.pop(); } - return output; + return std::move(output); } static void delete_query_state(void *state) { diff --git a/include/query/rangecount.h b/include/query/rangecount.h index c20feaa..5a18ed4 100644 --- a/include/query/rangecount.h +++ b/include/query/rangecount.h @@ -42,13 +42,7 @@ public: constexpr static bool SKIP_DELETE_FILTER=true; static void *get_query_state(S *shard, void *parms) { - auto res = new State(); - auto p = (Parms *) parms; - - res->start_idx = shard->get_lower_bound(p->lower_bound); - res->stop_idx = shard->get_record_count(); - - return res; + return nullptr; } static void* get_buffer_query_state(BufferView *buffer, void *parms) { @@ -74,37 +68,43 @@ public: res.rec.value = 0; // tombstones records.emplace_back(res); + + auto start_idx = shard->get_lower_bound(p->lower_bound); + auto stop_idx = shard->get_lower_bound(p->upper_bound); + /* * if the returned index is one past the end of the * records for the PGM, then there are not records * in the index falling into the specified range. */ - if (s->start_idx == shard->get_record_count()) { + if (start_idx == shard->get_record_count()) { return records; } - auto ptr = shard->get_record_at(s->start_idx); /* * roll the pointer forward to the first record that is * greater than or equal to the lower bound. */ - while(ptr < shard->get_data() + s->stop_idx && ptr->rec.key < p->lower_bound) { - ptr++; + auto recs = shard->get_data(); + while(start_idx < stop_idx && recs[start_idx].rec.key < p->lower_bound) { + start_idx++; } - while (ptr < shard->get_data() + s->stop_idx && ptr->rec.key <= p->upper_bound) { - if (!ptr->is_deleted()) { - if (ptr->is_tombstone()) { - records[0].rec.value++; - } else { - records[0].rec.key++; - } - } + while (stop_idx < shard->get_record_count() && recs[stop_idx].rec.key <= p->upper_bound) { + stop_idx++; + } + size_t idx = start_idx; + size_t ts_cnt = 0; - ptr++; + while (idx < stop_idx) { + ts_cnt += recs[idx].is_tombstone() * 2 + recs[idx].is_deleted(); + idx++; } + records[0].rec.key = idx - start_idx; + records[0].rec.value = ts_cnt; + return records; } @@ -150,8 +150,6 @@ public: } static void delete_query_state(void *state) { - auto s = (State *) state; - delete s; } static void delete_buffer_query_state(void *state) { -- cgit v1.2.3 From ef2ec17c21cb331c37f25501394b009282604fcf Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Wed, 1 May 2024 16:06:20 -0400 Subject: Adjusted selectivity for range benches down to .0001 --- benchmarks/vldb/alex_bench.cpp | 2 +- benchmarks/vldb/btree_bench.cpp | 2 +- benchmarks/vldb/dynamic_pgm_bench.cpp | 2 +- benchmarks/vldb/irs_bench.cpp | 2 +- benchmarks/vldb/pgm_bench.cpp | 2 +- benchmarks/vldb/ts_bench.cpp | 5 +++-- benchmarks/vldb/ts_mdsp_bench.cpp | 2 +- 7 files changed, 9 insertions(+), 8 deletions(-) diff --git a/benchmarks/vldb/alex_bench.cpp b/benchmarks/vldb/alex_bench.cpp index 76df410..ba687f3 100644 --- a/benchmarks/vldb/alex_bench.cpp +++ b/benchmarks/vldb/alex_bench.cpp @@ -107,7 +107,7 @@ int main(int argc, char **argv) } } - auto queries = read_range_queries(q_fname, .001); + auto queries = read_range_queries(q_fname, .0001); size_t warmup = .1 * n; diff --git a/benchmarks/vldb/btree_bench.cpp b/benchmarks/vldb/btree_bench.cpp index 6d1be9f..673da33 100644 --- a/benchmarks/vldb/btree_bench.cpp +++ b/benchmarks/vldb/btree_bench.cpp @@ -50,7 +50,7 @@ int main(int argc, char **argv) { } } /* read in the range queries and add sample size and rng for sampling */ - auto queries = read_range_queries(q_fname, .001); + auto queries = read_range_queries(q_fname, .0001); for (auto &q : queries) { q.sample_size = 1000; q.rng = rng; diff --git a/benchmarks/vldb/dynamic_pgm_bench.cpp b/benchmarks/vldb/dynamic_pgm_bench.cpp index 580fa93..15b130f 100644 --- a/benchmarks/vldb/dynamic_pgm_bench.cpp +++ b/benchmarks/vldb/dynamic_pgm_bench.cpp @@ -45,7 +45,7 @@ int main(int argc, char **argv) { to_delete[j++] = i; } } - auto queries = read_range_queries(q_fname, .001); + auto queries = read_range_queries(q_fname, .0001); /* warmup structure w/ 10% of records */ size_t warmup = .1 * n; diff --git a/benchmarks/vldb/irs_bench.cpp b/benchmarks/vldb/irs_bench.cpp index dabe79e..f68de63 100644 --- a/benchmarks/vldb/irs_bench.cpp +++ b/benchmarks/vldb/irs_bench.cpp @@ -49,7 +49,7 @@ int main(int argc, char **argv) { } } /* read in the range queries and add sample size and rng for sampling */ - auto queries = read_range_queries(q_fname, .001); + auto queries = read_range_queries(q_fname, .0001); for (auto &q : queries) { q.sample_size = 1000; q.rng = rng; diff --git a/benchmarks/vldb/pgm_bench.cpp b/benchmarks/vldb/pgm_bench.cpp index 498ef8f..cec95df 100644 --- a/benchmarks/vldb/pgm_bench.cpp +++ b/benchmarks/vldb/pgm_bench.cpp @@ -50,7 +50,7 @@ int main(int argc, char **argv) { to_delete[j++] = i; } } - auto queries = read_range_queries(q_fname, .001); + auto queries = read_range_queries(q_fname, .0001); /* warmup structure w/ 10% of records */ size_t warmup = .1 * n; diff --git a/benchmarks/vldb/ts_bench.cpp b/benchmarks/vldb/ts_bench.cpp index 5a4cc13..81a430a 100644 --- a/benchmarks/vldb/ts_bench.cpp +++ b/benchmarks/vldb/ts_bench.cpp @@ -3,6 +3,7 @@ */ #define ENABLE_TIMER +#define TS_TEST #include @@ -39,7 +40,7 @@ int main(int argc, char **argv) { std::string d_fname = std::string(argv[2]); std::string q_fname = std::string(argv[3]); - auto extension = new Ext(12000, 12001, 8, 0, 64); + auto extension = new Ext(8000, 12001, 8, 0, 64); gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937); auto data = read_sosd_file(d_fname, n); @@ -50,7 +51,7 @@ int main(int argc, char **argv) { to_delete[j++] = i; } } - auto queries = read_range_queries(q_fname, .001); + auto queries = read_range_queries(q_fname, .0001); /* warmup structure w/ 10% of records */ size_t warmup = .1 * n; diff --git a/benchmarks/vldb/ts_mdsp_bench.cpp b/benchmarks/vldb/ts_mdsp_bench.cpp index 44c641d..cc0cd99 100644 --- a/benchmarks/vldb/ts_mdsp_bench.cpp +++ b/benchmarks/vldb/ts_mdsp_bench.cpp @@ -40,7 +40,7 @@ int main(int argc, char **argv) { gsl_rng *rng = gsl_rng_alloc(gsl_rng_mt19937); auto data = read_sosd_file_pair(d_fname, n); - auto queries = read_range_queries(q_fname, .001); + auto queries = read_range_queries(q_fname, .0001); /* warmup structure w/ 10% of records */ size_t warmup = .1 * n; -- cgit v1.2.3 From 96faedaeb92776fd9cc2ed8d8b0878ebc9300cbe Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Wed, 1 May 2024 18:51:41 -0400 Subject: Added a Bentley-Saxe layout policy --- CMakeLists.txt | 5 ++ include/framework/DynamicExtension.h | 21 +++++++-- include/framework/structure/ExtensionStructure.h | 60 ++++++++++++++++++++++-- include/framework/structure/InternalLevel.h | 19 ++++++++ include/framework/util/Configuration.h | 3 +- include/util/types.h | 12 +++-- tests/de_bsm_tomb.cpp | 58 +++++++++++++++++++++++ 7 files changed, 167 insertions(+), 11 deletions(-) create mode 100644 tests/de_bsm_tomb.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index d88db24..cdc114f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -96,6 +96,11 @@ if (tests) target_link_options(de_level_tomb PUBLIC -mcx16) target_include_directories(de_level_tomb PRIVATE include external/ctpl external/PLEX/include external/psudb-common/cpp/include external) + add_executable(de_bsm_tomb ${CMAKE_CURRENT_SOURCE_DIR}/tests/de_bsm_tomb.cpp) + target_link_libraries(de_bsm_tomb PUBLIC gsl check subunit pthread atomic) + target_link_options(de_bsm_tomb PUBLIC -mcx16) + target_include_directories(de_bsm_tomb PRIVATE include external/PLEX/include external/psudb-common/cpp/include external) + add_executable(de_level_concurrent ${CMAKE_CURRENT_SOURCE_DIR}/tests/de_level_concurrent.cpp) target_link_libraries(de_level_concurrent PUBLIC gsl check subunit pthread atomic) target_link_options(de_level_concurrent PUBLIC -mcx16) diff --git a/include/framework/DynamicExtension.h b/include/framework/DynamicExtension.h index 6fd95c6..538ff25 100644 --- a/include/framework/DynamicExtension.h +++ b/include/framework/DynamicExtension.h @@ -54,6 +54,10 @@ public: , m_next_core(0) , m_epoch_cnt(0) { + if constexpr (L == LayoutPolicy::BSM) { + assert(scale_factor == 2); + } + auto vers = new Structure(buffer_hwm, m_scale_factor, m_max_delete_prop); m_current_epoch.store({new _Epoch(0, vers, m_buffer, 0), 0}); m_previous_epoch.store({nullptr, 0}); @@ -487,10 +491,17 @@ private: ((DynamicExtension *) args->extension)->SetThreadAffinity(); Structure *vers = args->epoch->get_structure(); - for (ssize_t i=0; imerges.size(); i++) { - vers->reconstruction(args->merges[i].target, args->merges[i].source); + if constexpr (L == LayoutPolicy::BSM) { + if (args->merges.size() > 0) { + vers->reconstruction(args->merges[0]); + } + } else { + for (ssize_t i=0; imerges.size(); i++) { + vers->reconstruction(args->merges[i].target, args->merges[i].sources[0]); + } } + /* * we'll grab the buffer AFTER doing the internal reconstruction, so we * can flush as many records as possible in one go. The reconstruction @@ -628,7 +639,7 @@ private: static std::vector> filter_deletes(std::vector> &records, ShardID shid, Structure *vers, BufView *bview) { if constexpr (Q::SKIP_DELETE_FILTER) { - return records; + return std::move(records); } std::vector> processed_records; @@ -691,6 +702,10 @@ private: #ifdef _GNU_SOURCE void SetThreadAffinity() { + if constexpr (std::same_as) { + return; + } + int core = m_next_core.fetch_add(1) % m_core_cnt; cpu_set_t mask; CPU_ZERO(&mask); diff --git a/include/framework/structure/ExtensionStructure.h b/include/framework/structure/ExtensionStructure.h index ffba1c1..b83674b 100644 --- a/include/framework/structure/ExtensionStructure.h +++ b/include/framework/structure/ExtensionStructure.h @@ -343,6 +343,30 @@ public: base_level = grow(scratch_state); } + if constexpr (L == LayoutPolicy::BSM) { + if (base_level == 0) { + return std::move(reconstructions); + } + + ReconstructionTask task; + task.target = base_level; + + size_t base_reccnt = 0; + for (level_index i=base_level; i>source_level; i--) { + auto recon_reccnt = scratch_state[i-1].reccnt; + base_reccnt += recon_reccnt; + scratch_state[i-1].reccnt = 0; + scratch_state[i-1].shardcnt = 0; + task.add_source(i-1, recon_reccnt); + } + + reconstructions.add_reconstruction(task); + scratch_state[base_level].reccnt = base_reccnt; + scratch_state[base_level].shardcnt = 1; + + return std::move(reconstructions); + } + /* * Determine the full set of reconstructions necessary to open up * space in the source level. @@ -384,6 +408,33 @@ public: return std::move(reconstructions); } + inline void reconstruction(ReconstructionTask task) { + static_assert(L == LayoutPolicy::BSM); + std::vector*> levels(task.sources.size()); + for (size_t i=0; i::reconstruction(levels, task.target); + if (task.target >= m_levels.size()) { + m_current_state.push_back({new_level->get_record_count(), calc_level_record_capacity(task.target), + 1, 1}); + m_levels.emplace_back(new_level); + } else { + m_current_state[task.target] = {new_level->get_record_count(), calc_level_record_capacity(task.target), + 1, 1}; + m_levels[task.target] = new_level; + } + + /* remove all of the levels that have been flattened */ + for (size_t i=0; i>(new InternalLevel(task.sources[i], 1)); + m_current_state[task.sources[i]] = {0, calc_level_record_capacity(task.target), 0, 1}; + } + + return; + } + /* * Combine incoming_level with base_level and reconstruct the shard, * placing it in base_level. The two levels should be sequential--i.e. no @@ -395,7 +446,6 @@ public: if (base_level >= m_levels.size()) { m_levels.emplace_back(std::shared_ptr>(new InternalLevel(base_level, shard_capacity))); - m_current_state.push_back({0, calc_level_record_capacity(base_level), 0, shard_capacity}); } @@ -418,7 +468,7 @@ public: m_levels[incoming_level] = std::shared_ptr>(new InternalLevel(incoming_level, (L == LayoutPolicy::LEVELING) ? 1 : m_scale_factor)); /* - * Update the state vector to match the *real* stage following + * Update the state vector to match the *real* state following * the reconstruction */ m_current_state[base_level] = {m_levels[base_level]->get_record_count(), @@ -576,9 +626,11 @@ private: return false; } - if (L == LayoutPolicy::LEVELING) { + if constexpr (L == LayoutPolicy::LEVELING) { return state[idx].reccnt + incoming_rec_cnt <= state[idx].reccap; - } else { + } else if constexpr (L == LayoutPolicy::BSM) { + return state[idx].reccnt == 0; + } else { return state[idx].shardcnt < state[idx].shardcap; } diff --git a/include/framework/structure/InternalLevel.h b/include/framework/structure/InternalLevel.h index db38946..b962dcc 100644 --- a/include/framework/structure/InternalLevel.h +++ b/include/framework/structure/InternalLevel.h @@ -64,6 +64,21 @@ public: return std::shared_ptr(res); } + static std::shared_ptr reconstruction(std::vector levels, size_t level_idx) { + std::vector shards; + for (auto level : levels) { + for (auto shard : level->m_shards) { + if (shard) shards.emplace_back(shard.get()); + } + } + + auto res = new InternalLevel(level_idx, 1); + res->m_shard_cnt = 1; + res->m_shards[0] = std::make_shared(shards); + + return std::shared_ptr(res); + } + /* * Create a new shard combining the records from all of * the shards in level, and append this new shard into @@ -185,6 +200,10 @@ public: } Shard* get_shard(size_t idx) { + if (idx >= m_shard_cnt) { + return nullptr; + } + return m_shards[idx].get(); } diff --git a/include/framework/util/Configuration.h b/include/framework/util/Configuration.h index 55cc682..4a4524a 100644 --- a/include/framework/util/Configuration.h +++ b/include/framework/util/Configuration.h @@ -35,7 +35,8 @@ static thread_local size_t sampling_bailouts = 0; enum class LayoutPolicy { LEVELING, - TEIRING + TEIRING, + BSM }; enum class DeletePolicy { diff --git a/include/util/types.h b/include/util/types.h index bac0246..cf61412 100644 --- a/include/util/types.h +++ b/include/util/types.h @@ -73,10 +73,16 @@ const ShardID INVALID_SHID = {-1, -1}; typedef ssize_t level_index; -typedef struct { - level_index source; +typedef struct ReconstructionTask { + std::vector sources; level_index target; size_t reccnt; + + void add_source(level_index source, size_t cnt) { + sources.push_back(source); + reccnt += cnt; + } + } ReconstructionTask; class ReconstructionVector { @@ -91,7 +97,7 @@ public: } void add_reconstruction(level_index source, level_index target, size_t reccnt) { - m_tasks.push_back({source, target, reccnt}); + m_tasks.push_back({{source}, target, reccnt}); total_reccnt += reccnt; } diff --git a/tests/de_bsm_tomb.cpp b/tests/de_bsm_tomb.cpp new file mode 100644 index 0000000..493440e --- /dev/null +++ b/tests/de_bsm_tomb.cpp @@ -0,0 +1,58 @@ +/* + * tests/de_level_tomb.cpp + * + * Unit tests for Dynamic Extension Framework + * + * Copyright (C) 2023 Douglas Rumbaugh + * Dong Xie + * + * Distributed under the Modified BSD License. + * + */ +#include +#include +#include + +#include "include/testing.h" +#include "framework/DynamicExtension.h" +#include "shard/ISAMTree.h" +#include "query/rangequery.h" + +#include +using namespace de; + +typedef Rec R; +typedef DynamicExtension, rq::Query>, LayoutPolicy::BSM, DeletePolicy::TOMBSTONE, SerialScheduler> DE; + +#include "include/dynamic_extension.h" + + +Suite *unit_testing() +{ + Suite *unit = suite_create("DynamicExtension: Tombstone BSM Testing"); + inject_dynamic_extension_tests(unit); + + return unit; +} + + +int shard_unit_tests() +{ + int failed = 0; + Suite *unit = unit_testing(); + SRunner *unit_shardner = srunner_create(unit); + + srunner_run_all(unit_shardner, CK_NORMAL); + failed = srunner_ntests_failed(unit_shardner); + srunner_free(unit_shardner); + + return failed; +} + + +int main() +{ + int unit_failed = shard_unit_tests(); + + return (unit_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE; +} -- cgit v1.2.3 From e198d64ca87f6fc05e8d62efdf720f7b2e8a8004 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Fri, 3 May 2024 09:58:13 -0400 Subject: Switched to using framework-BSM mode for Bentley-Saxe benchmarks --- benchmarks/vldb/ts_bsm_bench.cpp | 52 +++++++++++++++++++++++------------- benchmarks/vldb/vptree_bsm_bench.cpp | 46 ++++++++++++++++++++++++------- 2 files changed, 70 insertions(+), 28 deletions(-) diff --git a/benchmarks/vldb/ts_bsm_bench.cpp b/benchmarks/vldb/ts_bsm_bench.cpp index 049fd35..4511350 100644 --- a/benchmarks/vldb/ts_bsm_bench.cpp +++ b/benchmarks/vldb/ts_bsm_bench.cpp @@ -3,23 +3,27 @@ */ #define ENABLE_TIMER +#define TS_TEST #include -#include "triespline_bsm.h" -#include "psu-util/bentley-saxe.h" +#include "framework/DynamicExtension.h" +#include "shard/TrieSpline.h" +#include "query/rangecount.h" #include "framework/interface/Record.h" #include "file_util.h" -#include "query/rangecount.h" -#include "psu-util/timer.h" #include "standard_benchmarks.h" -typedef std::pair Rec; -typedef de::Record FRec; +#include -typedef BSMTrieSpline Shard; -typedef de::rc::Parms QP; -typedef psudb::bsm::BentleySaxe Ext; +#include "psu-util/timer.h" + + +typedef de::Record Rec; +typedef de::TrieSpline Shard; +typedef de::rc::Query Q; +typedef de::DynamicExtension Ext; +typedef de::rc::Parms QP; void usage(char *progname) { fprintf(stderr, "%s reccnt datafile queryfile\n", progname); @@ -36,11 +40,10 @@ int main(int argc, char **argv) { std::string d_fname = std::string(argv[2]); std::string q_fname = std::string(argv[3]); - auto extension = new psudb::bsm::BentleySaxe(); - auto ghost = new psudb::bsm::BentleySaxe(); - gsl_rng *rng = gsl_rng_alloc(gsl_rng_mt19937); + auto extension = new Ext(1, 12001, 2, 0, 64); + gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937); - auto data = read_sosd_file_pair(d_fname, n); + auto data = read_sosd_file(d_fname, n); std::vector to_delete(n * delete_proportion); size_t j=0; for (size_t i=0; i(extension, ghost, 0, warmup, data, to_delete, - delete_idx, rng); + insert_records(extension, 0, warmup, data, to_delete, delete_idx, false, rng); + + extension->await_next_epoch(); TIMER_INIT(); TIMER_START(); - insert_records(extension, ghost, warmup, data.size(), data, - to_delete, delete_idx, rng); + insert_records(extension, warmup, data.size(), data, to_delete, delete_idx, true, rng); TIMER_STOP(); auto insert_latency = TIMER_RESULT(); size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); TIMER_START(); - run_queries(extension, ghost, queries); + run_queries(extension, queries); TIMER_STOP(); auto query_latency = TIMER_RESULT() / queries.size(); - fprintf(stdout, "%ld\t%ld\n", insert_throughput, query_latency); + auto shard = extension->create_static_structure(); + + TIMER_START(); + run_static_queries(shard, queries); + TIMER_STOP(); + + auto static_latency = TIMER_RESULT() / queries.size(); + + auto ext_size = extension->get_memory_usage() + extension->get_aux_memory_usage(); + auto static_size = shard->get_memory_usage(); //+ shard->get_aux_memory_usage(); + + fprintf(stdout, "%ld\t%ld\t%ld\t%ld\t%ld\n", insert_throughput, query_latency, ext_size, static_latency, static_size); gsl_rng_free(rng); delete extension; diff --git a/benchmarks/vldb/vptree_bsm_bench.cpp b/benchmarks/vldb/vptree_bsm_bench.cpp index 0798ec2..8e6f795 100644 --- a/benchmarks/vldb/vptree_bsm_bench.cpp +++ b/benchmarks/vldb/vptree_bsm_bench.cpp @@ -4,10 +4,12 @@ #define ENABLE_TIMER -#include "vptree_bsm.h" +#include "framework/DynamicExtension.h" +#include "shard/VPTree.h" +#include "query/knn.h" +#include "framework/interface/Record.h" #include "file_util.h" #include "standard_benchmarks.h" -#include "query/knn.h" #include @@ -16,9 +18,10 @@ typedef Word2VecRec Rec; -typedef BSMVPTree Shard; +typedef de::VPTree Shard; +typedef de::knn::Query Q; +typedef de::DynamicExtension Ext; typedef de::knn::Parms QP; -typedef psudb::bsm::BentleySaxe Ext; void usage(char *progname) { fprintf(stderr, "%s reccnt datafile queryfile\n", progname); @@ -35,23 +38,36 @@ int main(int argc, char **argv) { std::string d_fname = std::string(argv[2]); std::string q_fname = std::string(argv[3]); - auto extension = new Ext(); + auto extension = new Ext(1, 1400, 2, 0, 64); gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937); fprintf(stderr, "[I] Reading data file...\n"); auto data = read_vector_file(d_fname, n); + + fprintf(stderr, "[I] Generating delete vector\n"); + std::vector to_delete(n * delete_proportion); + size_t j=0; + for (size_t i=0; i(q_fname, 1000); fprintf(stderr, "[I] Warming up structure...\n"); /* warmup structure w/ 10% of records */ size_t warmup = .1 * n; - insert_records(extension, 0, warmup, data); + size_t delete_idx = 0; + insert_records(extension, 0, warmup, data, to_delete, delete_idx, false, rng); + + extension->await_next_epoch(); TIMER_INIT(); fprintf(stderr, "[I] Running Insertion Benchmark\n"); TIMER_START(); - insert_records(extension, warmup, data.size(), data); + insert_records(extension, warmup, data.size(), data, to_delete, delete_idx, true, rng); TIMER_STOP(); auto insert_latency = TIMER_RESULT(); @@ -59,12 +75,24 @@ int main(int argc, char **argv) { fprintf(stderr, "[I] Running Query Benchmark\n"); TIMER_START(); - run_queries(extension, queries); + run_queries(extension, queries); TIMER_STOP(); auto query_latency = TIMER_RESULT() / queries.size(); - fprintf(stdout, "%ld\t%ld\n", insert_throughput, query_latency); + auto shard = extension->create_static_structure(); + + fprintf(stderr, "Running Static query tests\n\n"); + TIMER_START(); + run_static_queries(shard, queries); + TIMER_STOP(); + + auto static_latency = TIMER_RESULT() / queries.size(); + + auto ext_size = extension->get_memory_usage() + extension->get_aux_memory_usage(); + auto static_size = shard->get_memory_usage(); // + shard->get_aux_memory_usage(); + + fprintf(stdout, "%ld\t%ld\t%ld\t%ld\t%ld\n", insert_throughput, query_latency, ext_size, static_latency, static_size); gsl_rng_free(rng); delete extension; -- cgit v1.2.3 From 675cf7f7558ebaef15f398d90cc3d1d91457b219 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Fri, 3 May 2024 11:01:47 -0400 Subject: FST benchmarks --- CMakeLists.txt | 30 ++++++++---- benchmarks/include/file_util.h | 45 ++++++++++++++++- benchmarks/vldb/fst_bench.cpp | 100 ++++++++++++++++++++++++++++++++++++++ benchmarks/vldb/fst_bsm_bench.cpp | 100 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 265 insertions(+), 10 deletions(-) create mode 100644 benchmarks/vldb/fst_bench.cpp create mode 100644 benchmarks/vldb/fst_bsm_bench.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index cdc114f..b4e801c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -147,10 +147,10 @@ if (tests) target_link_options(fst_tests PUBLIC -mcx16) target_include_directories(fst_tests PRIVATE include external/psudb-common/cpp/include external/PLEX/include external/fast_succinct_trie/include external/louds-patricia) - add_executable(louds_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/louds_tests.cpp) - target_link_libraries(louds_tests PUBLIC gsl check subunit pthread atomic) - target_link_options(louds_tests PUBLIC -mcx16) - target_include_directories(louds_tests PRIVATE include external/psudb-common/cpp/include external/PLEX/include external/fast_succinct_trie/include external/louds-patricia) + #add_executable(louds_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/louds_tests.cpp) + #target_link_libraries(louds_tests PUBLIC gsl check subunit pthread atomic) + #target_link_options(louds_tests PUBLIC -mcx16) + #target_include_directories(louds_tests PRIVATE include external/psudb-common/cpp/include external/PLEX/include external/fast_succinct_trie/include external/louds-patricia) endif() if (vldb_bench) @@ -180,6 +180,18 @@ if (vldb_bench) target_link_options(vptree_bsm_bench PUBLIC -mcx16) target_compile_options(vptree_bsm_bench PUBLIC -fopenmp) + add_executable(fst_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/fst_bench.cpp) + target_link_libraries(fst_bench PUBLIC gsl pthread atomic) + target_include_directories(fst_bench PRIVATE include external external/fast_succinct_trie/include external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) + target_link_options(fst_bench PUBLIC -mcx16) + target_compile_options(fst_bench PUBLIC -fopenmp) + + add_executable(fst_bsm_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/fst_bsm_bench.cpp) + target_link_libraries(fst_bsm_bench PUBLIC gsl pthread atomic) + target_include_directories(fst_bsm_bench PRIVATE include external external/fast_succinct_trie/include external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) + target_link_options(fst_bsm_bench PUBLIC -mcx16) + target_compile_options(fst_bsm_bench PUBLIC -fopenmp) + add_executable(ts_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/ts_bench.cpp) target_link_libraries(ts_bench PUBLIC gsl pthread atomic) target_include_directories(ts_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) @@ -198,11 +210,11 @@ if (vldb_bench) target_link_options(ts_bsm_bench PUBLIC -mcx16) target_compile_options(ts_bsm_bench PUBLIC -fopenmp) - add_executable(ts_mdsp_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/ts_mdsp_bench.cpp) - target_link_libraries(ts_mdsp_bench PUBLIC gsl pthread atomic) - target_include_directories(ts_mdsp_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) - target_link_options(ts_mdsp_bench PUBLIC -mcx16) - target_compile_options(ts_mdsp_bench PUBLIC -fopenmp) + #add_executable(ts_mdsp_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/ts_mdsp_bench.cpp) + #target_link_libraries(ts_mdsp_bench PUBLIC gsl pthread atomic) + #target_include_directories(ts_mdsp_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) + #target_link_options(ts_mdsp_bench PUBLIC -mcx16) + #target_compile_options(ts_mdsp_bench PUBLIC -fopenmp) add_executable(pgm_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/pgm_bench.cpp) target_link_libraries(pgm_bench PUBLIC gsl pthread atomic gomp) diff --git a/benchmarks/include/file_util.h b/benchmarks/include/file_util.h index ebcf17e..586b44f 100644 --- a/benchmarks/include/file_util.h +++ b/benchmarks/include/file_util.h @@ -1,3 +1,5 @@ +#pragma once + #include #include #include @@ -7,8 +9,10 @@ #include #include #include +#include + +#include "psu-util/progress.h" -#pragma once template static std::vector read_lookup_queries(std::string fname, double selectivity) { @@ -35,6 +39,20 @@ static std::vector read_lookup_queries(std::string fname, double selectivity return queries; } +template +static std::vector generate_string_lookup_queries(std::vector> &strings, size_t cnt, gsl_rng *rng) { + std::vector queries; + + for (size_t i=0; i static std::vector read_range_queries(std::string &fname, double selectivity) { std::vector queries; @@ -173,3 +191,28 @@ static std::vector read_vector_file(std::string &fname, size_t n) { return records; } + + +static std::vector>read_string_file(std::string fname, size_t n=10000000) { + + std::fstream file; + file.open(fname, std::ios::in); + + if (!file.is_open()) { + fprintf(stderr, "ERROR: Failed to open file %s\n", fname.c_str()); + exit(EXIT_FAILURE); + } + + std::vector> strings; + strings.reserve(n); + + size_t i=0; + std::string line; + while (i < n && std::getline(file, line, '\n')) { + strings.emplace_back(std::unique_ptr(strdup(line.c_str()))); + i++; + psudb::progress_update((double) i / (double) n, "Reading file:"); + } + + return strings; +} diff --git a/benchmarks/vldb/fst_bench.cpp b/benchmarks/vldb/fst_bench.cpp new file mode 100644 index 0000000..276a922 --- /dev/null +++ b/benchmarks/vldb/fst_bench.cpp @@ -0,0 +1,100 @@ +/* + * + */ + +#define ENABLE_TIMER +#define TS_TEST + +#include + +#include "framework/DynamicExtension.h" +#include "shard/FSTrie.h" +#include "query/pointlookup.h" +#include "framework/interface/Record.h" +#include "file_util.h" +#include "standard_benchmarks.h" + +#include + +#include "psu-util/timer.h" + + +typedef de::Record Rec; +typedef de::FSTrie Shard; +typedef de::pl::Query Q; +typedef de::DynamicExtension Ext; +typedef de::pl::Parms QP; + +void usage(char *progname) { + fprintf(stderr, "%s reccnt datafile\n", progname); +} + +int main(int argc, char **argv) { + + if (argc < 3) { + usage(argv[0]); + exit(EXIT_FAILURE); + } + + size_t n = atol(argv[1]); + std::string d_fname = std::string(argv[2]); + + auto extension = new Ext(12000, 12001, 8, 0, 64); + gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937); + + auto strings = read_string_file(d_fname, n); + auto queries = generate_string_lookup_queries(strings, 1000, rng); + + std::vector data; + for (size_t i=0; i to_delete(n * delete_proportion); + size_t j=0; + for (size_t i=0; i(extension, 0, warmup, data, to_delete, delete_idx, false, rng); + + extension->await_next_epoch(); + + TIMER_INIT(); + + TIMER_START(); + insert_records(extension, warmup, data.size(), data, to_delete, delete_idx, true, rng); + TIMER_STOP(); + + auto insert_latency = TIMER_RESULT(); + size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); + + TIMER_START(); + run_queries(extension, queries); + TIMER_STOP(); + + auto query_latency = TIMER_RESULT() / queries.size(); + + auto shard = extension->create_static_structure(); + + TIMER_START(); + run_static_queries(shard, queries); + TIMER_STOP(); + + auto static_latency = TIMER_RESULT() / queries.size(); + + auto ext_size = extension->get_memory_usage() + extension->get_aux_memory_usage(); + auto static_size = shard->get_memory_usage(); //+ shard->get_aux_memory_usage(); + + fprintf(stdout, "%ld\t%ld\t%ld\t%ld\t%ld\n", insert_throughput, query_latency, ext_size, static_latency, static_size); + + gsl_rng_free(rng); + delete extension; + fflush(stderr); +} + diff --git a/benchmarks/vldb/fst_bsm_bench.cpp b/benchmarks/vldb/fst_bsm_bench.cpp new file mode 100644 index 0000000..15a441a --- /dev/null +++ b/benchmarks/vldb/fst_bsm_bench.cpp @@ -0,0 +1,100 @@ +/* + * + */ + +#define ENABLE_TIMER +#define TS_TEST + +#include + +#include "framework/DynamicExtension.h" +#include "shard/FSTrie.h" +#include "query/pointlookup.h" +#include "framework/interface/Record.h" +#include "file_util.h" +#include "standard_benchmarks.h" + +#include + +#include "psu-util/timer.h" + + +typedef de::Record Rec; +typedef de::FSTrie Shard; +typedef de::pl::Query Q; +typedef de::DynamicExtension Ext; +typedef de::pl::Parms QP; + +void usage(char *progname) { + fprintf(stderr, "%s reccnt datafile\n", progname); +} + +int main(int argc, char **argv) { + + if (argc < 3) { + usage(argv[0]); + exit(EXIT_FAILURE); + } + + size_t n = atol(argv[1]); + std::string d_fname = std::string(argv[2]); + + auto extension = new Ext(1, 12001, 2, 0, 64); + gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937); + + auto strings = read_string_file(d_fname, n); + auto queries = generate_string_lookup_queries(strings, 1000, rng); + + std::vector data; + for (size_t i=0; i to_delete(n * delete_proportion); + size_t j=0; + for (size_t i=0; i(extension, 0, warmup, data, to_delete, delete_idx, false, rng); + + extension->await_next_epoch(); + + TIMER_INIT(); + + TIMER_START(); + insert_records(extension, warmup, data.size(), data, to_delete, delete_idx, true, rng); + TIMER_STOP(); + + auto insert_latency = TIMER_RESULT(); + size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); + + TIMER_START(); + run_queries(extension, queries); + TIMER_STOP(); + + auto query_latency = TIMER_RESULT() / queries.size(); + + auto shard = extension->create_static_structure(); + + TIMER_START(); + run_static_queries(shard, queries); + TIMER_STOP(); + + auto static_latency = TIMER_RESULT() / queries.size(); + + auto ext_size = extension->get_memory_usage() + extension->get_aux_memory_usage(); + auto static_size = shard->get_memory_usage(); //+ shard->get_aux_memory_usage(); + + fprintf(stdout, "%ld\t%ld\t%ld\t%ld\t%ld\n", insert_throughput, query_latency, ext_size, static_latency, static_size); + + gsl_rng_free(rng); + delete extension; + fflush(stderr); +} + -- cgit v1.2.3 From feeba1de8d9774e32007686627a6a5633dff2559 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Mon, 6 May 2024 09:40:11 -0400 Subject: Missing file from last commit --- include/shard/TrieSpline.h | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/include/shard/TrieSpline.h b/include/shard/TrieSpline.h index 3ae72f8..581277e 100644 --- a/include/shard/TrieSpline.h +++ b/include/shard/TrieSpline.h @@ -117,7 +117,7 @@ public: m_reccnt = info.record_count; m_tombstone_cnt = info.tombstone_count; - if (m_reccnt > 0) { + if (m_reccnt > 50) { m_ts = bldr.Finalize(); } } @@ -217,7 +217,7 @@ public: m_reccnt = info.record_count; m_tombstone_cnt = info.tombstone_count; - if (m_reccnt > 0) { + if (m_reccnt > 50) { m_ts = bldr.Finalize(); } } @@ -273,6 +273,18 @@ public: } size_t get_lower_bound(const K& key) const { + if (m_reccnt < 50) { + size_t bd = m_reccnt; + for (size_t i=0; i= key) { + bd = i; + break; + } + } + + return bd; + } + auto bound = m_ts.GetSearchBound(key); size_t idx = bound.begin; -- cgit v1.2.3 From 01729c8772f3e25bce18f0b1fbfeee308b4c4d9f Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Wed, 8 May 2024 13:11:32 -0400 Subject: VPTree BSM: Added extra tab to keep numbers from running together --- benchmarks/vldb/vptree_bsm_bench.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmarks/vldb/vptree_bsm_bench.cpp b/benchmarks/vldb/vptree_bsm_bench.cpp index 8e6f795..4a7fcb6 100644 --- a/benchmarks/vldb/vptree_bsm_bench.cpp +++ b/benchmarks/vldb/vptree_bsm_bench.cpp @@ -92,7 +92,7 @@ int main(int argc, char **argv) { auto ext_size = extension->get_memory_usage() + extension->get_aux_memory_usage(); auto static_size = shard->get_memory_usage(); // + shard->get_aux_memory_usage(); - fprintf(stdout, "%ld\t%ld\t%ld\t%ld\t%ld\n", insert_throughput, query_latency, ext_size, static_latency, static_size); + fprintf(stdout, "%ld\t%ld\t\t%ld\t%ld\t%ld\n", insert_throughput, query_latency, ext_size, static_latency, static_size); gsl_rng_free(rng); delete extension; -- cgit v1.2.3 From a23bc3341923509be9b2f587ece8cd5a650f6386 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Wed, 8 May 2024 13:20:44 -0400 Subject: TSParmsweep: enabled forcing a full buffer scan --- benchmarks/vldb/ts_parmsweep.cpp | 2 +- include/framework/structure/BufferView.h | 6 +++++- include/query/rangecount.h | 10 +++++++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/benchmarks/vldb/ts_parmsweep.cpp b/benchmarks/vldb/ts_parmsweep.cpp index fd71e11..2c9412a 100644 --- a/benchmarks/vldb/ts_parmsweep.cpp +++ b/benchmarks/vldb/ts_parmsweep.cpp @@ -18,7 +18,7 @@ typedef de::Record Rec; typedef de::TrieSpline Shard; -typedef de::rc::Query Q; +typedef de::rc::Query Q; typedef de::DynamicExtension Ext; typedef de::DynamicExtension Ext2; typedef de::rc::Parms QP; diff --git a/include/framework/structure/BufferView.h b/include/framework/structure/BufferView.h index 44a2044..11b8337 100644 --- a/include/framework/structure/BufferView.h +++ b/include/framework/structure/BufferView.h @@ -112,6 +112,10 @@ public: size_t get_record_count() { return m_tail - m_head; } + + size_t get_capacity() { + return m_cap; + } /* * NOTE: This function returns an upper bound on the number @@ -123,7 +127,7 @@ public: } Wrapped *get(size_t i) { - assert(i < get_record_count()); + //assert(i < get_record_count()); return m_data + to_idx(i); } diff --git a/include/query/rangecount.h b/include/query/rangecount.h index 5a18ed4..5b95cdd 100644 --- a/include/query/rangecount.h +++ b/include/query/rangecount.h @@ -35,7 +35,7 @@ struct BufferState { : buffer(buffer) {} }; -template S> +template S, bool FORCE_SCAN=false> class Query { public: constexpr static bool EARLY_ABORT=false; @@ -119,8 +119,16 @@ public: res.rec.value = 0; // tombstones records.emplace_back(res); + size_t stop_idx; + if constexpr (FORCE_SCAN) { + stop_idx = s->buffer->get_capacity() / 2; + } else { + stop_idx = s->buffer->get_record_count(); + } + for (size_t i=0; ibuffer->get_record_count(); i++) { auto rec = s->buffer->get(i); + if (rec->rec.key >= p->lower_bound && rec->rec.key <= p->upper_bound && !rec->is_deleted()) { if (rec->is_tombstone()) { -- cgit v1.2.3 From 265610435e1164a9acc39ca02ea1139acd37c46c Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Thu, 9 May 2024 14:10:29 -0400 Subject: Added benchmarks for BigANN --- CMakeLists.txt | 24 ++++++-- benchmarks/include/benchmark_types.h | 13 ++++ benchmarks/include/file_util.h | 76 +++++++++++++++++++++++ benchmarks/include/standard_benchmarks.h | 19 ++++-- benchmarks/vldb/btree_bench.cpp | 2 +- benchmarks/vldb/irs_bench.cpp | 2 +- benchmarks/vldb/mtree_bench_alt.cpp | 80 ++++++++++++++++++++++++ benchmarks/vldb/vptree_bench_alt.cpp | 102 +++++++++++++++++++++++++++++++ benchmarks/vldb/vptree_bsm_bench_alt.cpp | 92 ++++++++++++++++++++++++++++ 9 files changed, 398 insertions(+), 12 deletions(-) create mode 100644 benchmarks/vldb/mtree_bench_alt.cpp create mode 100644 benchmarks/vldb/vptree_bench_alt.cpp create mode 100644 benchmarks/vldb/vptree_bsm_bench_alt.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index b4e801c..7f2e782 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -168,6 +168,14 @@ if (vldb_bench) target_link_options(vptree_bench PUBLIC -mcx16) target_compile_options(vptree_bench PUBLIC -fopenmp) + + add_executable(vptree_bench_alt ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/vptree_bench_alt.cpp) + target_link_libraries(vptree_bench_alt PUBLIC gsl pthread atomic) + target_include_directories(vptree_bench_alt PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) + target_link_options(vptree_bench_alt PUBLIC -mcx16) + target_compile_options(vptree_bench_alt PUBLIC -fopenmp) + + add_executable(vptree_parmsweep ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/vptree_parmsweep.cpp) target_link_libraries(vptree_parmsweep PUBLIC gsl pthread atomic) target_include_directories(vptree_parmsweep PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) @@ -180,6 +188,12 @@ if (vldb_bench) target_link_options(vptree_bsm_bench PUBLIC -mcx16) target_compile_options(vptree_bsm_bench PUBLIC -fopenmp) + add_executable(vptree_bsm_bench_alt ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/vptree_bsm_bench_alt.cpp) + target_link_libraries(vptree_bsm_bench_alt PUBLIC gsl pthread atomic) + target_include_directories(vptree_bsm_bench_alt PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) + target_link_options(vptree_bsm_bench_alt PUBLIC -mcx16) + target_compile_options(vptree_bsm_bench_alt PUBLIC -fopenmp) + add_executable(fst_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/fst_bench.cpp) target_link_libraries(fst_bench PUBLIC gsl pthread atomic) target_include_directories(fst_bench PRIVATE include external external/fast_succinct_trie/include external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) @@ -240,11 +254,11 @@ if (vldb_bench) target_compile_options(alex_bench PUBLIC -fopenmp) set_property(TARGET alex_bench PROPERTY CXX_STANDARD 14) - add_executable(mtree_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/mtree_bench.cpp) - target_link_libraries(mtree_bench PUBLIC gsl pthread atomic gomp) - target_include_directories(mtree_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) - target_link_options(mtree_bench PUBLIC -mcx16) - target_compile_options(mtree_bench PUBLIC -fopenmp) + add_executable(mtree_bench_alt ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/mtree_bench_alt.cpp) + target_link_libraries(mtree_bench_alt PUBLIC gsl pthread atomic gomp) + target_include_directories(mtree_bench_alt PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) + target_link_options(mtree_bench_alt PUBLIC -mcx16) + target_compile_options(mtree_bench_alt PUBLIC -fopenmp) endif() diff --git a/benchmarks/include/benchmark_types.h b/benchmarks/include/benchmark_types.h index 13964e8..51fc52d 100644 --- a/benchmarks/include/benchmark_types.h +++ b/benchmarks/include/benchmark_types.h @@ -35,6 +35,9 @@ typedef psudb::BTree, btree_key_extract< const size_t W2V_SIZE = 300; typedef de::EuclidPoint Word2VecRec; +const size_t ANNSize = 128; +typedef de::EuclidPoint ANNRec; + struct euclidean_distance { double operator()(const Word2VecRec &first, const Word2VecRec &second) const { double dist = 0; @@ -44,11 +47,21 @@ struct euclidean_distance { return std::sqrt(dist); } + + double operator()(const ANNRec &first, const ANNRec &second) const { + double dist = 0; + for (size_t i=0; i MTree; +typedef mt::mtree MTree_alt; #endif typedef pgm::DynamicPGMIndex> PGM; diff --git a/benchmarks/include/file_util.h b/benchmarks/include/file_util.h index 586b44f..41eb18c 100644 --- a/benchmarks/include/file_util.h +++ b/benchmarks/include/file_util.h @@ -80,6 +80,46 @@ static std::vector read_range_queries(std::string &fname, double selectivity return queries; } + +template +static std::vector read_binary_knn_queries(std::string fname, size_t k, size_t n) { + std::vector queries; + queries.reserve(n); + + std::fstream file; + file.open(fname, std::ios::in | std::ios::binary); + + if (!file.is_open()) { + fprintf(stderr, "ERROR: Failed to open file %s\n", fname.c_str()); + exit(EXIT_FAILURE); + } + + + int32_t dim; + int32_t cnt; + + file.read((char*) &(cnt), sizeof(cnt)); + file.read((char*) &(dim), sizeof(dim)); + + if (n > cnt) { + n = cnt; + } + + for (size_t i=0; i static std::vector read_knn_queries(std::string fname, size_t k) { std::vector queries; @@ -192,6 +232,42 @@ static std::vector read_vector_file(std::string &fname, size_t n) { return records; } +template +static std::vector read_binary_vector_file(std::string &fname, size_t n) { + std::fstream file; + file.open(fname, std::ios::in | std::ios::binary); + + if (!file.is_open()) { + fprintf(stderr, "ERROR: Failed to open file %s\n", fname.c_str()); + exit(EXIT_FAILURE); + } + + std::vector records; + records.reserve(n); + + int32_t dim; + int32_t cnt; + + file.read((char*) &(cnt), sizeof(cnt)); + file.read((char*) &(dim), sizeof(dim)); + + if (n > cnt) { + n = cnt; + } + + R rec; + for (size_t i=0; i>read_string_file(std::string fname, size_t n=10000000) { diff --git a/benchmarks/include/standard_benchmarks.h b/benchmarks/include/standard_benchmarks.h index 1261a4c..b805c08 100644 --- a/benchmarks/include/standard_benchmarks.h +++ b/benchmarks/include/standard_benchmarks.h @@ -55,7 +55,16 @@ static void run_queries(DE *extension, std::vector &queries) { r.data[1], r.data[2], r.data[3], r.data[4], r.data[5]); } #endif - } else if constexpr (std::is_same_v) { + } else if constexpr (std::is_same_v) { + std::vector result; + auto res = extension->get_nearest_by_limit(queries[i].point, queries[i].k); + + auto itr = res.begin(); + while (itr != res.end()) { + result.emplace_back(itr->data); + itr++; + } + }else if constexpr (std::is_same_v) { size_t tot = 0; auto ptr = extension->find(queries[i].lower_bound); while (ptr != extension->end() && ptr->first <= queries[i].upper_bound) { @@ -180,7 +189,7 @@ static void insert_records(DE *structure, size_t start, size_t stop, if constexpr (std::is_same_v) { structure->insert(records[i]); - } else if constexpr (std::is_same_v) { + } else if constexpr (std::is_same_v || std::is_same_v) { structure->add(records[i]); } else if constexpr (std::is_same_v) { structure->insert_or_assign(records[i].key, records[i].value); @@ -196,7 +205,7 @@ static void insert_records(DE *structure, size_t start, size_t stop, if constexpr (std::is_same_v) { structure->erase_one(records[to_delete[delete_idx]].key); - } else if constexpr (std::is_same_v) { + } else if constexpr (std::is_same_v || std::is_same_v) { structure->remove(records[to_delete[delete_idx]]); } else if constexpr (std::is_same_v) { structure->erase(records[to_delete[delete_idx]].key); @@ -255,7 +264,7 @@ static bool insert_tput_bench(DE &de_index, std::fstream &file, size_t insert_cn if constexpr (std::is_same_v) { de_index.erase_one(delete_vec[delete_idx++].key); #ifdef _GNU_SOURCE - } else if constexpr (std::is_same_v) { + } else if constexpr (std::is_same_v || std::is_same_v) { de_index.remove(delete_vec[delete_idx++]); #endif } else { @@ -266,7 +275,7 @@ static bool insert_tput_bench(DE &de_index, std::fstream &file, size_t insert_cn // insert the record; #ifdef _GNU_SOURCE - if constexpr (std::is_same_v) { + if constexpr (std::is_same_v || std::is_same_v) { de_index.add(insert_vec[i]); } else { de_index.insert(insert_vec[i]); diff --git a/benchmarks/vldb/btree_bench.cpp b/benchmarks/vldb/btree_bench.cpp index 673da33..fa72831 100644 --- a/benchmarks/vldb/btree_bench.cpp +++ b/benchmarks/vldb/btree_bench.cpp @@ -57,7 +57,7 @@ int main(int argc, char **argv) { } /* warmup structure w/ 10% of records */ - size_t warmup = .3 * n; + size_t warmup = .1 * n; size_t delete_idx = 0; insert_records(&btree, 0, warmup, data, to_delete, delete_idx, false, rng); diff --git a/benchmarks/vldb/irs_bench.cpp b/benchmarks/vldb/irs_bench.cpp index f68de63..e062e80 100644 --- a/benchmarks/vldb/irs_bench.cpp +++ b/benchmarks/vldb/irs_bench.cpp @@ -56,7 +56,7 @@ int main(int argc, char **argv) { } /* warmup structure w/ 10% of records */ - size_t warmup = .3 * n; + size_t warmup = .1 * n; size_t delete_idx = 0; insert_records(extension, 0, warmup, data, to_delete, delete_idx, false, rng); diff --git a/benchmarks/vldb/mtree_bench_alt.cpp b/benchmarks/vldb/mtree_bench_alt.cpp new file mode 100644 index 0000000..6b08df7 --- /dev/null +++ b/benchmarks/vldb/mtree_bench_alt.cpp @@ -0,0 +1,80 @@ +/* + * + */ + +#define ENABLE_TIMER + +#include "query/knn.h" +#include "file_util.h" +#include "standard_benchmarks.h" + +#include + +#include "psu-util/timer.h" + + +typedef ANNRec Rec; +typedef de::knn::Parms QP; + +void usage(char *progname) { + fprintf(stderr, "%s reccnt datafile queryfile\n", progname); +} + +int main(int argc, char **argv) { + + if (argc < 4) { + usage(argv[0]); + exit(EXIT_FAILURE); + } + + size_t n = atol(argv[1]); + std::string d_fname = std::string(argv[2]); + std::string q_fname = std::string(argv[3]); + + auto mtree = new MTree_alt(); + gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937); + + fprintf(stderr, "[I] Reading data file...\n"); + auto data = read_binary_vector_file(d_fname, n); + + fprintf(stderr, "[I] Generating delete vector\n"); + std::vector to_delete(n * delete_proportion); + size_t j=0; + for (size_t i=0; i(q_fname, 1000, 100); + + fprintf(stderr, "[I] Warming up structure...\n"); + /* warmup structure w/ 10% of records */ + size_t warmup = .1 * n; + size_t delete_idx = 0; + insert_records(mtree, 0, warmup, data, to_delete, delete_idx, false, rng); + + TIMER_INIT(); + + fprintf(stderr, "[I] Running Insertion Benchmark\n"); + TIMER_START(); + insert_records(mtree, warmup, data.size(), data, to_delete, delete_idx, true, rng); + TIMER_STOP(); + + auto insert_latency = TIMER_RESULT(); + size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); + + fprintf(stderr, "[I] Running Query Benchmark\n"); + TIMER_START(); + run_queries(mtree, queries); + TIMER_STOP(); + + auto query_latency = TIMER_RESULT() / queries.size(); + + fprintf(stdout, "%ld\t%ld\n", insert_throughput, query_latency); + + gsl_rng_free(rng); + delete mtree; + fflush(stderr); +} + diff --git a/benchmarks/vldb/vptree_bench_alt.cpp b/benchmarks/vldb/vptree_bench_alt.cpp new file mode 100644 index 0000000..b09ee7d --- /dev/null +++ b/benchmarks/vldb/vptree_bench_alt.cpp @@ -0,0 +1,102 @@ +/* + * + */ + +#define ENABLE_TIMER + +#include "framework/DynamicExtension.h" +#include "shard/VPTree.h" +#include "query/knn.h" +#include "framework/interface/Record.h" +#include "file_util.h" +#include "standard_benchmarks.h" + +#include + +#include "psu-util/timer.h" + + +typedef ANNRec Rec; + +typedef de::VPTree Shard; +typedef de::knn::Query Q; +typedef de::DynamicExtension Ext; +typedef de::knn::Parms QP; + +void usage(char *progname) { + fprintf(stderr, "%s reccnt datafile queryfile\n", progname); +} + +int main(int argc, char **argv) { + + if (argc < 4) { + usage(argv[0]); + exit(EXIT_FAILURE); + } + + size_t n = atol(argv[1]); + std::string d_fname = std::string(argv[2]); + std::string q_fname = std::string(argv[3]); + + auto extension = new Ext(1400, 1400, 8, 0, 64); + gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937); + + fprintf(stderr, "[I] Reading data file...\n"); + auto data = read_binary_vector_file(d_fname, n); + + fprintf(stderr, "[I] Generating delete vector\n"); + std::vector to_delete(n * delete_proportion); + size_t j=0; + for (size_t i=0; i(q_fname, 1000, 100); + + fprintf(stderr, "[I] Warming up structure...\n"); + /* warmup structure w/ 10% of records */ + size_t warmup = .1 * n; + size_t delete_idx = 0; + insert_records(extension, 0, warmup, data, to_delete, delete_idx, false, rng); + + extension->await_next_epoch(); + + TIMER_INIT(); + + fprintf(stderr, "[I] Running Insertion Benchmark\n"); + TIMER_START(); + insert_records(extension, warmup, data.size(), data, to_delete, delete_idx, true, rng); + TIMER_STOP(); + + auto insert_latency = TIMER_RESULT(); + size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); + + fprintf(stderr, "[I] Running Query Benchmark\n"); + TIMER_START(); + run_queries(extension, queries); + TIMER_STOP(); + + auto query_latency = TIMER_RESULT() / queries.size(); + + auto shard = extension->create_static_structure(); + + fprintf(stderr, "Running Static query tests\n\n"); + TIMER_START(); + run_static_queries(shard, queries); + TIMER_STOP(); + + auto static_latency = TIMER_RESULT() / queries.size(); + + auto ext_size = extension->get_memory_usage() + extension->get_aux_memory_usage(); + auto static_size = shard->get_memory_usage(); // + shard->get_aux_memory_usage(); + + fprintf(stdout, "%ld\t%ld\t%ld\t%ld\t%ld\n", insert_throughput, query_latency, ext_size, static_latency, static_size); + + gsl_rng_free(rng); + delete extension; + fflush(stderr); + fflush(stdout); +} + diff --git a/benchmarks/vldb/vptree_bsm_bench_alt.cpp b/benchmarks/vldb/vptree_bsm_bench_alt.cpp new file mode 100644 index 0000000..63baf8b --- /dev/null +++ b/benchmarks/vldb/vptree_bsm_bench_alt.cpp @@ -0,0 +1,92 @@ +/* + * + */ + +#define ENABLE_TIMER + +#include "framework/DynamicExtension.h" +#include "shard/VPTree.h" +#include "query/knn.h" +#include "framework/interface/Record.h" +#include "file_util.h" +#include "standard_benchmarks.h" + +#include + +#include "psu-util/timer.h" + + +typedef ANNRec Rec; + +typedef de::VPTree Shard; +typedef de::knn::Query Q; +typedef de::DynamicExtension Ext; +typedef de::knn::Parms QP; + +void usage(char *progname) { + fprintf(stderr, "%s reccnt datafile queryfile\n", progname); +} + +int main(int argc, char **argv) { + + if (argc < 4) { + usage(argv[0]); + exit(EXIT_FAILURE); + } + + size_t n = atol(argv[1]); + std::string d_fname = std::string(argv[2]); + std::string q_fname = std::string(argv[3]); + + auto extension = new Ext(1, 1400, 2, 0, 64); + gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937); + + fprintf(stderr, "[I] Reading data file...\n"); + auto data = read_binary_vector_file(d_fname, n); + + fprintf(stderr, "[I] Generating delete vector\n"); + std::vector to_delete(n * delete_proportion); + size_t j=0; + for (size_t i=0; i(q_fname, 1000, 100); + + fprintf(stderr, "[I] Warming up structure...\n"); + /* warmup structure w/ 10% of records */ + size_t warmup = .1 * n; + size_t delete_idx = 0; + insert_records(extension, 0, warmup, data, to_delete, delete_idx, false, rng); + + extension->await_next_epoch(); + + TIMER_INIT(); + + fprintf(stderr, "[I] Running Insertion Benchmark\n"); + TIMER_START(); + insert_records(extension, warmup, data.size(), data, to_delete, delete_idx, true, rng); + TIMER_STOP(); + + auto insert_latency = TIMER_RESULT(); + size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9); + + fprintf(stderr, "[I] Running Query Benchmark\n"); + TIMER_START(); + run_queries(extension, queries); + TIMER_STOP(); + + auto query_latency = TIMER_RESULT() / queries.size(); + + auto ext_size = extension->get_memory_usage() + extension->get_aux_memory_usage(); + + fprintf(stdout, "%ld\t%ld\t\t%ld\n", insert_throughput, query_latency, ext_size); + + gsl_rng_free(rng); + delete extension; + fflush(stderr); + fflush(stdout); +} + -- cgit v1.2.3 From 8d8885df98c4fce50141cc2ae4eb5b4033c51ee3 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Thu, 9 May 2024 14:12:19 -0400 Subject: Restored IRS warmup to 10% --- benchmarks/vldb/btree_bench.cpp | 2 +- benchmarks/vldb/irs_bench.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/benchmarks/vldb/btree_bench.cpp b/benchmarks/vldb/btree_bench.cpp index 673da33..fa72831 100644 --- a/benchmarks/vldb/btree_bench.cpp +++ b/benchmarks/vldb/btree_bench.cpp @@ -57,7 +57,7 @@ int main(int argc, char **argv) { } /* warmup structure w/ 10% of records */ - size_t warmup = .3 * n; + size_t warmup = .1 * n; size_t delete_idx = 0; insert_records(&btree, 0, warmup, data, to_delete, delete_idx, false, rng); diff --git a/benchmarks/vldb/irs_bench.cpp b/benchmarks/vldb/irs_bench.cpp index f68de63..e062e80 100644 --- a/benchmarks/vldb/irs_bench.cpp +++ b/benchmarks/vldb/irs_bench.cpp @@ -56,7 +56,7 @@ int main(int argc, char **argv) { } /* warmup structure w/ 10% of records */ - size_t warmup = .3 * n; + size_t warmup = .1 * n; size_t delete_idx = 0; insert_records(extension, 0, warmup, data, to_delete, delete_idx, false, rng); -- cgit v1.2.3 From 64444e7ea14368d4e6ed40e89b62ff335b87d65b Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Thu, 9 May 2024 15:51:43 -0400 Subject: Fixed arithmetic bug --- include/framework/structure/BufferView.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/framework/structure/BufferView.h b/include/framework/structure/BufferView.h index 11b8337..e95a799 100644 --- a/include/framework/structure/BufferView.h +++ b/include/framework/structure/BufferView.h @@ -164,7 +164,7 @@ private: bool m_active; size_t to_idx(size_t i) { - size_t idx = (m_start + i >= m_cap) ? i = (m_cap - m_start) + size_t idx = (m_start + i >= m_cap) ? i - (m_cap - m_start) : m_start + i; assert(idx < m_cap); return idx; -- cgit v1.2.3 From ab0ab297959fcca370e80670e17f90a780607a80 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Fri, 10 May 2024 18:35:30 -0400 Subject: MTree structure size --- CMakeLists.txt | 6 ++++++ benchmarks/vldb/mtree_bench.cpp | 4 +++- benchmarks/vldb/mtree_bench_alt.cpp | 4 +++- external/m-tree | 2 +- include/framework/DynamicExtension.h | 2 +- 5 files changed, 14 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7f2e782..9b65b8b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -259,6 +259,12 @@ if (vldb_bench) target_include_directories(mtree_bench_alt PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) target_link_options(mtree_bench_alt PUBLIC -mcx16) target_compile_options(mtree_bench_alt PUBLIC -fopenmp) + + add_executable(mtree_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/mtree_bench.cpp) + target_link_libraries(mtree_bench PUBLIC gsl pthread atomic gomp) + target_include_directories(mtree_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) + target_link_options(mtree_bench PUBLIC -mcx16) + target_compile_options(mtree_bench PUBLIC -fopenmp) endif() diff --git a/benchmarks/vldb/mtree_bench.cpp b/benchmarks/vldb/mtree_bench.cpp index 60425da..cc2f41f 100644 --- a/benchmarks/vldb/mtree_bench.cpp +++ b/benchmarks/vldb/mtree_bench.cpp @@ -71,7 +71,9 @@ int main(int argc, char **argv) { auto query_latency = TIMER_RESULT() / queries.size(); - fprintf(stdout, "%ld\t%ld\n", insert_throughput, query_latency); + auto size = mtree->size() - sizeof(Rec)*(data.size() - to_delete.size()); + + fprintf(stdout, "%ld\t%ld\t%ld\n", insert_throughput, query_latency, size); gsl_rng_free(rng); delete mtree; diff --git a/benchmarks/vldb/mtree_bench_alt.cpp b/benchmarks/vldb/mtree_bench_alt.cpp index 6b08df7..50c6117 100644 --- a/benchmarks/vldb/mtree_bench_alt.cpp +++ b/benchmarks/vldb/mtree_bench_alt.cpp @@ -71,7 +71,9 @@ int main(int argc, char **argv) { auto query_latency = TIMER_RESULT() / queries.size(); - fprintf(stdout, "%ld\t%ld\n", insert_throughput, query_latency); + auto size = mtree->size() - sizeof(Rec)*(data.size() - to_delete.size()); + + fprintf(stdout, "%ld\t%ld\t%ld\n", insert_throughput, query_latency, size); gsl_rng_free(rng); delete mtree; diff --git a/external/m-tree b/external/m-tree index 0f57b05..68fc861 160000 --- a/external/m-tree +++ b/external/m-tree @@ -1 +1 @@ -Subproject commit 0f57b05f4c6bc3dc3e0b77d59aebccac4ab4a9c7 +Subproject commit 68fc861ecb92219e126d669b0e04fbcf85594c7e diff --git a/include/framework/DynamicExtension.h b/include/framework/DynamicExtension.h index 538ff25..e2e2784 100644 --- a/include/framework/DynamicExtension.h +++ b/include/framework/DynamicExtension.h @@ -218,7 +218,7 @@ public: */ size_t get_aux_memory_usage() { auto epoch = get_active_epoch(); - auto t = m_buffer->get_memory_usage() + epoch->get_structure()->get_aux_memory_usage(); + auto t = epoch->get_structure()->get_aux_memory_usage(); end_job(epoch); return t; -- cgit v1.2.3 From c611e8e56ebe72e09127fff4fb14a08dc3fcb698 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Sat, 11 May 2024 12:45:25 -0400 Subject: Added program to sample the binary knn files --- CMakeLists.txt | 6 +++++ benchmarks/bigann_sample.cpp | 55 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 benchmarks/bigann_sample.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 9b65b8b..c6dad75 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -260,6 +260,12 @@ if (vldb_bench) target_link_options(mtree_bench_alt PUBLIC -mcx16) target_compile_options(mtree_bench_alt PUBLIC -fopenmp) + add_executable(bigann_sample ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/bigann_sample.cpp) + target_link_libraries(bigann_sample PUBLIC gsl pthread atomic gomp) + target_include_directories(bigann_sample PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) + target_link_options(bigann_sample PUBLIC -mcx16) + target_compile_options(bigann_sample PUBLIC -fopenmp) + add_executable(mtree_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/mtree_bench.cpp) target_link_libraries(mtree_bench PUBLIC gsl pthread atomic gomp) target_include_directories(mtree_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) diff --git a/benchmarks/bigann_sample.cpp b/benchmarks/bigann_sample.cpp new file mode 100644 index 0000000..aa12f91 --- /dev/null +++ b/benchmarks/bigann_sample.cpp @@ -0,0 +1,55 @@ +/* + * + */ + +#define ENABLE_TIMER + +#include "file_util.h" +#include "benchmark_types.h" + +#include + +typedef ANNRec Rec; + +void usage(char *progname) { + fprintf(stderr, "%s reccnt datafile sampcnt\n", progname); +} + +int main(int argc, char **argv) { + + if (argc < 4) { + usage(argv[0]); + exit(EXIT_FAILURE); + } + + size_t n = atol(argv[1]); + std::string d_fname = std::string(argv[2]); + size_t m = atol(argv[3]); + + gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937); + auto data = read_binary_vector_file(d_fname, n); + + std::vector to_delete(m); + + std::unordered_map> filter; + double ratio = (double) data.size() / (double) m; + size_t j=0; + for (size_t i=0; i Date: Tue, 14 May 2024 16:00:17 -0400 Subject: Poplar Trie: updated benchmark to standard format --- benchmarks/poplar_trie.cpp | 4 ++- benchmarks/string_insertion_tput.cpp | 57 +++++++++++++++++------------------- 2 files changed, 30 insertions(+), 31 deletions(-) diff --git a/benchmarks/poplar_trie.cpp b/benchmarks/poplar_trie.cpp index c85e718..6c47465 100644 --- a/benchmarks/poplar_trie.cpp +++ b/benchmarks/poplar_trie.cpp @@ -61,10 +61,12 @@ int main(int argc, char **argv) { } auto trie = new Trie(); + size_t warmup = strings.size()*.1; + insert_thread(0, warmup, trie); TIMER_INIT(); TIMER_START(); - insert_thread(0, strings.size(), trie); + insert_thread(warmup, strings.size(), trie); TIMER_STOP(); auto total_time = TIMER_RESULT(); diff --git a/benchmarks/string_insertion_tput.cpp b/benchmarks/string_insertion_tput.cpp index 8fa7f44..c439cb3 100644 --- a/benchmarks/string_insertion_tput.cpp +++ b/benchmarks/string_insertion_tput.cpp @@ -6,6 +6,7 @@ #include #include +#include #include "framework/DynamicExtension.h" #include "shard/FSTrie.h" @@ -21,7 +22,6 @@ typedef de::FSTrie Trie; typedef de::pl::Query Q; typedef de::DynamicExtension Ext; -std::vector> strings; void insert_thread(int64_t start, int64_t end, Ext *extension) { for (uint64_t i=start; i>read_strings(std::string fname, size_t n=10000000) { + std::vector> strings; strings.reserve(n); std::fstream file; @@ -45,6 +46,8 @@ void read_data(std::string fname, size_t n=10000000) { i++; psudb::progress_update((double) i / (double) n, "Reading file:"); } + + return strings; } void usage(char *name) { @@ -74,44 +77,38 @@ int main(int argc, char **argv) { for (auto &sf : scale_factors) { for (auto &bf_sz : buffer_sizes) { + auto extension = new Ext(bf_sz, bf_sz, sf); - auto extension = new Ext(bf_sz, bf_sz, sf); - - TIMER_INIT(); - TIMER_START(); - insert_thread(0, strings.size(), extension); - TIMER_STOP(); - - auto total_time = TIMER_RESULT(); + TIMER_INIT(); + TIMER_START(); + insert_thread(0, strings.size(), extension); + TIMER_STOP(); - size_t m = 100; - TIMER_START(); - for (size_t i=0; i parms = {strings[j].get()}; + auto total_time = TIMER_RESULT(); - auto res = extension->query(&parms); - auto ans = res.get(); - - if (ans[0].value != j) { - fprintf(stderr, "ext:\t%ld %ld %s\n", ans[0].value, j, strings[j].get()); - } + size_t m = 100; + TIMER_START(); + for (size_t i=0; i parms = {strings[j].get()}; - assert(ans[0].value == j); - } - TIMER_STOP(); + auto res = extension->query(&parms); + auto ans = res.get(); + } + TIMER_STOP(); - auto query_time = TIMER_RESULT(); - - double i_tput = (double) n / (double) total_time * 1e9; - size_t q_lat = query_time / m; + auto query_time = TIMER_RESULT(); + + double i_tput = (double) n / (double) total_time * 1e9; + size_t q_lat = query_time / m; fprintf(stdout, "%ld\t%ld\t%ld\t%lf\t%ld\t%ld\n", extension->get_record_count(), bf_sz, sf, i_tput, q_lat, extension->get_memory_usage()); - delete extension; + delete extension; - }} + } + } fflush(stderr); } -- cgit v1.2.3 From b1eca8192b7bc17f13c8f3aeae9e79f6bc03347c Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Tue, 14 May 2024 16:02:36 -0400 Subject: Updated psudb-common --- external/psudb-common | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/psudb-common b/external/psudb-common index 97cb5f1..de97509 160000 --- a/external/psudb-common +++ b/external/psudb-common @@ -1 +1 @@ -Subproject commit 97cb5f16c1fc9eb61bcdd132cbd7610b970bc415 +Subproject commit de975098c12a83e996923a11f6b525ddb1985ae3 -- cgit v1.2.3 From c49543e5c23af6bee35c7164ba433fc663c79041 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Tue, 14 May 2024 16:04:43 -0400 Subject: Removed patricia trie stuff --- .gitmodules | 3 - CMakeLists.txt | 13 +---- benchmarks/louds_insertion_tput.cpp | 112 ------------------------------------ external/louds-patricia | 1 - 4 files changed, 1 insertion(+), 128 deletions(-) delete mode 100644 benchmarks/louds_insertion_tput.cpp delete mode 160000 external/louds-patricia diff --git a/.gitmodules b/.gitmodules index 0cb5e92..cfa1326 100644 --- a/.gitmodules +++ b/.gitmodules @@ -16,9 +16,6 @@ [submodule "external/ctpl"] path = external/ctpl url = git@github.com:vit-vit/CTPL.git -[submodule "external/louds-patricia"] - path = external/louds-patricia - url = git@github.com:s-yata/louds-patricia.git [submodule "external/louds-fst"] path = external/louds-fst url = git@github.com:kampersanda/fast_succinct_trie.git diff --git a/CMakeLists.txt b/CMakeLists.txt index c6dad75..e072d58 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -145,12 +145,7 @@ if (tests) add_executable(fst_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/fst_tests.cpp) target_link_libraries(fst_tests PUBLIC gsl check subunit pthread atomic) target_link_options(fst_tests PUBLIC -mcx16) - target_include_directories(fst_tests PRIVATE include external/psudb-common/cpp/include external/PLEX/include external/fast_succinct_trie/include external/louds-patricia) - - #add_executable(louds_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/louds_tests.cpp) - #target_link_libraries(louds_tests PUBLIC gsl check subunit pthread atomic) - #target_link_options(louds_tests PUBLIC -mcx16) - #target_include_directories(louds_tests PRIVATE include external/psudb-common/cpp/include external/PLEX/include external/fast_succinct_trie/include external/louds-patricia) + target_include_directories(fst_tests PRIVATE include external/psudb-common/cpp/include external/PLEX/include external/fast_succinct_trie/include) endif() if (vldb_bench) @@ -295,12 +290,6 @@ if (bench) target_link_options(string_insertion_tput PUBLIC -mcx16) - add_executable(louds_insertion_tput ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/louds_insertion_tput.cpp) - target_link_libraries(louds_insertion_tput PUBLIC gsl pthread atomic) - target_include_directories(louds_insertion_tput PRIVATE include external external/fast_succinct_trie/include external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include external/louds-patricia) - target_link_options(louds_insertion_tput PUBLIC -mcx16) - - add_executable(query_workload_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/query_workload_bench.cpp) target_link_libraries(query_workload_bench PUBLIC gsl pthread atomic) target_include_directories(query_workload_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) diff --git a/benchmarks/louds_insertion_tput.cpp b/benchmarks/louds_insertion_tput.cpp deleted file mode 100644 index d772f3b..0000000 --- a/benchmarks/louds_insertion_tput.cpp +++ /dev/null @@ -1,112 +0,0 @@ -/* - * - */ - -#define ENABLE_TIMER - -#include -#include - -#include "framework/DynamicExtension.h" -#include "shard/LoudsPatricia.h" -#include "query/pointlookup.h" -#include "framework/interface/Record.h" - -#include "psu-util/timer.h" -#include "psu-util/progress.h" - - -typedef de::Record Rec; -typedef de::LoudsPatricia Trie; -typedef de::pl::Query Q; -typedef de::DynamicExtension Ext; - -std::vector> strings; - -void insert_thread(int64_t start, int64_t end, Ext *extension) { - for (uint64_t i=start; iinsert(r)) { - _mm_pause(); - } - } -} - -void read_data(std::string fname, size_t n=10000000) { - strings.reserve(n); - - std::fstream file; - file.open(fname, std::ios::in); - - size_t i=0; - std::string line; - while (i < n && std::getline(file, line, '\n')) { - strings.emplace_back(std::unique_ptr(strdup(line.c_str()))); - i++; - psudb::progress_update((double) i / (double) n, "Reading file:"); - } -} - -void usage(char *name) { - fprintf(stderr, "Usage:\n%s datafile record_count\n", name); -} - -int main(int argc, char **argv) { - - if (argc < 3) { - usage(argv[0]); - exit(EXIT_FAILURE); - } - - std::string fname = std::string(argv[1]); - size_t n = atol(argv[2]); - - read_data(fname, n); - - if (strings.size() == 0) { - fprintf(stderr, "[E]: No string data read from file. Aborting execution.\n"); - } else { - fprintf(stderr, "Finished reading from file.\n"); - } - - std::vector scale_factors = {2, 4, 6, 8, 10, 12}; - std::vector buffer_sizes = {1000, 2000, 5000, 10000, 12000, 15000}; - - for (auto &sf : scale_factors) { - for (auto &bf_sz : buffer_sizes) { - - auto extension = new Ext(bf_sz, bf_sz, sf); - - TIMER_INIT(); - TIMER_START(); - insert_thread(0, strings.size(), extension); - TIMER_STOP(); - - auto total_time = TIMER_RESULT(); - - size_t m = 100; - TIMER_START(); - for (size_t i=0; i parms = {strings[j].get()}; - - auto res = extension->query(&parms); - auto ans = res.get(); - } - TIMER_STOP(); - - auto query_time = TIMER_RESULT(); - - double i_tput = (double) n / (double) total_time * 1e9; - size_t q_lat = query_time / m; - - fprintf(stdout, "%ld\t%ld\t%ld\t%lf\t%ld\t%ld\n", extension->get_record_count(), - bf_sz, sf, i_tput, q_lat, extension->get_memory_usage()); - - delete extension; - - fflush(stderr); - } - } -} - diff --git a/external/louds-patricia b/external/louds-patricia deleted file mode 160000 index f21a3af..0000000 --- a/external/louds-patricia +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f21a3af7377371abf48e6074627505d29fc45d8a -- cgit v1.2.3 From 47c36d9eba94bd1f1493ec82ebfde46ec0c74590 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Tue, 14 May 2024 16:13:18 -0400 Subject: Benchmark helper script --- bin/scripts/run_benchmarks.sh | 78 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 bin/scripts/run_benchmarks.sh diff --git a/bin/scripts/run_benchmarks.sh b/bin/scripts/run_benchmarks.sh new file mode 100644 index 0000000..069d460 --- /dev/null +++ b/bin/scripts/run_benchmarks.sh @@ -0,0 +1,78 @@ +#!/bin/bash + +dataset_dir='/data/dataset/' +query_dir='/data/queries/' +bench_dir='bin/benchmarks/' + +queries=('sosd_books_queries.tsv' 'sosd_fb_queries.tsv' 'sosd_osm_queries.tsv') +datasets=('books_200M_uint64.bin' 'fb_200M_uint64.bin' 'osm_cellids_200M_uint64.bin') +cnt=199999400 + +benchmarks=('irs_bench' 'pgm_bench' 'ts_bench' 'dynamic_pgm_bench' 'btree_bench' 'alex_bench' 'ts_bsm_bench') + +for bench in ${benchmarks[@]}; do + for (( i=0; i<3; i++)); do + dataset=${datasets[$i]} + query=${queries[$i]} + printf "%20s\t%30s\t" "$bench" "$dataset" + numactl -C1 -m1 "$bench_dir""$bench" "$cnt" "$dataset_dir""$dataset" "$query_dir""$query" + + if [[ ! $? ]]; then + printf "ERROR\n" + fi + done +done + +vector_datasets=('cleaned-vectors.txt') +vector_queries=('sbw_queries.txt') + +vector_benchmarks=('vptree_bench' 'mtree_bench' 'vptree_bsm_bench') +for bench in ${vector_benchmarks[@]}; do + for (( i=0; i<1; i++)); do + dataset=${vector_datasets[$i]} + query=${vector_queries[$i]} + printf "%20s\t%30s\t\t" "$bench" "$dataset" + cnt=$(wc -l "$dataset_dir""$dataset" | cut -d' ' -f1) + numactl -C1 -m1 "$bench_dir""$bench" "$cnt" "$dataset_dir""$dataset" "$query_dir""$query" + + if [[ ! $? ]]; then + printf "ERROR\n" + fi + done +done + +string_datasets=('ursarc2.0.txt' 'english-words.txt') +string_benchmarks=('fst_bench' 'fst_bsm_bench') +for bench in ${string_benchmarks[@]}; do + for (( i=0; i<2; i++)); do + dataset=${string_datasets[$i]} + printf "%20s\t%30s\t\t" "$bench" "$dataset" + cnt=$(wc -l "$dataset_dir""$dataset" | cut -d' ' -f1) + numactl -C1 -m1 "$bench_dir""$bench" "$cnt" "$dataset_dir""$dataset" + + if [[ ! $? ]]; then + printf "ERROR\n" + fi + done +done + +binary_vector_datasets=('bigann.u8bin') +binary_vector_queries=('ann_queries.u8bin') + +binary_vector_benchmarks=('vptree_bench_alt' 'mtree_bench_alt' 'vptree_bsm_bench_alt') + +for bench in ${binary_vector_benchmarks[@]}; do + for (( i=0; i<1; i++)); do + dataset=${binary_vector_datasets[$i]} + query=${binary_vector_queries[$i]} + printf "%20s\t%30s\t\t" "$bench" "$dataset" + cnt=10000000 + numactl -C1 -m1 "$bench_dir""$bench" "$cnt" "$dataset_dir""$dataset" "$query_dir""$query" + + if [[ ! $? ]]; then + printf "ERROR\n" + fi + done +done + + -- cgit v1.2.3 From 096d2e3be15361af90257b69dae4b24f751dcab8 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Tue, 14 May 2024 16:18:16 -0400 Subject: Moved thread scalability bench to vldb folder --- CMakeLists.txt | 11 +-- benchmarks/insert_query_tput.cpp | 128 ------------------------------- benchmarks/vldb/thread_scaling_bench.cpp | 128 +++++++++++++++++++++++++++++++ 3 files changed, 134 insertions(+), 133 deletions(-) delete mode 100644 benchmarks/insert_query_tput.cpp create mode 100644 benchmarks/vldb/thread_scaling_bench.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index e072d58..9b229ea 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -266,6 +266,12 @@ if (vldb_bench) target_include_directories(mtree_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) target_link_options(mtree_bench PUBLIC -mcx16) target_compile_options(mtree_bench PUBLIC -fopenmp) + + add_executable(thread_scaling_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/thread_scaling_bench.cpp) + target_link_libraries(thread_scaling_bench PUBLIC gsl pthread atomic) + target_include_directories(thread_scaling_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) + target_link_options(thread_scaling_bench PUBLIC -mcx16) + endif() @@ -295,11 +301,6 @@ if (bench) target_include_directories(query_workload_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) target_link_options(query_workload_bench PUBLIC -mcx16) - add_executable(insert_query_tput ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/insert_query_tput.cpp) - target_link_libraries(insert_query_tput PUBLIC gsl pthread atomic) - target_include_directories(insert_query_tput PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) - target_link_options(insert_query_tput PUBLIC -mcx16) - add_executable(poplar_trie ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/poplar_trie.cpp) target_link_libraries(poplar_trie PUBLIC gsl pthread atomic) target_include_directories(poplar_trie PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include external/poplar-trie/include) diff --git a/benchmarks/insert_query_tput.cpp b/benchmarks/insert_query_tput.cpp deleted file mode 100644 index 29043af..0000000 --- a/benchmarks/insert_query_tput.cpp +++ /dev/null @@ -1,128 +0,0 @@ -/* - * - */ - -#define ENABLE_TIMER - -#include - -#include "framework/DynamicExtension.h" -#include "shard/ISAMTree.h" -#include "query/irs.h" -#include "framework/interface/Record.h" -#include "include/file_util.h" -#include - -#include - -#include "psu-util/timer.h" - - -typedef de::Record Rec; -typedef de::ISAMTree ISAM; -typedef de::irs::Query Q; -typedef de::DynamicExtension Ext; -typedef de::irs::Parms QP; - -std::atomic inserts_done = false; - -struct timespec delay = {0, 500}; - -void query_thread(Ext *extension, std::vector *queries) { - gsl_rng *rng = gsl_rng_alloc(gsl_rng_mt19937); - size_t total = 0; - - while (!inserts_done.load()) { - auto q_idx = gsl_rng_uniform_int(rng, queries->size()); - - auto q = (*queries)[q_idx]; - q.rng = rng; - q.sample_size = 1000; - - auto res = extension->query(&q); - auto r = res.get(); - total += r.size(); - nanosleep(&delay, nullptr); - } - - fprintf(stderr, "%ld\n", total); - - gsl_rng_free(rng); -} - -void insert_thread(Ext *extension, size_t start, size_t stop, std::vector *records) { - fprintf(stderr, "%ld\t%ld\n", start, stop); - for (size_t i=start; iinsert((*records)[i])) { - nanosleep(&delay, nullptr); - } - } -} - -int main(int argc, char **argv) { - - if (argc < 6) { - fprintf(stderr, "Usage:\n"); - fprintf(stderr, "%s reccnt insert_threads query_threads datafile queryfile\n", argv[0]); - exit(EXIT_FAILURE); - } - - size_t n = atol(argv[1]); - size_t ithread_cnt = atol(argv[2]); - size_t qthread_cnt = atol(argv[3]); - std::string d_fname = std::string(argv[4]); - std::string q_fname = std::string(argv[5]); - - auto extension = new Ext(1000, 12000, 8, 0, 64); - gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937); - - auto data = read_sosd_file(d_fname, n); - auto queries = read_range_queries(q_fname, .001); - - /* warmup structure w/ 10% of records */ - size_t warmup = .1 * n; - for (size_t i=0; iinsert(data[i])) { - usleep(1); - } - } - - extension->await_next_epoch(); - - TIMER_INIT(); - - std::vector ithreads(ithread_cnt); - std::vector qthreads(qthread_cnt); - - TIMER_START(); - size_t start = warmup; - size_t per_thread = (n - warmup) / ithread_cnt; - for (size_t i=0; i + +#include "framework/DynamicExtension.h" +#include "shard/ISAMTree.h" +#include "query/irs.h" +#include "framework/interface/Record.h" +#include "file_util.h" +#include + +#include + +#include "psu-util/timer.h" + + +typedef de::Record Rec; +typedef de::ISAMTree ISAM; +typedef de::irs::Query Q; +typedef de::DynamicExtension Ext; +typedef de::irs::Parms QP; + +std::atomic inserts_done = false; + +struct timespec delay = {0, 500}; + +void query_thread(Ext *extension, std::vector *queries) { + gsl_rng *rng = gsl_rng_alloc(gsl_rng_mt19937); + size_t total = 0; + + while (!inserts_done.load()) { + auto q_idx = gsl_rng_uniform_int(rng, queries->size()); + + auto q = (*queries)[q_idx]; + q.rng = rng; + q.sample_size = 1000; + + auto res = extension->query(&q); + auto r = res.get(); + total += r.size(); + nanosleep(&delay, nullptr); + } + + fprintf(stderr, "%ld\n", total); + + gsl_rng_free(rng); +} + +void insert_thread(Ext *extension, size_t start, size_t stop, std::vector *records) { + fprintf(stderr, "%ld\t%ld\n", start, stop); + for (size_t i=start; iinsert((*records)[i])) { + nanosleep(&delay, nullptr); + } + } +} + +int main(int argc, char **argv) { + + if (argc < 6) { + fprintf(stderr, "Usage:\n"); + fprintf(stderr, "%s reccnt insert_threads query_threads datafile queryfile\n", argv[0]); + exit(EXIT_FAILURE); + } + + size_t n = atol(argv[1]); + size_t ithread_cnt = atol(argv[2]); + size_t qthread_cnt = atol(argv[3]); + std::string d_fname = std::string(argv[4]); + std::string q_fname = std::string(argv[5]); + + auto extension = new Ext(1000, 12000, 8, 0, 64); + gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937); + + auto data = read_sosd_file(d_fname, n); + auto queries = read_range_queries(q_fname, .001); + + /* warmup structure w/ 10% of records */ + size_t warmup = .1 * n; + for (size_t i=0; iinsert(data[i])) { + usleep(1); + } + } + + extension->await_next_epoch(); + + TIMER_INIT(); + + std::vector ithreads(ithread_cnt); + std::vector qthreads(qthread_cnt); + + TIMER_START(); + size_t start = warmup; + size_t per_thread = (n - warmup) / ithread_cnt; + for (size_t i=0; i Date: Tue, 14 May 2024 16:18:28 -0400 Subject: README update --- README.md | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index fedb32c..f0e9d68 100644 --- a/README.md +++ b/README.md @@ -12,8 +12,8 @@ The project is built using cmake. CMakeLists contains several flags that can be used to customize the build. In particular, setting `debug` to true will build without optimization, and with asan and ubsan enabled. The `tests` and `benchmarks` flag can be used to toggle the construction of unit tests -and benchmarks respectively. `old_bench` should be ignored--most of these won't -build anymore anyway. Eventually that will be removed. +and benchmarks respectively. The benchmarks specific to the VLDB 2024 +submission are built using the `vldb_bench` flag. After configuring the build to your liking, make sure that you initialized the git sub-modules first if you've just cloned the repository. @@ -33,11 +33,19 @@ The unit test binaries will appear in `bin/tests/` and the benchmarks in `bin/benchmarks/`. ## Available Benchmarks -At present there are several benchmarks available in `benchmarks/`. Not every -benchmark has been updated to build with the current version; these can be -found in `benchmarks/old-bench/`. Most of the benchmarks will display a help -message, showing what arguments they expect, if you run them without any -arguments, or with the wrong number of arguments. +The benchmarks relevant to the 2024 VLDB submission are located in +`benchmarks/vldb`, and various other benchmarks are in `benchmarks`. The +majority of the benchmark suite used for creating the figures in the VLDB +submission can be run using the `bin/scripts/run_benchmarks.sh` script, which +should be updated first with the locations of the desired data and query files. +The main benchmark not automatically run by this script is +`bin/benchmarks/ts_parmsweep`, which should be updated (by editing +`benchmarks/vldb/ts_parmsweep`) to reflect the parameter values to test, and +then run manually as desired. + +Most of the benchmarks will display a help message, showing what arguments they +expect, if you run them without any arguments, or with the wrong number of +arguments. ## Unit Tests While test coverage is not perfect yet, there are some basic unit tests in @@ -48,6 +56,11 @@ unit](https://libcheck.github.io/check/) test framework. This is still an active research project, and so the interfaces are not yet stable. Proper documentation will come when these interfaces stabilize a little. In the meantime, the code will have to serve as the documentation. -There are also a lot of comments in most of the files, though several are a bit -light in that regard. + +Some of the most important files are `include/framework/DynamicExtension`, +which contains the external interface of the framework, and +`include/framework/interface/*`, which contains the necessary C++20 +concepts/interfaces for developing your own shards and queries. Any class +implementing the appropriate interfaces can be used as template arguments to +the DynamicExtension itself. -- cgit v1.2.3 From 8643fe194dec05b4e3f3ea31e162ac0b2b00e162 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Tue, 14 May 2024 16:27:42 -0400 Subject: Added btree thread scaling benchmark --- CMakeLists.txt | 13 ++- benchmarks/btree_insert_query_tput.cpp | 120 ------------------------- benchmarks/vldb/btree_thread_scaling_bench.cpp | 120 +++++++++++++++++++++++++ 3 files changed, 129 insertions(+), 124 deletions(-) delete mode 100644 benchmarks/btree_insert_query_tput.cpp create mode 100644 benchmarks/vldb/btree_thread_scaling_bench.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 9b229ea..a03c351 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -271,6 +271,15 @@ if (vldb_bench) target_link_libraries(thread_scaling_bench PUBLIC gsl pthread atomic) target_include_directories(thread_scaling_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) target_link_options(thread_scaling_bench PUBLIC -mcx16) + target_compile_options(thread_scaling_bench PUBLIC -fopenmp) + + + add_executable(btree_thread_scaling_bench + ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/btree_thread_scaling_bench.cpp) + target_link_libraries(btree_thread_scaling_bench PUBLIC gsl pthread atomic) + target_include_directories(btree_thread_scaling_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) + target_link_options(btree_thread_scaling_bench PUBLIC -mcx16) + target_compile_options(btree_thread_scaling_bench PUBLIC -fopenmp) endif() @@ -317,10 +326,6 @@ if (bench) target_include_directories(cedar_trie PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include external/hat-trie/include/tsl) target_link_options(cedar_trie PUBLIC -mcx16) - #add_executable(btree_insert_query_tput ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/btree_insert_query_tput.cpp) - #target_link_libraries(btree_insert_query_tput PUBLIC gsl cblas pthread atomic) - #target_include_directories(btree_insert_query_tput PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include) - #target_link_options(btree_insert_query_tput PUBLIC -mcx16) add_executable(watermark_testing ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/watermark_testing.cpp) target_link_libraries(watermark_testing PUBLIC gsl pthread atomic) diff --git a/benchmarks/btree_insert_query_tput.cpp b/benchmarks/btree_insert_query_tput.cpp deleted file mode 100644 index f838f80..0000000 --- a/benchmarks/btree_insert_query_tput.cpp +++ /dev/null @@ -1,120 +0,0 @@ -/* - * - */ - -#define ENABLE_TIMER - -#include - -#include "query/irs.h" -#include "include/data-proc.h" -#include "psu-ds/BTree.h" -#include - -#include - -#include "psu-util/timer.h" - - -typedef de::Record Rec; -typedef de::irs::Parms QP; - -std::atomic inserts_done = false; - -std::mutex g_btree_lock; - -void query_thread(BenchBTree *tree, std::vector *queries) { - gsl_rng *rng = gsl_rng_alloc(gsl_rng_mt19937); - size_t total = 0; - - while (!inserts_done.load()) { - auto q_idx = gsl_rng_uniform_int(rng, queries->size()); - - auto q = (*queries)[q_idx]; - - std::vector result; - g_btree_lock.lock(); - tree->range_sample(q.lower_bound, q.upper_bound, 1000, result, rng); - g_btree_lock.unlock(); - - total += result.size(); - usleep(1); - } - - fprintf(stderr, "%ld\n", total); - - gsl_rng_free(rng); -} - -void insert_thread(BenchBTree *tree, size_t start, std::vector *records) { - size_t reccnt = 0; - for (size_t i=start; isize(); i++) { - btree_record r; - r.key = (*records)[i]; - r.value = i; - - g_btree_lock.lock(); - tree->insert(r); - g_btree_lock.unlock(); - - if (i % 100000 == 0) { - fprintf(stderr, "Inserted %ld records\n", i); - } - } - - inserts_done.store(true); -} - -int main(int argc, char **argv) { - - if (argc < 5) { - fprintf(stderr, "btree_insert_query_tput reccnt query_threads datafile queryfile\n"); - exit(EXIT_FAILURE); - } - - size_t n = atol(argv[1]); - size_t qthread_cnt = atol(argv[2]); - std::string d_fname = std::string(argv[3]); - std::string q_fname = std::string(argv[4]); - - auto tree = new BenchBTree(); - gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937); - - auto data = read_sosd_file(d_fname, n); - auto queries = read_range_queries(q_fname, .001); - - /* warmup structure w/ 10% of records */ - size_t warmup = .1 * n; - for (size_t i=0; iinsert(r); - } - - TIMER_INIT(); - - std::vector qthreads(qthread_cnt); - - TIMER_START(); - std::thread i_thrd(insert_thread, tree, warmup, &data); - for (size_t i=0; i + +#include "query/irs.h" +#include "benchmark_types.h" +#include "file_util.h" +#include + +#include + +#include "psu-util/timer.h" + + +typedef btree_record Rec; +typedef de::irs::Parms QP; + +std::atomic inserts_done = false; + +std::mutex g_btree_lock; + +void query_thread(BenchBTree *tree, std::vector *queries) { + gsl_rng *rng = gsl_rng_alloc(gsl_rng_mt19937); + size_t total = 0; + + while (!inserts_done.load()) { + auto q_idx = gsl_rng_uniform_int(rng, queries->size()); + + auto q = (*queries)[q_idx]; + + std::vector result; + g_btree_lock.lock(); + tree->range_sample(q.lower_bound, q.upper_bound, 1000, result, rng); + g_btree_lock.unlock(); + + total += result.size(); + usleep(1); + } + + fprintf(stderr, "%ld\n", total); + + gsl_rng_free(rng); +} + +void insert_thread(BenchBTree *tree, size_t start, std::vector *records) { + size_t reccnt = 0; + for (size_t i=start; isize(); i++) { + btree_record r; + r.key = (*records)[i].key; + r.value = i; + + g_btree_lock.lock(); + tree->insert(r); + g_btree_lock.unlock(); + + if (i % 100000 == 0) { + fprintf(stderr, "Inserted %ld records\n", i); + } + } + + inserts_done.store(true); +} + +int main(int argc, char **argv) { + + if (argc < 5) { + fprintf(stderr, "btree_insert_query_tput reccnt query_threads datafile queryfile\n"); + exit(EXIT_FAILURE); + } + + size_t n = atol(argv[1]); + size_t qthread_cnt = atol(argv[2]); + std::string d_fname = std::string(argv[3]); + std::string q_fname = std::string(argv[4]); + + auto tree = new BenchBTree(); + gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937); + + auto data = read_sosd_file(d_fname, n); + auto queries = read_range_queries(q_fname, .001); + + /* warmup structure w/ 10% of records */ + size_t warmup = .1 * n; + for (size_t i=0; i r; + r.key = data[i].key; + r.value = data[i].value; + + tree->insert(r); + } + + TIMER_INIT(); + + std::vector qthreads(qthread_cnt); + + TIMER_START(); + std::thread i_thrd(insert_thread, tree, warmup, &data); + for (size_t i=0; i