Delen via


series_dot_product()

Berekent het puntproduct van twee numerieke reeksen.

De functie series_dot_product() gebruikt twee numerieke reeksen als invoer en berekent het bijbehorende puntproduct.

Syntax

series_dot_product(reeks1,serie2)

Alternatieve syntaxis

series_dot_product(Serie, Numerieke)

series_dot_product(Numerieke, Serie)

Notitie

De alternatieve syntaxis geeft aan dat een van de twee functieargumenten een numerieke scalaire waarde kan zijn.

Deze numerieke scalaire waarde wordt uitgezonden naar een vector waarvan de lengte gelijk is aan de lengte van de overeenkomstige numerieke reeksen.

Wordt bijvoorbeeld series_dot_product([1, 2, 3], 10) behandeld als series_dot_product([1, 2, 3], [10, 10, 10]).

Meer informatie over syntaxisconventies.

Parameters

Naam Type Vereist Beschrijving
serie1, serie2 dynamic ✔️ Invoermatrices met numerieke gegevens, die op elementen moeten worden vermenigvuldigd en vervolgens worden opgeteld in een waarde van het type real.

Retouren

Retourneert een waarde van het type real waarvan de waarde de som is van het product van elk element van reeks1 met het bijbehorende element van reeks2. Als de lengte van beide reeksen niet gelijk is, wordt de langere reeks afgekapt tot de lengte van de kortere reeks. Elk niet-numeriek element van de invoerreeks wordt genegeerd.

Notitie

Als een of beide invoermatrices leeg zijn, is nullhet resultaat .

Prestaties optimaliseren

Voor verbeterde prestaties en verminderde opslagvereisten bij het gebruik van deze functie, kunt u overwegen het coderingsbeleid te gebruiken voor het Vector16 opslaan van drijvende-kommavectoren die geen 64 bits precisie vereisen, zoals ML-vector insluitingen. Het Vector16 profiel, dat gebruikmaakt van de drijvendekommarepresentatie Bfloat16 , kan de bewerking aanzienlijk optimaliseren en de opslaggrootte met een factor 4 verminderen. Raadpleeg beleidstypenVector16 voor codering voor meer informatie over het coderingsbeleid.

Voorbeeld

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