42 Real f1 = std::pow((*xp)[0],2.0) + std::pow((*xp)[1],4.0);
43 Real f2 = std::pow(2.0-(*xp)[0],2.0) + std::pow(2.0-(*xp)[1],2.0);
44 Real f3 = 2.0*std::exp(-(*xp)[0] + (*xp)[1]);
45 return std::max(f1,std::max(f2,f3));
51 Real f1 = std::pow((*xp)[0],2.0) + std::pow((*xp)[1],4.0);
52 Real f2 = std::pow(2.0-(*xp)[0],2.0) + std::pow(2.0-(*xp)[1],2.0);
53 Real f3 = 2.0*std::exp(-(*xp)[0] + (*xp)[1]);
56 if( f1 >= std::max(f2,f3) ) {
57 (*gp)[0] = 2.0*(*xp)[0];
58 (*gp)[1] = 4.0*std::pow((*xp)[1],3.0);
60 else if ( f2 >= std::max(f1,f3) ) {
61 (*gp)[0] = 2.0*(*xp)[0]-4.0;
62 (*gp)[1] = 2.0*(*xp)[1]-4.0;
64 else if ( f3 >= std::max(f1,f2) ) {
65 (*gp)[0] = -2.0*std::exp(-(*xp)[0]+(*xp)[1]);
66 (*gp)[1] = 2.0*std::exp(-(*xp)[0]+(*xp)[1]);