| From: | Paul Jungwirth <pj(at)illuminatedcomputing(dot)com> | 
|---|---|
| To: | pgsql-general(at)lists(dot)postgresql(dot)org | 
| Subject: | Re: Treating float arrays as vectors? | 
| Date: | 2021-06-17 16:08:18 | 
| Message-ID: | c6cdac6a-a3cd-88a1-2400-caa4fbb5d832@illuminatedcomputing.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-general | 
On 6/17/21 7:13 AM, Celia McInnis wrote:
> I would love it if there was a vector data type in postgresql along with 
> such vector operations as addition, subtraction, scalar multiplication, 
> cross product, dot product, normalization, length and various sorts of 
> vector distances.
I wrote an extension to define vector-based functions that take & return 
numeric arrays:
https://github.com/pjungwir/floatvec
It only has basic arithmetic, but matrix math functions could be added.
If you want aggregate functions instead I wrote another extension for that:
https://github.com/pjungwir/aggs_for_vecs
I haven't touched either in a while, but if you find they have problems 
on modern versions of Postgres, let me know and I should be able to get 
them updated quickly.
I experimented a bit with an AVX implementation, and it showed a 
worthwhile performance improvement, but I never got around to adding it 
to all functions, so it was just a proof-of-concept. I could dust that 
off if you're interested. But since the extension is C things are 
already pretty fast.
Yours,
-- 
Paul              ~{:-)
pj(at)illuminatedcomputing(dot)com
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Gavan Schneider | 2021-06-17 23:19:52 | Re: A simple question about text fields | 
| Previous Message | Alexey Bashtanov | 2021-06-17 15:48:16 | Re: Streaming replication: PANIC on tertiary when secondary promoted |