16 Eigen::Matrix<double, 6, 6>
M;
18 M <<pow(x1[0] - x2[0], 2), pow(x1[1] - x2[1], 2), pow(x1[2] - x2[2], 2), (x1[1] - x2[1])*(x1[2] - x2[2]), (x1[0] - x2[0])*(x1[2] - x2[2]), (x1[0] - x2[0])*(x1[1] - x2[1]),
19 pow(x2[0] - x3[0], 2), pow(x2[1] - x3[1], 2), pow(x2[2] - x3[2], 2), (x2[1] - x3[1])*(x2[2] - x3[2]), (x2[0] - x3[0])*(x2[2] - x3[2]), (x2[0] - x3[0])*(x2[1] - x3[1]),
20 pow(-x1[0] + x3[0], 2), pow(-x1[1] + x3[1], 2), pow(-x1[2] + x3[2], 2), (-x1[1] + x3[1])*(-x1[2] + x3[2]), (-x1[0] + x3[0])*(-x1[2] + x3[2]), (-x1[0] + x3[0])*(-x1[1] + x3[1]),
21 pow(x1[0] - x4[0], 2), pow(x1[1] - x4[1], 2), pow(x1[2] - x4[2], 2), (x1[1] - x4[1])*(x1[2] - x4[2]), (x1[0] - x4[0])*(x1[2] - x4[2]), (x1[0] - x4[0])*(x1[1] - x4[1]),
22 pow(x2[0] - x4[0], 2), pow(x2[1] - x4[1], 2), pow(x2[2] - x4[2], 2), (x2[1] - x4[1])*(x2[2] - x4[2]), (x2[0] - x4[0])*(x2[2] - x4[2]), (x2[0] - x4[0])*(x2[1] - x4[1]),
23 pow(x3[0] - x4[0], 2), pow(x3[1] - x4[1], 2), pow(x3[2] - x4[2], 2), (x3[1] - x4[1])*(x3[2] - x4[2]), (x3[0] - x4[0])*(x3[2] - x4[2]), (x3[0] - x4[0])*(x3[1] - x4[1]);
25 Eigen::Matrix<double, 6, 1>
R;
27 Eigen::Matrix<double, 6, 1>
S;
31 sm[0] = S[0]; sm[1] = S[5]; sm[2] = S[4];
32 sm[3] = S[1]; sm[4] = S[3];
void generate_Steiner_ellipse(const double *x1, const double *x2, const double *x3, const double *x4, double *sm)