20 void binomialSimple() {
24 printf(
"\nTMath::Binomial simple test\n");
25 printf(
"Build the Tartaglia triangle\n");
26 printf(
"============================\n");
29 for(Int_t i=0;i<max;i++) {
31 for(j=0;j<(max-i);j++) printf(
" ");
32 for(j=0;j<i+1;j++) printf(
"%4d",TMath::Nint(TMath::Binomial(i,j)));
37 void binomialFancy() {
44 const Int_t nmax=10000;
45 printf(
"\nTMath::Binomial fancy test\n");
46 printf(
"Verify Newton formula for (x+y)^n\n");
47 printf(
"x,y in [-2,2] and n from 0 to 9 \n");
48 printf(
"=================================\n");
50 for(Int_t i=0; i<nmax; i++) {
54 }
while (TMath::Abs(x+y)<0.75);
55 for(Int_t j=0; j<10; j++) {
56 res1=TMath::Power(x+y,j);
58 for(Int_t k=0; k<=j; k++)
59 res2+=TMath::Power(x,k)*TMath::Power(y,j-k)*TMath::Binomial(j,k);
60 if((err=TMath::Abs(res1-res2)/TMath::Abs(res1))>1e-10)
61 printf(
"res1=%e res2=%e x=%e y=%e err=%e j=%d\n",res1,res2,x,y,err,j);
65 printf(
"Average Error = %e\n",serr/nmax);