mirror of
https://github.com/photoprism/photoprism.git
synced 2025-12-12 00:34:13 +01:00
101 lines
58 KiB
Go
101 lines
58 KiB
Go
package vector
|
|
|
|
import (
|
|
"math"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestVector(t *testing.T) {
|
|
// Create test vectors.
|
|
a, err := NewVector([]int{1, 2, 3, 4, 6, 5})
|
|
assert.NoError(t, err)
|
|
b, err := NewVector([]int{2, 1, 3, 4, 5, 6})
|
|
assert.NoError(t, err)
|
|
c := Vector([]float64{-0.008137415163218975, -0.08006370067596436, 0.07025300711393356, 0.05047300457954407, -0.048540644347667694, 0.02255844883620739, -0.032381802797317505, -0.030422719195485115, -0.002007395029067993, 0.02374134585261345, 0.06882382184267044, -0.0014070027973502874, 0.0016334111569449306, -0.0006230792496353388, 0.024960000067949295, 0.05986246466636658, -0.024349741637706757, 0.04618404060602188, -0.08673757314682007, 0.05276675894856453, 0.0027138087898492813, 0.008117659948766232, -0.0037429891526699066, -0.01570519059896469, -0.13779018819332123, 0.06322789937257767, -0.058197781443595886, 0.04746529087424278, -0.08711255341768265, 0.019238201901316643, -0.05508963391184807, 0.017365770414471626, 0.02562207169830799, -0.002929446753114462, -0.07081708312034607, 0.03103666938841343, 0.0022698792163282633, 0.051838476210832596, 0.01691291667521, 0.005320006050169468, 0.030585378408432007, 0.06941074877977371, 0.008247891440987587, -0.03533969074487686, 0.05122591182589531, 0.04988280311226845, 0.08505327254533768, 0.04561468958854675, -0.062374748289585114, 0.022638529539108276, -0.022780820727348328, 0.0775931254029274, 0.02398429997265339, 0.03495755046606064, -0.012407658621668816, -0.03283195570111275, 0.06503018736839294, -0.03657644987106323, -0.029164006933569908, 0.058266233652830124, -0.019877741113305092, -0.04159046709537506, 0.0050654299557209015, -0.015958501026034355, -0.0295542161911726, 0.02208816446363926, 0.017241189256310463, -0.00469202920794487, -0.016516422852873802, 0.018105173483490944, 0.04346457123756409, 0.04661091789603233, 0.0091007174924016, -0.02539660967886448, -0.05948945879936218, 0.008711921982467175, -0.05822482705116272, 0.06004893407225609, -0.04515865445137024, -0.07707851380109787, 0.0032580809202045202, 0.006324823014438152, 0.02883482724428177, -0.01455928385257721, -0.03203008323907852, 0.010120648890733719, 0.02116110734641552, -0.028596824035048485, -0.06669415533542633, -0.03394141048192978, -0.021578358486294746, -0.0029677071142941713, -0.07965116947889328, -0.0005286909872666001, 0.048941437155008316, 0.05800784006714821, 0.042431481182575226, -0.03241220489144325, 0.0220502782613039, -0.03481437265872955, -0.04674076661467552, -0.004196728114038706, -0.07022743672132492, 0.07238440960645676, 0.04464253410696983, -0.04207949340343475, 0.021947475150227547, 0.013727233745157719, -0.06659548729658127, -0.00480034900829196, -0.010313994251191616, 0.02640429139137268, -0.0018985014175996184, -0.017516719177365303, 0.05424032732844353, 0.03034326806664467, -0.009059063158929348, -0.014670928940176964, 0.03108176961541176, -0.06324155628681183, 0.009439341723918915, -0.03230450302362442, 0.03011772409081459, -0.08903207629919052, 0.049357179552316666, -0.018093667924404144, -0.09150006622076035, 0.03277801349759102, -0.020068803802132607, -0.12405339628458023, 0.039792630821466446, -0.01258617639541626, -0.050734683871269226, 0.01388365589082241, -0.020610308274626732, -0.01117456890642643, -0.047699980437755585, 0.00904754176735878, -0.009436380118131638, 0.03356689587235451, 0.05179798603057861, -0.003932574763894081, 0.004325704649090767, 0.013883235864341259, -0.01672312431037426, -0.009120902046561241, 0.02865191549062729, -0.00018901238217949867, -0.14957121014595032, 0.06165143474936485, -0.010900797322392464, -0.04367987439036369, -0.08651748299598694, -0.04971740022301674, -0.012035397812724113, 0.05332765355706215, -0.03252051770687103, 0.027909329161047935, -0.043622151017189026, -0.03164845332503319, -0.03198356553912163, 0.05128004029393196, -0.040155746042728424, -0.0056242248974740505, -0.047345563769340515, 0.012517815455794334, -0.04241799935698509, -0.05661820247769356, 0.025342857465147972, -0.03272772207856178, -0.020752016454935074, 0.02841475047171116, 0.026285288855433464, -0.023260189220309258, 0.10821936279535294, 0.042671091854572296, 0.02412649802863598, -0.04032492637634277, 0.02996264584362507, -0.04249041527509689, -0.06933289021253586, 0.027393169701099396, 0.05308475345373154, -0.02078690193593502, -0.0067361886613070965, -0.0238595362752676, 0.01484128087759018, 0.021988647058606148, 0.06511303037405014, -0.08086460083723068, 0.03650467097759247, -0.021279210224747658, 0.045867037028074265, 0.06642837822437286, -0.003237910568714142, -0.01581430248916149, -0.02993408963084221, -0.0012522733304649591, -0.10658521205186844, -0.004413484595716, 0.014794287271797657, 0.04928160458803177, -0.029931025579571724, -0.0077111730352044106, -0.0732073038816452, 0.04210418090224266, -0.02385932393372059, 0.010084617882966995, -0.03800346329808235, -0.0682244822382927, 0.05564611777663231, 0.03370542451739311, 0.03176405653357506, -0.03024214692413807, 0.06749926507472992, -0.04842272028326988, 0.024823250249028206, 0.03411858156323433, 0.012186306528747082, 0.000344925036188215, 0.008661405183374882, -0.06331458687782288, -0.06190492585301399, -0.08768630772829056, 0.00041797355515882373, -0.018540306016802788, 0.04823239892721176, 0.06846356391906738, -0.03144964575767517, 0.03312361240386963, 0.023701541125774384, 0.06020048260688782, -0.018800485879182816, -0.01420025434345007, -0.01672394946217537, -0.016691889613866806, 0.011016116477549076, 0.013350298628211021, 0.01238208170980215, 0.01691477745771408, -0.0010262437863275409, 0.053074032068252563, 0.018735406920313835, 0.035321593284606934, -0.022181423380970955, -0.017033280804753304, 0.032775890082120895, 0.05400064215064049, -0.019599098712205887, -0.014503749087452888, -0.021623743698000908, -0.020413488149642944, 0.033719275146722794, 0.015080427750945091, 0.044618159532547, 0.10514744371175766, -0.07683298736810684, -0.04230527579784393, -0.04676186293363571, 0.1221809908747673, 0.018557196483016014, -0.10948510468006134, -0.007052143104374409, 0.03444751724600792, -0.12690776586532593, 0.01613660342991352, 0.026724737137556076, -0.01689913682639599, 0.032920803874731064, 0.0033084892202168703, -0.008477253839373589, 0.005826534237712622, 0.05720831826329231, -0.01001140009611845, 0.06672288477420807, -0.03293010592460632, -0.008007185533642769, 0.03565505892038345, -0.045379389077425, -0.01783432625234127, -0.06628750264644623, -0.0027283544186502695, 0.03038688562810421, -0.020332351326942444, -0.06984596699476242, 0.07357253134250641, 0.10730107873678207, -0.015427534468472004, -0.0743771567940712, -0.043926578015089035, 0.04178789258003235, 0.011173141188919544, 0.025277631357312202, 0.07788840681314468, 0.004462982527911663, -0.05092375725507736, -0.008599985390901566, -0.011293918825685978, -0.027740459889173508, -0.08115565031766891, -0.009694007225334644, -0.07026723772287369, 0.02862926386296749, 0.01975271850824356, 0.00902275275439024, 0.05126506835222244, -0.07478014379739761, 0.021499518305063248, 0.055629830807447433, 0.031052052974700928, 0.05949579179286957, -0.028020750731229782, -0.02862796001136303, 0.056453678756952286, -0.031041307374835014, 0.02422715350985527, -0.07100068032741547, 0.032912544906139374, 0.009702234528958797, 0.06579262763261795, -0.08040975034236908, 0.06385798007249832, -0.009425429627299309, 0.0210894588381052, 0.018046097829937935, 0.005574067123234272, -0.04380524903535843, 0.022144699469208717, 0.025359811261296272, 0.04807835817337036, 0.0006021010922268033, -0.07143598049879074, 0.020978737622499466, -0.05171458050608635, 0.0382511243224144, 0.025260137394070625, 0.09952495992183685, 0.014374740421772003, -0.03502845764160156, 0.008830498903989792, -0.06433495879173279, -0.07015430927276611, 0.0705648809671402, 0.010429518297314644, 0.01585286110639572, -0.056704264134168625, 0.00618960103020072, 0.03986428678035736, 0.003704571630805731, -0.015225011855363846, 0.008472353219985962, 0.07302212715148926, -0.020373830571770668, 0.003514211857691407, 0.013997740112245083, -0.0038872845470905304, -0.03703470155596733, -0.03875543549656868, -0.012492465786635876, 0.059783436357975006, 0.014407767914235592, 0.032212793827056885, 0.03943135216832161, -0.04783743992447853, -0.08073361217975616, 0.025175172835588455, -0.07072967290878296, 0.06343924254179001, 0.041898149996995926, -0.056953541934490204, 0.029663341119885445, 0.04826335236430168, 0.010070821270346642, -0.037220172584056854, 0.01026119664311409, 0.061207421123981476, 0.0938570499420166, -0.037144023925065994, 0.04894149303436279, -0.011274874210357666, -0.0167219378054142, -0.06375480443239212, 0.022223835811018944, -0.05070881545543671, 0.01647593080997467, -0.022871576249599457, 0.06493012607097626, -0.10572224110364914, -0.042038556188344955, -0.026631822809576988, 0.04876351356506348, 0.03300929814577103, 0.010545262135565281, -0.011176304891705513, -0.034550394862890244, 0.019394656643271446, -0.033105626702308655, -0.01746574230492115, 0.04380633309483528, 0.021436357870697975, -0.01687694527208805, 0.009079670533537865, -0.0019935970194637775, 0.02397148869931698, 0.020745644345879555, -0.021921435371041298, 0.013043859973549843, -0.001916338107548654, -0.04032173752784729, 0.010448900051414967, -0.01346014253795147, -0.048173755407333374, 0.0696289911866188, 0.0027435971423983574, -0.020373817533254623, 0.03318791463971138, -0.05028868094086647, -0.06621105223894119, 0.08377863466739655, -0.06662183254957199, 0.040066834539175034, -0.031038448214530945, -0.0012645371025428176, -0.08046844601631165, -0.07508288323879242, -0.011627450585365295, 0.05332736670970917, -0.050804637372493744, -0.02298901602625847, 0.017321497201919556, 0.04411279037594795, 0.02128334902226925, 0.026375887915492058, -0.006951047573238611, 0.026754219084978104, 0.04742620140314102, -0.01177502702921629, 0.060023725032806396, 0.005484475754201412, -0.00279219844378531, -0.09506803750991821, 0.08349333703517914, -0.02932984009385109, -0.0005634548142552376, -0.009349865838885307, -0.04879671335220337, 0.021670177578926086, -0.03875391557812691, -0.028711730614304543, -0.03708324581384659, -0.11263322830200195, -0.033891621977090836, 0.04228183254599571, 0.045042142271995544, 0.028116095811128616, 0.005323487799614668, 0.10822916775941849, -0.011182534508407116, -0.060331087559461594, -0.027081234380602837, -0.030490467324852943, -0.050583478063344955, 0.013974534347653389, -0.006292127538472414, 0.05019136518239975, 0.044325292110443115, 0.008860588073730469, 0.0005901191616430879, -0.04545517638325691, 0.028188807889819145, 0.02233756333589554, -0.07275871932506561, -0.04000203683972359, 0.05174611508846283, -0.050140008330345154, 0.017476622015237808, 0.0713571161031723, 0.042271941900253296, -0.004472524859011173, 0.0516694039106369, 0.07247994840145111, -0.027353506535291672, -0.024733062833547592, -0.049786582589149475, -0.01696055382490158, 0.06537499278783798, 0.04510447010397911, -0.04963269829750061, 0.018454866483807564, 0.03766272962093353, -0.08027862757444382, 0.06390812247991562, 0.009653930552303791, -0.017673317342996597, 0.008882815018296242, 0.001341609749943018, -0.0008363581146113575, 0.005991082638502121, 0.030882244929671288, -0.0010816589929163456, -0.043741147965192795, -0.02244267612695694, 0.020251808688044548, -0.008073689416050911, 0.0008555973181501031, -0.025090467184782028, 0.014763036742806435, 0.008378133177757263, 0.06943207234144211, 0.04518865421414375, -0.051252108067274094, 0.004460426978766918})
|
|
d := Vector([]float64{0, 0, 0, 0, 0, 0})
|
|
e := Vector([]float64{})
|
|
n := make(Vector, 512)
|
|
|
|
t.Run("Norm", func(t *testing.T) {
|
|
assert.InDelta(t, 9.539392014169456, a.EuclideanNorm(), 0.01)
|
|
assert.InDelta(t, 9.539392014169456, b.EuclideanNorm(), 0.01)
|
|
assert.Equal(t, a.EuclideanNorm(), b.EuclideanNorm())
|
|
assert.InDelta(t, 0.9999999779072661, c.EuclideanNorm(), 0.01)
|
|
assert.InDelta(t, 0, d.EuclideanNorm(), 0.01)
|
|
assert.InDelta(t, 0, e.EuclideanNorm(), 0.01)
|
|
assert.Equal(t, d.EuclideanNorm(), e.EuclideanNorm())
|
|
})
|
|
t.Run("EuclideanDist", func(t *testing.T) {
|
|
assert.InDelta(t, 2, a.EuclideanDist(b), 0.01)
|
|
assert.InDelta(t, a.EuclideanDist(b), b.EuclideanDist(a), 0.01)
|
|
assert.True(t, math.IsNaN(c.EuclideanDist(d)))
|
|
assert.InDelta(t, 0, d.EuclideanDist(d), 0.01)
|
|
assert.True(t, math.IsNaN(e.EuclideanDist(d)))
|
|
assert.InDelta(t, 0.9999999779072661, c.EuclideanDist(n), 0.01)
|
|
})
|
|
t.Run("CosineDist", func(t *testing.T) {
|
|
assert.InDelta(t, 0.978021978021978, a.CosineDist(b), 0.01)
|
|
assert.True(t, math.IsNaN(c.CosineDist(d)))
|
|
assert.InDelta(t, 0, d.CosineDist(d), 0.01)
|
|
assert.True(t, math.IsNaN(e.CosineDist(d)))
|
|
assert.InDelta(t, 0, c.CosineDist(n), 0.01)
|
|
assert.InDelta(t, 0, n.CosineDist(n), 0.01)
|
|
assert.InDelta(t, 1.0, c.CosineDist(c), 0.01)
|
|
assert.InDelta(t, 1.0, a.CosineDist(a), 0.01)
|
|
assert.InDelta(t, 1.0, b.CosineDist(b), 0.01)
|
|
})
|
|
t.Run("Product", func(t *testing.T) {
|
|
_, err = Product(a, b)
|
|
assert.Equal(t, nil, err, "failed to calculate vector product")
|
|
})
|
|
t.Run("DotProduct", func(t *testing.T) {
|
|
_, err = DotProduct(a, b)
|
|
assert.Equal(t, nil, err, "failed to calculate dot product")
|
|
})
|
|
t.Run("EuclideanDist", func(t *testing.T) {
|
|
result := EuclideanDist(a, b)
|
|
assert.InDelta(t, 2.0, result, 0.01)
|
|
})
|
|
t.Run("CosineDist", func(t *testing.T) {
|
|
result := CosineDist(a, b)
|
|
assert.InDelta(t, 0.978021978021978, result, 0.01)
|
|
})
|
|
t.Run("Cor", func(t *testing.T) {
|
|
_, err = Cor(a, b)
|
|
assert.Equal(t, nil, err, "failed to calculate vector correlation")
|
|
})
|
|
}
|
|
|
|
func TestVector_CosineDist(t *testing.T) {
|
|
t.Run("Equal", func(t *testing.T) {
|
|
a := Vector([]float64{1, 0, 0, 1, 0, 0})
|
|
b := Vector([]float64{1, 0, 0, 1, 0, 0})
|
|
|
|
result := CosineDist(a, b)
|
|
|
|
t.Logf("cosine dist: %f", result)
|
|
|
|
assert.InDelta(t, 1.000000, result, 0.00001)
|
|
})
|
|
t.Run("Faces", func(t *testing.T) {
|
|
a := Vector([]float64{0.09050429612398148, -0.034165557473897934, 0.04864225909113884, -0.0072485702112317085, -0.023092104122042656, 0.027721818536520004, -0.054512765258550644, -0.011073374189436436, -0.10611298680305481, -0.09373591840267181, 0.05169020965695381, 0.022325381636619568, 0.0660574808716774, 0.0745176374912262, 0.033539049327373505, -0.05087396129965782, 0.03592195361852646, 0.048213306814432144, -0.022667650133371353, 0.03860087692737579, 0.05497220903635025, -0.07314137369394302, 0.0407942458987236, 0.007624434307217598, 0.026637494564056396, -0.02921448089182377, 0.0562191866338253, 0.0022813105024397373, 0.06954964995384216, 0.011513718403875828, 0.051686715334653854, -0.06144102290272713, -0.06638970226049423, 0.017356356605887413, -0.037446312606334686, 0.011931972578167915, -0.09081587195396423, 0.007885996252298355, 0.004822328686714172, 0.07497039437294006, -0.0758754089474678, 0.01736759953200817, -0.03094332665205002, -0.028449613600969315, 0.04941004887223244, 0.043144915252923965, 0.020656095817685127, 0.00013218115782365203, 0.010540441609919071, -0.005086455028504133, -0.045420411974191666, -0.012117994017899036, 0.027115555480122566, 0.09600701183080673, 0.024567779153585434, -0.036064546555280685, 0.047646667808294296, 0.010342034511268139, 0.042122356593608856, 0.011761351488530636, 0.02835131250321865, -0.04516693949699402, 0.04595448076725006, 0.03437191620469093, 0.11455260962247849, 0.03494664281606674, 0.004416515585035086, -0.07535701245069504, -0.012427383102476597, -0.0013752385275438428, -0.026557253673672676, 0.029679754748940468, 0.014478369615972042, -0.010105332359671593, -0.012286004610359669, 0.008126290515065193, 0.029303785413503647, -0.057241108268499374, 0.0033099683932960033, 0.01164975669234991, -0.007513932418078184, 0.0242016538977623, 0.05745712295174599, 0.028663545846939087, 0.03970225155353546, -0.023029271513223648, 0.02981036901473999, 0.03829219192266464, 0.03987501189112663, 0.017537616193294525, 0.02726835384964943, -0.013689219951629639, -0.04987820237874985, -0.040511664003133774, -0.021752934902906418, -0.07194412499666214, -0.051058970391750336, 0.023398589342832565, 0.03610694780945778, 0.00046719887177459896, 0.037188317626714706, -0.02566867135465145, 0.01604439504444599, -0.003634978784248233, 0.023078899830579758, 0.04129897058010101, -0.014649354852735996, 0.005342431832104921, -0.05193427577614784, -0.0388319157063961, -0.04907385632395744, 0.07699707895517349, -0.025095880031585693, 0.008442633785307407, 0.02021537348628044, 0.001264346414245665, -0.07380999624729156, -0.048401474952697754, -0.01882218010723591, -0.03912215307354927, -0.019224153831601143, 0.04983046278357506, -0.02566423825919628, -0.04404774308204651, 0.026545586064457893, -0.011196354404091835, -0.07557094842195511, -0.01379274670034647, 0.05286092683672905, 0.0013972970191389322, 0.006785087287425995, 0.011092058382928371, -0.05664386600255966, 0.08189822733402252, 0.01435012836009264, 0.0044399346224963665, -0.010694965720176697, 0.040221404284238815, -0.027927834540605545, -0.07454574108123779, 0.0553150437772274, 0.05394366756081581, -0.0033581850584596395, -0.024510426446795464, 0.008418681100010872, 0.03598837926983833, 0.01587156392633915, 0.0038127924781292677, 0.01119104865938425, 0.04693349450826645, 0.006098508834838867, -0.0017983769066631794, -0.04955652356147766, 0.09051105380058289, 0.0073089939542114735, -0.019370773807168007, 0.007884875871241093, -0.06199871003627777, -0.01850189082324505, -0.05228694528341293, -0.05400950461626053, -0.005632052198052406, 0.0020052779000252485, 0.03451100364327431, 0.036398425698280334, 0.05265820398926735, -0.011337222531437874, 0.013296777382493019, -0.0591934509575367, -0.06284786015748978, -0.0047112139873206615, -0.05348097160458565, 0.01298768911510706, -0.0456625372171402, -0.006065149325877428, -0.025567762553691864, -0.02817298099398613, -0.05127967894077301, -0.038833457976579666, 0.06326121836900711, 0.03279256448149681, -0.06116756424307823, -0.00897540058940649, -0.06233922019600868, 0.009809938259422779, -0.005387857090681791, -0.036401160061359406, -0.04316997900605202, -0.05489049851894379, -0.09730759263038635, -0.07952211797237396, 0.02321644127368927, 0.02643345668911934, -0.029610754922032356, -0.0429108701646328, 0.015382878482341766, -0.05127616599202156, -0.06552313268184662, 0.03043435700237751, -0.004739899653941393, -0.013985950499773026, 0.03178086504340172, -0.04262787476181984, 0.050286486744880676, 0.024078307673335075, -0.02595296874642372, -0.09277850389480591, -0.02931750938296318, 0.02375088632106781, -0.0027845173608511686, -0.007097273599356413, 0.013409079983830452, -0.037381891161203384, 0.030457323417067528, -0.05184711143374443, -0.008799600414931774, 0.02957642823457718, 0.05132228881120682, 0.060836631804704666, -0.000043339907279005274, -0.04915972426533699, -0.0038748879451304674, 0.008784785866737366, -0.020982224494218826, 0.06149329990148544, 0.02837146446108818, -0.044175948947668076, 0.06567257642745972, -0.03963049501180649, -0.07002358138561249, 0.006709821987897158, 0.05959227308630943, 0.03949318826198578, -0.014092321507632732, 0.09836959093809128, -0.07943648844957352, -0.009000610560178757, 0.0030425817240029573, 0.06436953693628311, -0.026696493849158287, 0.00682637095451355, -0.01507520116865635, 0.04695310816168785, 0.029429970309138298, 0.023842934519052505, -0.020885659381747246, -0.09611587971448898, -0.07405658066272736, -0.04233424365520477, -0.0011613338720053434, 0.057546716183423996, 0.03273669630289078, -0.048568133264780045, 0.0012128526577726007, 0.053861137479543686, -0.0350908562541008, 0.022841928526759148, 0.0620933435857296, -0.009771752171218395, 0.0021118440199643373, -0.028183909133076668, -0.0776321291923523, 0.018880240619182587, -0.028937598690390587, -0.04704895243048668, -0.041743259876966476, 0.07385464012622833, -0.05170309543609619, -0.028290364891290665, 0.02530353143811226, 0.01889736019074917, 0.026071889325976372, 0.035946063697338104, -0.05380414053797722, -0.04859302192926407, 0.0003545390209183097, 0.030886799097061157, -0.022649751976132393, 0.022308727726340294, -0.027548562735319138, 0.033452969044446945, -0.05277237668633461, -0.052690643817186356, 0.04759489372372627, 0.031058967113494873, 0.04526153579354286, 0.028865164145827293, -0.07438746839761734, 0.0024590680841356516, -0.028084587305784225, 0.02709362842142582, 0.013910548761487007, 0.03424328565597534, -0.02858562208712101, 0.0588177889585495, 0.01846511848270893, -0.037898849695920944, 0.042697105556726456, -0.013334364630281925, -0.0257448498159647, 0.12665124237537384, -0.019745446741580963, -0.002844252623617649, -0.03478461131453514, 0.014344505965709686, -0.02670290693640709, 0.011817696504294872, 0.048732347786426544, -0.0477047935128212, 0.06578560918569565, -0.06530530750751495, -0.09535658359527588, 0.02058124914765358, 0.0795418918132782, -0.011797895655035973, 0.03838758170604706, -0.03237924724817276, -0.10276861488819122, -0.030437085777521133, 0.12717247009277344, -0.011626948602497578, 0.015079738572239876, -0.011959588155150414, -0.05451022833585739, 0.009935147128999233, -0.02114112488925457, 0.02175278402864933, 0.03643997013568878, 0.0015244412934407592, 0.008756493218243122, 0.028317170217633247, -0.030474519357085228, -0.00388348544947803, -0.05619083344936371, 0.06022652983665466, -0.05782870203256607, -0.02699786052107811, 0.023685157299041748, -0.038485050201416016, 0.05153445899486542, -0.060548875480890274, -0.01506721694022417, -0.007553438656032085, 0.039509836584329605, 0.03681030124425888, 0.1338905692100525, -0.0035669414792209864, -0.012824718840420246, 0.08026544004678726, 0.0007068145787343383, 0.05609028413891792, -0.09387584030628204, 0.053474973887205124, -0.02244669944047928, -0.03398754075169563, 0.03549772873520851, -0.034875307232141495, -0.0047780852764844894, -0.0516449399292469, 0.061801642179489136, 0.019724003970623016, -0.05515078082680702, -0.039201926440000534, 0.06470708549022675, 0.04355214163661003, -0.033806391060352325, 0.0747586265206337, 0.008061372675001621, -0.031078290194272995, 0.02051386795938015, -0.010661521926522255, 0.007028735242784023, 0.052813757210969925, -0.014618860557675362, 0.010391696356236935, 0.01685873605310917, 0.005331454332917929, -0.05162535980343819, -0.014504718594253063, -0.026801610365509987, -0.00626059714704752, -0.06905800849199295, -0.10446352511644363, -0.05261509492993355, -0.04950559511780739, 0.013261653482913971, -0.025283565744757652, -0.03371249884366989, -0.009910509921610355, 0.05506015568971634, -0.0032501542009413242, 0.06410012394189835, -0.02705288864672184, 0.03838157281279564, -0.0028722372371703386, 0.10523688048124313, -0.005469444673508406, 0.0006657811463810503, -0.022171825170516968, 0.007440139539539814, -0.009108834899961948, 0.09758798778057098, 0.07208772003650665, -0.03589840233325958, 0.01901053451001644, 0.01944487728178501, -0.03779883682727814, -0.005568244960159063, -0.04835351184010506, 0.028863374143838882, 0.013382171280682087, 0.01990400068461895, -0.02292671613395214, 0.033316295593976974, 0.0007049285341054201, -0.08170327544212341, 0.005303904879838228, 0.017129195854067802, 0.048035942018032074, 0.0177064910531044, -0.07409890741109848, 0.002690644469112158, -0.09358572959899902, -0.02494824305176735, 0.005160054191946983, 0.01309937983751297, 0.01733747310936451, -0.028727075085043907, 0.07431124895811081, 0.019230933859944344, 0.044469334185123444, 0.07735494524240494, 0.014045624993741512, 0.02358667366206646, -0.029009323567152023, 0.011838157661259174, -0.03148479387164116, -0.02401883713901043, 0.07134886831045151, 0.03462617099285126, 0.09141889214515686, -0.032590366899967194, -0.017935005947947502, 0.01033404003828764, 0.021358856931328773, 0.052892062813043594, -0.016272393986582756, -0.0021813628263771534, -0.014650222845375538, 0.02733163721859455, 0.012284406460821629, -0.00011409903527237475, -0.0019222642295062542, 0.011368582025170326, 0.08538514375686646, 0.07764560729265213, -0.00016646491712890565, -0.021158777177333832, -0.003685612231492996, 0.0027680168859660625, -0.07727153599262238, -0.045435767620801926, 0.027570463716983795, 0.004876504186540842, -0.023479128256440163, -0.05900833383202553, 0.021972816437482834, 0.08244964480400085, -0.04722096025943756, 0.09820368885993958, -0.03607189655303955, 0.024602027609944344, 0.09130720794200897, 0.0060490816831588745, 0.003609518986195326, -0.05344478040933609, -0.013851549476385117, -0.0840664803981781, -0.07599852979183197, -0.04853493720293045, 0.02409926988184452, 0.007712183985859156, 0.047192711383104324, -0.02735353447496891, -0.0286621805280447, 0.051183052361011505, 0.026429185643792152, 0.047100841999053955, 0.07225227355957031, 0.05775126442313194, -0.07109982520341873, -0.019554149359464645, 0.004804393742233515, 0.07182382047176361, -0.05714774131774902, -0.03718779981136322, 0.010022906586527824, 0.040755949914455414, 0.035538796335458755, 0.0547688826918602, 0.018436597660183907, -0.009496998973190784, -0.034701500087976456, -0.07542424649000168, -0.024086780846118927, 0.03786386549472809, 0.08617071062326431, 0.061641909182071686, -0.10206557810306549, 0.008707753382623196, 0.07315801829099655, 0.017708826810121536})
|
|
b := Vector([]float64{-0.008137415163218975, -0.08006370067596436, 0.07025300711393356, 0.05047300457954407, -0.048540644347667694, 0.02255844883620739, -0.032381802797317505, -0.030422719195485115, -0.002007395029067993, 0.02374134585261345, 0.06882382184267044, -0.0014070027973502874, 0.0016334111569449306, -0.0006230792496353388, 0.024960000067949295, 0.05986246466636658, -0.024349741637706757, 0.04618404060602188, -0.08673757314682007, 0.05276675894856453, 0.0027138087898492813, 0.008117659948766232, -0.0037429891526699066, -0.01570519059896469, -0.13779018819332123, 0.06322789937257767, -0.058197781443595886, 0.04746529087424278, -0.08711255341768265, 0.019238201901316643, -0.05508963391184807, 0.017365770414471626, 0.02562207169830799, -0.002929446753114462, -0.07081708312034607, 0.03103666938841343, 0.0022698792163282633, 0.051838476210832596, 0.01691291667521, 0.005320006050169468, 0.030585378408432007, 0.06941074877977371, 0.008247891440987587, -0.03533969074487686, 0.05122591182589531, 0.04988280311226845, 0.08505327254533768, 0.04561468958854675, -0.062374748289585114, 0.022638529539108276, -0.022780820727348328, 0.0775931254029274, 0.02398429997265339, 0.03495755046606064, -0.012407658621668816, -0.03283195570111275, 0.06503018736839294, -0.03657644987106323, -0.029164006933569908, 0.058266233652830124, -0.019877741113305092, -0.04159046709537506, 0.0050654299557209015, -0.015958501026034355, -0.0295542161911726, 0.02208816446363926, 0.017241189256310463, -0.00469202920794487, -0.016516422852873802, 0.018105173483490944, 0.04346457123756409, 0.04661091789603233, 0.0091007174924016, -0.02539660967886448, -0.05948945879936218, 0.008711921982467175, -0.05822482705116272, 0.06004893407225609, -0.04515865445137024, -0.07707851380109787, 0.0032580809202045202, 0.006324823014438152, 0.02883482724428177, -0.01455928385257721, -0.03203008323907852, 0.010120648890733719, 0.02116110734641552, -0.028596824035048485, -0.06669415533542633, -0.03394141048192978, -0.021578358486294746, -0.0029677071142941713, -0.07965116947889328, -0.0005286909872666001, 0.048941437155008316, 0.05800784006714821, 0.042431481182575226, -0.03241220489144325, 0.0220502782613039, -0.03481437265872955, -0.04674076661467552, -0.004196728114038706, -0.07022743672132492, 0.07238440960645676, 0.04464253410696983, -0.04207949340343475, 0.021947475150227547, 0.013727233745157719, -0.06659548729658127, -0.00480034900829196, -0.010313994251191616, 0.02640429139137268, -0.0018985014175996184, -0.017516719177365303, 0.05424032732844353, 0.03034326806664467, -0.009059063158929348, -0.014670928940176964, 0.03108176961541176, -0.06324155628681183, 0.009439341723918915, -0.03230450302362442, 0.03011772409081459, -0.08903207629919052, 0.049357179552316666, -0.018093667924404144, -0.09150006622076035, 0.03277801349759102, -0.020068803802132607, -0.12405339628458023, 0.039792630821466446, -0.01258617639541626, -0.050734683871269226, 0.01388365589082241, -0.020610308274626732, -0.01117456890642643, -0.047699980437755585, 0.00904754176735878, -0.009436380118131638, 0.03356689587235451, 0.05179798603057861, -0.003932574763894081, 0.004325704649090767, 0.013883235864341259, -0.01672312431037426, -0.009120902046561241, 0.02865191549062729, -0.00018901238217949867, -0.14957121014595032, 0.06165143474936485, -0.010900797322392464, -0.04367987439036369, -0.08651748299598694, -0.04971740022301674, -0.012035397812724113, 0.05332765355706215, -0.03252051770687103, 0.027909329161047935, -0.043622151017189026, -0.03164845332503319, -0.03198356553912163, 0.05128004029393196, -0.040155746042728424, -0.0056242248974740505, -0.047345563769340515, 0.012517815455794334, -0.04241799935698509, -0.05661820247769356, 0.025342857465147972, -0.03272772207856178, -0.020752016454935074, 0.02841475047171116, 0.026285288855433464, -0.023260189220309258, 0.10821936279535294, 0.042671091854572296, 0.02412649802863598, -0.04032492637634277, 0.02996264584362507, -0.04249041527509689, -0.06933289021253586, 0.027393169701099396, 0.05308475345373154, -0.02078690193593502, -0.0067361886613070965, -0.0238595362752676, 0.01484128087759018, 0.021988647058606148, 0.06511303037405014, -0.08086460083723068, 0.03650467097759247, -0.021279210224747658, 0.045867037028074265, 0.06642837822437286, -0.003237910568714142, -0.01581430248916149, -0.02993408963084221, -0.0012522733304649591, -0.10658521205186844, -0.004413484595716, 0.014794287271797657, 0.04928160458803177, -0.029931025579571724, -0.0077111730352044106, -0.0732073038816452, 0.04210418090224266, -0.02385932393372059, 0.010084617882966995, -0.03800346329808235, -0.0682244822382927, 0.05564611777663231, 0.03370542451739311, 0.03176405653357506, -0.03024214692413807, 0.06749926507472992, -0.04842272028326988, 0.024823250249028206, 0.03411858156323433, 0.012186306528747082, 0.000344925036188215, 0.008661405183374882, -0.06331458687782288, -0.06190492585301399, -0.08768630772829056, 0.00041797355515882373, -0.018540306016802788, 0.04823239892721176, 0.06846356391906738, -0.03144964575767517, 0.03312361240386963, 0.023701541125774384, 0.06020048260688782, -0.018800485879182816, -0.01420025434345007, -0.01672394946217537, -0.016691889613866806, 0.011016116477549076, 0.013350298628211021, 0.01238208170980215, 0.01691477745771408, -0.0010262437863275409, 0.053074032068252563, 0.018735406920313835, 0.035321593284606934, -0.022181423380970955, -0.017033280804753304, 0.032775890082120895, 0.05400064215064049, -0.019599098712205887, -0.014503749087452888, -0.021623743698000908, -0.020413488149642944, 0.033719275146722794, 0.015080427750945091, 0.044618159532547, 0.10514744371175766, -0.07683298736810684, -0.04230527579784393, -0.04676186293363571, 0.1221809908747673, 0.018557196483016014, -0.10948510468006134, -0.007052143104374409, 0.03444751724600792, -0.12690776586532593, 0.01613660342991352, 0.026724737137556076, -0.01689913682639599, 0.032920803874731064, 0.0033084892202168703, -0.008477253839373589, 0.005826534237712622, 0.05720831826329231, -0.01001140009611845, 0.06672288477420807, -0.03293010592460632, -0.008007185533642769, 0.03565505892038345, -0.045379389077425, -0.01783432625234127, -0.06628750264644623, -0.0027283544186502695, 0.03038688562810421, -0.020332351326942444, -0.06984596699476242, 0.07357253134250641, 0.10730107873678207, -0.015427534468472004, -0.0743771567940712, -0.043926578015089035, 0.04178789258003235, 0.011173141188919544, 0.025277631357312202, 0.07788840681314468, 0.004462982527911663, -0.05092375725507736, -0.008599985390901566, -0.011293918825685978, -0.027740459889173508, -0.08115565031766891, -0.009694007225334644, -0.07026723772287369, 0.02862926386296749, 0.01975271850824356, 0.00902275275439024, 0.05126506835222244, -0.07478014379739761, 0.021499518305063248, 0.055629830807447433, 0.031052052974700928, 0.05949579179286957, -0.028020750731229782, -0.02862796001136303, 0.056453678756952286, -0.031041307374835014, 0.02422715350985527, -0.07100068032741547, 0.032912544906139374, 0.009702234528958797, 0.06579262763261795, -0.08040975034236908, 0.06385798007249832, -0.009425429627299309, 0.0210894588381052, 0.018046097829937935, 0.005574067123234272, -0.04380524903535843, 0.022144699469208717, 0.025359811261296272, 0.04807835817337036, 0.0006021010922268033, -0.07143598049879074, 0.020978737622499466, -0.05171458050608635, 0.0382511243224144, 0.025260137394070625, 0.09952495992183685, 0.014374740421772003, -0.03502845764160156, 0.008830498903989792, -0.06433495879173279, -0.07015430927276611, 0.0705648809671402, 0.010429518297314644, 0.01585286110639572, -0.056704264134168625, 0.00618960103020072, 0.03986428678035736, 0.003704571630805731, -0.015225011855363846, 0.008472353219985962, 0.07302212715148926, -0.020373830571770668, 0.003514211857691407, 0.013997740112245083, -0.0038872845470905304, -0.03703470155596733, -0.03875543549656868, -0.012492465786635876, 0.059783436357975006, 0.014407767914235592, 0.032212793827056885, 0.03943135216832161, -0.04783743992447853, -0.08073361217975616, 0.025175172835588455, -0.07072967290878296, 0.06343924254179001, 0.041898149996995926, -0.056953541934490204, 0.029663341119885445, 0.04826335236430168, 0.010070821270346642, -0.037220172584056854, 0.01026119664311409, 0.061207421123981476, 0.0938570499420166, -0.037144023925065994, 0.04894149303436279, -0.011274874210357666, -0.0167219378054142, -0.06375480443239212, 0.022223835811018944, -0.05070881545543671, 0.01647593080997467, -0.022871576249599457, 0.06493012607097626, -0.10572224110364914, -0.042038556188344955, -0.026631822809576988, 0.04876351356506348, 0.03300929814577103, 0.010545262135565281, -0.011176304891705513, -0.034550394862890244, 0.019394656643271446, -0.033105626702308655, -0.01746574230492115, 0.04380633309483528, 0.021436357870697975, -0.01687694527208805, 0.009079670533537865, -0.0019935970194637775, 0.02397148869931698, 0.020745644345879555, -0.021921435371041298, 0.013043859973549843, -0.001916338107548654, -0.04032173752784729, 0.010448900051414967, -0.01346014253795147, -0.048173755407333374, 0.0696289911866188, 0.0027435971423983574, -0.020373817533254623, 0.03318791463971138, -0.05028868094086647, -0.06621105223894119, 0.08377863466739655, -0.06662183254957199, 0.040066834539175034, -0.031038448214530945, -0.0012645371025428176, -0.08046844601631165, -0.07508288323879242, -0.011627450585365295, 0.05332736670970917, -0.050804637372493744, -0.02298901602625847, 0.017321497201919556, 0.04411279037594795, 0.02128334902226925, 0.026375887915492058, -0.006951047573238611, 0.026754219084978104, 0.04742620140314102, -0.01177502702921629, 0.060023725032806396, 0.005484475754201412, -0.00279219844378531, -0.09506803750991821, 0.08349333703517914, -0.02932984009385109, -0.0005634548142552376, -0.009349865838885307, -0.04879671335220337, 0.021670177578926086, -0.03875391557812691, -0.028711730614304543, -0.03708324581384659, -0.11263322830200195, -0.033891621977090836, 0.04228183254599571, 0.045042142271995544, 0.028116095811128616, 0.005323487799614668, 0.10822916775941849, -0.011182534508407116, -0.060331087559461594, -0.027081234380602837, -0.030490467324852943, -0.050583478063344955, 0.013974534347653389, -0.006292127538472414, 0.05019136518239975, 0.044325292110443115, 0.008860588073730469, 0.0005901191616430879, -0.04545517638325691, 0.028188807889819145, 0.02233756333589554, -0.07275871932506561, -0.04000203683972359, 0.05174611508846283, -0.050140008330345154, 0.017476622015237808, 0.0713571161031723, 0.042271941900253296, -0.004472524859011173, 0.0516694039106369, 0.07247994840145111, -0.027353506535291672, -0.024733062833547592, -0.049786582589149475, -0.01696055382490158, 0.06537499278783798, 0.04510447010397911, -0.04963269829750061, 0.018454866483807564, 0.03766272962093353, -0.08027862757444382, 0.06390812247991562, 0.009653930552303791, -0.017673317342996597, 0.008882815018296242, 0.001341609749943018, -0.0008363581146113575, 0.005991082638502121, 0.030882244929671288, -0.0010816589929163456, -0.043741147965192795, -0.02244267612695694, 0.020251808688044548, -0.008073689416050911, 0.0008555973181501031, -0.025090467184782028, 0.014763036742806435, 0.008378133177757263, 0.06943207234144211, 0.04518865421414375, -0.051252108067274094, 0.004460426978766918})
|
|
|
|
result := CosineDist(a, b)
|
|
|
|
t.Logf("cosine dist: %f", result)
|
|
assert.InDelta(t, -0.003275301858301365, result, 0.00001)
|
|
})
|
|
}
|
|
|
|
func BenchmarkCosineDist(b *testing.B) {
|
|
v1 := Vector([]float64{0.09050429612398148, -0.034165557473897934, 0.04864225909113884, -0.0072485702112317085, -0.023092104122042656, 0.027721818536520004, -0.054512765258550644, -0.011073374189436436, -0.10611298680305481, -0.09373591840267181, 0.05169020965695381, 0.022325381636619568, 0.0660574808716774, 0.0745176374912262, 0.033539049327373505, -0.05087396129965782, 0.03592195361852646, 0.048213306814432144, -0.022667650133371353, 0.03860087692737579, 0.05497220903635025, -0.07314137369394302, 0.0407942458987236, 0.007624434307217598, 0.026637494564056396, -0.02921448089182377, 0.0562191866338253, 0.0022813105024397373, 0.06954964995384216, 0.011513718403875828, 0.051686715334653854, -0.06144102290272713, -0.06638970226049423, 0.017356356605887413, -0.037446312606334686, 0.011931972578167915, -0.09081587195396423, 0.007885996252298355, 0.004822328686714172, 0.07497039437294006, -0.0758754089474678, 0.01736759953200817, -0.03094332665205002, -0.028449613600969315, 0.04941004887223244, 0.043144915252923965, 0.020656095817685127, 0.00013218115782365203, 0.010540441609919071, -0.005086455028504133, -0.045420411974191666, -0.012117994017899036, 0.027115555480122566, 0.09600701183080673, 0.024567779153585434, -0.036064546555280685, 0.047646667808294296, 0.010342034511268139, 0.042122356593608856, 0.011761351488530636, 0.02835131250321865, -0.04516693949699402, 0.04595448076725006, 0.03437191620469093, 0.11455260962247849, 0.03494664281606674, 0.004416515585035086, -0.07535701245069504, -0.012427383102476597, -0.0013752385275438428, -0.026557253673672676, 0.029679754748940468, 0.014478369615972042, -0.010105332359671593, -0.012286004610359669, 0.008126290515065193, 0.029303785413503647, -0.057241108268499374, 0.0033099683932960033, 0.01164975669234991, -0.007513932418078184, 0.0242016538977623, 0.05745712295174599, 0.028663545846939087, 0.03970225155353546, -0.023029271513223648, 0.02981036901473999, 0.03829219192266464, 0.03987501189112663, 0.017537616193294525, 0.02726835384964943, -0.013689219951629639, -0.04987820237874985, -0.040511664003133774, -0.021752934902906418, -0.07194412499666214, -0.051058970391750336, 0.023398589342832565, 0.03610694780945778, 0.00046719887177459896, 0.037188317626714706, -0.02566867135465145, 0.01604439504444599, -0.003634978784248233, 0.023078899830579758, 0.04129897058010101, -0.014649354852735996, 0.005342431832104921, -0.05193427577614784, -0.0388319157063961, -0.04907385632395744, 0.07699707895517349, -0.025095880031585693, 0.008442633785307407, 0.02021537348628044, 0.001264346414245665, -0.07380999624729156, -0.048401474952697754, -0.01882218010723591, -0.03912215307354927, -0.019224153831601143, 0.04983046278357506, -0.02566423825919628, -0.04404774308204651, 0.026545586064457893, -0.011196354404091835, -0.07557094842195511, -0.01379274670034647, 0.05286092683672905, 0.0013972970191389322, 0.006785087287425995, 0.011092058382928371, -0.05664386600255966, 0.08189822733402252, 0.01435012836009264, 0.0044399346224963665, -0.010694965720176697, 0.040221404284238815, -0.027927834540605545, -0.07454574108123779, 0.0553150437772274, 0.05394366756081581, -0.0033581850584596395, -0.024510426446795464, 0.008418681100010872, 0.03598837926983833, 0.01587156392633915, 0.0038127924781292677, 0.01119104865938425, 0.04693349450826645, 0.006098508834838867, -0.0017983769066631794, -0.04955652356147766, 0.09051105380058289, 0.0073089939542114735, -0.019370773807168007, 0.007884875871241093, -0.06199871003627777, -0.01850189082324505, -0.05228694528341293, -0.05400950461626053, -0.005632052198052406, 0.0020052779000252485, 0.03451100364327431, 0.036398425698280334, 0.05265820398926735, -0.011337222531437874, 0.013296777382493019, -0.0591934509575367, -0.06284786015748978, -0.0047112139873206615, -0.05348097160458565, 0.01298768911510706, -0.0456625372171402, -0.006065149325877428, -0.025567762553691864, -0.02817298099398613, -0.05127967894077301, -0.038833457976579666, 0.06326121836900711, 0.03279256448149681, -0.06116756424307823, -0.00897540058940649, -0.06233922019600868, 0.009809938259422779, -0.005387857090681791, -0.036401160061359406, -0.04316997900605202, -0.05489049851894379, -0.09730759263038635, -0.07952211797237396, 0.02321644127368927, 0.02643345668911934, -0.029610754922032356, -0.0429108701646328, 0.015382878482341766, -0.05127616599202156, -0.06552313268184662, 0.03043435700237751, -0.004739899653941393, -0.013985950499773026, 0.03178086504340172, -0.04262787476181984, 0.050286486744880676, 0.024078307673335075, -0.02595296874642372, -0.09277850389480591, -0.02931750938296318, 0.02375088632106781, -0.0027845173608511686, -0.007097273599356413, 0.013409079983830452, -0.037381891161203384, 0.030457323417067528, -0.05184711143374443, -0.008799600414931774, 0.02957642823457718, 0.05132228881120682, 0.060836631804704666, -0.000043339907279005274, -0.04915972426533699, -0.0038748879451304674, 0.008784785866737366, -0.020982224494218826, 0.06149329990148544, 0.02837146446108818, -0.044175948947668076, 0.06567257642745972, -0.03963049501180649, -0.07002358138561249, 0.006709821987897158, 0.05959227308630943, 0.03949318826198578, -0.014092321507632732, 0.09836959093809128, -0.07943648844957352, -0.009000610560178757, 0.0030425817240029573, 0.06436953693628311, -0.026696493849158287, 0.00682637095451355, -0.01507520116865635, 0.04695310816168785, 0.029429970309138298, 0.023842934519052505, -0.020885659381747246, -0.09611587971448898, -0.07405658066272736, -0.04233424365520477, -0.0011613338720053434, 0.057546716183423996, 0.03273669630289078, -0.048568133264780045, 0.0012128526577726007, 0.053861137479543686, -0.0350908562541008, 0.022841928526759148, 0.0620933435857296, -0.009771752171218395, 0.0021118440199643373, -0.028183909133076668, -0.0776321291923523, 0.018880240619182587, -0.028937598690390587, -0.04704895243048668, -0.041743259876966476, 0.07385464012622833, -0.05170309543609619, -0.028290364891290665, 0.02530353143811226, 0.01889736019074917, 0.026071889325976372, 0.035946063697338104, -0.05380414053797722, -0.04859302192926407, 0.0003545390209183097, 0.030886799097061157, -0.022649751976132393, 0.022308727726340294, -0.027548562735319138, 0.033452969044446945, -0.05277237668633461, -0.052690643817186356, 0.04759489372372627, 0.031058967113494873, 0.04526153579354286, 0.028865164145827293, -0.07438746839761734, 0.0024590680841356516, -0.028084587305784225, 0.02709362842142582, 0.013910548761487007, 0.03424328565597534, -0.02858562208712101, 0.0588177889585495, 0.01846511848270893, -0.037898849695920944, 0.042697105556726456, -0.013334364630281925, -0.0257448498159647, 0.12665124237537384, -0.019745446741580963, -0.002844252623617649, -0.03478461131453514, 0.014344505965709686, -0.02670290693640709, 0.011817696504294872, 0.048732347786426544, -0.0477047935128212, 0.06578560918569565, -0.06530530750751495, -0.09535658359527588, 0.02058124914765358, 0.0795418918132782, -0.011797895655035973, 0.03838758170604706, -0.03237924724817276, -0.10276861488819122, -0.030437085777521133, 0.12717247009277344, -0.011626948602497578, 0.015079738572239876, -0.011959588155150414, -0.05451022833585739, 0.009935147128999233, -0.02114112488925457, 0.02175278402864933, 0.03643997013568878, 0.0015244412934407592, 0.008756493218243122, 0.028317170217633247, -0.030474519357085228, -0.00388348544947803, -0.05619083344936371, 0.06022652983665466, -0.05782870203256607, -0.02699786052107811, 0.023685157299041748, -0.038485050201416016, 0.05153445899486542, -0.060548875480890274, -0.01506721694022417, -0.007553438656032085, 0.039509836584329605, 0.03681030124425888, 0.1338905692100525, -0.0035669414792209864, -0.012824718840420246, 0.08026544004678726, 0.0007068145787343383, 0.05609028413891792, -0.09387584030628204, 0.053474973887205124, -0.02244669944047928, -0.03398754075169563, 0.03549772873520851, -0.034875307232141495, -0.0047780852764844894, -0.0516449399292469, 0.061801642179489136, 0.019724003970623016, -0.05515078082680702, -0.039201926440000534, 0.06470708549022675, 0.04355214163661003, -0.033806391060352325, 0.0747586265206337, 0.008061372675001621, -0.031078290194272995, 0.02051386795938015, -0.010661521926522255, 0.007028735242784023, 0.052813757210969925, -0.014618860557675362, 0.010391696356236935, 0.01685873605310917, 0.005331454332917929, -0.05162535980343819, -0.014504718594253063, -0.026801610365509987, -0.00626059714704752, -0.06905800849199295, -0.10446352511644363, -0.05261509492993355, -0.04950559511780739, 0.013261653482913971, -0.025283565744757652, -0.03371249884366989, -0.009910509921610355, 0.05506015568971634, -0.0032501542009413242, 0.06410012394189835, -0.02705288864672184, 0.03838157281279564, -0.0028722372371703386, 0.10523688048124313, -0.005469444673508406, 0.0006657811463810503, -0.022171825170516968, 0.007440139539539814, -0.009108834899961948, 0.09758798778057098, 0.07208772003650665, -0.03589840233325958, 0.01901053451001644, 0.01944487728178501, -0.03779883682727814, -0.005568244960159063, -0.04835351184010506, 0.028863374143838882, 0.013382171280682087, 0.01990400068461895, -0.02292671613395214, 0.033316295593976974, 0.0007049285341054201, -0.08170327544212341, 0.005303904879838228, 0.017129195854067802, 0.048035942018032074, 0.0177064910531044, -0.07409890741109848, 0.002690644469112158, -0.09358572959899902, -0.02494824305176735, 0.005160054191946983, 0.01309937983751297, 0.01733747310936451, -0.028727075085043907, 0.07431124895811081, 0.019230933859944344, 0.044469334185123444, 0.07735494524240494, 0.014045624993741512, 0.02358667366206646, -0.029009323567152023, 0.011838157661259174, -0.03148479387164116, -0.02401883713901043, 0.07134886831045151, 0.03462617099285126, 0.09141889214515686, -0.032590366899967194, -0.017935005947947502, 0.01033404003828764, 0.021358856931328773, 0.052892062813043594, -0.016272393986582756, -0.0021813628263771534, -0.014650222845375538, 0.02733163721859455, 0.012284406460821629, -0.00011409903527237475, -0.0019222642295062542, 0.011368582025170326, 0.08538514375686646, 0.07764560729265213, -0.00016646491712890565, -0.021158777177333832, -0.003685612231492996, 0.0027680168859660625, -0.07727153599262238, -0.045435767620801926, 0.027570463716983795, 0.004876504186540842, -0.023479128256440163, -0.05900833383202553, 0.021972816437482834, 0.08244964480400085, -0.04722096025943756, 0.09820368885993958, -0.03607189655303955, 0.024602027609944344, 0.09130720794200897, 0.0060490816831588745, 0.003609518986195326, -0.05344478040933609, -0.013851549476385117, -0.0840664803981781, -0.07599852979183197, -0.04853493720293045, 0.02409926988184452, 0.007712183985859156, 0.047192711383104324, -0.02735353447496891, -0.0286621805280447, 0.051183052361011505, 0.026429185643792152, 0.047100841999053955, 0.07225227355957031, 0.05775126442313194, -0.07109982520341873, -0.019554149359464645, 0.004804393742233515, 0.07182382047176361, -0.05714774131774902, -0.03718779981136322, 0.010022906586527824, 0.040755949914455414, 0.035538796335458755, 0.0547688826918602, 0.018436597660183907, -0.009496998973190784, -0.034701500087976456, -0.07542424649000168, -0.024086780846118927, 0.03786386549472809, 0.08617071062326431, 0.061641909182071686, -0.10206557810306549, 0.008707753382623196, 0.07315801829099655, 0.017708826810121536})
|
|
v2 := Vector([]float64{-0.008137415163218975, -0.08006370067596436, 0.07025300711393356, 0.05047300457954407, -0.048540644347667694, 0.02255844883620739, -0.032381802797317505, -0.030422719195485115, -0.002007395029067993, 0.02374134585261345, 0.06882382184267044, -0.0014070027973502874, 0.0016334111569449306, -0.0006230792496353388, 0.024960000067949295, 0.05986246466636658, -0.024349741637706757, 0.04618404060602188, -0.08673757314682007, 0.05276675894856453, 0.0027138087898492813, 0.008117659948766232, -0.0037429891526699066, -0.01570519059896469, -0.13779018819332123, 0.06322789937257767, -0.058197781443595886, 0.04746529087424278, -0.08711255341768265, 0.019238201901316643, -0.05508963391184807, 0.017365770414471626, 0.02562207169830799, -0.002929446753114462, -0.07081708312034607, 0.03103666938841343, 0.0022698792163282633, 0.051838476210832596, 0.01691291667521, 0.005320006050169468, 0.030585378408432007, 0.06941074877977371, 0.008247891440987587, -0.03533969074487686, 0.05122591182589531, 0.04988280311226845, 0.08505327254533768, 0.04561468958854675, -0.062374748289585114, 0.022638529539108276, -0.022780820727348328, 0.0775931254029274, 0.02398429997265339, 0.03495755046606064, -0.012407658621668816, -0.03283195570111275, 0.06503018736839294, -0.03657644987106323, -0.029164006933569908, 0.058266233652830124, -0.019877741113305092, -0.04159046709537506, 0.0050654299557209015, -0.015958501026034355, -0.0295542161911726, 0.02208816446363926, 0.017241189256310463, -0.00469202920794487, -0.016516422852873802, 0.018105173483490944, 0.04346457123756409, 0.04661091789603233, 0.0091007174924016, -0.02539660967886448, -0.05948945879936218, 0.008711921982467175, -0.05822482705116272, 0.06004893407225609, -0.04515865445137024, -0.07707851380109787, 0.0032580809202045202, 0.006324823014438152, 0.02883482724428177, -0.01455928385257721, -0.03203008323907852, 0.010120648890733719, 0.02116110734641552, -0.028596824035048485, -0.06669415533542633, -0.03394141048192978, -0.021578358486294746, -0.0029677071142941713, -0.07965116947889328, -0.0005286909872666001, 0.048941437155008316, 0.05800784006714821, 0.042431481182575226, -0.03241220489144325, 0.0220502782613039, -0.03481437265872955, -0.04674076661467552, -0.004196728114038706, -0.07022743672132492, 0.07238440960645676, 0.04464253410696983, -0.04207949340343475, 0.021947475150227547, 0.013727233745157719, -0.06659548729658127, -0.00480034900829196, -0.010313994251191616, 0.02640429139137268, -0.0018985014175996184, -0.017516719177365303, 0.05424032732844353, 0.03034326806664467, -0.009059063158929348, -0.014670928940176964, 0.03108176961541176, -0.06324155628681183, 0.009439341723918915, -0.03230450302362442, 0.03011772409081459, -0.08903207629919052, 0.049357179552316666, -0.018093667924404144, -0.09150006622076035, 0.03277801349759102, -0.020068803802132607, -0.12405339628458023, 0.039792630821466446, -0.01258617639541626, -0.050734683871269226, 0.01388365589082241, -0.020610308274626732, -0.01117456890642643, -0.047699980437755585, 0.00904754176735878, -0.009436380118131638, 0.03356689587235451, 0.05179798603057861, -0.003932574763894081, 0.004325704649090767, 0.013883235864341259, -0.01672312431037426, -0.009120902046561241, 0.02865191549062729, -0.00018901238217949867, -0.14957121014595032, 0.06165143474936485, -0.010900797322392464, -0.04367987439036369, -0.08651748299598694, -0.04971740022301674, -0.012035397812724113, 0.05332765355706215, -0.03252051770687103, 0.027909329161047935, -0.043622151017189026, -0.03164845332503319, -0.03198356553912163, 0.05128004029393196, -0.040155746042728424, -0.0056242248974740505, -0.047345563769340515, 0.012517815455794334, -0.04241799935698509, -0.05661820247769356, 0.025342857465147972, -0.03272772207856178, -0.020752016454935074, 0.02841475047171116, 0.026285288855433464, -0.023260189220309258, 0.10821936279535294, 0.042671091854572296, 0.02412649802863598, -0.04032492637634277, 0.02996264584362507, -0.04249041527509689, -0.06933289021253586, 0.027393169701099396, 0.05308475345373154, -0.02078690193593502, -0.0067361886613070965, -0.0238595362752676, 0.01484128087759018, 0.021988647058606148, 0.06511303037405014, -0.08086460083723068, 0.03650467097759247, -0.021279210224747658, 0.045867037028074265, 0.06642837822437286, -0.003237910568714142, -0.01581430248916149, -0.02993408963084221, -0.0012522733304649591, -0.10658521205186844, -0.004413484595716, 0.014794287271797657, 0.04928160458803177, -0.029931025579571724, -0.0077111730352044106, -0.0732073038816452, 0.04210418090224266, -0.02385932393372059, 0.010084617882966995, -0.03800346329808235, -0.0682244822382927, 0.05564611777663231, 0.03370542451739311, 0.03176405653357506, -0.03024214692413807, 0.06749926507472992, -0.04842272028326988, 0.024823250249028206, 0.03411858156323433, 0.012186306528747082, 0.000344925036188215, 0.008661405183374882, -0.06331458687782288, -0.06190492585301399, -0.08768630772829056, 0.00041797355515882373, -0.018540306016802788, 0.04823239892721176, 0.06846356391906738, -0.03144964575767517, 0.03312361240386963, 0.023701541125774384, 0.06020048260688782, -0.018800485879182816, -0.01420025434345007, -0.01672394946217537, -0.016691889613866806, 0.011016116477549076, 0.013350298628211021, 0.01238208170980215, 0.01691477745771408, -0.0010262437863275409, 0.053074032068252563, 0.018735406920313835, 0.035321593284606934, -0.022181423380970955, -0.017033280804753304, 0.032775890082120895, 0.05400064215064049, -0.019599098712205887, -0.014503749087452888, -0.021623743698000908, -0.020413488149642944, 0.033719275146722794, 0.015080427750945091, 0.044618159532547, 0.10514744371175766, -0.07683298736810684, -0.04230527579784393, -0.04676186293363571, 0.1221809908747673, 0.018557196483016014, -0.10948510468006134, -0.007052143104374409, 0.03444751724600792, -0.12690776586532593, 0.01613660342991352, 0.026724737137556076, -0.01689913682639599, 0.032920803874731064, 0.0033084892202168703, -0.008477253839373589, 0.005826534237712622, 0.05720831826329231, -0.01001140009611845, 0.06672288477420807, -0.03293010592460632, -0.008007185533642769, 0.03565505892038345, -0.045379389077425, -0.01783432625234127, -0.06628750264644623, -0.0027283544186502695, 0.03038688562810421, -0.020332351326942444, -0.06984596699476242, 0.07357253134250641, 0.10730107873678207, -0.015427534468472004, -0.0743771567940712, -0.043926578015089035, 0.04178789258003235, 0.011173141188919544, 0.025277631357312202, 0.07788840681314468, 0.004462982527911663, -0.05092375725507736, -0.008599985390901566, -0.011293918825685978, -0.027740459889173508, -0.08115565031766891, -0.009694007225334644, -0.07026723772287369, 0.02862926386296749, 0.01975271850824356, 0.00902275275439024, 0.05126506835222244, -0.07478014379739761, 0.021499518305063248, 0.055629830807447433, 0.031052052974700928, 0.05949579179286957, -0.028020750731229782, -0.02862796001136303, 0.056453678756952286, -0.031041307374835014, 0.02422715350985527, -0.07100068032741547, 0.032912544906139374, 0.009702234528958797, 0.06579262763261795, -0.08040975034236908, 0.06385798007249832, -0.009425429627299309, 0.0210894588381052, 0.018046097829937935, 0.005574067123234272, -0.04380524903535843, 0.022144699469208717, 0.025359811261296272, 0.04807835817337036, 0.0006021010922268033, -0.07143598049879074, 0.020978737622499466, -0.05171458050608635, 0.0382511243224144, 0.025260137394070625, 0.09952495992183685, 0.014374740421772003, -0.03502845764160156, 0.008830498903989792, -0.06433495879173279, -0.07015430927276611, 0.0705648809671402, 0.010429518297314644, 0.01585286110639572, -0.056704264134168625, 0.00618960103020072, 0.03986428678035736, 0.003704571630805731, -0.015225011855363846, 0.008472353219985962, 0.07302212715148926, -0.020373830571770668, 0.003514211857691407, 0.013997740112245083, -0.0038872845470905304, -0.03703470155596733, -0.03875543549656868, -0.012492465786635876, 0.059783436357975006, 0.014407767914235592, 0.032212793827056885, 0.03943135216832161, -0.04783743992447853, -0.08073361217975616, 0.025175172835588455, -0.07072967290878296, 0.06343924254179001, 0.041898149996995926, -0.056953541934490204, 0.029663341119885445, 0.04826335236430168, 0.010070821270346642, -0.037220172584056854, 0.01026119664311409, 0.061207421123981476, 0.0938570499420166, -0.037144023925065994, 0.04894149303436279, -0.011274874210357666, -0.0167219378054142, -0.06375480443239212, 0.022223835811018944, -0.05070881545543671, 0.01647593080997467, -0.022871576249599457, 0.06493012607097626, -0.10572224110364914, -0.042038556188344955, -0.026631822809576988, 0.04876351356506348, 0.03300929814577103, 0.010545262135565281, -0.011176304891705513, -0.034550394862890244, 0.019394656643271446, -0.033105626702308655, -0.01746574230492115, 0.04380633309483528, 0.021436357870697975, -0.01687694527208805, 0.009079670533537865, -0.0019935970194637775, 0.02397148869931698, 0.020745644345879555, -0.021921435371041298, 0.013043859973549843, -0.001916338107548654, -0.04032173752784729, 0.010448900051414967, -0.01346014253795147, -0.048173755407333374, 0.0696289911866188, 0.0027435971423983574, -0.020373817533254623, 0.03318791463971138, -0.05028868094086647, -0.06621105223894119, 0.08377863466739655, -0.06662183254957199, 0.040066834539175034, -0.031038448214530945, -0.0012645371025428176, -0.08046844601631165, -0.07508288323879242, -0.011627450585365295, 0.05332736670970917, -0.050804637372493744, -0.02298901602625847, 0.017321497201919556, 0.04411279037594795, 0.02128334902226925, 0.026375887915492058, -0.006951047573238611, 0.026754219084978104, 0.04742620140314102, -0.01177502702921629, 0.060023725032806396, 0.005484475754201412, -0.00279219844378531, -0.09506803750991821, 0.08349333703517914, -0.02932984009385109, -0.0005634548142552376, -0.009349865838885307, -0.04879671335220337, 0.021670177578926086, -0.03875391557812691, -0.028711730614304543, -0.03708324581384659, -0.11263322830200195, -0.033891621977090836, 0.04228183254599571, 0.045042142271995544, 0.028116095811128616, 0.005323487799614668, 0.10822916775941849, -0.011182534508407116, -0.060331087559461594, -0.027081234380602837, -0.030490467324852943, -0.050583478063344955, 0.013974534347653389, -0.006292127538472414, 0.05019136518239975, 0.044325292110443115, 0.008860588073730469, 0.0005901191616430879, -0.04545517638325691, 0.028188807889819145, 0.02233756333589554, -0.07275871932506561, -0.04000203683972359, 0.05174611508846283, -0.050140008330345154, 0.017476622015237808, 0.0713571161031723, 0.042271941900253296, -0.004472524859011173, 0.0516694039106369, 0.07247994840145111, -0.027353506535291672, -0.024733062833547592, -0.049786582589149475, -0.01696055382490158, 0.06537499278783798, 0.04510447010397911, -0.04963269829750061, 0.018454866483807564, 0.03766272962093353, -0.08027862757444382, 0.06390812247991562, 0.009653930552303791, -0.017673317342996597, 0.008882815018296242, 0.001341609749943018, -0.0008363581146113575, 0.005991082638502121, 0.030882244929671288, -0.0010816589929163456, -0.043741147965192795, -0.02244267612695694, 0.020251808688044548, -0.008073689416050911, 0.0008555973181501031, -0.025090467184782028, 0.014763036742806435, 0.008378133177757263, 0.06943207234144211, 0.04518865421414375, -0.051252108067274094, 0.004460426978766918})
|
|
|
|
for b.Loop() {
|
|
CosineDist(v1, v2)
|
|
}
|
|
}
|