forceinline void rel_eq(Home home, View0 x0, SetOpType op, View1 x1, Res x2) { switch(op) { case SOT_DUNION: { EmptyView emptyset; GECODE_ES_FAIL((SuperOfInter<View0,View1,EmptyView> ::post(home, x0, x1, emptyset))); // fall through to SOT_UNION } case SOT_UNION: { GECODE_ES_FAIL( (Union<View0,View1,Res> ::post(home, x0, x1, x2))); } break; case SOT_INTER: { GECODE_ES_FAIL((Intersection<View0,View1,Res> ::post(home, x0,x1,x2))); } break; case SOT_MINUS: { ComplementView<View1> cx1(x1); GECODE_ES_FAIL( (Intersection<View0, ComplementView<View1>,Res> ::post(home,x0,cx1,x2))); } break; } }
void testing() { gSystem->Load("libRooFitCore.so"); gSystem->Load("libRooFitModels.so"); printf("\n RooComplex operations: \n"); RooComplex cx1(1.,-2); RooComplex cx2(3.,4.); Double_t d1 = 5.; printf("\n cx1 = %2i + %2ii | 1 + -2i\n",cx1.re(),cx1.im()); printf(" cx2 = %2i + %2ii | 3 + 4i\n",cx2.re(),cx2.im()); printf(" d1 = %2i | 5\n",d1); printf("cx1*cx2 = %2i + %2ii | 11 + -2i\n",(cx1*cx2).re(),(cx1*cx2).im()); printf("cx1/cx2 = %4.1f + %4.1f | -0.2 + -0.4i\n",(cx1/cx2).re(),(cx1/cx2).im()); printf("cx1+cx2 = %2i + %2ii | 4 + 2i\n",(cx1+cx2).re(),(cx1+cx2).im()); printf("cx1-cx2 = %2i + %2ii | -2 + -6i\n",(cx1-cx2).re(),(cx1-cx2).im()); printf("cx1*cx2 = %2i + %2ii | 11 + -2i\n",(cx1*cx2).re(),(cx1*cx2).im()); printf(" cx1*d1 = %2i + %2ii | 5 + -10i\n",(cx1*d1).re(),(cx1*d1).im()); printf(" cx1/d1 = %4.1f + %4.1fi | 0.33 + -0.5i\n",(cx1/d1).re(),(cx1/d1).im()); printf(" cx1.exp() = %4.1f + %4.1fi |\n",(cx1.exp()).re(),(cx1.exp()).im()); printf(" cx1.abs() = %4.1f | \n",cx1.abs()); printf(" cx1.abs2() = %4.1f | \n",cx1.abs2()); printf(" cx1.conj() = %4.1f + %4.1fi | \n",(cx1.conj()).re(),(cx1.conj()).im()); printf(" cx1.sqrt() = %4.1f + %4.1fi | \n",(cx1.sqrt()).re(),(cx1.sqrt()).im()); printf(" ComplexErrFunc(cx1) = %4.1f + %4.1fi |\n\n",(RooMath::ComplexErrFunc(cx1)).re(), (RooMath::ComplexErrFunc(cx1)).im()); printf("\n Jamie's complex operations: \n"); Complex_t cx3(1.,-2); Complex_t cx4(3.,4.); Complex_t cx5 = cxerf(cx3); cout << cx5.re() << endl; Double_t d1 = 5.; printf("\n cx3 = %2i + %2ii | 1 + -2i\n",cx3.re(),cx3.im()); printf(" cx4 = %2i + %2ii | 3 + 4i\n",cx4.re(),cx4.im()); printf(" d1 = %2i | 5\n",d1); printf("cx3*cx4 = %2i + %2ii | 11 + -2i\n",(cx3*cx4).re(),(cx3*cx4).im()); printf("cx3/cx4 = %4.1f + %4.1fi | -0.2 + -0.4i\n",(cx3/cx4).re(),(cx3/cx4).im()); printf("cx3+cx4 = %2i + %2ii | 4 + 2i\n",(cx3+cx4).re(),(cx3+cx4).im()); printf("cx3-cx4 = %2i + %2ii | -2 + -6i\n",(cx3-cx4).re(),(cx3-cx4).im()); printf("cx3*cx4 = %2i + %2ii | 11 + -2i\n",(cx3*cx4).re(),(cx3*cx4).im()); printf(" cx3*d1 = %2i + %2ii | 5 + -10i\n",(cx3*d1).re(),(cx3*d1).im()); printf(" cx3/d1 = %4.1f + %4.1fi | 0.2 + -0.4i\n",(cx3/d1).re(),(cx3/d1).im()); printf(" cx3.exp() = %4.1f + %4.1fi |\n",(cx3.exp()).re(),(cx3.exp()).im()); printf(" cx3.abs() = %4.1f | \n",cx3.abs()); printf(" cx3.abs2() = %4.1f | \n",cx3.abs2()); printf(" cx3.conj() = %4.1f + %4.1fi | \n",(cx3.conj()).re(),(cx3.conj()).im()); printf(" cx3.sqrt() = %4.1f + %4.1fi | \n",(cx3.sqrt()).re(),(cx3.sqrt()).im()); printf(" cxerf(cx3) = %4.1f + %4.1fi | \n\n", cx5.re(), cx5.im()); printf(" exp(cx3) = %4.1f + %4.1fi |\n",(exp(cx3)).re(),(exp(cx3)).im()); Complex_t cx6(2.,0.); Double_t d2 = 2.; printf(" cxerf(cx6) = %4.3e + %4.3ei, erf(d2) = %4.3e | \n", (cxerf(cx6)).re(), (cxerf(cx6)).im(), TMath::Erf(d2)); }
int main(void) { Complex cx1(1.0, 2.0); Complex cx2(3.0, 4.0); //Complex cxRes = cx1 + cx2; Complex cxRes; cxRes += cx2;; //Complex cx1; cx1 += cx2; std::cout<<"csRex1="; cxRes.display(); std::cout<<"cx1="; cx1.display(); std::cout<<std::endl; int a = 1; int b = 2; int c = 3; int d = 4; cxRes = cx1 + cx2; std::cout<<"csRes="; cxRes.display(); Complex cx4 = ++cx2; std::cout<<"cx4="; cx4.display(); std::cout<<"++cx2="; cx2.display(); Complex cx3 = cx2++; std::cout<<"cx3="; cx3.display(); std::cout<<"cx2++="; cx2.display(); int e = a + b; return 0; }
forceinline void rel_sup(Home home, View0 x0, SetOpType op, View1 x1, View2 x2) { switch(op) { case SOT_DUNION: { EmptyView emptyset; GECODE_ES_FAIL((SuperOfInter<View0,View1,EmptyView> ::post(home, x0, x1, emptyset))); // fall through to SOT_UNION } case SOT_UNION: { GECODE_ES_FAIL( (SubOfUnion<View0,View1,View2> ::post(home, x0, x1, x2))); } break; case SOT_INTER: { SetVar tmp(home); GECODE_ES_FAIL( (Rel::Subset<View2,SetView>::post(home,x2,tmp))); GECODE_ES_FAIL((Intersection<View0,View1,SetView> ::post(home, x0,x1,tmp))); } break; case SOT_MINUS: { SetVar tmp(home); GECODE_ES_FAIL( (Rel::Subset<View2,SetView>::post(home,x2,tmp))); ComplementView<View1> cx1(x1); GECODE_ES_FAIL( (Intersection<View0, ComplementView<View1>,SetView> ::post(home,x0,cx1,tmp))); } break; } }