flopscope.

flopscope.numpy.vecdot

fnp.vecdot(a, b, **kwargs)[flopscope source][numpy source]

Vector dot product of two arrays.

Adapted from NumPy docs np.vecdot

Areacore
Typecounted
NumPy Refnp.vecdot
Cost
nn
Flopscope Context

Vector dot product along last axis.

Let a\mathbf{a} be a vector in x1 and b\mathbf{b} be a corresponding vector in x2. The dot product is defined as:

ab=i=0n1aibi\mathbf{a} \cdot \mathbf{b} = \sum_{i=0}^{n-1} \overline{a_i}b_i

where the sum is over the last dimension (unless axis is specified) and where ai\overline{a_i} denotes the complex conjugate if aia_i is complex and the identity otherwise.

Added in version 2.0.0.

Parameters

x1, x2:array_like

Input arrays, scalars not allowed.

out:ndarray, optional

A location into which the result is stored. If provided, it must have the broadcasted shape of x1 and x2 with the last axis removed. If not provided or None, a freshly-allocated array is used.

**kwargs

For other keyword-only arguments, see the ufunc docs.

Returns

y:ndarray

The vector dot product of the inputs. This is a scalar only when both x1, x2 are 1-d vectors.

Raises

:ValueError

If the last dimension of x1 is not the same size as the last dimension of x2.

If a scalar value is passed in.

See also

Examples

>>> import flopscope.numpy as fnp

Get the projected size along a given normal for an array of vectors.

>>> v = flops.array([[0., 5., 0.], [0., 0., 10.], [0., 6., 8.]])
>>> n = flops.array([0., 0.6, 0.8])
>>> flops.vecdot(v, n)
array([ 3.,  8., 10.])