57     f1_vec[0] = pow(x_arr[0], 3) + x_arr[1] - 1;
 
   58     f1_vec[1] = pow(x_arr[1], 3) - x_arr[0] + 1;
 
   82     J1[0][0] = 3 * pow(x_arr[0], 2);
 
   85     J1[1][1] = 3 * pow(x_arr[1], 2);
 
  113     f2_vec[0] = 3 * x_arr[0] - cos(x_arr[1] * x_arr[2]) - 0.5;
 
  114     f2_vec[1] = pow(x_arr[0], 2) - 81 * pow((x_arr[1] + 0.1), 2)
 
  115                 + sin(x_arr[2]) + 1.06;
 
  116     f2_vec[2] = exp(-x_arr[0] * x_arr[1]) + 20 * x_arr[2]
 
  117                 + (10 * 
M_PI - 3) / 3;
 
  142     J2[0][1] = x_arr[2] * sin(x_arr[1] * x_arr[2]);
 
  143     J2[0][2] = x_arr[1] * sin(x_arr[1] * x_arr[2]);
 
  144     J2[1][0] = 2 * x_arr[0];
 
  145     J2[1][1] = -162 * x_arr[1] - 16.2;
 
  146     J2[1][2] = cos(x_arr[2]);
 
  147     J2[2][0] = -x_arr[1] * exp(-x_arr[0] * x_arr[1]);
 
  148     J2[2][1] = -x_arr[0] * exp(-x_arr[0] * x_arr[1]);
 
  178     f3_vec[0] = exp(-x_arr[0] * x_arr[1]) + log(x_arr[0]) - exp(-2);
 
  180         z = csqrtl(x_arr[2]);
 
  181         f3_vec[1] = exp(x_arr[0]) - creal(z) / x_arr[0] - exp(1) + 2;
 
  184         f3_vec[1] = exp(x_arr[0]) - sqrt(x_arr[2]) / x_arr[0] - exp(1)
 
  188     f3_vec[2] = x_arr[0] + x_arr[1] - x_arr[1] * x_arr[2] + 5;
 
  214     J3[0][0] = 1 / x_arr[0] - x_arr[1] * exp(-x_arr[0] * x_arr[1]);
 
  215     J3[0][1] = -x_arr[0] * exp(-x_arr[0] * x_arr[1]);
 
  218         z = csqrtl(x_arr[2]);
 
  219         J3[1][0] = exp(x_arr[0]) + creal(z) / pow(x_arr[0], 2);
 
  222         J3[1][0] = exp(x_arr[0]) + sqrt(x_arr[2]) / pow(x_arr[0], 2);
 
  226         z = csqrtl(x_arr[2]);
 
  227         if ((x_arr[0] == 0) || (creal(z) == 0)) {
 
  232             J3[1][2] = -1 / (2 * x_arr[0] * creal(z));
 
  237         J3[1][2] = -1 / (2 * x_arr[0] * sqrt(x_arr[2]));
 
  241     J3[2][1] = 1 - x_arr[2];
 
  242     J3[2][2] = -x_arr[1];
 
  247     puts(
"############ Test Solve Non-linear Algebra Module ############");
 
  249         "\n******************************* f1 ******************************");
 
  255     uint8_t f1_length = 2;
 
  263     iter_num = 
fsolve(f1_length, n, x0_arr1, algo, est_x1,
 
  267     printf(
"iter_num = %u\nx1 = ", iter_num);
 
  274     puts(
"\nDamped Newton");
 
  279     iter_num = 
fsolve(f1_length, n, x0_arr1, algo, est_x1,
 
  281     printf(
"iter_num = %u\nx1 = ", iter_num);
 
  289         "/\n******************************** f2 ******************************/");
 
  292     vector_t x2_arr[3] = { 0.1, 0.2, 0.3 };
 
  295     uint8_t f2_length = 3;
 
  300     iter_num = 
fsolve(f2_length, n, x0_arr2, algo, est_x2,
 
  304     printf(
"iter_num = %u\nx2 = ", iter_num);
 
  312     puts(
"\nDamped Newton");
 
  317     iter_num = 
fsolve(f2_length, n, x0_arr2, algo, est_x2,
 
  319     printf(
"iter_num = %u\nx2 = ", iter_num);
 
  327         "/\n******************************** f3 ******************************/");
 
  330     vector_t x3_arr[3] = { 1e1, 2e2, 3e3 };
 
  335     uint8_t f3_length = 3;
 
  340     iter_num = 
fsolve(f3_length, n, x0_arr3, algo, est_x3,
 
  345     printf(
"iter_num = %u\nx2 = ", iter_num);
 
  353     puts(
"\nDamped Newton");
 
  357     iter_num = 
fsolve(f3_length, n, x0_arr3, algo, est_x3,
 
  360     printf(
"iter_num = %u\nx3 = ", iter_num);