GCC Code Coverage Report


Directory: ./
File: include/hpp/bezier-com-traj/waypoints/waypoints_c0_dc0_ddc0_ddc1_dc1_c1.hh
Date: 2025-03-18 04:20:50
Exec Total Coverage
Lines: 201 207 97.1%
Branches: 610 1232 49.5%

Line Branch Exec Source
1 /*
2 * Copyright 2018, LAAS-CNRS
3 * Author: Pierre Fernbach
4 */
5
6 #ifndef BEZIER_COM_TRAJ_c0_dc0_ddc0_ddc1_dc1_c1_H
7 #define BEZIER_COM_TRAJ_c0_dc0_ddc0_ddc1_dc1_c1_H
8
9 #include <hpp/bezier-com-traj/data.hh>
10
11 namespace bezier_com_traj {
12 namespace c0_dc0_ddc0_ddc1_dc1_c1 {
13
14 static const ConstraintFlag flag =
15 INIT_POS | INIT_VEL | INIT_ACC | END_ACC | END_VEL | END_POS;
16
17 /// ### EQUATION FOR CONSTRAINTS ON INIT AND FINAL POSITION AND VELOCITY AND
18 /// ACCELERATION (DEGREE = 6)
19 ///
20 /**
21 * @brief evaluateCurveAtTime compute the expression of the point on the curve
22 * at t, defined by the waypoint pi and one free waypoint (x)
23 * @param pi constant waypoints of the curve, assume p0 p1 p2 x p3 p4 p5
24 * @param t param (normalized !)
25 * @return the expression of the waypoint such that wp.first . x + wp.second =
26 * point on curve
27 */
28 80 inline coefs_t evaluateCurveAtTime(const std::vector<point_t>& pi, double t) {
29
1/2
✓ Branch 1 taken 80 times.
✗ Branch 2 not taken.
80 coefs_t wp;
30 80 double t2 = t * t;
31 80 double t3 = t2 * t;
32 80 double t4 = t3 * t;
33 80 double t5 = t4 * t;
34 80 double t6 = t5 * t;
35 // equation found with sympy
36 80 wp.first = -20.0 * t6 + 60.0 * t5 - 60.0 * t4 + 20.0 * t3;
37
9/18
✓ Branch 2 taken 80 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 80 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 80 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 80 times.
✗ Branch 13 not taken.
✓ Branch 16 taken 80 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 80 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 80 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 80 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 80 times.
✗ Branch 29 not taken.
80 wp.second = 1.0 * pi[0] * t6 - 6.0 * pi[0] * t5 + 15.0 * pi[0] * t4 -
38
9/18
✓ Branch 2 taken 80 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 80 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 80 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 80 times.
✗ Branch 13 not taken.
✓ Branch 16 taken 80 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 80 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 80 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 80 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 80 times.
✗ Branch 29 not taken.
160 20.0 * pi[0] * t3 + 15.0 * pi[0] * t2 - 6.0 * pi[0] * t +
39
8/16
✓ Branch 2 taken 80 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 80 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 80 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 80 times.
✗ Branch 13 not taken.
✓ Branch 16 taken 80 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 80 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 80 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 80 times.
✗ Branch 26 not taken.
160 1.0 * pi[0] - 6.0 * pi[1] * t6 + 30.0 * pi[1] * t5 -
40
9/18
✓ Branch 2 taken 80 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 80 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 80 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 80 times.
✗ Branch 13 not taken.
✓ Branch 16 taken 80 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 80 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 80 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 80 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 80 times.
✗ Branch 29 not taken.
160 60.0 * pi[1] * t4 + 60.0 * pi[1] * t3 - 30.0 * pi[1] * t2 +
41
9/18
✓ Branch 2 taken 80 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 80 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 80 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 80 times.
✗ Branch 13 not taken.
✓ Branch 16 taken 80 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 80 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 80 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 80 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 80 times.
✗ Branch 29 not taken.
160 6.0 * pi[1] * t + 15.0 * pi[2] * t6 - 60.0 * pi[2] * t5 +
42
9/18
✓ Branch 2 taken 80 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 80 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 80 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 80 times.
✗ Branch 13 not taken.
✓ Branch 16 taken 80 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 80 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 80 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 80 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 80 times.
✗ Branch 29 not taken.
160 90.0 * pi[2] * t4 - 60.0 * pi[2] * t3 + 15.0 * pi[2] * t2 +
43
9/18
✓ Branch 2 taken 80 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 80 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 80 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 80 times.
✗ Branch 13 not taken.
✓ Branch 16 taken 80 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 80 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 80 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 80 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 80 times.
✗ Branch 29 not taken.
160 15.0 * pi[4] * t6 - 30.0 * pi[4] * t5 + 15.0 * pi[4] * t4 -
44
9/18
✓ Branch 2 taken 80 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 80 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 80 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 80 times.
✗ Branch 13 not taken.
✓ Branch 16 taken 80 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 80 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 80 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 80 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 80 times.
✗ Branch 29 not taken.
160 6.0 * pi[5] * t6 + 6.0 * pi[5] * t5 + 1.0 * pi[6] * t6;
45 160 return wp;
46 }
47
48 272 inline coefs_t evaluateAccelerationCurveAtTime(const std::vector<point_t>& pi,
49 double T, double t) {
50
1/2
✓ Branch 1 taken 272 times.
✗ Branch 2 not taken.
272 coefs_t wp;
51 272 double alpha = 1. / (T * T);
52 272 double t2 = t * t;
53 272 double t3 = t2 * t;
54 272 double t4 = t3 * t;
55 // equation found with sympy
56 272 wp.first = 1.0 * (-600.0 * t4 + 1200.0 * t3 - 720.0 * t2 + 120.0 * t) * alpha;
57
1/2
✓ Branch 1 taken 272 times.
✗ Branch 2 not taken.
272 wp.second = 1.0 *
58
9/18
✓ Branch 2 taken 272 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 272 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 272 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 272 times.
✗ Branch 13 not taken.
✓ Branch 16 taken 272 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 272 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 272 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 272 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 272 times.
✗ Branch 29 not taken.
272 (30.0 * pi[0] * t4 - 120.0 * pi[0] * t3 + 180.0 * pi[0] * t2 -
59
8/16
✓ Branch 2 taken 272 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 272 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 272 times.
✗ Branch 10 not taken.
✓ Branch 13 taken 272 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 272 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 272 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 272 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 272 times.
✗ Branch 26 not taken.
544 120.0 * pi[0] * t + 30.0 * pi[0] - 180.0 * pi[1] * t4 +
60
9/18
✓ Branch 2 taken 272 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 272 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 272 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 272 times.
✗ Branch 13 not taken.
✓ Branch 16 taken 272 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 272 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 272 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 272 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 272 times.
✗ Branch 29 not taken.
544 600.0 * pi[1] * t3 - 720.0 * pi[1] * t2 + 360.0 * pi[1] * t -
61
8/16
✓ Branch 2 taken 272 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 272 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 272 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 272 times.
✗ Branch 13 not taken.
✓ Branch 16 taken 272 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 272 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 272 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 272 times.
✗ Branch 26 not taken.
544 60.0 * pi[1] + 450.0 * pi[2] * t4 - 1200.0 * pi[2] * t3 +
62
8/16
✓ Branch 2 taken 272 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 272 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 272 times.
✗ Branch 10 not taken.
✓ Branch 13 taken 272 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 272 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 272 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 272 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 272 times.
✗ Branch 26 not taken.
544 1080.0 * pi[2] * t2 - 360.0 * pi[2] * t + 30.0 * pi[2] +
63
9/18
✓ Branch 2 taken 272 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 272 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 272 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 272 times.
✗ Branch 13 not taken.
✓ Branch 16 taken 272 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 272 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 272 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 272 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 272 times.
✗ Branch 29 not taken.
544 450.0 * pi[4] * t4 - 600.0 * pi[4] * t3 + 180.0 * pi[4] * t2 -
64
9/18
✓ Branch 2 taken 272 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 272 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 272 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 272 times.
✗ Branch 13 not taken.
✓ Branch 16 taken 272 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 272 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 272 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 272 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 272 times.
✗ Branch 29 not taken.
816 180.0 * pi[5] * t4 + 120.0 * pi[5] * t3 + 30.0 * pi[6] * t4) *
65
1/2
✓ Branch 1 taken 272 times.
✗ Branch 2 not taken.
272 alpha;
66 544 return wp;
67 }
68
69 50 inline std::vector<point_t> computeConstantWaypoints(const ProblemData& pData,
70 double T) {
71 // equation for constraint on initial and final position and velocity and
72 // initial acceleration(degree 5, 5 constant waypoint and one free (p3))
73 // first, compute the constant waypoints that only depend on pData :
74 50 double n = 6.;
75 50 std::vector<point_t> pi;
76
1/2
✓ Branch 1 taken 50 times.
✗ Branch 2 not taken.
50 pi.push_back(pData.c0_); // p0
77
5/10
✓ Branch 1 taken 50 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 50 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 50 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 50 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 50 times.
✗ Branch 14 not taken.
50 pi.push_back((pData.dc0_ * T / n) + pData.c0_); // p1
78
6/12
✓ Branch 1 taken 50 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 50 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 50 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 50 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 50 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 50 times.
✗ Branch 17 not taken.
100 pi.push_back((pData.ddc0_ * T * T / (n * (n - 1))) +
79
4/8
✓ Branch 1 taken 50 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 50 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 50 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 50 times.
✗ Branch 11 not taken.
100 (2. * pData.dc0_ * T / n) + pData.c0_); // p2
80
3/6
✓ Branch 1 taken 50 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 50 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 50 times.
✗ Branch 8 not taken.
50 pi.push_back(point_t::Zero()); // x
81
6/12
✓ Branch 1 taken 50 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 50 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 50 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 50 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 50 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 50 times.
✗ Branch 17 not taken.
100 pi.push_back((pData.ddc1_ * T * T / (n * (n - 1))) -
82
4/8
✓ Branch 1 taken 50 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 50 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 50 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 50 times.
✗ Branch 11 not taken.
100 (2 * pData.dc1_ * T / n) + pData.c1_);
83
6/12
✓ Branch 1 taken 50 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 50 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 50 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 50 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 50 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 50 times.
✗ Branch 17 not taken.
50 pi.push_back((-pData.dc1_ * T / n) + pData.c1_); // p4
84
1/2
✓ Branch 1 taken 50 times.
✗ Branch 2 not taken.
50 pi.push_back(pData.c1_); // p5
85 100 return pi;
86 }
87
88 13 inline bezier_wp_t::t_point_t computeWwaypoints(const ProblemData& pData,
89 double T) {
90
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 bezier_wp_t::t_point_t wps;
91 13 const int DIM_POINT = 6;
92 13 const int DIM_VAR = 3;
93
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 std::vector<point_t> pi = computeConstantWaypoints(pData, T);
94 13 std::vector<Matrix3> Cpi;
95
2/2
✓ Branch 1 taken 91 times.
✓ Branch 2 taken 13 times.
104 for (std::size_t i = 0; i < pi.size(); ++i) {
96
3/6
✓ Branch 2 taken 91 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 91 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 91 times.
✗ Branch 9 not taken.
91 Cpi.push_back(skew(pi[i]));
97 }
98
1/2
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
13 const Vector3 g = pData.contacts_.front().contactPhase_->m_gravity;
99
2/4
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 13 times.
✗ Branch 5 not taken.
13 const Matrix3 Cg = skew(g);
100 13 const double T2 = T * T;
101 13 const double alpha = 1 / (T2);
102
103 // equation of waypoints for curve w found with sympy
104
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 waypoint_t w0 = initwp(DIM_POINT, DIM_VAR);
105
8/16
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 13 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 13 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 13 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 13 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 13 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 13 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 13 times.
✗ Branch 26 not taken.
13 w0.second.head<3>() = (30 * pi[0] - 60 * pi[1] + 30 * pi[2]) * alpha;
106
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 w0.second.tail<3>() =
107
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 1.0 *
108
10/20
✓ Branch 3 taken 13 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 13 times.
✗ Branch 7 not taken.
✓ Branch 11 taken 13 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 13 times.
✗ Branch 15 not taken.
✓ Branch 18 taken 13 times.
✗ Branch 19 not taken.
✓ Branch 21 taken 13 times.
✗ Branch 22 not taken.
✓ Branch 24 taken 13 times.
✗ Branch 25 not taken.
✓ Branch 27 taken 13 times.
✗ Branch 28 not taken.
✓ Branch 30 taken 13 times.
✗ Branch 31 not taken.
✓ Branch 33 taken 13 times.
✗ Branch 34 not taken.
26 (1.0 * Cg * T2 * pi[0] - 60.0 * Cpi[0] * pi[1] + 30.0 * Cpi[0] * pi[2]) *
109
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 alpha;
110
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 wps.push_back(w0);
111
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 waypoint_t w1 = initwp(DIM_POINT, DIM_VAR);
112
4/8
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 13 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 13 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 13 times.
✗ Branch 11 not taken.
13 w1.first.block<3, 3>(0, 0) = 13.3333333333333 * alpha * Matrix3::Identity();
113
4/8
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 13 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 13 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 13 times.
✗ Branch 12 not taken.
13 w1.first.block<3, 3>(3, 0) = 13.3333333333333 * Cpi[0] * alpha;
114
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 w1.second.head<3>() =
115
8/16
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 13 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 13 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 13 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 13 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 13 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 13 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 13 times.
✗ Branch 26 not taken.
26 1.0 * (16.6666666666667 * pi[0] - 20.0 * pi[1] - 10.0 * pi[2]) * alpha;
116
2/4
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 13 times.
✗ Branch 5 not taken.
26 w1.second.tail<3>() = 1.0 *
117
4/8
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 13 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 13 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 13 times.
✗ Branch 12 not taken.
13 (0.333333333333333 * Cg * T2 * pi[0] +
118
4/8
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 13 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 13 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 13 times.
✗ Branch 12 not taken.
26 0.666666666666667 * Cg * T2 * pi[1] -
119
6/12
✓ Branch 3 taken 13 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 13 times.
✗ Branch 7 not taken.
✓ Branch 11 taken 13 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 13 times.
✗ Branch 15 not taken.
✓ Branch 17 taken 13 times.
✗ Branch 18 not taken.
✓ Branch 20 taken 13 times.
✗ Branch 21 not taken.
39 30.0 * Cpi[0] * pi[2] + 20.0 * Cpi[1] * pi[2]) *
120
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 alpha;
121
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 wps.push_back(w1);
122
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 waypoint_t w2 = initwp(DIM_POINT, DIM_VAR);
123
4/8
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 13 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 13 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 13 times.
✗ Branch 11 not taken.
13 w2.first.block<3, 3>(0, 0) = 6.66666666666667 * alpha * Matrix3::Identity();
124
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 w2.first.block<3, 3>(3, 0) =
125
6/12
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 13 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 13 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 13 times.
✗ Branch 13 not taken.
✓ Branch 15 taken 13 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 13 times.
✗ Branch 19 not taken.
26 1.0 * (-13.3333333333333 * Cpi[0] + 20.0 * Cpi[1]) * alpha;
126
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 w2.second.head<3>() =
127
8/16
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 13 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 13 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 13 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 13 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 13 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 13 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 13 times.
✗ Branch 26 not taken.
26 1.0 * (8.33333333333333 * pi[0] - 20.0 * pi[2] + 5.0 * pi[4]) * alpha;
128
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 w2.second.tail<3>() =
129
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 1.0 *
130
8/16
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 13 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 13 times.
✗ Branch 9 not taken.
✓ Branch 12 taken 13 times.
✗ Branch 13 not taken.
✓ Branch 15 taken 13 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 13 times.
✗ Branch 19 not taken.
✓ Branch 21 taken 13 times.
✗ Branch 22 not taken.
✓ Branch 24 taken 13 times.
✗ Branch 25 not taken.
13 (0.0833333333333334 * Cg * T2 * pi[0] + 0.5 * Cg * T2 * pi[1] +
131
7/14
✓ Branch 3 taken 13 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 13 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 13 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 13 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 13 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 13 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 13 times.
✗ Branch 23 not taken.
26 0.416666666666667 * Cg * T2 * pi[2] + 5.0 * Cpi[0] * pi[4] -
132
3/6
✓ Branch 3 taken 13 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 13 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 13 times.
✗ Branch 10 not taken.
26 20.0 * Cpi[1] * pi[2]) *
133
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 alpha;
134
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 wps.push_back(w2);
135
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 waypoint_t w3 = initwp(DIM_POINT, DIM_VAR);
136
4/8
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 13 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 13 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 13 times.
✗ Branch 11 not taken.
13 w3.first.block<3, 3>(0, 0) = -5.71428571428572 * alpha * Matrix3::Identity();
137
2/4
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 13 times.
✗ Branch 5 not taken.
26 w3.first.block<3, 3>(3, 0) = 1.0 *
138
5/10
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 13 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 13 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 13 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 13 times.
✗ Branch 15 not taken.
13 (0.238095238095238 * Cg * T2 - 20.0 * Cpi[1] +
139
2/4
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 13 times.
✗ Branch 6 not taken.
26 14.2857142857143 * Cpi[2]) *
140
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 alpha;
141
2/4
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 13 times.
✗ Branch 5 not taken.
26 w3.second.head<3>() = 1.0 *
142
4/8
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 13 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 13 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 13 times.
✗ Branch 13 not taken.
13 (3.57142857142857 * pi[0] + 7.14285714285714 * pi[1] -
143
4/8
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 13 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 13 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 13 times.
✗ Branch 13 not taken.
26 14.2857142857143 * pi[2] + 7.85714285714286 * pi[4] +
144
2/4
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 13 times.
✗ Branch 6 not taken.
26 1.42857142857143 * pi[5]) *
145
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 alpha;
146
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 w3.second.tail<3>() =
147
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 1.0 *
148
4/8
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 13 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 13 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 13 times.
✗ Branch 12 not taken.
13 (0.0119047619047619 * Cg * T2 * pi[0] +
149
4/8
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 13 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 13 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 13 times.
✗ Branch 12 not taken.
26 0.214285714285714 * Cg * T2 * pi[1] +
150
7/14
✓ Branch 3 taken 13 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 13 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 13 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 13 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 13 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 13 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 13 times.
✗ Branch 23 not taken.
26 0.535714285714286 * Cg * T2 * pi[2] - 5.0 * Cpi[0] * pi[4] +
151
6/12
✓ Branch 3 taken 13 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 13 times.
✗ Branch 7 not taken.
✓ Branch 11 taken 13 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 13 times.
✗ Branch 15 not taken.
✓ Branch 17 taken 13 times.
✗ Branch 18 not taken.
✓ Branch 20 taken 13 times.
✗ Branch 21 not taken.
39 1.42857142857143 * Cpi[0] * pi[5] + 12.8571428571429 * Cpi[1] * pi[4]) *
152
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 alpha;
153
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 wps.push_back(w3);
154
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 waypoint_t w4 = initwp(DIM_POINT, DIM_VAR);
155
4/8
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 13 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 13 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 13 times.
✗ Branch 11 not taken.
13 w4.first.block<3, 3>(0, 0) = -14.2857142857143 * alpha * Matrix3::Identity();
156
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 w4.first.block<3, 3>(3, 0) =
157
7/14
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 13 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 13 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 13 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 13 times.
✗ Branch 15 not taken.
✓ Branch 17 taken 13 times.
✗ Branch 18 not taken.
✓ Branch 20 taken 13 times.
✗ Branch 21 not taken.
26 1.0 * (0.476190476190476 * Cg * T2 - 14.2857142857143 * Cpi[2]) * alpha;
158
2/4
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 13 times.
✗ Branch 5 not taken.
26 w4.second.head<3>() = 1.0 *
159
4/8
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 13 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 13 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 13 times.
✗ Branch 13 not taken.
13 (1.19047619047619 * pi[0] + 7.14285714285714 * pi[1] -
160
4/8
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 13 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 13 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 13 times.
✗ Branch 13 not taken.
26 3.57142857142857 * pi[2] + 5.0 * pi[4] +
161
4/8
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 13 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 13 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 13 times.
✗ Branch 13 not taken.
39 4.28571428571429 * pi[5] + 0.238095238095238 * pi[6]) *
162
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 alpha;
163
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 w4.second.tail<3>() =
164
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 1.0 *
165
4/8
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 13 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 13 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 13 times.
✗ Branch 12 not taken.
13 (0.0476190476190471 * Cg * T2 * pi[1] +
166
4/8
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 13 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 13 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 13 times.
✗ Branch 12 not taken.
26 0.357142857142857 * Cg * T2 * pi[2] +
167
7/14
✓ Branch 3 taken 13 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 13 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 13 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 13 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 13 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 13 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 13 times.
✗ Branch 23 not taken.
26 0.119047619047619 * Cg * T2 * pi[4] - 1.42857142857143 * Cpi[0] * pi[5] +
168
6/12
✓ Branch 3 taken 13 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 13 times.
✗ Branch 7 not taken.
✓ Branch 11 taken 13 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 13 times.
✗ Branch 15 not taken.
✓ Branch 17 taken 13 times.
✗ Branch 18 not taken.
✓ Branch 20 taken 13 times.
✗ Branch 21 not taken.
26 0.238095238095238 * Cpi[0] * pi[6] - 12.8571428571429 * Cpi[1] * pi[4] +
169
6/12
✓ Branch 3 taken 13 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 13 times.
✗ Branch 7 not taken.
✓ Branch 11 taken 13 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 13 times.
✗ Branch 15 not taken.
✓ Branch 17 taken 13 times.
✗ Branch 18 not taken.
✓ Branch 20 taken 13 times.
✗ Branch 21 not taken.
39 5.71428571428571 * Cpi[1] * pi[5] + 17.8571428571429 * Cpi[2] * pi[4]) *
170
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 alpha;
171
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 wps.push_back(w4);
172
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 waypoint_t w5 = initwp(DIM_POINT, DIM_VAR);
173
4/8
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 13 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 13 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 13 times.
✗ Branch 11 not taken.
13 w5.first.block<3, 3>(0, 0) = -14.2857142857143 * alpha * Matrix3::Identity();
174
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 w5.first.block<3, 3>(3, 0) =
175
7/14
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 13 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 13 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 13 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 13 times.
✗ Branch 15 not taken.
✓ Branch 17 taken 13 times.
✗ Branch 18 not taken.
✓ Branch 20 taken 13 times.
✗ Branch 21 not taken.
26 1.0 * (0.476190476190476 * Cg * T2 - 14.2857142857143 * Cpi[4]) * alpha;
176
2/4
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 13 times.
✗ Branch 5 not taken.
26 w5.second.head<3>() = 1.0 *
177
4/8
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 13 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 13 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 13 times.
✗ Branch 13 not taken.
13 (0.238095238095238 * pi[0] + 4.28571428571429 * pi[1] +
178
4/8
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 13 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 13 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 13 times.
✗ Branch 13 not taken.
26 5.0 * pi[2] - 3.57142857142857 * pi[4] +
179
4/8
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 13 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 13 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 13 times.
✗ Branch 13 not taken.
39 7.14285714285714 * pi[5] + 1.19047619047619 * pi[6]) *
180
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 alpha;
181
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 w5.second.tail<3>() =
182
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 1.0 *
183
4/8
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 13 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 13 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 13 times.
✗ Branch 12 not taken.
13 (+0.11904761904762 * Cg * T2 * pi[2] +
184
4/8
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 13 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 13 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 13 times.
✗ Branch 12 not taken.
26 0.357142857142857 * Cg * T2 * pi[4] +
185
4/8
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 13 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 13 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 13 times.
✗ Branch 12 not taken.
26 0.0476190476190476 * Cg * T2 * pi[5] -
186
6/12
✓ Branch 3 taken 13 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 13 times.
✗ Branch 7 not taken.
✓ Branch 11 taken 13 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 13 times.
✗ Branch 15 not taken.
✓ Branch 17 taken 13 times.
✗ Branch 18 not taken.
✓ Branch 20 taken 13 times.
✗ Branch 21 not taken.
26 0.238095238095238 * Cpi[0] * pi[6] - 5.71428571428572 * Cpi[1] * pi[5] +
187
6/12
✓ Branch 3 taken 13 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 13 times.
✗ Branch 7 not taken.
✓ Branch 11 taken 13 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 13 times.
✗ Branch 15 not taken.
✓ Branch 17 taken 13 times.
✗ Branch 18 not taken.
✓ Branch 20 taken 13 times.
✗ Branch 21 not taken.
26 1.42857142857143 * Cpi[1] * pi[6] - 17.8571428571429 * Cpi[2] * pi[4] +
188
3/6
✓ Branch 3 taken 13 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 13 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 13 times.
✗ Branch 10 not taken.
26 12.8571428571429 * Cpi[2] * pi[5]) *
189
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 alpha;
190
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 wps.push_back(w5);
191
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 waypoint_t w6 = initwp(DIM_POINT, DIM_VAR);
192
4/8
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 13 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 13 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 13 times.
✗ Branch 11 not taken.
13 w6.first.block<3, 3>(0, 0) = -5.71428571428571 * alpha * Matrix3::Identity();
193
2/4
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 13 times.
✗ Branch 5 not taken.
26 w6.first.block<3, 3>(3, 0) = 1.0 *
194
3/6
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 13 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 13 times.
✗ Branch 8 not taken.
13 (0.238095238095238 * Cg * T2 +
195
4/8
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 13 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 13 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 13 times.
✗ Branch 13 not taken.
39 14.2857142857143 * Cpi[4] - 20.0 * Cpi[5]) *
196
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 alpha;
197
2/4
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 13 times.
✗ Branch 5 not taken.
26 w6.second.head<3>() = 1.0 *
198
4/8
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 13 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 13 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 13 times.
✗ Branch 13 not taken.
13 (1.42857142857143 * pi[1] + 7.85714285714286 * pi[2] -
199
4/8
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 13 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 13 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 13 times.
✗ Branch 13 not taken.
26 14.2857142857143 * pi[4] + 7.14285714285715 * pi[5] +
200
2/4
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 13 times.
✗ Branch 6 not taken.
26 3.57142857142857 * pi[6]) *
201
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 alpha;
202
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 w6.second.tail<3>() =
203
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 1.0 *
204
4/8
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 13 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 13 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 13 times.
✗ Branch 12 not taken.
13 (0.535714285714286 * Cg * T2 * pi[4] +
205
4/8
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 13 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 13 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 13 times.
✗ Branch 12 not taken.
26 0.214285714285714 * Cg * T2 * pi[5] +
206
4/8
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 13 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 13 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 13 times.
✗ Branch 12 not taken.
26 0.0119047619047619 * Cg * T2 * pi[6] -
207
6/12
✓ Branch 3 taken 13 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 13 times.
✗ Branch 7 not taken.
✓ Branch 11 taken 13 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 13 times.
✗ Branch 15 not taken.
✓ Branch 17 taken 13 times.
✗ Branch 18 not taken.
✓ Branch 20 taken 13 times.
✗ Branch 21 not taken.
26 1.42857142857143 * Cpi[1] * pi[6] - 12.8571428571429 * Cpi[2] * pi[5] +
208
3/6
✓ Branch 3 taken 13 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 13 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 13 times.
✗ Branch 10 not taken.
26 5.0 * Cpi[2] * pi[6]) *
209
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 alpha;
210
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 wps.push_back(w6);
211
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 waypoint_t w7 = initwp(DIM_POINT, DIM_VAR);
212
4/8
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 13 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 13 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 13 times.
✗ Branch 11 not taken.
13 w7.first.block<3, 3>(0, 0) = 6.66666666666667 * alpha * Matrix3::Identity();
213
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 w7.first.block<3, 3>(3, 0) =
214
6/12
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 13 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 13 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 13 times.
✗ Branch 13 not taken.
✓ Branch 15 taken 13 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 13 times.
✗ Branch 19 not taken.
26 1.0 * (20.0 * Cpi[5] - 13.3333333333333 * Cpi[6]) * alpha;
215
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 w7.second.head<3>() =
216
8/16
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 13 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 13 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 13 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 13 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 13 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 13 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 13 times.
✗ Branch 26 not taken.
26 1.0 * (5.0 * pi[2] - 20.0 * pi[4] + 8.33333333333333 * pi[6]) * alpha;
217
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 w7.second.tail<3>() =
218
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 1.0 *
219
8/16
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 13 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 13 times.
✗ Branch 9 not taken.
✓ Branch 12 taken 13 times.
✗ Branch 13 not taken.
✓ Branch 15 taken 13 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 13 times.
✗ Branch 19 not taken.
✓ Branch 21 taken 13 times.
✗ Branch 22 not taken.
✓ Branch 24 taken 13 times.
✗ Branch 25 not taken.
13 (0.416666666666667 * Cg * T2 * pi[4] + 0.5 * Cg * T2 * pi[5] +
220
7/14
✓ Branch 3 taken 13 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 13 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 13 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 13 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 13 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 13 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 13 times.
✗ Branch 23 not taken.
26 0.0833333333333333 * Cg * T2 * pi[6] - 5.0 * Cpi[2] * pi[6] +
221
3/6
✓ Branch 3 taken 13 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 13 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 13 times.
✗ Branch 10 not taken.
26 20.0 * Cpi[4] * pi[5]) *
222
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 alpha;
223
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 wps.push_back(w7);
224
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 waypoint_t w8 = initwp(DIM_POINT, DIM_VAR);
225
4/8
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 13 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 13 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 13 times.
✗ Branch 11 not taken.
13 w8.first.block<3, 3>(0, 0) = 13.3333333333333 * alpha * Matrix3::Identity();
226
5/10
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 13 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 13 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 13 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 13 times.
✗ Branch 15 not taken.
13 w8.first.block<3, 3>(3, 0) = 1.0 * (13.3333333333333 * Cpi[6]) * alpha;
227
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 w8.second.head<3>() =
228
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 1.0 *
229
6/12
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 13 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 13 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 13 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 13 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 13 times.
✗ Branch 20 not taken.
26 (-9.99999999999999 * pi[4] - 20.0 * pi[5] + 16.6666666666667 * pi[6]) *
230
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 alpha;
231
2/4
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 13 times.
✗ Branch 5 not taken.
26 w8.second.tail<3>() = 1.0 *
232
4/8
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 13 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 13 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 13 times.
✗ Branch 12 not taken.
13 (0.666666666666667 * Cg * T2 * pi[5] +
233
4/8
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 13 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 13 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 13 times.
✗ Branch 12 not taken.
26 0.333333333333333 * Cg * T2 * pi[6] -
234
6/12
✓ Branch 3 taken 13 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 13 times.
✗ Branch 7 not taken.
✓ Branch 11 taken 13 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 13 times.
✗ Branch 15 not taken.
✓ Branch 17 taken 13 times.
✗ Branch 18 not taken.
✓ Branch 20 taken 13 times.
✗ Branch 21 not taken.
39 20.0 * Cpi[4] * pi[5] + 30.0 * Cpi[4] * pi[6]) *
235
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 alpha;
236
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 wps.push_back(w8);
237
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 waypoint_t w9 = initwp(DIM_POINT, DIM_VAR);
238
8/16
✓ Branch 2 taken 13 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 13 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 13 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 13 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 13 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 13 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 13 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 13 times.
✗ Branch 26 not taken.
13 w9.second.head<3>() = (30 * pi[4] - 60 * pi[5] + 30 * pi[6]) * alpha;
239
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 w9.second.tail<3>() =
240
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 1.0 *
241
10/20
✓ Branch 3 taken 13 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 13 times.
✗ Branch 7 not taken.
✓ Branch 11 taken 13 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 13 times.
✗ Branch 15 not taken.
✓ Branch 18 taken 13 times.
✗ Branch 19 not taken.
✓ Branch 21 taken 13 times.
✗ Branch 22 not taken.
✓ Branch 24 taken 13 times.
✗ Branch 25 not taken.
✓ Branch 27 taken 13 times.
✗ Branch 28 not taken.
✓ Branch 30 taken 13 times.
✗ Branch 31 not taken.
✓ Branch 33 taken 13 times.
✗ Branch 34 not taken.
26 (1.0 * Cg * T2 * pi[6] - 30.0 * Cpi[4] * pi[6] + 60.0 * Cpi[5] * pi[6]) *
242
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 alpha;
243
1/2
✓ Branch 1 taken 13 times.
✗ Branch 2 not taken.
13 wps.push_back(w9);
244 26 return wps;
245 13 }
246
247 inline coefs_t computeFinalVelocityPoint(const ProblemData& pData, double T) {
248 coefs_t v;
249 std::vector<point_t> pi = computeConstantWaypoints(pData, T);
250 // equation found with sympy
251 v.first = 0.;
252 v.second = (-6.0 * pi[5] + 6.0 * pi[6]) / T;
253 return v;
254 }
255
256 } // namespace c0_dc0_ddc0_ddc1_dc1_c1
257
258 } // namespace bezier_com_traj
259
260 #endif
261