cosine function

Поиск
Список
Период
Сортировка
От Shmagi Kavtaradze
Тема cosine function
Дата
Msg-id CAHY6mawUHzGxz9SCXDcwZrnocK9BvQtJ6xEw04EP4cgE=_NPhg@mail.gmail.com
обсуждение исходный текст
Список pgsql-novice
I want to create a cosine distance function for arrays. Array entries looks like:

[-0.000434909090909,6.65454545455e-05,-0.000470090909091,-0.000557909090909]

and I want to calculate cosine distance. I created function but not sure if it is right. 

#include "postgres.h"
#include <string.h>

#ifdef PG_MODULE_MAGIC
PG_MODULE_MAGIC;
#endif

PG_FUNCTION_INFO_V1(cos_embedded);

Datum
cos_embedded(PG_FUNCTION_ARGS)
{
ArrayType  *A, *B;
float *result;
float dot = 0.0;
float denom_a = 0.0;
float denom_b = 0.0;
    A = PG_GETARG_ARRAYTYPE_P(0);
    B = PG_GETARG_ARRAYTYPE_P(1);

    for(unsigned int i = 0u; i < sizeof(A); ++i) {
        dot += A[i] * B[i] ;
        denom_a += A[i] * A[i] ;
        denom_b += B[i] * B[i] ;
    }
result = dot / (sqrt(denom_a) * sqrt(denom_b)) ;
    PG_RETURN_FLOAT(result);
}


Thanks in advance.

В списке pgsql-novice по дате отправления:

Предыдущее
От: Keith
Дата:
Сообщение: Re: How to view the activity of postgresql
Следующее
От: richard@xentu.com
Дата:
Сообщение: Re: How to view the activity of postgresql