1 #ifndef SimTK_SIMMATH_GEO_CUBIC_HERMITE_CURVE_H_
2 #define SimTK_SIMMATH_GEO_CUBIC_HERMITE_CURVE_H_
173 const RealP u2 = u*u;
180 const RealP u2 = u*u, u3 = u*u2;
181 const RealP t = 3*u2 - 2*u3;
182 return Row<4,P>(1-t, t, u3-2*u2+u, u3-u2);
188 const RealP u2 = u*u, u23=3*u2;
189 const RealP dt = 6*(u-u2);
190 return Row<4,P>(-dt, dt, u23-4*u+1, u23-2*u);
196 const RealP u6 = 6*u;
197 const RealP ddt = 6 - 12*u;
198 return Row<4,P>(-ddt, ddt, u6-4, u6-2);
214 const Vec3P h01 = h0 - h1;
216 -3*h01 - 2*hu0 - hu1,
233 const RealP u2 = u*u, u3 = u*u2;
234 return u3*A[0] + u2*A[1] + u*A[2] + A[3];
239 return (3*u*u)*A[0] + (2*u)*A[1] + A[2];
244 return (6*u)*A[0] + 2*A[1];
301 const RealP v0=v[0], v1=v[1], v2=v[2], v3=v[3];
302 const RealP v01 = v0-v1;
303 return Vec<4,P>(2*v01+v2+v3, -3*v01-2*v2-v3, v2, v0);
321 const RealP v0=v[0], v1=v[1], v2=v[2], v3=v[3];
322 return Vec<4,P>(v3, v0+v1+v2+v3, v2, 3*v0+2*v1+v2);
334 #endif // SimTK_SIMMATH_GEO_CUBIC_HERMITE_CURVE_H_