- cosine_similarity
- l2_distance
- dot_product
gcc -shared -o nonsimd_vector.dll main.c
gcc -shared -o simd_vector.dll main_simd.c -mavx -mfma -O3 -march=native -ffast-math -fopenmpimport Database from 'better-sqlite3';
const db = new Database('embedblob.db');
db.loadExtension("[path to your dll for windows/so for linux/[darwin file type os file type]/simd_vector.dll")
//
const embedding = yourEmbeddingFunction(useQuery)
const sim = 0.7
const f = new Float32Array(embedding) // must be 1d 32 binary buffer/array
const res2 = db.prepare(`
SELECT *,
cosine_similarity(embeddings, ?) AS similarity
FROM embeddings
WHERE sessid = ? AND similarity > ?
`).all(embedding, sess, sim);
// sess is just session id for chats avalable functions
//cosine_similarity, l2_distance, dot_product
const f = new Float32Array(embedding) // must be 1d 32 binary buffer/array
const rows2 = db.prepare(`
SELECT *, l2_distance(embeddings, ?) AS distance,
dot_product(embeddings, ?) AS dot_product
FROM embeddings WHERE sessid = ?
`).all(f,f, "sess1");
console.log(rows2[0])