34 #ifndef SHARK_OBJECTIVEFUNCTIONS_COMBINEDOBJECTIVEFUNCTION_H 35 #define SHARK_OBJECTIVEFUNCTIONS_COMBINEDOBJECTIVEFUNCTION_H 51 template <
typename SearchSpaceType,
typename ResultT>
67 {
return "CombinedObjectiveFunction"; }
72 void add(element
const& e){
78 void add(
double weight, element
const& e)
80 SHARK_CHECK(weight >= 0.0,
"[CombinedObjectiveFunction::add] weight must be non-negative");
94 for ( std::size_t i=0; i<ic; i++)
111 for (std::size_t i=1; i<ic; i++)
125 for (std::size_t i=1; i != ic; i++)
138 typename super::SecondOrderDerivative der;
141 derivative.gradient =
m_weight[0] * der.gradient;
142 derivative.hessian =
m_weight[0] * der.hessian;
143 for (std::size_t i=1; i<ic; i++)
146 derivative.gradient +=
m_weight[i] * der.gradient;
147 derivative.hessian +=
m_weight[i] * der.hessian;
162 #endif // SHARK_CORE_COBINEDOBJECTIVEFUNCTION_H