```
6
x0**2+x1**2+x2**2-1;
x0*x3+x1*x4+x2*x5;
50*x0**2-2*x0*x4+ 14*x0*x5+x1**2-14*x1*x2+ 2*x1*x3+ 49*x2**2-14*x2*x3+x3**2
+x4**2+x5**2-1;
29*x0**2-10*x0*x1-4*x0*x2-4*x0*x4+ 10*x0*x5+ 5*x1**2-20*x1*x2+ 4*x1*x3-2*x1
*x5+ 26*x2**2-10*x2*x3+ 2*x2*x4+x3**2+x4**2+x5**2-1;
9*x0**2-6*x0*x5+ 9*x2**2+ 6*x2*x3+x3**2+x4**2+x5**2-1;
9*x0**2+ 6*x0*x5+ 9*x2**2-6*x2*x3+x3**2+x4**2+x5**2-1;

TITLE : all 12 lines tangent to four given spheres

REFERENCES :

From e-mail correspondence with Cassiano Durand.
(crbd@cs.purdue.edu, http://www.cs.purdue.edu/people/crbd)

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.

ROOT COUNTS :

total degree : 64
1-homogeneous Bezout number : 64
with partition : {x0 x1 x2 x3 x4 x5 }
generalized Bezout number : 64
based on the set structure :
{x0 x1 x2 }{x0 x1 x2 }
{x0 x1 x2 }{x3 x4 x5 }
{x0 x1 x2 x3 x4 x5 }{x0 x1 x2 x3 x4 x5 }
{x0 x1 x2 x3 x4 x5 }{x0 x1 x2 x3 x4 x5 }
{x0 x2 x3 x4 x5 }{x0 x2 x3 x4 x5 }
{x0 x2 x3 x4 x5 }{x0 x2 x3 x4 x5 }
mixed volume : 64

DESRIPTION :

The problem is to compute all lines tangent to four unit spheres with
centers (0,-3,0) (0, 3,0) (0, 7,1) and (1,5,2).
In the representation of the line, two vectors are used:
t=(x0,x1,x2) is the tangent vector and m=(x3,x4,x5) is the moment vector,
m = p x t, where p is a point on the line.

For every sphere we have the equation ||m + p_0 x t||^2 = r^2.
where m is the moment vector, p_0 the center of the sphere,
t the tangent vector, and r the radius of the sphere.
This equation follows from the identity (p-p_0) x t = m - p_0 x t,
since m = p x t.
In addition we have m.t=0 and ||t||=1, yielding 6 equation in total.

There are 8 real and 16 complex solutions to this problem.
Because (t,p) and (-t,-p) represent the same line, there are 12
different tangent lines.

THE SOLUTIONS :

24 6
===========================================================================
solution 1 :
t :  1.00000000000000E+00   0.00000000000000E+00
m : 1
the solution for t :
x0 :  8.92642184747557E-02   4.69651829607627E-01
x1 : -1.01549311584344E+00  -3.69829267363464E-03
x2 :  4.38458291966391E-01  -1.04180249552939E-01
x3 :  2.95259212765589E+00  -8.35930119558953E-01
x4 : -2.92091100655319E-02   2.00813433185517E-01
x5 : -9.13692390848450E-01  -2.74471650834047E+00
== err :  4.173E-14 = rco :  2.219E-03 = res :  2.012E-15 = complex regular ==
solution 2 :
m : 1
the solution for t :
x0 : -1.25658294383773E-01   1.80753698953145E-48
x1 : -9.64924008309004E-01  -6.84227765783602E-49
x2 : -2.30503039549257E-01   2.05268329735081E-48
x3 :  2.84596539869354E-01   1.91583774419409E-47
x4 : -1.61771145391678E-01   1.09476442525376E-47
x5 :  5.22053620151308E-01  -1.09476442525376E-47
== err :  6.609E-16 = rco :  2.683E-02 = res :  1.787E-16 = real regular ==
solution 3 :         start residual :  6.026E-12
t :  1.00000000000000E+00   0.00000000000000E+00
m : 1
the solution for t :
x0 : -1.65253051196845E+01   3.13393183569544E-02
x1 :  9.76811100897020E-01   4.00585187859149E+00
x2 :  2.11763377903677E-01  -1.60323698038574E+01
x3 : -1.97880689371415E+02   4.89367939639559E+01
x4 :  2.34778772807528E+01   4.81111682131110E+01
x5 : -4.45758867919396E+01  -1.92689718264418E+02
== err :  6.411E-11 = rco :  3.056E-06 = res :  6.026E-12 = complex regular ==
solution 4 :         start residual :  2.052E-13
t :  1.00000000000000E+00   0.00000000000000E+00
m : 1
the solution for t :
x0 : -2.19959736913264E+00   2.35476379807735E+00
x1 : -1.00799570088806E+00   2.54116692825512E-03
x2 : -2.35348761328401E+00  -2.20187848504868E+00
x3 : -1.69983031082462E+01  -2.06959421546751E+01
x4 : -2.41340383805399E-02  -1.36796277245790E-01
x5 :  2.07133425730960E+01  -1.69852958994423E+01
== err :  2.373E-12 = rco :  1.693E-04 = res :  2.052E-13 = complex regular ==
solution 5 :         start residual :  1.537E-13
t :  1.00000000000000E+00   0.00000000000000E+00
m : 1
the solution for t :
x0 : -2.19959736913263E+00  -2.35476379807738E+00
x1 : -1.00799570088806E+00  -2.54116692825403E-03
x2 : -2.35348761328404E+00   2.20187848504867E+00
x3 : -1.69983031082465E+01   2.06959421546751E+01
x4 : -2.41340383805018E-02   1.36796277245814E-01
x5 :  2.07133425730961E+01   1.69852958994427E+01
== err :  1.194E-12 = rco :  1.693E-04 = res :  1.537E-13 = complex regular ==
solution 6 :         start residual :  3.264E-14
t :  1.00000000000000E+00   0.00000000000000E+00
m : 1
the solution for t :
x0 :  1.18340095781885E+00  -1.74127905087492E+00
x1 : -1.14674889575574E+00  -1.16527026378962E-01
x2 :  1.64427121071785E+00   1.17195025081551E+00
x3 :  6.53138429852970E+00   4.69169773943182E+00
x4 :  8.08022394976113E-01  -1.06273388629499E+00
x5 : -4.63833767147071E+00   6.16210484094644E+00
== err :  1.299E-13 = rco :  1.479E-03 = res :  3.264E-14 = complex regular ==
solution 7 :         start residual :  1.471E-15
t :  1.00000000000000E+00   0.00000000000000E+00
m : 1
the solution for t :
x0 : -8.92642184747546E-02   4.69651829607627E-01
x1 :  1.01549311584344E+00  -3.69829267363472E-03
x2 : -4.38458291966390E-01  -1.04180249552938E-01
x3 : -2.95259212765589E+00  -8.35930119558948E-01
x4 :  2.92091100655327E-02   2.00813433185518E-01
x5 :  9.13692390848445E-01  -2.74471650834047E+00
== err :  5.154E-15 = rco :  2.219E-03 = res :  1.471E-15 = complex regular ==
solution 8 :         start residual :  1.492E-16
t :  1.00000000000000E+00   0.00000000000000E+00
m : 1
the solution for t :
x0 :  1.72898246525701E-01  -5.73971850987445E-42
x1 :  9.83766054710418E-01   4.48415508583941E-43
x2 :  4.80681385934234E-02   7.17464813734306E-43
x3 : -7.98736479844875E-01   1.18381694266161E-41
x4 :  1.51229191630975E-01  -5.02225369614014E-42
x5 : -2.22059949041180E-01   2.86985925493723E-41
== err :  1.360E-15 = rco :  2.648E-02 = res :  1.492E-16 = real regular ==
solution 9 :         start residual :  2.254E-14
t :  1.00000000000000E+00   0.00000000000000E+00
m : 1
the solution for t :
x0 : -1.18340095781884E+00  -1.74127905087492E+00
x1 :  1.14674889575574E+00  -1.16527026378961E-01
x2 : -1.64427121071785E+00   1.17195025081550E+00
x3 : -6.53138429852970E+00   4.69169773943180E+00
x4 : -8.08022394976108E-01  -1.06273388629499E+00
x5 :  4.63833767147069E+00   6.16210484094645E+00
== err :  2.999E-14 = rco :  1.479E-03 = res :  2.254E-14 = complex regular ==
solution 10 :         start residual :  2.758E-16
t :  1.00000000000000E+00   0.00000000000000E+00
m : 1
the solution for t :
x0 :  8.41401015983118E-02  -7.00649232162409E-45
x1 : -9.63487443247169E-01  -1.57646077236542E-45
x2 : -2.54189673291538E-01   5.60519385729927E-45
x3 :  1.80338671576343E-01  -1.54142831075730E-44
x4 :  1.59481439997942E-01   7.00649232162409E-46
x5 : -5.44808327290400E-01  -2.52233723578467E-44
== err :  4.245E-16 = rco :  2.935E-02 = res :  2.758E-16 = real regular ==
solution 11 :         start residual :  8.754E-12
t :  1.00000000000000E+00   0.00000000000000E+00
m : 1
the solution for t :
x0 : -1.65253051196843E+01  -3.13393183565777E-02
x1 :  9.76811100896935E-01  -4.00585187859147E+00
x2 :  2.11763377904046E-01   1.60323698038572E+01
x3 : -1.97880689371426E+02  -4.89367939639470E+01
x4 :  2.34778772807514E+01  -4.81111682131141E+01
x5 : -4.45758867919307E+01   1.92689718264429E+02
== err :  4.630E-11 = rco :  3.056E-06 = res :  8.754E-12 = complex regular ==
solution 12 :         start residual :  2.246E-16
t :  1.00000000000000E+00   0.00000000000000E+00
m : 1
the solution for t :
x0 :  1.96667901539147E-02   6.52530446799852E-55
x1 :  9.78118051826614E-01   3.33564259232956E-55
x2 :  2.07119033543398E-01  -1.63132611699963E-54
x3 :  7.22395663157573E-02   0.00000000000000E+00
x4 : -1.62550594934833E-01   6.52530446799852E-55
x5 :  7.60784502291324E-01   1.04404871487976E-53
== err :  4.314E-16 = rco :  3.413E-02 = res :  2.246E-16 = real regular ==
solution 13 :         start residual :  3.443E-16
t :  1.00000000000000E+00   0.00000000000000E+00
m : 1
the solution for t :
x0 : -1.96667901539147E-02  -7.21635307529824E-55
x1 : -9.78118051826614E-01  -9.78795670199779E-55
x2 : -2.07119033543398E-01   0.00000000000000E+00
x3 : -7.22395663157573E-02  -1.04404871487976E-53
x4 :  1.62550594934833E-01   2.61012178719941E-54
x5 : -7.60784502291324E-01  -2.61012178719941E-54
== err :  2.427E-16 = rco :  3.413E-02 = res :  3.443E-16 = real regular ==
solution 14 :         start residual :  1.694E-11
t :  1.00000000000000E+00   0.00000000000000E+00
m : 1
the solution for t :
x0 :  1.65253051196846E+01   3.13393183585447E-02
x1 : -9.76811100897412E-01   4.00585187859137E+00
x2 : -2.11763377902127E-01  -1.60323698038575E+01
x3 :  1.97880689371414E+02   4.89367939640010E+01
x4 : -2.34778772807635E+01   4.81111682131072E+01
x5 :  4.45758867919835E+01  -1.92689718264418E+02
== err :  1.691E-10 = rco :  3.056E-06 = res :  1.694E-11 = complex regular ==
solution 15 :         start residual :  3.469E-16
t :  1.00000000000000E+00   0.00000000000000E+00
m : 1
the solution for t :
x0 : -8.41401015983117E-02   8.40779078594890E-45
x1 :  9.63487443247169E-01   2.97775923669024E-45
x2 :  2.54189673291539E-01  -1.12103877145985E-44
x3 : -1.80338671576342E-01   1.26116861789234E-44
x4 : -1.59481439997942E-01  -6.65616770554288E-45
x5 :  5.44808327290400E-01   4.48415508583941E-44
== err :  5.432E-16 = rco :  2.935E-02 = res :  3.469E-16 = real regular ==
solution 16 :         start residual :  1.943E-14
t :  1.00000000000000E+00   0.00000000000000E+00
m : 1
the solution for t :
x0 :  1.18340095781884E+00   1.74127905087492E+00
x1 : -1.14674889575574E+00   1.16527026378961E-01
x2 :  1.64427121071785E+00  -1.17195025081550E+00
x3 :  6.53138429852969E+00  -4.69169773943180E+00
x4 :  8.08022394976110E-01   1.06273388629499E+00
x5 : -4.63833767147070E+00  -6.16210484094643E+00
== err :  1.204E-13 = rco :  1.479E-03 = res :  1.943E-14 = complex regular ==
solution 17 :         start residual :  1.388E-16
t :  1.00000000000000E+00   0.00000000000000E+00
m : 1
the solution for t :
x0 : -1.72898246525701E-01  -2.86985925493723E-42
x1 : -9.83766054710418E-01   3.58732406867153E-43
x2 : -4.80681385934235E-02   7.17464813734306E-43
x3 :  7.98736479844875E-01   8.25084535794452E-42
x4 : -1.51229191630975E-01  -1.43492962746861E-42
x5 :  2.22059949041181E-01   1.72191555296234E-41
== err :  9.326E-16 = rco :  2.648E-02 = res :  1.388E-16 = real regular ==
solution 18 :         start residual :  2.533E-15
t :  1.00000000000000E+00   0.00000000000000E+00
m : 1
the solution for t :
x0 :  8.92642184747549E-02  -4.69651829607626E-01
x1 : -1.01549311584344E+00   3.69829267363469E-03
x2 :  4.38458291966390E-01   1.04180249552939E-01
x3 :  2.95259212765588E+00   8.35930119558949E-01
x4 : -2.92091100655326E-02  -2.00813433185517E-01
x5 : -9.13692390848447E-01   2.74471650834047E+00
== err :  8.165E-15 = rco :  2.219E-03 = res :  2.533E-15 = complex regular ==
solution 19 :         start residual :  2.764E-14
t :  1.00000000000000E+00   0.00000000000000E+00
m : 1
the solution for t :
x0 : -1.18340095781884E+00   1.74127905087493E+00
x1 :  1.14674889575574E+00   1.16527026378961E-01
x2 : -1.64427121071786E+00  -1.17195025081550E+00
x3 : -6.53138429852971E+00  -4.69169773943182E+00
x4 : -8.08022394976114E-01   1.06273388629499E+00
x5 :  4.63833767147071E+00  -6.16210484094646E+00
== err :  3.623E-14 = rco :  1.479E-03 = res :  2.764E-14 = complex regular ==
solution 20 :         start residual :  2.545E-13
t :  1.00000000000000E+00   0.00000000000000E+00
m : 1
the solution for t :
x0 :  2.19959736913259E+00   2.35476379807736E+00
x1 :  1.00799570088806E+00   2.54116692825244E-03
x2 :  2.35348761328402E+00  -2.20187848504864E+00
x3 :  1.69983031082463E+01  -2.06959421546746E+01
x4 :  2.41340383804956E-02  -1.36796277245779E-01
x5 : -2.07133425730956E+01  -1.69852958994425E+01
== err :  2.408E-12 = rco :  1.693E-04 = res :  2.545E-13 = complex regular ==
solution 21 :         start residual :  2.055E-13
t :  1.00000000000000E+00   0.00000000000000E+00
m : 1
the solution for t :
x0 :  2.19959736913267E+00  -2.35476379807737E+00
x1 :  1.00799570088806E+00  -2.54116692825391E-03
x2 :  2.35348761328403E+00   2.20187848504872E+00
x3 :  1.69983031082463E+01   2.06959421546755E+01
x4 :  2.41340383805099E-02   1.36796277245782E-01
x5 : -2.07133425730965E+01   1.69852958994424E+01
== err :  1.120E-12 = rco :  1.693E-04 = res :  2.055E-13 = complex regular ==
solution 22 :         start residual :  9.323E-12
t :  1.00000000000000E+00   0.00000000000000E+00
m : 1
the solution for t :
x0 :  1.65253051196847E+01  -3.13393183574669E-02
x1 : -9.76811100897131E-01  -4.00585187859149E+00
x2 : -2.11763377903174E-01   1.60323698038576E+01
x3 :  1.97880689371415E+02  -4.89367939639718E+01
x4 : -2.34778772807563E+01  -4.81111682131095E+01
x5 :  4.45758867919552E+01   1.92689718264418E+02
== err :  7.619E-11 = rco :  3.056E-06 = res :  9.323E-12 = complex regular ==
solution 23 :         start residual :  4.059E-16
t :  1.00000000000000E+00   0.00000000000000E+00
m : 1
the solution for t :
x0 :  1.25658294383773E-01   3.28429327576129E-47
x1 :  9.64924008309004E-01   1.91583774419409E-47
x2 :  2.30503039549257E-01  -1.97057596545677E-46
x3 : -2.84596539869355E-01  -7.00649232162409E-46
x4 :  1.61771145391678E-01  -5.20013101995538E-47
x5 : -5.22053620151309E-01   2.73691106313441E-46
== err :  1.060E-15 = rco :  2.683E-02 = res :  4.059E-16 = real regular ==
solution 24 :         start residual :  3.178E-15
t :  1.00000000000000E+00   0.00000000000000E+00
m : 1
the solution for t :
x0 : -8.92642184747550E-02  -4.69651829607627E-01
x1 :  1.01549311584344E+00   3.69829267363467E-03
x2 : -4.38458291966391E-01   1.04180249552939E-01
x3 : -2.95259212765589E+00   8.35930119558950E-01
x4 :  2.92091100655321E-02  -2.00813433185518E-01
x5 :  9.13692390848447E-01   2.74471650834047E+00
== err :  8.692E-15 = rco :  2.219E-03 = res :  3.178E-15 = complex regular ==
```