Hi there,
Calling TGraph::Eval() with point abscissa in decreasing order (see graph_rev below)
leads to false interpolated values (87 instead 383 @ x=0.5) !!!
[code]TGraph *graph = new TGraph(12);
graph->SetPoint(11,0.6616255,200);
graph->SetPoint(10,0.6077639,250);
graph->SetPoint( 9,0.5619067,300);
graph->SetPoint( 8,0.5224451,350);
graph->SetPoint( 7,0.4880889,400);
graph->SetPoint( 6,0.4579385,450);
graph->SetPoint( 5,0.4313037,500);
graph->SetPoint( 4,0.4076527,550);
graph->SetPoint( 3,0.3864301,600);
graph->SetPoint( 2,0.3498745,700);
graph->SetPoint( 1,0.3196459,800);
graph->SetPoint( 0,0.2943396,900);
TGraph *graph_rev = new TGraph(12);
graph_rev->SetPoint( 0,0.6616255,200);
graph_rev->SetPoint( 1,0.6077639,250);
graph_rev->SetPoint( 2,0.5619067,300);
graph_rev->SetPoint( 3,0.5224451,350);
graph_rev->SetPoint( 4,0.4880889,400);
graph_rev->SetPoint( 5,0.4579385,450);
graph_rev->SetPoint( 6,0.4313037,500);
graph_rev->SetPoint( 7,0.4076527,550);
graph_rev->SetPoint( 8,0.3864301,600);
graph_rev->SetPoint( 9,0.3498745,700);
graph_rev->SetPoint(10,0.3196459,800);
graph_rev->SetPoint(11,0.2943396,900);
printf ("\ngraph(x=0.5) = %lf / graph_rev(x=0.5) = %lf \n",graph->Eval(0.5),graph_rev->Eval(0.5)) ;
// OUTPUT >> graph(x=0.5) = 382.665283 / graph_rev(x=0.5) = 87.315412[/code]
Problems occurring with 5.18, 5.22 and 5.24.
Could you please fix this ?
Thanks,
Z