6 x0**2 + x1**2 + x2**2 - 1; x0*x3 + x1*x4 + x2*x5; x3**2 + x4**2 + x5**2 - 0.25; x3**2 + x4**2 - 2*x2*x4 + x2**2 + x5**2 + 2*x1*x5 + x1**2 - 0.25; x3**2 + 1.73205080756888*x2*x3 + 0.75*x2**2 + x4**2 - x2*x4 + 0.25*x2**2 + x5**2 - 1.73205080756888*x0*x5 + x1*x5 + 0.75*x0**2 - 0.86602540378444*x0*x1 + 0.25*x1**2 - 0.25; x3**2 - 1.63299316185545*x1*x3 + 0.57735026918963*x2*x3 + 0.66666666666667*x1**2 - 0.47140452079103*x1*x2 + 0.08333333333333*x2**2 + x4**2 + 1.63299316185545*x0*x4 - x2*x4 + 0.66666666666667*x0**2 - 0.81649658092773*x0*x2 + 0.25*x2**2 + x5**2 - 0.57735026918963*x0*x5 + x1*x5 + 0.08333333333333*x0**2 - 0.28867513459481*x0*x1 + 0.25*x1**2 - 0.25; TITLE : 3 lines tangent to four given spheres, each with multiplicity 4 REFERENCES : Original formulation as polynomial system : Cassiano Durand (crbd@cs.purdue.edu, http://www.cs.purdue.edu/people/crbd). Positioning of the centers of the spheres, each with radius 0.5 at the vertices of a tetrahedron : Thorsten Theobald. (theobald@mathematik.tu-muenchen.de, http://www-m9.mathematik.tu-muenchen.de/~theobald/) Frank Sottile: "From Enumerative Geometry to Solving Systems of Polynomial Equations". In "Computations in Algebraic Geometry with Macaulay 2", edited by David Eisenbud, Daniel R. Grayson, Michael Stillman, and Bernd Sturmfels, Volume 8 of Algorithms and Computation in Mathematics, pages 101-129, Springer-Verlag, 2002. Frank Sottile and Thorsten Theobald: "Lines tangents to 2n - 2 spheres in R^n". Trans. Amer. Math. Soc., 354:4815--4829, 2002. DESCRIPTION : c1 = (0, 0, 0) c2 = (1, 0, 0); c3 = (1/2, sqrt(3)/2, 0) c4 = (1/2, sqrt(3)/6, sqrt(6)/3); Tangent vector t = (x0,x1,x2) and moment vector m = (x3,x4,x5). The first equation is ||t||=1, the second m.t = 0, the other equations are ||m + c_i x t ||^2 - r^2 = 0, where the radius r = 1/2. Some constants that are approximated : sqrt(3) = 1.73205080756888 sqrt(3)/2 = 0.86602540378444 sqrt(3)/3 = 0.57735026918963 sqrt(3)/6 = 0.28867513459481 sqrt(6)/3 = 0.81649658092773 sqrt(6)*2/3 = 1.63299316185545 sqrt(6)*sqrt(3)/9 = 0.47140452079103 1/12 = 0.08333333333333 2/3 = 0.66666666666667 Because (t,p) and (-t,-p) represent the same line, every line is represent by two solutions. THE SOLUTIONS : 24 6 =========================================================== solution 1 : t : 1.00000000000000E+00 0.00000000000000E+00 m : 1 the solution for t : x0 : -7.07106803165780E-01 3.77452918725401E-08 x1 : -4.08248430737360E-01 -1.83624917064964E-07 x2 : 5.77350143082334E-01 -8.36140714113780E-08 x3 : -2.50000000000000E-01 -1.57896818458518E-16 x4 : 4.33012701892221E-01 -9.11600174682333E-17 x5 : 9.56878363411174E-08 1.54062878745083E-07 == err : 8.381E-07 = rco : 5.423E-08 = res : 2.562E-13 == solution 2 : t : 1.00000000000000E+00 0.00000000000000E+00 m : 1 the solution for t : x0 : -7.07106870026153E-01 -7.33959350196041E-08 x1 : 4.08248222025870E-01 -2.27096836038030E-08 x2 : -5.77350208776733E-01 7.38331237214013E-08 x3 : 2.49999999999994E-01 -3.09771902891427E-16 x4 : -1.44337506884517E-01 7.38331239002477E-08 x5 : -4.08248311823044E-01 -2.61039514827208E-08 == err : 5.695E-07 = rco : 2.583E-08 = res : 9.233E-14 == solution 3 : t : 1.00000000000000E+00 0.00000000000000E+00 m : 1 the solution for t : x0 : -7.07106794356709E-01 -1.29682370414209E-07 x1 : -4.08248217029256E-01 1.11010906008961E-07 x2 : 5.77350304985648E-01 -8.03312536501087E-08 x3 : -2.50000000000001E-01 -1.74789416181029E-16 x4 : 4.33012701892220E-01 -1.00914936462574E-16 x5 : -6.07788020445124E-08 -1.39412292964849E-07 == err : 6.376E-07 = rco : 2.498E-08 = res : 1.416E-13 == solution 4 : t : 1.00000000000000E+00 0.00000000000000E+00 m : 1 the solution for t : x0 : -7.07107000502648E-01 2.25297320882032E-09 x1 : -4.08248198242010E-01 9.32236262450057E-08 x2 : 5.77350065794056E-01 6.86783756675267E-08 x3 : -2.50000000000001E-01 3.76366778947993E-16 x4 : 4.33012701892220E-01 2.17294140272526E-16 x5 : -1.64133046126442E-07 -6.89421539746136E-08 == err : 9.200E-07 = rco : 4.065E-08 = res : 3.780E-13 == solution 5 : t : 1.00000000000000E+00 0.00000000000000E+00 m : 1 the solution for t : x0 : -7.45837466296011E-09 -7.88468195374747E-08 x1 : -8.16496606195835E-01 -7.83082011722029E-08 x2 : -5.77350233455127E-01 1.10744520142767E-07 x3 : -3.09469859352378E-08 -9.59075677735555E-08 x4 : -2.88675116727565E-01 5.53722603195699E-08 x5 : 4.08248303097916E-01 3.91541007615960E-08 == err : 5.650E-07 = rco : 1.596E-08 = res : 8.837E-14 == solution 6 : t : 1.00000000000000E+00 0.00000000000000E+00 m : 1 the solution for t : x0 : -7.07106613786070E-01 -1.40554777765690E-07 x1 : 4.08248469069714E-01 -4.78230374165879E-09 x2 : -5.77350347919083E-01 1.68762143812694E-07 x3 : 2.49999999999995E-01 4.27197373015022E-16 x4 : -1.44337646026867E-01 1.68762143566051E-07 x5 : -4.08248262628794E-01 -5.96664277999609E-08 == err : 1.071E-06 = rco : 3.356E-08 = res : 3.590E-13 == solution 7 : t : 1.00000000000000E+00 0.00000000000000E+00 m : 1 the solution for t : x0 : -7.07106777721982E-01 2.01661826981310E-08 x1 : 4.08248459401046E-01 -1.48887521817275E-07 x2 : -5.77350153976196E-01 -1.29977805146137E-07 x3 : 2.50000000000000E-01 -1.61318992306101E-16 x4 : -1.44337452083983E-01 -1.29977805052999E-07 x5 : -4.08248331197955E-01 4.59540935795733E-08 == err : 9.147E-07 = rco : 4.069E-08 = res : 2.574E-13 == solution 8 : t : 1.00000000000000E+00 0.00000000000000E+00 m : 1 the solution for t : x0 : -8.32763552714868E-08 -6.75421517130010E-08 x1 : -8.16496536045323E-01 5.03908816535932E-08 x2 : -5.77350332662932E-01 -7.12634682544474E-08 x3 : 5.49694938584535E-08 6.17159738701382E-08 x4 : -2.88675166331465E-01 -3.56317340426795E-08 x5 : 4.08248268022662E-01 -2.51954407670146E-08 == err : 6.144E-07 = rco : 1.708E-08 = res : 8.564E-14 == solution 9 : t : 1.00000000000000E+00 0.00000000000000E+00 m : 1 the solution for t : x0 : -6.76958063497436E-08 -5.52686952253397E-08 x1 : 8.16496672345763E-01 -8.74590170230574E-08 x2 : 5.77350139905001E-01 1.23685728025824E-07 x3 : 1.11963770931823E-07 -1.07114982555938E-07 x4 : 2.88675069952500E-01 6.18428655357273E-08 x5 : -4.08248336172882E-01 4.37295095883214E-08 == err : 9.934E-07 = rco : 3.137E-08 = res : 1.586E-13 == solution 10 : t : 1.00000000000000E+00 0.00000000000000E+00 m : 1 the solution for t : x0 : 3.98191345771439E-08 -7.86209533295894E-08 x1 : 8.16496542944871E-01 7.46728144685411E-08 x2 : 5.77350322905497E-01 -1.05603306961978E-07 x3 : -4.65193071853643E-08 9.14551465527205E-08 x4 : 2.88675161452747E-01 -5.28016534287562E-08 x5 : -4.08248271472437E-01 -3.73364071973360E-08 == err : 6.550E-07 = rco : 1.724E-08 = res : 1.033E-13 == solution 11 : t : 1.00000000000000E+00 0.00000000000000E+00 m : 1 the solution for t : x0 : -7.07106721955267E-01 5.48805917280166E-08 x1 : -4.08248198711336E-01 -8.25155461304299E-08 x2 : 5.77350406611668E-01 8.86742103568660E-09 x3 : -2.50000000000000E-01 6.40569470093182E-16 x4 : 4.33012701892221E-01 3.69833439654812E-16 x5 : -4.31664985572901E-08 8.56506523803914E-08 == err : 5.525E-07 = rco : 2.306E-08 = res : 1.179E-13 == solution 12 : t : 1.00000000000000E+00 0.00000000000000E+00 m : 1 the solution for t : x0 : -7.07106907271332E-01 -5.90137378087707E-09 x1 : 4.08248253899557E-01 1.86592276258933E-07 x2 : -5.77350140622791E-01 1.39168341132018E-07 x3 : 2.49999999999998E-01 -1.26900013858965E-15 x4 : -1.44337438730577E-01 1.39168341864676E-07 x5 : -4.08248335919098E-01 -4.92034399066012E-08 == err : 9.849E-07 = rco : 4.011E-08 = res : 2.698E-13 == solution 13 : t : 1.00000000000000E+00 0.00000000000000E+00 m : 1 the solution for t : x0 : 7.07106907275902E-01 5.96782319981974E-09 x1 : -4.08248253845766E-01 -1.86529268655319E-07 x2 : 5.77350140655230E-01 -1.39205171613295E-07 x3 : -2.49999999999998E-01 1.29519351582755E-15 x4 : 1.44337438763016E-01 -1.39205172361075E-07 x5 : 4.08248335907630E-01 4.92164614695200E-08 == err : 9.848E-07 = rco : 4.010E-08 = res : 2.697E-13 == solution 14 : t : 1.00000000000000E+00 0.00000000000000E+00 m : 1 the solution for t : x0 : 7.07106721891121E-01 -5.46961908403215E-08 x1 : 4.08248198454219E-01 8.22199845792108E-08 x2 : -5.77350406872040E-01 -8.85057057132692E-09 x3 : 2.50000000000000E-01 -6.08396582858838E-16 x4 : -4.33012701892221E-01 -3.51258369153850E-16 x5 : 4.33315599048063E-08 -8.53491333166340E-08 == err : 5.525E-07 = rco : 2.308E-08 = res : 1.177E-13 == solution 15 : t : 1.00000000000000E+00 0.00000000000000E+00 m : 1 the solution for t : x0 : -3.96329555829235E-08 7.89311242223708E-08 x1 : -8.16496542971787E-01 -7.47240429846589E-08 x2 : -5.77350322867433E-01 1.05675755024253E-07 x3 : 4.64863425693947E-08 -9.15178884151049E-08 x4 : -2.88675161433715E-01 5.28378774567905E-08 x5 : 4.08248271485894E-01 3.73620214532009E-08 == err : 6.547E-07 = rco : 1.727E-08 = res : 1.030E-13 == solution 16 : t : 1.00000000000000E+00 0.00000000000000E+00 m : 1 the solution for t : x0 : 6.76319276665201E-08 5.53146005198789E-08 x1 : -8.16496672347423E-01 8.74541419584336E-08 x2 : -5.77350139902654E-01 -1.23678833643316E-07 x3 : -1.11965803967623E-07 1.07109011845542E-07 x4 : -2.88675069951327E-01 -6.18394183530339E-08 x5 : 4.08248336173712E-01 -4.37270720620629E-08 == err : 9.933E-07 = rco : 3.138E-08 = res : 1.584E-13 == solution 17 : t : 1.00000000000000E+00 0.00000000000000E+00 m : 1 the solution for t : x0 : 8.31847157469980E-08 6.76123701597765E-08 x1 : 8.16496536044054E-01 -5.03903815566581E-08 x2 : 5.77350332664727E-01 7.12627610105793E-08 x3 : -5.49710478312150E-08 -6.17153613789818E-08 x4 : 2.88675166332362E-01 3.56313804190287E-08 x5 : -4.08248268022028E-01 2.51951907173332E-08 == err : 6.144E-07 = rco : 1.710E-08 = res : 8.527E-14 == solution 18 : t : 1.00000000000000E+00 0.00000000000000E+00 m : 1 the solution for t : x0 : 7.07106777739115E-01 -2.01591653362143E-08 x1 : -4.08248459304272E-01 1.48979944606361E-07 x2 : 5.77350154023643E-01 1.30034563449017E-07 x3 : -2.50000000000000E-01 1.59722980477586E-16 x4 : 1.44337452131430E-01 1.30034563356801E-07 x5 : 4.08248331181180E-01 -4.59741606713041E-08 == err : 9.146E-07 = rco : 4.067E-08 = res : 2.572E-13 == solution 19 : t : 1.00000000000000E+00 0.00000000000000E+00 m : 1 the solution for t : x0 : 7.07106613769497E-01 1.40554048614980E-07 x1 : -4.08248469106515E-01 4.76605364454508E-09 x2 : 5.77350347913358E-01 -1.68772741342966E-07 x3 : -2.49999999999995E-01 -4.34818862138328E-16 x4 : 1.44337646021142E-01 -1.68772741091922E-07 x5 : 4.08248262630818E-01 5.96701745864973E-08 == err : 1.071E-06 = rco : 3.356E-08 = res : 3.589E-13 == solution 20 : t : 1.00000000000000E+00 0.00000000000000E+00 m : 1 the solution for t : x0 : 7.44665910474754E-09 7.89367269521567E-08 x1 : 8.16496606210238E-01 7.82668051686547E-08 x2 : 5.77350233434758E-01 -1.10685977353121E-07 x3 : 3.09646256720724E-08 9.58568682305135E-08 x4 : 2.88675116717381E-01 -5.53429889312276E-08 x5 : -4.08248303105118E-01 -3.91334027644044E-08 == err : 5.647E-07 = rco : 1.596E-08 = res : 8.829E-14 == solution 21 : t : 1.00000000000000E+00 0.00000000000000E+00 m : 1 the solution for t : x0 : 7.07107000675288E-01 -2.28703415682620E-09 x1 : 4.08248198057130E-01 -9.31261738870242E-08 x2 : -5.77350065713346E-01 -6.86511824157404E-08 x3 : 2.50000000000001E-01 -3.48597943633478E-16 x4 : -4.33012701892220E-01 -2.01261841550752E-16 x5 : 1.64346461558173E-07 6.88543158603294E-08 == err : 9.197E-07 = rco : 4.067E-08 = res : 3.772E-13 == solution 22 : t : 1.00000000000000E+00 0.00000000000000E+00 m : 1 the solution for t : x0 : 7.07106794394148E-01 1.29978152423003E-07 x1 : 4.08248217161770E-01 -1.11083980584439E-07 x2 : -5.77350304846094E-01 8.06418396205759E-08 x3 : 2.50000000000001E-01 1.25448976116241E-16 x4 : -4.33012701892221E-01 7.24280976767629E-17 x5 : 6.06956282162081E-08 1.39595176303544E-07 == err : 6.365E-07 = rco : 2.502E-08 = res : 1.402E-13 == solution 23 : t : 1.00000000000000E+00 0.00000000000000E+00 m : 1 the solution for t : x0 : 7.07106869901181E-01 7.34767432925269E-08 x1 : -4.08248222236349E-01 2.28514782367473E-08 x2 : 5.77350208780961E-01 -7.38318292927387E-08 x3 : -2.49999999999994E-01 3.00145404705636E-16 x4 : 1.44337506888745E-01 -7.38318294660273E-08 x5 : 4.08248311821550E-01 2.61034938252183E-08 == err : 5.696E-07 = rco : 2.584E-08 = res : 9.219E-14 == solution 24 : t : 1.00000000000000E+00 0.00000000000000E+00 m : 1 the solution for t : x0 : 7.07106803092791E-01 -3.77695901184261E-08 x1 : 4.08248430513239E-01 1.83900009240734E-07 x2 : -5.77350143330205E-01 8.37788318022830E-08 x3 : 2.50000000000000E-01 1.48462451286493E-16 x4 : -4.33012701892221E-01 8.57128501166688E-17 x5 : -9.55513508117388E-08 -1.54279719318310E-07 == err : 8.382E-07 = rco : 5.425E-08 = res : 2.559E-13 ==