Beispiel #1
0
int main()
{
  try
    {
      symbol k("k"),q("q"),p("p"),p1("p1"),p2("p2"),p3("p3"),ms("ms"),l("l"),s("s"),m1s("m1s"),m2s("m2s"),m3s("m3s");
      symbol l1("l1"),l2("l2"),l3("l3"),l4("l4"),t("t"),p4("p4"),p5("p5"),p6("p6"),tp("tp"),v1("v1"),v2("v2"),l5("l5");
      symbol k1("k1"),k2("k2"),k3("k3"),k4("k4"),k5("k5"),ms1("ms1"),ms2("ms2"),ms3("ms3"),ms4("ms4");
      symbol s12("s12"),s23("s23"),s34("s34"),s45("s45"),s51("s51"),s13("s13"),s15("s15"),s56("s56"),s16("s16"),s123("s123"),s234("s234"),s345("s345");
      lst inv_l;
      inv_l.append(p1*p1 == 0);
      inv_l.append( p2*p2 == 0);inv_l.append( p3*p3  ==  0);inv_l.append( p4*p4  ==  0);inv_l.append( p5*p5  ==  0);inv_l.append( p6*p6  ==  0);
      inv_l.append(p1* p2  ==  s12/2);inv_l.append( p2* p3  ==  s23/2);inv_l.append( p3* p4  ==  s34/2);inv_l.append( p4* p5  ==  s45/2);
      inv_l.append(p5* p6  ==  s56/2);inv_l.append( p1* p6  ==  s16/2);inv_l.append( p1* p3  ==  (-s12 + s123 - s23)/2);
      inv_l.append(p2* p4  ==  (-s23 + s234 - s34)/2);
      inv_l.append( p3* p5  ==  (-s34 + s345 - s45)/2);
      inv_l.append(p1* p4  ==  (-s123 + s23 - s234 + s56)/2);
      inv_l.append(p1* p5  ==  (-s16 + s234 - s56)/2);
      inv_l.append( p2* p5  ==  (s16 - s234 + s34 - s345)/2);
      inv_l.append( p2* p6  ==  (-s12 - s16 + s345)/2);
      inv_l.append( p3* p6  ==  (s12 - s123 - s345 + s45)/2);
      inv_l.append( p4* p6  ==  (s123 - s45 - s56)/2);
      
      
      RoMB_loop_by_loop hexag(lst(k1),
                              lst(-pow(p1 + k1,2),-pow(p1 + p2 + k1,2),
                                  -pow(p1 + p2 + p3 + k1,2),
                                  -pow(p1 + p2 + p3 + p4 + k1,2),
                                  -pow(p1+p2+p3+p4+p5+k1,2),-pow(k1,2)),
                              inv_l,
                              lst(1,1,1,1,1,1),true);
      hexag.integrate_map(lst(s12 == -1, s23 == -2, s34 == -3, s45 == -4, s56 == -5, s16 == -6, s123 == -7, s234 == -8, s345 == -9));
/*

 FRESULT for parameters: {s12==-1,s23==-2,s34==-3,s45==-4,s56==-5,s16==-6,s123==-7,s234==-8,s345==-9}
 
  FRESULT anl :           = -0.1955084880526298663-1/240*log(8)*log(6)+947/60480*log(2)^2-1/480*log(6)*log(4)+1/1080*log(3)*log(7)+131/7560*log(9)*log(2)+19/1260*log(9)^2-1/560*log(8)*log(4)+523/60480*log(3)^2-1/1080*log(7)*log(5)+41/4320*log(3)*log(5)-1/48*log(8)*log(5)-1/1080*log(7)*log(4)+22/945*log(6)*log(7)+19/3780*log(3)*log(4)+493/30240*Pi^2+43/1008*eps^(-2)+49/8640*log(5)^2-641/30240*log(2)*log(6)+1/1080*log(9)*log(5)-22/945*log(2)*log(7)+271/60480*log(4)^2-3/112*log(8)*log(3)-19/3780*log(9)*log(4)+1/1080*log(4)*log(5)-61/2520*log(9)*log(7)+61/5040*log(7)^2+1/168*log(3)*log(2)+1/168*log(8)*log(9)+13/3360*log(2)*log(4)-1/30240*(-1132.7960047725738361+576*log(8)-163*log(3)+264*log(9)+533*log(2)-479*log(6)-444*log(7)+271*log(4)-287*log(5))*eps^(-1)+47/1680*log(8)^2-17/1680*log(8)*log(2)+767/60480*log(6)^2-22/945*log(9)*log(6)-13/1890*log(3)*log(9)
   FRESULT num:           = 1.9907333428263254975E-4+(0.032177795803854872908)*eps^(-1)+(0.04265873015873015873)*eps^(-2)
    eps^-2 term: 43/1008 +/- 0
     eps^-1 term: 0.03746018534300839405-2/105*log(8)+163/30240*log(3)-11/1260*log(9)-533/30240*log(2)+479/30240*log(6)+37/2520*log(7)-271/30240*log(4)+41/4320*log(5) +/- 9.022403780167233619E-6
      eps^0 term: -0.1955084880526298663-1/240*log(8)*log(6)+947/60480*log(2)^2-1/480*log(6)*log(4)+1/1080*log(3)*log(7)+131/7560*log(9)*log(2)+19/1260*log(9)^2-1/560*log(8)*log(4)+523/60480*log(3)^2-1/1080*log(7)*log(5)+41/4320*log(3)*log(5)-1/48*log(8)*log(5)-1/1080*log(7)*log(4)+22/945*log(6)*log(7)+19/3780*log(3)*log(4)+493/30240*Pi^2+49/8640*log(5)^2-641/30240*log(2)*log(6)+1/1080*log(9)*log(5)-22/945*log(2)*log(7)+271/60480*log(4)^2-3/112*log(8)*log(3)-19/3780*log(9)*log(4)+1/1080*log(4)*log(5)-61/2520*log(9)*log(7)+61/5040*log(7)^2+1/168*log(3)*log(2)+1/168*log(8)*log(9)+13/3360*log(2)*log(4)+47/1680*log(8)^2-17/1680*log(8)*log(2)+767/60480*log(6)^2-22/945*log(9)*log(6)-13/1890*log(3)*log(9) +/- 1.04620404922048185285E-4
      */

    }
  catch(std::exception &p)
    {
      std::cerr<<"******************************************************************"<<endl;
      std::cerr<<"   >>>ERROR:  "<<p.what()<<endl;
      std::cerr<<"******************************************************************"<<endl;
      return 1;
    }
  return 0;
}
bool test(bool is_kernel_exact = true)
{
	// types
  typedef typename K::FT FT;
  typedef typename K::Line_3 Line;
  typedef typename K::Point_3 Point;
  typedef typename K::Segment_3 Segment;
  typedef typename K::Ray_3 Ray;
  typedef typename K::Line_3 Line;
  typedef typename K::Triangle_3 Triangle;

  /* -------------------------------------
  // Test data is something like that (in t supporting plane)
  // Triangle is (p1,p2,p3)
  //
  //       +E          +1
  //                 /   \
  //        +C     6+  +8  +4      +B
  //              /   9++7  \
  //            3+-------+5--+2
  //     
  //         +F        +A      
  ------------------------------------- */
  
  Point p1(FT(1.), FT(0.), FT(0.));
  Point p2(FT(0.), FT(1.), FT(0.));
  Point p3(FT(0.), FT(0.), FT(1.));
  
  Triangle t(p1,p2,p3);
  
  // Edges of t 
  Segment s12(p1,p2);
  Segment s21(p2,p1);
  Segment s13(p1,p3);
  Segment s23(p2,p3);
  Segment s32(p3,p2);
  Segment s31(p3,p1);
  
  bool b = test_aux(is_kernel_exact,t,s12,"t-s12",s12);
  b &= test_aux(is_kernel_exact,t,s21,"t-s21",s21);
  b &= test_aux(is_kernel_exact,t,s13,"t-s13",s13);
  b &= test_aux(is_kernel_exact,t,s23,"t-s23",s23);

  // Inside points
  Point p4(FT(0.5), FT(0.5), FT(0.));
  Point p5(FT(0.), FT(0.75), FT(0.25));
  Point p6(FT(0.5), FT(0.), FT(0.5));
  Point p7(FT(0.25), FT(0.625), FT(0.125));
  Point p8(FT(0.5), FT(0.25), FT(0.25));
  
  Segment s14(p1,p4);
  Segment s41(p4,p1);
  Segment s24(p2,p4);
  Segment s42(p4,p2);
  Segment s15(p1,p5);
  Segment s25(p2,p5);
  Segment s34(p3,p4);
  Segment s35(p3,p5);
  Segment s36(p3,p6);
  Segment s45(p4,p5);
  Segment s16(p1,p6);
  Segment s26(p2,p6);
  Segment s62(p6,p2);
  Segment s46(p4,p6);
  Segment s48(p4,p8);
  Segment s56(p5,p6);
  Segment s65(p6,p5);
  Segment s64(p6,p4);
  Segment s17(p1,p7);
  Segment s67(p6,p7);
  Segment s68(p6,p8);
  Segment s86(p8,p6);
  Segment s78(p7,p8);
  Segment s87(p8,p7);
  
  b &= test_aux(is_kernel_exact,t,s14,"t-s14",s14);
  b &= test_aux(is_kernel_exact,t,s41,"t-s41",s41);
  b &= test_aux(is_kernel_exact,t,s24,"t-s24",s24);
  b &= test_aux(is_kernel_exact,t,s42,"t-s42",s42);
  b &= test_aux(is_kernel_exact,t,s15,"t-s15",s15);
  b &= test_aux(is_kernel_exact,t,s25,"t-s25",s25);
  b &= test_aux(is_kernel_exact,t,s34,"t-s34",s34);
  b &= test_aux(is_kernel_exact,t,s35,"t-s35",s35);
  b &= test_aux(is_kernel_exact,t,s36,"t-s36",s36);
  b &= test_aux(is_kernel_exact,t,s45,"t-s45",s45);
  b &= test_aux(is_kernel_exact,t,s16,"t-s16",s16);
  b &= test_aux(is_kernel_exact,t,s26,"t-s26",s26);
  b &= test_aux(is_kernel_exact,t,s62,"t-s62",s62);
  b &= test_aux(is_kernel_exact,t,s46,"t-s46",s46);
  b &= test_aux(is_kernel_exact,t,s65,"t-s65",s65);
  b &= test_aux(is_kernel_exact,t,s64,"t-s64",s64);
  b &= test_aux(is_kernel_exact,t,s48,"t-s48",s48);
  b &= test_aux(is_kernel_exact,t,s56,"t-s56",s56);
  b &= test_aux(is_kernel_exact,t,s17,"t-t17",s17);
  b &= test_aux(is_kernel_exact,t,s67,"t-t67",s67);
  b &= test_aux(is_kernel_exact,t,s68,"t-s68",s68);
  b &= test_aux(is_kernel_exact,t,s86,"t-s86",s86);
  b &= test_aux(is_kernel_exact,t,s78,"t-t78",s78);
  b &= test_aux(is_kernel_exact,t,s87,"t-t87",s87);
  
  // Outside points (in triangle plane)
  Point pA(FT(-0.5), FT(1.), FT(0.5));
  Point pB(FT(0.5), FT(1.), FT(-0.5));
  Point pC(FT(0.5), FT(-0.5), FT(1.));
  Point pE(FT(1.), FT(-1.), FT(1.));
  Point pF(FT(-1.), FT(0.), FT(2.));
  
  Segment sAB(pA,pB);
  Segment sBC(pB,pC);
  Segment s2E(p2,pE);
  Segment sE2(pE,p2);
  Segment s2A(p2,pA);
  Segment s6E(p6,pE);
  Segment sB8(pB,p8);
  Segment sC8(pC,p8);
  Segment s8C(p8,pC);
  Segment s1F(p1,pF);
  Segment sF6(pF,p6);
  
  b &= test_aux(is_kernel_exact,t,sAB,"t-sAB",p2);
  b &= test_aux(is_kernel_exact,t,sBC,"t-sBC",s46);
  b &= test_aux(is_kernel_exact,t,s2E,"t-s2E",s26);
  b &= test_aux(is_kernel_exact,t,sE2,"t-sE2",s62);
  b &= test_aux(is_kernel_exact,t,s2A,"t-s2A",p2);
  b &= test_aux(is_kernel_exact,t,s6E,"t-s6E",p6);
  b &= test_aux(is_kernel_exact,t,sB8,"t-sB8",s48);
  b &= test_aux(is_kernel_exact,t,sC8,"t-sC8",s68);
  b &= test_aux(is_kernel_exact,t,s8C,"t-s8C",s86);
  b &= test_aux(is_kernel_exact,t,s1F,"t-s1F",s13);
  b &= test_aux(is_kernel_exact,t,sF6,"t-sF6",s36);
  
  // Outside triangle plane
  Point pa(FT(0.), FT(0.), FT(0.));
  Point pb(FT(2.), FT(0.), FT(0.));
  Point pc(FT(1.), FT(0.), FT(1.));
  Point pe(FT(1.), FT(0.5), FT(0.5));
  
  Segment sab(pa,pb);
  Segment sac(pa,pc);
  Segment sae(pa,pe);
  Segment sa8(pa,p8);
  Segment sb2(pb,p2);
  
  b &= test_aux(is_kernel_exact,t,sab,"t-sab",p1);
  b &= test_aux(is_kernel_exact,t,sac,"t-sac",p6);
  b &= test_aux(is_kernel_exact,t,sae,"t-sae",p8);
  b &= test_aux(is_kernel_exact,t,sa8,"t-sa8",p8);
  b &= test_aux(is_kernel_exact,t,sb2,"t-sb2",p2);
  
  // -----------------------------------
  // ray queries
  // -----------------------------------
  // Edges of t 
  Ray r12(p1,p2);
  Ray r21(p2,p1);
  Ray r13(p1,p3);
  Ray r23(p2,p3);
  
  b &= test_aux(is_kernel_exact,t,r12,"t-r12",s12);
  b &= test_aux(is_kernel_exact,t,r21,"t-r21",s21);
  b &= test_aux(is_kernel_exact,t,r13,"t-r13",s13);
  b &= test_aux(is_kernel_exact,t,r23,"t-r23",s23);
  
  // In triangle
  Point p9_(FT(0.), FT(0.5), FT(0.5));
  Point p9(FT(0.25), FT(0.375), FT(0.375));
  
  Ray r14(p1,p4);
  Ray r41(p4,p1);
  Ray r24(p2,p4);
  Ray r42(p4,p2);
  Ray r15(p1,p5);
  Ray r25(p2,p5);
  Ray r34(p3,p4);
  Ray r35(p3,p5);
  Ray r36(p3,p6);
  Ray r45(p4,p5);
  Ray r16(p1,p6);
  Ray r26(p2,p6);
  Ray r62(p6,p2);
  Ray r46(p4,p6);
  Ray r48(p4,p8);
  Ray r56(p5,p6);
  Ray r47(p4,p7);
  Ray r89(p8,p9);
  Ray r86(p8,p6);
  Ray r68(p6,p8);
  Segment r89_res(p8,p9_);
  
  b &= test_aux(is_kernel_exact,t,r14,"t-r14",s12);
  b &= test_aux(is_kernel_exact,t,r41,"t-r41",s41);
  b &= test_aux(is_kernel_exact,t,r24,"t-r24",s21);
  b &= test_aux(is_kernel_exact,t,r42,"t-r42",s42);
  b &= test_aux(is_kernel_exact,t,r15,"t-r15",s15);
  b &= test_aux(is_kernel_exact,t,r25,"t-r25",s23);
  b &= test_aux(is_kernel_exact,t,r34,"t-r34",s34);
  b &= test_aux(is_kernel_exact,t,r35,"t-r35",s32);
  b &= test_aux(is_kernel_exact,t,r36,"t-r36",s31);
  b &= test_aux(is_kernel_exact,t,r45,"t-r45",s45);
  b &= test_aux(is_kernel_exact,t,r16,"t-r16",s13);
  b &= test_aux(is_kernel_exact,t,r26,"t-r26",s26);
  b &= test_aux(is_kernel_exact,t,r62,"t-r62",s62);
  b &= test_aux(is_kernel_exact,t,r46,"t-r46",s46);
  b &= test_aux(is_kernel_exact,t,r48,"t-r48",s46);
  b &= test_aux(is_kernel_exact,t,r56,"t-r56",s56);
  b &= test_aux(is_kernel_exact,t,r47,"t-r47",s45);
  b &= test_aux(is_kernel_exact,t,r89,"t-t89",r89_res);
  b &= test_aux(is_kernel_exact,t,r68,"t-r68",s64);
  b &= test_aux(is_kernel_exact,t,r86,"t-r86",s86);
  
  
  // Outside points (in triangre prane)
  Ray rAB(pA,pB);
  Ray rBC(pB,pC);
  Ray r2E(p2,pE);
  Ray rE2(pE,p2);
  Ray r2A(p2,pA);
  Ray r6E(p6,pE);
  Ray rB8(pB,p8);
  Ray rC8(pC,p8);
  Ray r8C(p8,pC);
  Ray r1F(p1,pF);
  Ray rF6(pF,p6);
  
  b &= test_aux(is_kernel_exact,t,rAB,"t-rAB",p2);
  b &= test_aux(is_kernel_exact,t,rBC,"t-rBC",s46);
  b &= test_aux(is_kernel_exact,t,r2E,"t-r2E",s26);
  b &= test_aux(is_kernel_exact,t,rE2,"t-rE2",s62);
  b &= test_aux(is_kernel_exact,t,r2A,"t-r2A",p2);
  b &= test_aux(is_kernel_exact,t,r6E,"t-r6E",p6);
  b &= test_aux(is_kernel_exact,t,rB8,"t-rB8",s46);
  b &= test_aux(is_kernel_exact,t,rC8,"t-rC8",s64);
  b &= test_aux(is_kernel_exact,t,r8C,"t-r8C",s86);
  b &= test_aux(is_kernel_exact,t,r1F,"t-r1F",s13);
  b &= test_aux(is_kernel_exact,t,rF6,"t-rF6",s31);
  
  // Outside triangle plane
  Ray rab(pa,pb);
  Ray rac(pa,pc);
  Ray rae(pa,pe);
  Ray ra8(pa,p8);
  Ray rb2(pb,p2);
  
  b &= test_aux(is_kernel_exact,t,rab,"t-rab",p1);
  b &= test_aux(is_kernel_exact,t,rac,"t-rac",p6);
  b &= test_aux(is_kernel_exact,t,rae,"t-rae",p8);
  b &= test_aux(is_kernel_exact,t,ra8,"t-ra8",p8);
  b &= test_aux(is_kernel_exact,t,rb2,"t-rb2",p2);
  
  // -----------------------------------
  // Line queries
  // -----------------------------------
  // Edges of t 
  Line l12(p1,p2);
  Line l21(p2,p1);
  Line l13(p1,p3);
  Line l23(p2,p3);
  
  b &= test_aux(is_kernel_exact,t,l12,"t-l12",s12);
  b &= test_aux(is_kernel_exact,t,l21,"t-l21",s21);
  b &= test_aux(is_kernel_exact,t,l13,"t-l13",s13);
  b &= test_aux(is_kernel_exact,t,l23,"t-l23",s23);
  
  // In triangle
  Line l14(p1,p4);
  Line l41(p4,p1);
  Line l24(p2,p4);
  Line l42(p4,p2);
  Line l15(p1,p5);
  Line l25(p2,p5);
  Line l34(p3,p4);
  Line l35(p3,p5);
  Line l36(p3,p6);
  Line l45(p4,p5);
  Line l16(p1,p6);
  Line l26(p2,p6);
  Line l62(p6,p2);
  Line l46(p4,p6);
  Line l48(p4,p8);
  Line l56(p5,p6);
  Line l47(p4,p7);
  Line l89(p8,p9);
  Line l86(p8,p6);
  Line l68(p6,p8);
  Segment l89_res(p1,p9_);

  
  b &= test_aux(is_kernel_exact,t,l14,"t-l14",s12);
  b &= test_aux(is_kernel_exact,t,l41,"t-l41",s21);
  b &= test_aux(is_kernel_exact,t,l24,"t-l24",s21);
  b &= test_aux(is_kernel_exact,t,l42,"t-l42",s12);
  b &= test_aux(is_kernel_exact,t,l15,"t-l15",s15);
  b &= test_aux(is_kernel_exact,t,l25,"t-l25",s23);
  b &= test_aux(is_kernel_exact,t,l34,"t-l34",s34);
  b &= test_aux(is_kernel_exact,t,l35,"t-l35",s32);
  b &= test_aux(is_kernel_exact,t,l36,"t-l36",s31);
  b &= test_aux(is_kernel_exact,t,l45,"t-l45",s45);
  b &= test_aux(is_kernel_exact,t,l16,"t-l16",s13);
  b &= test_aux(is_kernel_exact,t,l26,"t-l26",s26);
  b &= test_aux(is_kernel_exact,t,l62,"t-l62",s62);
  b &= test_aux(is_kernel_exact,t,l46,"t-l46",s46);
  b &= test_aux(is_kernel_exact,t,l48,"t-l48",s46);
  b &= test_aux(is_kernel_exact,t,l56,"t-l56",s56);
  b &= test_aux(is_kernel_exact,t,l47,"t-l47",s45);
  b &= test_aux(is_kernel_exact,t,l89,"t-t89",l89_res);
  b &= test_aux(is_kernel_exact,t,l68,"t-l68",s64);
  b &= test_aux(is_kernel_exact,t,l86,"t-l86",s46);

  
  // Outside points (in triangle plane)
  Line lAB(pA,pB);
  Line lBC(pB,pC);
  Line l2E(p2,pE);
  Line lE2(pE,p2);
  Line l2A(p2,pA);
  Line l6E(p6,pE);
  Line lB8(pB,p8);
  Line lC8(pC,p8);
  Line l8C(p8,pC);
  Line l1F(p1,pF);
  Line lF6(pF,p6);
  
  b &= test_aux(is_kernel_exact,t,lAB,"t-lAB",p2);
  b &= test_aux(is_kernel_exact,t,lBC,"t-lBC",s46);
  b &= test_aux(is_kernel_exact,t,l2E,"t-l2E",s26);
  b &= test_aux(is_kernel_exact,t,lE2,"t-lE2",s62);
  b &= test_aux(is_kernel_exact,t,l2A,"t-l2A",p2);
  b &= test_aux(is_kernel_exact,t,l6E,"t-l6E",s26);
  b &= test_aux(is_kernel_exact,t,lB8,"t-lB8",s46);
  b &= test_aux(is_kernel_exact,t,lC8,"t-lC8",s64);
  b &= test_aux(is_kernel_exact,t,l8C,"t-l8C",s46);
  b &= test_aux(is_kernel_exact,t,l1F,"t-l1F",s13);
  b &= test_aux(is_kernel_exact,t,lF6,"t-lF6",s31);
  
  // Outside triangle plane
  Line lab(pa,pb);
  Line lac(pa,pc);
  Line lae(pa,pe);
  Line la8(pa,p8);
  Line lb2(pb,p2);
  
  b &= test_aux(is_kernel_exact,t,lab,"t-lab",p1);
  b &= test_aux(is_kernel_exact,t,lac,"t-lac",p6);
  b &= test_aux(is_kernel_exact,t,lae,"t-lae",p8);
  b &= test_aux(is_kernel_exact,t,la8,"t-la8",p8);
  b &= test_aux(is_kernel_exact,t,lb2,"t-lb2",p2);
  
  
	return b;
}
int testExpr2(int errors) {

  std::string expr2 = op_OR + "(" + op_AND + "(1,2)," + op_AND + "(3,4))";
  BLAccessPolicy pol2(expr2, 4);

  ShareTuple s11(1,0,"1:1");
  ShareTuple s12(2,0,"1:2");
  ShareTuple s13(3,0,"1:3");
  ShareTuple s22(2,0,"2:2");
  ShareTuple s23(3,0,"2:3");
  ShareTuple s24(4,0,"2:4");
  

  vector<ShareTuple> ex2TestA1;
  vector<ShareTuple> ex2TestA2;
  vector<ShareTuple> ex2TestA1A2;
  vector<ShareTuple> ex2TestB3B4;
  vector<ShareTuple> ex2TestB2B3B4;
  vector<ShareTuple> ex2TestA1B4A2;
  vector<ShareTuple> ex2TestA1B2B3B4;
  vector<ShareTuple> ex2TestA1A3B4B2;

  vector<ShareTuple> ex2WitnessA1;
  vector<ShareTuple> ex2WitnessA2;
  vector<ShareTuple> ex2WitnessA1A2;
  vector<ShareTuple> ex2WitnessB3B4;
  vector<ShareTuple> ex2WitnessB2B3B4;
  vector<ShareTuple> ex2WitnessA1B4A2;
  vector<ShareTuple> ex2WitnessA1B2B3B4;
  vector<ShareTuple> ex2WitnessA1A3B4B2;

  ex2TestA1.push_back(s11);
  ex2TestA2.push_back(s12);
  ex2TestA1A2.push_back(s11);
  ex2TestA1A2.push_back(s12);
  ex2TestB3B4.push_back(s23);
  ex2TestB3B4.push_back(s24);
  ex2TestB2B3B4.push_back(s22);
  ex2TestB2B3B4.push_back(s23);
  ex2TestB2B3B4.push_back(s24);
  ex2TestA1B4A2.push_back(s11);
  ex2TestA1B4A2.push_back(s24);
  ex2TestA1B4A2.push_back(s12);
  ex2TestA1B2B3B4.push_back(s11);
  ex2TestA1B2B3B4.push_back(s22);
  ex2TestA1B2B3B4.push_back(s23);
  ex2TestA1B2B3B4.push_back(s24);
  ex2TestA1A3B4B2.push_back(s11);
  ex2TestA1A3B4B2.push_back(s13);
  ex2TestA1A3B4B2.push_back(s24);
  ex2TestA1A3B4B2.push_back(s22);

  ex2WitnessA1A2.push_back(s11);
  ex2WitnessA1A2.push_back(s12);
  ex2WitnessB3B4.push_back(s23);
  ex2WitnessB3B4.push_back(s24);
  ex2WitnessB2B3B4.push_back(s23);
  ex2WitnessB2B3B4.push_back(s24);
  ex2WitnessA1B4A2.push_back(s11);
  ex2WitnessA1B4A2.push_back(s12);
  ex2WitnessA1B2B3B4.push_back(s23);
  ex2WitnessA1B2B3B4.push_back(s24);


  vector<vector<ShareTuple> > ex2TestRun;
  vector<vector<ShareTuple> > ex2WitnessRun;

  ex2TestRun.push_back(ex2TestA1);
  ex2TestRun.push_back(ex2TestA2);
  ex2TestRun.push_back(ex2TestA1A2);
  ex2TestRun.push_back(ex2TestB3B4);
  ex2TestRun.push_back(ex2TestB2B3B4);
  ex2TestRun.push_back(ex2TestA1B4A2);
  ex2TestRun.push_back(ex2TestA1B2B3B4);
  ex2TestRun.push_back(ex2TestA1A3B4B2);

  ex2WitnessRun.push_back(ex2WitnessA1);
  ex2WitnessRun.push_back(ex2WitnessA2);
  ex2WitnessRun.push_back(ex2WitnessA1A2);
  ex2WitnessRun.push_back(ex2WitnessB3B4);
  ex2WitnessRun.push_back(ex2WitnessB2B3B4);
  ex2WitnessRun.push_back(ex2WitnessA1B4A2);
  ex2WitnessRun.push_back(ex2WitnessA1B2B3B4);
  ex2WitnessRun.push_back(ex2WitnessA1A3B4B2);

  errors = testVectors(errors, ex2TestRun, ex2WitnessRun, pol2, expr2);

  return errors;
}
int testExpr3(int errors) {

  std::string expr3 = op_OR + "(" + op_AND + "(3,4,5)," + op_AND + "(1,2)," + op_AND + "(4,1,6,5))";
  BLAccessPolicy pol3(expr3, 6);

  ShareTuple s11(1,0,"1:1");
  ShareTuple s12(2,0,"1:2");
  ShareTuple s13(3,0,"1:3");
  ShareTuple s14(4,0,"1:4");
  ShareTuple s15(5,0,"1:5");
  ShareTuple s21(1,0,"2:1");
  ShareTuple s22(2,0,"2:2");
  ShareTuple s23(3,0,"2:3");
  ShareTuple s31(1,0,"3:1");
  ShareTuple s32(2,0,"3:2");
  ShareTuple s33(3,0,"3:3");
  ShareTuple s34(4,0,"3:4");
  ShareTuple s35(5,0,"3:5");
  ShareTuple s36(6,0,"3:6");
  

  vector<ShareTuple> ex3TestA3A4A5;
  vector<ShareTuple> ex3TestB1B2;
  vector<ShareTuple> ex3TestC1C2C3C4C5C6;
  vector<ShareTuple> ex3TestA4C6C5B1;
  vector<ShareTuple> ex3TestA1A2B3B1C4B2;

  vector<ShareTuple> ex3WitnessA3A4A5;
  vector<ShareTuple> ex3WitnessB1B2;
  vector<ShareTuple> ex3WitnessC1C2C3C4C5C6;
  vector<ShareTuple> ex3WitnessA4C6C5B1;
  vector<ShareTuple> ex3WitnessA1A2B3B1C4B2;


  ex3TestA3A4A5.push_back(s13);
  ex3TestA3A4A5.push_back(s14);
  ex3TestA3A4A5.push_back(s15);

  ex3TestB1B2.push_back(s21);
  ex3TestB1B2.push_back(s22);

  ex3TestC1C2C3C4C5C6.push_back(s31);
  ex3TestC1C2C3C4C5C6.push_back(s32);
  ex3TestC1C2C3C4C5C6.push_back(s33);
  ex3TestC1C2C3C4C5C6.push_back(s34);
  ex3TestC1C2C3C4C5C6.push_back(s35);
  ex3TestC1C2C3C4C5C6.push_back(s36);

  ex3TestA4C6C5B1.push_back(s14);
  ex3TestA4C6C5B1.push_back(s36);
  ex3TestA4C6C5B1.push_back(s35);
  ex3TestA4C6C5B1.push_back(s21);

  ex3TestA1A2B3B1C4B2.push_back(s11);
  ex3TestA1A2B3B1C4B2.push_back(s12);
  ex3TestA1A2B3B1C4B2.push_back(s23);
  ex3TestA1A2B3B1C4B2.push_back(s21);
  ex3TestA1A2B3B1C4B2.push_back(s34);
  ex3TestA1A2B3B1C4B2.push_back(s22);


  ex3WitnessA3A4A5.push_back(s13);
  ex3WitnessA3A4A5.push_back(s14);
  ex3WitnessA3A4A5.push_back(s15);

  ex3WitnessB1B2.push_back(s21);
  ex3WitnessB1B2.push_back(s22);

  ex3WitnessC1C2C3C4C5C6.push_back(s34);
  ex3WitnessC1C2C3C4C5C6.push_back(s31);
  ex3WitnessC1C2C3C4C5C6.push_back(s36);
  ex3WitnessC1C2C3C4C5C6.push_back(s35);

  ex3WitnessA1A2B3B1C4B2.push_back(s21);
  ex3WitnessA1A2B3B1C4B2.push_back(s22);

  vector<vector<ShareTuple> > ex3TestRun;
  vector<vector<ShareTuple> > ex3WitnessRun;

  ex3TestRun.push_back(ex3TestA3A4A5);
  ex3TestRun.push_back(ex3TestB1B2);
  ex3TestRun.push_back(ex3TestC1C2C3C4C5C6);
  ex3TestRun.push_back(ex3TestA4C6C5B1);
  ex3TestRun.push_back(ex3TestA1A2B3B1C4B2);

  ex3WitnessRun.push_back(ex3WitnessA3A4A5);
  ex3WitnessRun.push_back(ex3WitnessB1B2);
  ex3WitnessRun.push_back(ex3WitnessC1C2C3C4C5C6);
  ex3WitnessRun.push_back(ex3WitnessA4C6C5B1);
  ex3WitnessRun.push_back(ex3WitnessA1A2B3B1C4B2);

  errors = testVectors(errors, ex3TestRun, ex3WitnessRun, pol3, expr3);

  return errors;
}
Beispiel #5
0
int main()
{
  try
    {
  
      symbol k("k"),q("q"),p("p"),p1("p1"),p2("p2"),p3("p3"),ms("ms"),l("l"),s("s"),m1s("m1s"),m2s("m2s"),m3s("m3s");
      symbol l1("l1"),l2("l2"),l3("l3"),l4("l4"),t("t"),p4("p4"),p5("p5"),tp("tp"),v1("v1"),v2("v2"),l5("l5");
      symbol k1("k1"),k2("k2"),k3("k3"),k4("k4"),k5("k5"),ms1("ms1"),ms2("ms2"),ms3("ms3"),ms4("ms4");
      symbol s12("s12"),s23("s23"),s34("s34"),s45("s45"),s51("s51"),s13("s13"),s15("s15");

      lst inv_l =  lst(
                       p1*p1 == 0, 
                       p2*p2 == 0, 
                       p3*p3 == 0, 
                       p4*p4 == 0, 
                       p5*p5 == 0, 

                       p1*p2 == s12/2,
                       p1*p3 ==  (-s12-s23+s45)/2,
                       p1*p4 == (-s15+s23-s45)/2,
                       p1*p5 == s15/2,
                       p2* p3 ==s23/2,
                       p2* p4 ==(s15-s23-s34)/2,
                       p2* p5 ==(-s12-s15+s34)/2,
                       p3*p4 == s34/2,
                       p3*p5 == (s12-s34-s45)/2,
                       p4*p5 == s45/2);
#define topo 2
#if topo==1      

  /*                            1+eps normalization
   FRESULT for parameters: {s12==-2,s23==-3,s34==-4,s45==-5,s15==-6,ms==1}
   
    FRESULT anl :           = -0.010071141398715986043
     FRESULT num:           = -0.010071141398715986043
      eps^0 term: -0.010071141398715986043 +/- 7.5387750593540493467E-5
      */
      /*   Euler renormalization
       FRESULT for parameters: {s12==-2,s23==-3,s34==-4,s45==-5,s15==-6,ms==1}
       
        FRESULT anl :           = 0.020204464861409441711
         FRESULT num:           = 0.020204464861409441711
          eps^0 term: 0.020204464861409441711 +/- 2.9955911201888832611E-4
          */
      RoMB_loop_by_loop pent(lst(k1),lst(-pow(p1 + k1,2)+ms,-pow(p1 + p2 + k1,2)+ms,
                                         -pow(p1 + p2 + p3 + k1,2)+ms,-pow(p1 + p2 + p3 + p4 + k1,2)+ms,
                                         -pow(k1,2)+ms),
                             inv_l,
                             lst(1,1,1,1,1),false);
      pent.integrate_map(lst(s12==-2,s23==-3,s34==-4,s45==-5,s15==-6,ms==1));
#elif topo==2      
// M=0 with factor tgamma(1-eps)^2/tgamma(1-2eps)
/*      PJfry
*	1/eps^-2 :(-0.111111,0)
*	1/eps^-1 :(0.0856421,0)
*	1/eps^0 :(0.0513422,0)  -3.28987

*/
      RoMB_loop_by_loop pent(lst(k2,k1),lst(-pow(k1,2),-pow(k1 - k2 ,2),
                                         -pow(k1+p1 + p2,2),-pow(k1 - p4 - p5,2),
                                         -pow(k1-p5,2),-pow(k2,2),-pow(k2+p1,2),-pow(k2+p1+p2,2)),
                             inv_l,
                             lst(1,1,1,1,1,1,1,1),true);
      pent.integrate_map(lst(s12==-2,s23==-4,s34==-5,s45==-6,s15==-0.5,ms==1),0);
      
      
      
      
      /*
        FRESULT for parameters: {s12==-2,s23==-4,s34==-5,s45==-6,s15==-0.5,ms==1}
        
         FRESULT anl :           = 400.22174334151294225-(0.24583333333333333332)*log(4)^2*log(5)*log(2)-(3.3881317890172013563E-21)*Euler*log(5)^2+(7.284483346386982916E-20)*Euler*log(5)*log(6)*log(2)-(0.11210570324758033243)*log(4)*log(6)-(2.1006417091906648409E-19)*Euler*log(5)*log(6)-(8.470329472543003391E-21)*Euler+(1.4484263398048535798E-19)*Euler*log(5)^2*log(2)+(0.34079736377530644382)*log(4)*log(6)*log(2)-(0.17039868188765322194)*log(4)^2*log(2)+eps^(-2)*(-1.3333035413347974529-(0.12916666666666666666)*log(4)*log(6)+(1.9274705288631189937E-20)*Euler+(3.3730734255104582391E-20)*Euler*log(6)+(0.121354166666666666677)*Pi^2+(0.014440566261665527283)*log(4)+(0.054166666666666666667)*log(5)*log(6)+(3.08395284618099039E-19)*Euler^2+(0.24693368307448051649)*log(5)-(1.2046690805394493711E-20)*Euler*log(4)-(0.045833333333333333334)*log(4)*log(5)+(0.16666666666666666667)*log(2)^2-(0.0086643397569993163535)*log(6)-(0.025)*log(6)*log(2)-(1.9274705288631189937E-20)*Euler*log(5)+(0.0625)*log(6)^2-(0.27725887222397812377)*log(2)-(0.4)*log(5)*log(2)+(0.07708333333333333334)*log(4)^2+(0.178125)*log(5)^2+(0.029166666666666666667)*log(4)*log(2)+(7.709882115452475975E-20)*Euler*log(2))+(2.2022856628611808816E-20)*Euler*log(4)^3-(4.336808689942017736E-19)*Euler^2*log(2)-(0.066426604803661425496)*log(4)*log(5)^2+(0.014236111111111111113)*log(4)^4+(2.710505431213761085E-20)*Euler*log(6)-(1.1011428314305904408E-19)*Euler*log(6)*Pi^2-(0.25763888888888888888)*log(5)^3*log(2)+(0.09861111111111111112)*log(5)*log(6)^3+(0.07797905781299384727)*log(6)*log(2)^2+(2.168404344971008868E-19)*Euler*log(4)*log(5)-(3.3881317890172013563E-20)*Euler*log(4)^2+(0.058333333333333333313)*log(4)*log(5)^2*log(2)+(1.4696021634862110883E-19)*Euler*log(6)*log(2)-(1.2493735972000930001E-20)*Euler*log(5)^3-(0.32346868426130781108)*log(4)*log(5)*log(6)+(1.8223154162344101082-(1.9274705288631189937E-20)*Euler*log(5)^2-(0.17906302164465253826)*log(4)*log(6)-(3.252606517456513302E-20)*Euler+(0.275)*log(4)*log(6)*log(2)-(0.14166666666666666667)*log(4)^2*log(2)-(4.9030031577955589404E-19)*Euler^2*log(2)-(0.029166666666666666667)*log(4)*log(5)^2-(4.336808689942017736E-20)*Euler*log(6)+(0.03125)*log(6)*log(2)^2-(2.4093381610788987422E-20)*Euler*log(4)*log(5)+(2.379221434065412508E-20)*Euler*log(6)*log(2)-(0.25833333333333333333)*log(4)*log(5)*log(6)+(0.17641558449668052497)*Pi^2+(0.12916666666666666666)*log(5)*log(6)^2+(0.018016988021932553424)*log(4)-(0.35625)*log(5)^2*log(2)+(0.04043358553266347639)*log(5)*log(6)+(3.8549410577262379875E-20)*Euler*log(4)*log(6)+(3.2766998990673022894E-19)*Euler^2-(0.64791666666666666673)*zeta(3)-(0.11319444444444444446)*log(2)^3+(0.18467412722480867264)*log(5)+(0.09756944444444444444)*log(6)*Pi^2+(4.8186763221577974843E-21)*Euler*log(4)-(0.040433585532663476392)*log(4)*log(5)+(0.27725887222397812372)*log(2)^2-(0.018016988021932553429)*log(6)+(1.541976423090495195E-19)*Euler^3-(0.07509094456066074186)*log(6)*log(2)+(3.1321396094025683648E-20)*Euler*log(5)-(0.2375)*log(4)*log(6)^2+(0.08953151082232626913)*log(6)^2-(2.168404344971008868E-20)*Euler*log(2)^2+(0.12083333333333333333)*log(4)^2*log(5)-(0.14375)*log(6)^2*log(2)-(0.108333333333333333334)*log(5)*log(6)*log(2)-(0.17116138620835925754)*log(2)+(2.0238440553062749435E-19)*Euler^2*log(5)-(0.025)*log(4)*log(2)^2-(0.22395833333333333336)*log(2)*Pi^2+(0.23229166666666666667)*log(5)*Pi^2+(0.029166666666666666667)*log(5)^2*log(6)-(2.4093381610788987422E-20)*Euler*log(4)*log(2)-(0.49386736614896103298)*log(5)*log(2)+(0.08541666666666666667)*log(6)^3+(0.08375528431766005821)*log(4)^2+(3.8549410577262379875E-20)*Euler*Pi^2+(0.128125)*log(5)^3+(0.108333333333333333334)*log(4)*log(5)*log(2)+(0.4)*log(5)*log(2)^2-(0.09409722222222222222)*log(4)*Pi^2+(7.709882115452475975E-20)*Euler*log(5)*log(2)+(0.26642844752772897827)*log(5)^2+(0.0750909445606607419)*log(4)*log(2)+(0.22916666666666666667)*log(4)^2*log(6)-(0.080555555555555555553)*log(4)^3+(1.1594939900192200198E-19)*Euler*log(2))*eps^(-1)-(3.1509625637859972613E-19)*Euler^2*log(5)*log(2)-(1.5246593050577406103E-20)*Euler^2*Pi^2+(0.44166666666666666666)*zeta(3)*log(6)+(0.12361655670603724154)*Pi^2+(0.062586805555555555545)*log(5)^4-(2.5410988417629010172E-20)*Euler*log(4)*log(6)^2-(0.020138888888888888871)*log(6)*log(2)^3+(0.164622455382987011)*log(5)*log(6)^2+(0.3583333333333333334)*log(5)^2*log(2)^2-(0.22152777777777777779)*log(4)*log(6)*Pi^2+(0.10729166666666666671)*log(4)^2*Pi^2-(0.031944444444444444437)*log(4)*log(5)^3+(0.0041628081498616184988)*log(4)-(9.5714723039735938315E-20)*Euler*log(4)*log(5)*log(2)+(3.9954857837891737475E-20)*Euler*log(4)^2*log(2)-(0.53574500830779106205)*log(5)^2*log(2)-(2.5199230180815435087E-19)*Euler*zeta(3)+(0.048045301391820142482)*log(5)*log(6)-(4.7433845046240818988E-20)*Euler*log(4)*log(6)-(0.06249999999999999996)*log(5)^2*log(6)*log(2)+(6.168313523040288406E-19)*Euler^2-(0.9097222222222222222)*zeta(3)*log(5)-(1.0464597017620285435)*zeta(3)-(4.539037806098981942E-19)*Euler^3*log(2)-(0.18580195256676311766)*log(2)^3-(2.710505431213761085E-20)*Euler*log(6)^3+(0.08337179655695074824)*log(5)+(0.12755833531137882431)*log(6)*Pi^2+(2.2022856628611808816E-20)*Euler*log(4)*log(5)^2-(1.3552527156068805425E-20)*Euler*log(4)+(0.012326388888888888894)*log(6)^4-(0.4125)*log(4)*zeta(3)-(0.30416666666666666667)*log(4)*log(5)*log(6)^2+(0.49166666666666666665)*log(4)*log(5)*log(6)*log(2)-(0.066666666666666666677)*log(4)*log(6)^3+(4.7433845046240818988E-20)*Euler*log(6)*log(2)^2+(0.14305555555555555555)*log(4)^3*log(2)-(0.046043413833827636543)*log(4)*log(5)-(2.168404344971008868E-19)*Euler*log(6)^2+(0.1721623299873555105)*log(2)^2-(0.0037002739109881053319)*log(6)-(2.3039296165316969223E-19)*Euler^2*log(2)^2+(1.0062751413381088028E-18)*Euler^3-(2.168404344971008868E-19)*Euler^2*log(4)*log(2)-(0.25)*log(5)*log(6)^2*log(2)+(0.20505604272398455968-(2.8912057932946784908E-20)*Euler+(0.00625)*log(4)+(0.19583333333333333331)*log(5)-(0.018750000000000000007)*log(6)-(0.16875)*log(2))*eps^(-3)-(0.030028313369887589065)*log(6)*log(2)-(0.275)*log(4)*log(6)*log(2)^2+(0.13125)*log(4)^2*log(2)^2+(4.0657581468206416275E-20)*Euler*log(5)*log(6)^2-(8.131516293641283255E-20)*Euler*log(5)-(0.2570420794576463856)*log(4)*log(6)^2-(0.47430555555555555555)*log(5)*log(2)*Pi^2+(0.2350694444444444444)*log(5)^2*Pi^2+(0.22569444444444444447)*log(2)^2*Pi^2+(0.05705379540278641918)*log(6)^2+(1.5814418841144177812E-20)*Euler*log(2)^2+(0.16173434213065390554)*log(4)^2*log(5)+(1.5585406229479126239E-19)*Euler^2*log(6)^2-(0.17328679513998632736)*log(6)^2*log(2)+(7.030373462210692814E-20)*Euler*log(4)*log(6)*log(2)-(0.086643397569993163665)*log(5)*log(6)*log(2)-(0.08580010131103669233)*log(2)+(2.2700482986415249087E-19)*Euler^2*log(5)+(0.09999999999999999998)*log(4)^2*log(6)^2-(0.07509094456066074196)*log(4)*log(2)^2-(6.7762635780344027125E-20)*Euler*log(5)*log(2)^2-(0.32876355855725183764)*log(2)*Pi^2+(8.1950437646853557805E-20)*Euler^4-(1.1858461261560204747E-20)*Euler*log(4)*Pi^2+(0.3258754453049187323)*log(5)*Pi^2+(0.06931471805599453092)*log(5)^2*log(6)+(3.642241673193491458E-20)*Euler*log(4)^2*log(6)-(1.7194768829262296883E-19)*Euler*log(4)*log(2)-(0.37135014200760985115)*log(5)*log(2)+(1.1011428314305904408E-19)*Euler*log(2)^3+(0.08375528431766005824)*log(6)^3+(1.8431436932253575378E-18)*Euler^3*log(6)+(0.056423611111111111103)*log(2)^4-(4.0826988057657276343E-19)*Euler^2*log(4)+(0.112499999999999999984)*log(6)^2*Pi^2+(0.18402777777777777775)*log(5)*log(6)*Pi^2-(0.061111111111111111102)*log(4)^3*log(6)-(0.108333333333333333294)*log(4)*log(5)*log(2)^2+(0.020833333333333333319)*log(4)*log(2)^3-(8.131516293641283255E-20)*Euler^2*log(4)^2-(6.7762635780344027125E-21)*Euler*log(4)^2*log(5)+(0.056052851623790166215)*log(4)^2-(2.6893296075324035765E-19)*Euler^2*log(5)*log(6)-(1.626303258728256651E-19)*Euler^3*log(5)+(4.2986922073155742208E-20)*Euler*Pi^2+(0.66666666666666666706)*zeta(3)*log(2)-(0.4083333333333333333)*log(4)^2*log(6)*log(2)+(0.17352747124434741951)*log(5)^3-(0.23333333333333333333)*log(4)*log(5)^2*log(6)+(0.080867171065326952724)*log(4)*log(5)*log(2)-(1.6940658945086006781E-20)*Euler*log(6)^2*log(2)-(0.13125)*log(6)^3*log(2)+(0.49675547940129413833)*log(5)*log(2)^2-(1.3552527156068805425E-20)*Euler*log(4)*log(2)^2+(0.11874999999999999999)*log(5)^2*log(6)^2+(0.140625)*eps^(-4)+(3.8963515573697815597E-20)*Euler*log(5)*Pi^2-(0.10416666666666666666)*log(4)^3*log(5)-(0.1208194043892682449)*log(4)*Pi^2-(7.284483346386982916E-20)*Euler*log(2)*Pi^2+(8.131516293641283255E-20)*Euler*log(5)*log(2)+(0.18042011616407459749)*log(5)^2+(0.40833333333333333333)*log(4)*log(6)^2*log(2)+(0.028026425811895083111)*log(4)*log(2)+(1.6940658945086006781E-19)*Euler^2*log(5)^2+(0.26570641921464570196)*log(4)^2*log(6)-(1.0164395367051604069E-20)*Euler*log(5)^2*log(6)+(1.084202172485504434E-19)*Euler^2*log(6)*log(2)+(0.31666666666666666664)*log(4)^2*log(5)*log(6)+(1.176528763736223171E-18)*Euler^3*log(4)+(3.0323779511703952139E-19)*Euler^2*log(4)*log(5)-(0.19861111111111111116)*log(6)*log(2)*Pi^2-(0.08760610198743753216)*log(4)^3+(0.19513888888888888883)*log(4)*log(2)*Pi^2-(0.17430555555555555551)*log(4)*log(5)*Pi^2+(0.11666666666666666666)*log(4)^2*log(5)^2-(1.084202172485504434E-19)*Euler^2*log(6)+(1.3044307387716225222E-19)*Euler*log(2)+(0.11249999999999999996)*log(5)*log(6)*log(2)^2-(0.26805555555555555557)*log(5)*log(2)^3+(0.13645833333333333334)*log(6)^2*log(2)^2+(0.09795428240740740744)*Pi^4+(0.033333333333333333352)*log(5)^3*log(6)
          FRESULT num:           = 415.68016240483728552+(5.9729895535000929493)*eps^(-1)+(0.24826188972445505333)*eps^(-2)+(0.37833789689847839715)*eps^(-3)+(0.140625)*eps^(-4)
           eps^-4 term: 0.140625 +/- 0
            eps^-3 term: 0.20505604272398455968-(2.8912057932946784908E-20)*Euler+(0.00625)*log(4)+(0.19583333333333333331)*log(5)-(0.018750000000000000007)*log(6)-(0.16875)*log(2) +/- 5.7595906625256782043E-11
             eps^-2 term: -1.3333035413347974529-(0.12916666666666666666)*log(4)*log(6)+(1.9274705288631189937E-20)*Euler+(3.3730734255104582391E-20)*Euler*log(6)+(0.121354166666666666677)*Pi^2+(0.014440566261665527283)*log(4)+(0.054166666666666666667)*log(5)*log(6)+(3.08395284618099039E-19)*Euler^2+(0.24693368307448051649)*log(5)-(1.2046690805394493711E-20)*Euler*log(4)-(0.045833333333333333334)*log(4)*log(5)+(0.16666666666666666667)*log(2)^2-(0.0086643397569993163535)*log(6)-(0.025)*log(6)*log(2)-(1.9274705288631189937E-20)*Euler*log(5)+(0.0625)*log(6)^2-(0.27725887222397812377)*log(2)-(0.4)*log(5)*log(2)+(0.07708333333333333334)*log(4)^2+(0.178125)*log(5)^2+(0.029166666666666666667)*log(4)*log(2)+(7.709882115452475975E-20)*Euler*log(2) +/- 2.38034674326464079E-6
              eps^-1 term: 1.8223154162344101082-(1.9274705288631189937E-20)*Euler*log(5)^2-(0.17906302164465253826)*log(4)*log(6)-(3.252606517456513302E-20)*Euler+(0.275)*log(4)*log(6)*log(2)-(0.14166666666666666667)*log(4)^2*log(2)-(4.9030031577955589404E-19)*Euler^2*log(2)-(0.029166666666666666667)*log(4)*log(5)^2-(4.336808689942017736E-20)*Euler*log(6)+(0.03125)*log(6)*log(2)^2-(2.4093381610788987422E-20)*Euler*log(4)*log(5)+(2.379221434065412508E-20)*Euler*log(6)*log(2)-(0.25833333333333333333)*log(4)*log(5)*log(6)+(0.17641558449668052497)*Pi^2+(0.12916666666666666666)*log(5)*log(6)^2+(0.018016988021932553424)*log(4)-(0.35625)*log(5)^2*log(2)+(0.04043358553266347639)*log(5)*log(6)+(3.8549410577262379875E-20)*Euler*log(4)*log(6)+(3.2766998990673022894E-19)*Euler^2-(0.64791666666666666673)*zeta(3)-(0.11319444444444444446)*log(2)^3+(0.18467412722480867264)*log(5)+(0.09756944444444444444)*log(6)*Pi^2+(4.8186763221577974843E-21)*Euler*log(4)-(0.040433585532663476392)*log(4)*log(5)+(0.27725887222397812372)*log(2)^2-(0.018016988021932553429)*log(6)+(1.541976423090495195E-19)*Euler^3-(0.07509094456066074186)*log(6)*log(2)+(3.1321396094025683648E-20)*Euler*log(5)-(0.2375)*log(4)*log(6)^2+(0.08953151082232626913)*log(6)^2-(2.168404344971008868E-20)*Euler*log(2)^2+(0.12083333333333333333)*log(4)^2*log(5)-(0.14375)*log(6)^2*log(2)-(0.108333333333333333334)*log(5)*log(6)*log(2)-(0.17116138620835925754)*log(2)+(2.0238440553062749435E-19)*Euler^2*log(5)-(0.025)*log(4)*log(2)^2-(0.22395833333333333336)*log(2)*Pi^2+(0.23229166666666666667)*log(5)*Pi^2+(0.029166666666666666667)*log(5)^2*log(6)-(2.4093381610788987422E-20)*Euler*log(4)*log(2)-(0.49386736614896103298)*log(5)*log(2)+(0.08541666666666666667)*log(6)^3+(0.08375528431766005821)*log(4)^2+(3.8549410577262379875E-20)*Euler*Pi^2+(0.128125)*log(5)^3+(0.108333333333333333334)*log(4)*log(5)*log(2)+(0.4)*log(5)*log(2)^2-(0.09409722222222222222)*log(4)*Pi^2+(7.709882115452475975E-20)*Euler*log(5)*log(2)+(0.26642844752772897827)*log(5)^2+(0.0750909445606607419)*log(4)*log(2)+(0.22916666666666666667)*log(4)^2*log(6)-(0.080555555555555555553)*log(4)^3+(1.1594939900192200198E-19)*Euler*log(2) +/- 4.3702165714070080051E-4
               eps^0 term: 400.22174334151294225-(0.24583333333333333332)*log(4)^2*log(5)*log(2)-(3.3881317890172013563E-21)*Euler*log(5)^2+(7.284483346386982916E-20)*Euler*log(5)*log(6)*log(2)-(0.11210570324758033243)*log(4)*log(6)-(2.1006417091906648409E-19)*Euler*log(5)*log(6)-(8.470329472543003391E-21)*Euler+(1.4484263398048535798E-19)*Euler*log(5)^2*log(2)+(0.34079736377530644382)*log(4)*log(6)*log(2)-(0.17039868188765322194)*log(4)^2*log(2)+(2.2022856628611808816E-20)*Euler*log(4)^3-(4.336808689942017736E-19)*Euler^2*log(2)-(0.066426604803661425496)*log(4)*log(5)^2+(0.014236111111111111113)*log(4)^4+(2.710505431213761085E-20)*Euler*log(6)-(1.1011428314305904408E-19)*Euler*log(6)*Pi^2-(0.25763888888888888888)*log(5)^3*log(2)+(0.09861111111111111112)*log(5)*log(6)^3+(0.07797905781299384727)*log(6)*log(2)^2+(2.168404344971008868E-19)*Euler*log(4)*log(5)-(3.3881317890172013563E-20)*Euler*log(4)^2+(0.058333333333333333313)*log(4)*log(5)^2*log(2)+(1.4696021634862110883E-19)*Euler*log(6)*log(2)-(1.2493735972000930001E-20)*Euler*log(5)^3-(0.32346868426130781108)*log(4)*log(5)*log(6)-(3.1509625637859972613E-19)*Euler^2*log(5)*log(2)-(1.5246593050577406103E-20)*Euler^2*Pi^2+(0.44166666666666666666)*zeta(3)*log(6)+(0.12361655670603724154)*Pi^2+(0.062586805555555555545)*log(5)^4-(2.5410988417629010172E-20)*Euler*log(4)*log(6)^2-(0.020138888888888888871)*log(6)*log(2)^3+(0.164622455382987011)*log(5)*log(6)^2+(0.3583333333333333334)*log(5)^2*log(2)^2-(0.22152777777777777779)*log(4)*log(6)*Pi^2+(0.10729166666666666671)*log(4)^2*Pi^2-(0.031944444444444444437)*log(4)*log(5)^3+(0.0041628081498616184988)*log(4)-(9.5714723039735938315E-20)*Euler*log(4)*log(5)*log(2)+(3.9954857837891737475E-20)*Euler*log(4)^2*log(2)-(0.53574500830779106205)*log(5)^2*log(2)-(2.5199230180815435087E-19)*Euler*zeta(3)+(0.048045301391820142482)*log(5)*log(6)-(4.7433845046240818988E-20)*Euler*log(4)*log(6)-(0.06249999999999999996)*log(5)^2*log(6)*log(2)+(6.168313523040288406E-19)*Euler^2-(0.9097222222222222222)*zeta(3)*log(5)-(1.0464597017620285435)*zeta(3)-(4.539037806098981942E-19)*Euler^3*log(2)-(0.18580195256676311766)*log(2)^3-(2.710505431213761085E-20)*Euler*log(6)^3+(0.08337179655695074824)*log(5)+(0.12755833531137882431)*log(6)*Pi^2+(2.2022856628611808816E-20)*Euler*log(4)*log(5)^2-(1.3552527156068805425E-20)*Euler*log(4)+(0.012326388888888888894)*log(6)^4-(0.4125)*log(4)*zeta(3)-(0.30416666666666666667)*log(4)*log(5)*log(6)^2+(0.49166666666666666665)*log(4)*log(5)*log(6)*log(2)-(0.066666666666666666677)*log(4)*log(6)^3+(4.7433845046240818988E-20)*Euler*log(6)*log(2)^2+(0.14305555555555555555)*log(4)^3*log(2)-(0.046043413833827636543)*log(4)*log(5)-(2.168404344971008868E-19)*Euler*log(6)^2+(0.1721623299873555105)*log(2)^2-(0.0037002739109881053319)*log(6)-(2.3039296165316969223E-19)*Euler^2*log(2)^2+(1.0062751413381088028E-18)*Euler^3-(2.168404344971008868E-19)*Euler^2*log(4)*log(2)-(0.25)*log(5)*log(6)^2*log(2)-(0.030028313369887589065)*log(6)*log(2)-(0.275)*log(4)*log(6)*log(2)^2+(0.13125)*log(4)^2*log(2)^2+(4.0657581468206416275E-20)*Euler*log(5)*log(6)^2-(8.131516293641283255E-20)*Euler*log(5)-(0.2570420794576463856)*log(4)*log(6)^2-(0.47430555555555555555)*log(5)*log(2)*Pi^2+(0.2350694444444444444)*log(5)^2*Pi^2+(0.22569444444444444447)*log(2)^2*Pi^2+(0.05705379540278641918)*log(6)^2+(1.5814418841144177812E-20)*Euler*log(2)^2+(0.16173434213065390554)*log(4)^2*log(5)+(1.5585406229479126239E-19)*Euler^2*log(6)^2-(0.17328679513998632736)*log(6)^2*log(2)+(7.030373462210692814E-20)*Euler*log(4)*log(6)*log(2)-(0.086643397569993163665)*log(5)*log(6)*log(2)-(0.08580010131103669233)*log(2)+(2.2700482986415249087E-19)*Euler^2*log(5)+(0.09999999999999999998)*log(4)^2*log(6)^2-(0.07509094456066074196)*log(4)*log(2)^2-(6.7762635780344027125E-20)*Euler*log(5)*log(2)^2-(0.32876355855725183764)*log(2)*Pi^2+(8.1950437646853557805E-20)*Euler^4-(1.1858461261560204747E-20)*Euler*log(4)*Pi^2+(0.3258754453049187323)*log(5)*Pi^2+(0.06931471805599453092)*log(5)^2*log(6)+(3.642241673193491458E-20)*Euler*log(4)^2*log(6)-(1.7194768829262296883E-19)*Euler*log(4)*log(2)-(0.37135014200760985115)*log(5)*log(2)+(1.1011428314305904408E-19)*Euler*log(2)^3+(0.08375528431766005824)*log(6)^3+(1.8431436932253575378E-18)*Euler^3*log(6)+(0.056423611111111111103)*log(2)^4-(4.0826988057657276343E-19)*Euler^2*log(4)+(0.112499999999999999984)*log(6)^2*Pi^2+(0.18402777777777777775)*log(5)*log(6)*Pi^2-(0.061111111111111111102)*log(4)^3*log(6)-(0.108333333333333333294)*log(4)*log(5)*log(2)^2+(0.020833333333333333319)*log(4)*log(2)^3-(8.131516293641283255E-20)*Euler^2*log(4)^2-(6.7762635780344027125E-21)*Euler*log(4)^2*log(5)+(0.056052851623790166215)*log(4)^2-(2.6893296075324035765E-19)*Euler^2*log(5)*log(6)-(1.626303258728256651E-19)*Euler^3*log(5)+(4.2986922073155742208E-20)*Euler*Pi^2+(0.66666666666666666706)*zeta(3)*log(2)-(0.4083333333333333333)*log(4)^2*log(6)*log(2)+(0.17352747124434741951)*log(5)^3-(0.23333333333333333333)*log(4)*log(5)^2*log(6)+(0.080867171065326952724)*log(4)*log(5)*log(2)-(1.6940658945086006781E-20)*Euler*log(6)^2*log(2)-(0.13125)*log(6)^3*log(2)+(0.49675547940129413833)*log(5)*log(2)^2-(1.3552527156068805425E-20)*Euler*log(4)*log(2)^2+(0.11874999999999999999)*log(5)^2*log(6)^2+(3.8963515573697815597E-20)*Euler*log(5)*Pi^2-(0.10416666666666666666)*log(4)^3*log(5)-(0.1208194043892682449)*log(4)*Pi^2-(7.284483346386982916E-20)*Euler*log(2)*Pi^2+(8.131516293641283255E-20)*Euler*log(5)*log(2)+(0.18042011616407459749)*log(5)^2+(0.40833333333333333333)*log(4)*log(6)^2*log(2)+(0.028026425811895083111)*log(4)*log(2)+(1.6940658945086006781E-19)*Euler^2*log(5)^2+(0.26570641921464570196)*log(4)^2*log(6)-(1.0164395367051604069E-20)*Euler*log(5)^2*log(6)+(1.084202172485504434E-19)*Euler^2*log(6)*log(2)+(0.31666666666666666664)*log(4)^2*log(5)*log(6)+(1.176528763736223171E-18)*Euler^3*log(4)+(3.0323779511703952139E-19)*Euler^2*log(4)*log(5)-(0.19861111111111111116)*log(6)*log(2)*Pi^2-(0.08760610198743753216)*log(4)^3+(0.19513888888888888883)*log(4)*log(2)*Pi^2-(0.17430555555555555551)*log(4)*log(5)*Pi^2+(0.11666666666666666666)*log(4)^2*log(5)^2-(1.084202172485504434E-19)*Euler^2*log(6)+(1.3044307387716225222E-19)*Euler*log(2)+(0.11249999999999999996)*log(5)*log(6)*log(2)^2-(0.26805555555555555557)*log(5)*log(2)^3+(0.13645833333333333334)*log(6)^2*log(2)^2+(0.09795428240740740744)*Pi^4+(0.033333333333333333352)*log(5)^3*log(6) +/- 0.010448924004628639662
               
      
      */
#endif      
       
    }
  catch(std::exception &p)
    {
      std::cerr<<"******************************************************************"<<endl;
      std::cerr<<"   >>>ERROR:  "<<p.what()<<endl;
      std::cerr<<"******************************************************************"<<endl;
      return 1;
    }
  return 0;
}