public void setDirectly(DenseMatrix64F coefficients) { polynomial.setDirectly(coefficients); }
public void setDirectlyReverse(double[] coefficients) { ArrayUtils.reverse(coefficients); setDirectly(coefficients); }
public void setDirectlyReverse(double[] coefficients) { ArrayUtils.reverse(coefficients); setDirectly(coefficients); }
@ContinuousIntegrationTest(estimatedDuration = 0.0) @Test(timeout = 30000) public void testGetPosition() { Random random = new Random(165L); int order = 5; YoPolynomial spline = new YoPolynomial("test", order, registry); double[] coefficients = getRandomCoefficients(order, random); spline.setDirectly(coefficients); double x = random.nextDouble(); spline.compute(x); double y = spline.getPosition(); double yCheck = coefficients[0] + coefficients[1] * x + coefficients[2] * x * x + coefficients[3] * x * x * x + coefficients[4] * x * x * x * x; assertEquals(yCheck, y, 1e-12); }
@ContinuousIntegrationTest(estimatedDuration = 0.0) @Test(timeout = 30000) public void testGetIntegral() { int order = 5; YoPolynomial spline = new YoPolynomial("test", order, registry); double[] coefficients = new double[]{2.0, 6.0, 9.0, 4.0, 10.0}; spline.setDirectly(coefficients); double from = 1.0; double to = 2.0; double expected = 109.0; double actual = spline.getIntegral(from, to); assertEquals(expected, actual, 1e-12); }
yoPolynomial.setDirectly(coefficients); ParameterPolynomial parameterPolynomial = new ParameterPolynomial("Parameter", coefficients, registry);
@ContinuousIntegrationTest(estimatedDuration = 0.0) @Test(timeout = 30000) public void testGetAcceleration() { Random random = new Random(1675L); int order = 5; YoPolynomial spline = new YoPolynomial("test", order, registry); double[] coefficients = getRandomCoefficients(order, random); spline.setDirectly(coefficients); double x = random.nextDouble(); double dx = 1e-9; spline.compute(x); double d2ydx2 = spline.getAcceleration(); double dydxx = spline.getVelocity(); spline.compute(x + dx); double dydxxPlusdx = spline.getVelocity(); double d2ydx2Numerical = (dydxxPlusdx - dydxx) / dx; assertEquals(d2ydx2Numerical, d2ydx2, 1e-6); }
@ContinuousIntegrationTest(estimatedDuration = 0.0) @Test(timeout = 30000) public void testGetVelocity() { Random random = new Random(1675L); int order = 5; YoPolynomial spline = new YoPolynomial("test", order, registry); double[] coefficients = getRandomCoefficients(order, random); spline.setDirectly(coefficients); double x = random.nextDouble(); double dx = 1e-9; spline.compute(x); double yx = spline.getPosition(); double dydx = spline.getVelocity(); spline.compute(x + dx); double yxPlusdx = spline.getPosition(); double dydxNumerical = (yxPlusdx - yx) / dx; assertEquals(dydxNumerical, dydx, 1e-6); }
public void set(Trajectory trajectory) { reshape(trajectory.getNumberOfCoefficients()); this.tInitial.set(trajectory.getInitialTime()); this.tFinal.set(trajectory.getFinalTime()); for(int i = 0; i < getNumberOfCoefficients(); i++) polynomial.setDirectly(i, trajectory.getCoefficient(i)); } }