Does Manticore Normalize Vectors for storage?

I’ve noticed, the vectors get out, not exactly the same

Can reproduce it with a small test

CREATE TABLE test ( title TEXT, 
	image_vector FLOAT_VECTOR knn_type='hnsw' knn_dims='4' hnsw_similarity='COSINE',
	plus_vector FLOAT_VECTOR knn_type='hnsw' knn_dims='6' hnsw_similarity='COSINE' 
	);
INSERT INTO test VALUES
        ( 1, 'yellow bag', (0.653448,0.192478,0.017971,0.339821), (0.653448,0.192478,0.017971,0.339821, -0.84681564569473, 0.33541718125343) ),
        ( 2, 'white bag', (-0.148894,0.748278,0.091892,-0.095406),(-0.148894,0.748278,0.091892,-0.095406, -0.8130487203598, 0.56994336843491) );
        
        
SELECT * FROM test;

+------+------------+-----------------------------------------------+--------------------------------------------------------------------+
| id   | title      | image_vector                                  | plus_vector                                                        |
+------+------------+-----------------------------------------------+--------------------------------------------------------------------+
|    1 | yellow bag | 0.85813516,0.25277016,0.02360027,0.44626713   | 0.55041087,0.16212764,0.01513729,0.28623727,-0.71328783,0.28252783 |
|    2 | white bag  | -0.19227970,0.96631610,0.11866808,-0.12320603 | -0.11824735,0.59426093,0.07297799,-0.07576871,-0.645700,0.45263270 |
+------+------------+-----------------------------------------------+--------------------------------------------------------------------+

The vectors are differnet to what inserted.
the ‘plus_vector’ is the same as ‘image_vector’, but adds two more numbers on the end. in the output, even the first 4 numbers are different.

I’ve previouslly checked the vectors I’ve inserted come out ok, but that has been with full 512 dimension vectors from a ML model. So should of been normallized to a unit vector already

Here the 514 dimension one doesnt work, becuase of the two extrea numbers I KNOW it no longer a unit vector, but find it doesnt even store.

Similarly I guess these demo 4 dimensions vectors from the manual, were not unit length anyway. So when inserting, gets transformed to proper unit vectors?

Dont mind if they are normalized to unit vector as such, just want to understand what happening, as it doesnt seem to be documented, that this will happen.

Answering my own question!

Taking [quote=“barryhunter, post:1, topic:2438”]
(0.653448,0.192478,0.017971,0.339821)
[/quote]

If ask Wolfram alpha to normalize that
(0.653448,0.192478,0.017971,0.339821)

Get {0.858135, 0.25277, 0.0236003, 0.446267} which matches the manticore output.

Simially get
{0.550411, 0.162128, 0.0151373, 0.286237, -0.713288, 0.282528}
when normalizing my longer test vector, which again matches the manticore output

So definitly seems that manticore is normalizing the vector!

So guess

should note the vector will be normalized?

Edit: But seems fact using COSINE is significant (which found much better for pain CLIP embeddings, I think as they designed for it) if switch to hnsw_similarity=‘L2’ - then my non-normalized vector IS stored as is.

Probably not an issue if people store proper feature/embeddings, as likely normalized anyway. But can be an issue if trying to store other stuff ? (like I was)