// DotProduct does the dot product with the provided table
976006
func (t *Table) DotProduct(t2 *Table) error {
	t.mu.Lock()
	defer t.mu.Unlock()
	if !disjointBinding(t.mbs, t2.mbs) {
		return fmt.Errorf("DotProduct operations requires disjoint bindings; instead got %v and %v", t.mbs, t2.mbs)
	}
	// Update the table metadata.
	m := make(map[string]bool)
	for k := range t.mbs {
		m[k] = true
	}
	for k := range t2.mbs {
		m[k] = true
	}
	t.mbs = m
	t.AvailableBindings = []string{}
	for k := range t.mbs {
		t.AvailableBindings = append(t.AvailableBindings, k)
	}
	// Update the data.
	td := t.Data
	cnt, size := 0, len(td)*len(t2.Data)
	t.Data = make([]Row, size, size) // Preallocate resulting table.
	for _, r1 := range td {
		for _, r2 := range t2.Data {
			t.Data[cnt] = MergeRows([]Row{r1, r2})
			cnt++
		}
	}
	return nil
}
1065276
func (s *CreatePhoneNumberOrderInput) SetProductType(v string) *CreatePhoneNumberOrderInput {
	s.ProductType = &v
	return s
}
873003
func (s *AssociateServiceActionWithProvisioningArtifactInput) SetProductId(v string) *AssociateServiceActionWithProvisioningArtifactInput {
	s.ProductId = &v
	return s
}
1263361
func (s *AwsSecurityFindingFilters) SetProductFields(v []*MapFilter) *AwsSecurityFindingFilters {
	s.ProductFields = v
	return s
}
790232
func (c *Device) product() (string, error) {
	attr, err := c.getAttribute("get-product")
	return attr, wrapClientError(err, c, "Product")
}
145195
func (s *ListConstraintsForPortfolioInput) SetProductId(v string) *ListConstraintsForPortfolioInput {
	s.ProductId = &v
	return s
}
1157478
func (s *ProductViewSummary) SetProductId(v string) *ProductViewSummary {
	s.ProductId = &v
	return s
}
1018013
func (s *Patch) SetProductFamily(v string) *Patch {
	s.ProductFamily = &v
	return s
}
1052328
func (s *GetDeployablePatchSnapshotForInstanceOutput) SetProduct(v string) *GetDeployablePatchSnapshotForInstanceOutput {
	s.Product = &v
	return s
}
833755
func (s *DescribeReservedCacheNodesOfferingsInput) SetProductDescription(v string) *DescribeReservedCacheNodesOfferingsInput {
	s.ProductDescription = &v
	return s
}
20593
func (r Software_Description) GetProductItems() (resp []datatypes.Product_Item, err error) {
	err = r.Session.DoRequest("SoftLayer_Software_Description", "getProductItems", nil, &r.Options, &resp)
	return
}
327135
func (e *Euclidean) InnerProduct(vectorX *mat.Dense, vectorY *mat.Dense) float64 {
	subVector := mat.NewDense(1, 1, nil)
	subVector.Reset()
	subVector.MulElem(vectorX, vectorY)
	result := mat.Sum(subVector)

	return result
}
1220950
func GetPackageProducts(
	sess *session.Session,
	packageId int,
	mask ...string,
) ([]datatypes.Product_Item, error) {

	objectMask := "id,capacity,description,units,keyName,prices[id,locationGroupId,categories[id,name,categoryCode]]"
	if len(mask) > 0 {
		objectMask = mask[0]
	}

	service := services.GetProductPackageService(sess)

	// Get product items for package id
	return service.
		Id(packageId).
		Mask(objectMask).
		GetItems()
}
943356
func (s *ProvisionedProductPlanDetails) SetProductId(v string) *ProvisionedProductPlanDetails {
	s.ProductId = &v
	return s
}
1125112
func NewProductLicenseAPI(client *Client) *ProductLicenseAPI {
	return &ProductLicenseAPI{
		&baseAPI{
			client: client,
			FuncGetResourceURL: func() string {
				return "product/license"
			},
		},
	}
}
460879
func (v Vector) DotProduct(v2 Vector) (result float64, err error) {
	if len(v) != len(v2) {
		err = ErrDimensionMismatch
		return
	}

	for i := 0; i < len(v); i++ {
		result = result + (v[i] * v2[i])
	}
	return
}
424670
func (v Vector) Dot(u Vector) float32 {
	return blas.Sdot(len(v), u, 1, v, 1)
}