series_dot_product()

Oblicza kropkę dwóch serii liczbowych.

Funkcja series_dot_product() przyjmuje dwie serie liczbowe jako dane wejściowe i oblicza swój produkt kropkowy.

Składnia

series_dot_product(seria1,seria2)

Składnia alternatywna

series_dot_product(Serii, Liczbowe)

series_dot_product(Liczbowe, Serii)

Uwaga

Składnia alternatywna pokazuje, że jeden z dwóch argumentów funkcji może być skalarnym liczbowym.

Ten skalar liczbowy zostanie rozgłaszany do wektora, którego długość jest równa długości odpowiadającej serii liczbowej.

Na przykład series_dot_product([1, 2, 3], 10) będzie traktowana jako series_dot_product([1, 2, 3], [10, 10, 10]).

Dowiedz się więcej o konwencjach składniowych.

Parametry

Nazwa Typ Wymagane Opis
seria1, seria2 dynamic ✔️ Tablice wejściowe z danymi liczbowymi, które mają być mnożone przez element, a następnie sumowane do wartości typu real.

Zwraca

Zwraca wartość typu real , którego wartość jest sumą nad produktem każdego elementu serii1 z odpowiadającym elementem serii 2. W przypadku, gdy obie długości serii nie są równe, dłuższa seria zostanie obcięta na długość krótszej serii. Każdy element nieliczbowy serii wejściowej zostanie zignorowany.

Uwaga

Jeśli jedna lub obie tablice wejściowe są puste, wynikiem będzie null.

Optymalizacja wydajności

Aby zwiększyć wydajność i zmniejszyć wymagania dotyczące magazynu podczas korzystania z tej funkcji, rozważ użycie Vector16 zasad kodowania do przechowywania wektorów zmiennoprzecinkowych, które nie wymagają dokładności 64 bitów, takich jak osadzanie wektorów uczenia maszynowego. Vector16 Profil, który wykorzystuje reprezentację zmiennoprzecinkową Bfloat16, może znacznie zoptymalizować operację i zmniejszyć rozmiar magazynu o współczynnik 4. Aby uzyskać więcej informacji na temat Vector16 zasad kodowania, zobacz Typy zasad kodowania.

Przykład

range x from 1 to 3 step 1 
| extend y = x * 2
| extend z = y * 2
| project s1 = pack_array(x,y,z), s2 = pack_array(z, y, x)
| extend s1_dot_product_s2 = series_dot_product(s1, s2)
s1 s2 s1_dot_product_s2
[1,2,4] [4,2,1] 12
[2,4,8] [8,4,2] 48
[3,6,12] [12,6,3] 108
range x from 1 to 3 step 1 
| extend y = x * 2
| extend z = y * 2
| project s1 = pack_array(x,y,z), s2 = x
| extend s1_dot_product_s2 = series_dot_product(s1, s2)
s1 s2 s1_dot_product_s2
[1,2,4] 1 7
[2,4,8] 2 28
[3,6,12] 3 63