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: | Raw Message | Whole Thread | 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 |