{ // // This macro produces the flowchart of TFormula::Eval //Author: Rene Brun gROOT->Reset(); c1 = new TCanvas("c1"); c1->Range(0,0,20,10); TPaveLabel pt1(0.2,4,3,6,"Eval"); pt1.SetTextSize(0.5); pt1.SetFillColor(42); pt1.Draw(); TPaveText pt2(4.5,4,7.8,6); pt2.Draw(); TText *t1=pt2.AddText("Read Operator"); TText *t2=pt2.AddText("number i"); TPaveText pt3(9,3.5,17.5,6.5); TText *t4=pt3.AddText("Apply Operator to current stack values"); TText *t5=pt3.AddText("Example: if operator +"); TText *t6=pt3.AddText("value[i] += value[i-1]"); t4.SetTextAlign(22); t5.SetTextAlign(22); t6.SetTextAlign(22); t5.SetTextColor(4); t6.SetTextColor(2); pt3.Draw(); TPaveLabel pt4(4,0.5,12,2.5,"return result = value[i]"); pt4.Draw(); TArrow ar1(6,4,6,2.7,0.02,"|>"); ar1.Draw(); TText t7(6.56,2.7,"if i = number of stack elements"); t7.SetTextSize(0.04); t7.Draw(); ar1.DrawArrow(6,8,6,6.2,0.02,"|>"); TLine l1(12,6.6,12,8); l1.Draw(); l1.DrawLine(12,8,6,8); ar1.DrawArrow(3,5,4.4,5,0.02,"|>"); ar1.DrawArrow(7.8,5,8.9,5,0.02,"|>"); } eval.C:1 eval.C:2 eval.C:3 eval.C:4 eval.C:5 eval.C:6 eval.C:7 eval.C:8 eval.C:9 eval.C:10 eval.C:11 eval.C:12 eval.C:13 eval.C:14 eval.C:15 eval.C:16 eval.C:17 eval.C:18 eval.C:19 eval.C:20 eval.C:21 eval.C:22 eval.C:23 eval.C:24 eval.C:25 eval.C:26 eval.C:27 eval.C:28 eval.C:29 eval.C:30 eval.C:31 eval.C:32 eval.C:33 eval.C:34 eval.C:35 eval.C:36 eval.C:37 eval.C:38 eval.C:39 eval.C:40 eval.C:41 eval.C:42 |
|