Re: Treating float arrays as vectors? - Mailing list pgsql-general

From Paul Jungwirth
Subject Re: Treating float arrays as vectors?
Date
Msg-id c6cdac6a-a3cd-88a1-2400-caa4fbb5d832@illuminatedcomputing.com
Whole thread Raw
In response to Treating float arrays as vectors?  (Celia McInnis <celia.mcinnis@gmail.com>)
List 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@illuminatedcomputing.com



pgsql-general by date:

Previous
From: Alexey Bashtanov
Date:
Subject: Re: Streaming replication: PANIC on tertiary when secondary promoted
Next
From: Gavan Schneider
Date:
Subject: Re: A simple question about text fields