`Am 09.05.2020 um 13:59 schrieb Costello, Roger L. costello@xxxxxxxxx:
``Hi Folks,`

`I need a super-efficient way to compute the sum of A[i] * B[i] for i=1 to
`

`n.
`

For example, suppose A is this:

<row>
<col>0.9</col>
<col>0.3</col>
</row>

`and B is this:`

<row>
<col>0.2</col>
<col>0.8</col>
</row>

`I want to compute:`

`(0.9 * 0.2) + (0.3 * 0.8)`

`Here's one way to do it:`

`sum(for $i in 1 to count($A/col) return number($A/col[$i]) *
`

`number($B/col[$i]))
`

I suspect that is not the most efficient approach.

`What is the most efficient approach? I will be doing hundreds of thousands
`

`of these computations, so I want to use the most efficient approach.`
You can express it a bit more nicely in XPath 3 with higher-order
functions as

` sum(for-each-pair($A/col, $B/col, function($a, $b) { $a * $b}))`
`but whether that performs better or worse is something you can only measure.`