Share via


series_dot_product()

Calcula el producto de punto de dos series numéricas.

La función series_dot_product() toma dos series numéricas como entrada y calcula su producto de puntos.

Syntax

series_dot_product(series1,series2)

Sintaxis alternativa

series_dot_product(Serie, Numérico)

series_dot_product(Numérico, Serie)

Nota

La sintaxis alternativa muestra que uno de los dos argumentos de función puede ser un escalar numérico.

Este escalar numérico se difundirá a un vector cuya longitud es igual a la longitud de la serie numérica correspondiente.

Por ejemplo, series_dot_product([1, 2, 3], 10) se tratará como series_dot_product([1, 2, 3], [10, 10, 10]).

Obtenga más información sobre las convenciones de sintaxis.

Parámetros

Nombre Tipo Requerido Descripción
series1, series2 dynamic ✔️ Matrices de entrada con datos numéricos, que se multiplican por elementos y, a continuación, se suman en un valor de tipo real.

Devoluciones

Devuelve un valor de tipo real cuyo valor es la suma sobre el producto de cada elemento de series1 con el elemento correspondiente de series2. En caso de que la longitud de ambas series no sea igual, la serie más larga se truncará a la longitud de la más corta. Se omitirá cualquier elemento no numérico de la serie de entrada.

Nota

Si una o ambas matrices de entrada están vacías, el resultado será null.

Optimización del rendimiento

Para mejorar el rendimiento y reducir los requisitos de almacenamiento al usar esta función, considere la posibilidad de usar la Vector16 directiva de codificación para almacenar vectores de punto flotante que no requieren precisión de 64 bits, como incrustaciones vectoriales de ML. El Vector16 perfil, que utiliza la representación de punto flotante Bfloat16 , puede optimizar significativamente la operación y reducir el tamaño de almacenamiento en un factor de 4. Para obtener más información sobre la Vector16 directiva de codificación, consulte Tipos de directiva de codificación.

Ejemplo

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