func (r *RegularizingCost) Cost(a linalg.Vector, x autofunc.Result) autofunc.Result { regFunc := autofunc.SquaredNorm{} cost := r.CostFunc.Cost(a, x) for _, variable := range r.Variables { norm := regFunc.Apply(variable) cost = autofunc.Add(cost, autofunc.Scale(norm, r.Penalty)) } return cost }
func (r *RegularizingCost) CostR(v autofunc.RVector, a linalg.Vector, x autofunc.RResult) autofunc.RResult { regFunc := autofunc.SquaredNorm{} cost := r.CostFunc.CostR(v, a, x) for _, variable := range r.Variables { norm := regFunc.ApplyR(v, autofunc.NewRVariable(variable, v)) cost = autofunc.AddR(cost, autofunc.ScaleR(norm, r.Penalty)) } return cost }