/* * Diagram "F", SQED, unbroken SUSY, * Gauge sector. */ main() { page pg; FeynDiagram fd(pg); #define RAD 2.5 fd.line_thickness.set(0.15); fd.vertex_thickness.set(0.15); /* define the left and the right external points */ xy el(-6, 0), er(6, 0); xy arcpt1(RAD, 0); arcpt1.rotate(90); arcpt1 += xy(0,RAD); arcpt1 += xy(0, GAUGE_LIFT1); /* the LV vertex */ xy lv_coord(0, GAUGE_LIFT1); vertex_circlecross v1(fd, lv_coord); /* photon line propagators */ line_wiggle ph1(fd, el, er); ph1.width.scale(0.7); line_plain f1(fd, v1, v1); /* stretch it to be an arc */ f1.arcthru(arcpt1); pg.output(); return 0; }
void Base::execute() { a(); ph1(); c(); ph2(); e(); }
void execute(){ a(); ph1(); c(); ph2(); e(); }
/* * A tadpole with a full propagator and with 1 LV vertex */ main() { page pg; FeynDiagram fd(pg); #define RAD 2.5 fd.line_thickness.set(0.15); fd.vertex_thickness.set(0.15); /* define the left and the right external points */ xy el(-TADPOLELEG, 0), er(6, 0); /* the LV vertex */ xy arcpt1(RAD, 0); xy arcpt2(0, -RAD); /* the ordinary SQED vertex */ vertex_circlecross v1(fd, -RAD, 0); vertex v2(fd, RAD, 0); vertex fict(fd, -RAD - 0.5, 0); /* for a nicer picture */ /* photon line propagators */ line_wiggle ph1(fd, el, fict); line_plain f1(fd, v1, v1); f1.thickness.set(FULLPROPTHICK); f1.arrowon.setfalse(); // line_plain f2(fd, v2, v1); /* stretch it to be an arc */ f1.arcthru(arcpt1); // f2.arcthru(arcpt2); pg.output(); return 0; }
ListNode* partition(ListNode* head, int x) { ListNode ph1(0), *pre1 = &ph1, ph2(0), *pre2 = &ph2; while (head) { ListNode *&min = head->val < x ? pre1 : pre2; min->next = head; min = min->next; head = head->next; } pre1->next = ph2.next; pre2->next = nullptr; return ph1.next; }
/* * Diagram "B1", SQED, broken SUSY, * Gauge sector. */ main() { page pg; FeynDiagram fd(pg); #define RAD 2.5 fd.line_thickness.set(0.15); fd.vertex_thickness.set(0.15); /* define the left and the right external points */ xy el(-6, 0), er(6, 0); /* the SB vertex */ xy sb_coord(0, -RAD); vertex_box sb(fd, sb_coord); sb.fill.setfalse(); vertex_cross sb_cross(fd, sb_coord); sb.radius.scale(SB_RADIUS_SCALE); sb_cross.radius.scale(SB_RADIUS_SCALE); /* the LV vertex */ xy lv_coord(RAD, 0); lv_coord.rotate(-45); vertex_circlecross lv(fd, lv_coord); xy arcpt1(0, RAD); xy arcpt2(RAD, 0); arcpt2.rotate(-20); xy arcpt3(RAD, 0); arcpt3.rotate(-60); xy arcpt4(RAD, 0); arcpt4.rotate(-135); /* the ordinary SQED vertex */ vertex v1(fd, -RAD, 0); vertex v2(fd, RAD, 0); /* photon line propagators */ line_wiggle ph1(fd, el, v1), ph2(fd, v2, er); line_plain f1(fd, v1, v2); line_plain f2(fd, v2, lv); f2.arrowon.setfalse(); line_plain f3(fd, lv, sb); f3.arrowon.setfalse(); line_plain f4(fd, sb, v1); /* stretch it to be an arc */ f1.arcthru(arcpt1); f2.arcthru(arcpt2); f3.arcthru(arcpt3); f4.arcthru(arcpt4); pg.output(); return 0; }
dgBigVector LineTriangleIntersection (const dgBigVector& p0, const dgBigVector& p1, const dgBigVector& A, const dgBigVector& B, const dgBigVector& C) { dgHugeVector ph0 (p0); dgHugeVector ph1 (p1); dgHugeVector Ah (A); dgHugeVector Bh (B); dgHugeVector Ch (C); dgHugeVector p1p0 (ph1 - ph0); dgHugeVector Ap0 (Ah - ph0); dgHugeVector Bp0 (Bh - ph0); dgHugeVector Cp0 (Ch - ph0); dgGoogol t0 ((Bp0 * Cp0) % p1p0); //hacd::HaF64 val0 = t0.GetAproximateValue(); //if (val0 < hacd::HaF64 (0.0f)) { if (hacd::HaF64(t0) < hacd::HaF64(0.0f)) { return dgBigVector (hacd::HaF32 (0.0f), hacd::HaF32 (0.0f), hacd::HaF32 (0.0f), hacd::HaF32 (-1.0f)); } dgGoogol t1 ((Cp0 * Ap0) % p1p0); // hacd::HaF64 val1 = t1.GetAproximateValue(); // if (val1 < hacd::HaF64 (0.0f)) { if (hacd::HaF64 (t1) < hacd::HaF64 (0.0f)) { return dgBigVector (hacd::HaF32 (0.0f), hacd::HaF32 (0.0f), hacd::HaF32 (0.0f), hacd::HaF32 (-1.0f)); } dgGoogol t2 ((Ap0 * Bp0) % p1p0); //hacd::HaF64 val2 = t2.GetAproximateValue(); //if (val2 < hacd::HaF64 (0.0f)) { if (hacd::HaF64 (t2) < hacd::HaF64 (0.0f)) { return dgBigVector (hacd::HaF32 (0.0f), hacd::HaF32 (0.0f), hacd::HaF32 (0.0f), hacd::HaF32 (-1.0f)); } dgGoogol sum = t0 + t1 + t2; //hacd::HaF64 den = sum.GetAproximateValue(); #ifdef _DEBUG //dgBigVector testpoint (A.Scale (val0 / den) + B.Scale (val1 / den) + C.Scale(val2 / den)); dgBigVector testpoint (A.Scale (t0 / sum) + B.Scale (t1 / sum) + C.Scale(t2 / sum)); hacd::HaF64 volume = ((B - A) * (C - A)) % (testpoint - A); HACD_ASSERT (fabs (volume) < hacd::HaF64 (1.0e-12f)); #endif // return dgBigVector (val0 / den, val1 / den, val2 / den, hacd::HaF32 (0.0f)); return dgBigVector (t0 / sum, t1 / sum, t2 / sum, hacd::HaF32 (0.0f)); }
dgBigVector LineTriangleIntersection (const dgBigVector& p0, const dgBigVector& p1, const dgBigVector& A, const dgBigVector& B, const dgBigVector& C) { dgHugeVector ph0 (p0); dgHugeVector ph1 (p1); dgHugeVector Ah (A); dgHugeVector Bh (B); dgHugeVector Ch (C); dgHugeVector p1p0 (ph1 - ph0); dgHugeVector Ap0 (Ah - ph0); dgHugeVector Bp0 (Bh - ph0); dgHugeVector Cp0 (Ch - ph0); dgGoogol t0 ((Bp0 * Cp0) % p1p0); dgFloat64 val0 = t0.GetAproximateValue(); if (val0 < dgFloat64 (0.0f)) { return dgBigVector (dgFloat32 (0.0f), dgFloat32 (0.0f), dgFloat32 (0.0f), dgFloat32 (-1.0f)); } dgGoogol t1 ((Cp0 * Ap0) % p1p0); dgFloat64 val1 = t1.GetAproximateValue(); if (val1 < dgFloat64 (0.0f)) { return dgBigVector (dgFloat32 (0.0f), dgFloat32 (0.0f), dgFloat32 (0.0f), dgFloat32 (-1.0f)); } dgGoogol t2 ((Ap0 * Bp0) % p1p0); dgFloat64 val2 = t2.GetAproximateValue(); if (val2 < dgFloat64 (0.0f)) { return dgBigVector (dgFloat32 (0.0f), dgFloat32 (0.0f), dgFloat32 (0.0f), dgFloat32 (-1.0f)); } dgGoogol sum = t0 + t1 + t2; dgFloat64 den = sum.GetAproximateValue(); #ifdef _DEBUG dgBigVector testpoint (A.Scale (val0 / den) + B.Scale (val1 / den) + C.Scale(val2 / den)); dgFloat64 volume = ((B - A) * (C - A)) % (testpoint - A); _ASSERTE (fabs (volume) < dgFloat64 (1.0e-12f)); #endif return dgBigVector (val0 / den, val1 / den, val2 / den, dgFloat32 (0.0f)); }
dgBigVector LineTriangleIntersection (const dgBigVector& p0, const dgBigVector& p1, const dgBigVector& A, const dgBigVector& B, const dgBigVector& C) { dgHugeVector ph0 (p0); dgHugeVector ph1 (p1); dgHugeVector Ah (A); dgHugeVector Bh (B); dgHugeVector Ch (C); dgHugeVector p1p0 (ph1 - ph0); dgHugeVector Ap0 (Ah - ph0); dgHugeVector Bp0 (Bh - ph0); dgHugeVector Cp0 (Ch - ph0); dgGoogol t0 ((Bp0 * Cp0) % p1p0); double val0 = t0.GetAproximateValue(); if (val0 < double (0.0f)) { return dgBigVector (float (0.0f), float (0.0f), float (0.0f), float (-1.0f)); } dgGoogol t1 ((Cp0 * Ap0) % p1p0); double val1 = t1.GetAproximateValue(); if (val1 < double (0.0f)) { return dgBigVector (float (0.0f), float (0.0f), float (0.0f), float (-1.0f)); } dgGoogol t2 ((Ap0 * Bp0) % p1p0); double val2 = t2.GetAproximateValue(); if (val2 < double (0.0f)) { return dgBigVector (float (0.0f), float (0.0f), float (0.0f), float (-1.0f)); } dgGoogol sum = t0 + t1 + t2; double den = sum.GetAproximateValue(); return dgBigVector (val0 / den, val1 / den, val2 / den, float (0.0f)); }