File Annotation
Not logged in
23dfcca431 2011-02-23        kinaba: // ternery search (for shita-ni-totsu)
23dfcca431 2011-02-23        kinaba: {
23dfcca431 2011-02-23        kinaba: 	double x = ~min~;
23dfcca431 2011-02-23        kinaba: 	double w = ~max~;
23dfcca431 2011-02-23        kinaba: 	for(int i=0; i<~iteration~; ++i) // or, while( w-x > ~eps~ ) be careful for precision!
23dfcca431 2011-02-23        kinaba: 	{
23dfcca431 2011-02-23        kinaba: 		double y = 2*x/3 + w/3;
23dfcca431 2011-02-23        kinaba: 		double z = x/3 + 2*w/3;
23dfcca431 2011-02-23        kinaba: 		double fx = f(x);
23dfcca431 2011-02-23        kinaba: 		double fy = f(y);
23dfcca431 2011-02-23        kinaba: 		double fz = f(z);
23dfcca431 2011-02-23        kinaba: 		double fw = f(w);
23dfcca431 2011-02-23        kinaba: 		if( fx < fy )      w = y;
23dfcca431 2011-02-23        kinaba: 		else if( fz > fw ) x = z;
23dfcca431 2011-02-23        kinaba: 		else if( fy < fz ) w = z;
23dfcca431 2011-02-23        kinaba: 		else               x = y;
23dfcca431 2011-02-23        kinaba: 	}
23dfcca431 2011-02-23        kinaba: }