This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "roboptim-trajectory".

The branch, master has been updated
       via  b95cbc4b1d83a4f49e797c5a74c8cd465f0776e9 (commit)
      from  d6efc235e8d07dbbc73dcccb3fef58363df8ec5a (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit b95cbc4b1d83a4f49e797c5a74c8cd465f0776e9
Author: Thomas Moulard <thomas.moul...@gmail.com>
Date:   Thu Mar 4 13:58:42 2010 +0100

    Fix start/end freezing constriant for CubicBSpline.
    
        * include/roboptim/trajectory/cubic-b-spline.hh,
        * include/roboptim/trajectory/cubic-b-spline.hxx: Fix constraint
        and add optional offset to handle trajectories with extra parameters.
        * tests/spline-optimization.cc: Use new linear constraint.
        * tests/spline-optimization.stdout: Regenerate.
        * tests/spline-time-optimization.cc: Use new linear constraint.
        * tests/spline-time-optimization.stdout: Regenerate.
    
    Signed-off-by: Thomas Moulard <thomas.moul...@gmail.com>

diff --git a/ChangeLog b/ChangeLog
index 2296944..ad163c0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2010-03-04  Thomas Moulard  <thomas.moul...@gmail.com>
+
+       Fix start/end freezing constriant for CubicBSpline.
+       * include/roboptim/trajectory/cubic-b-spline.hh,
+       * include/roboptim/trajectory/cubic-b-spline.hxx: Fix constraint
+       and add optional offset to handle trajectories with extra parameters.
+       * tests/spline-optimization.cc: Use new linear constraint.
+       * tests/spline-optimization.stdout: Regenerate.
+       * tests/spline-time-optimization.cc: Use new linear constraint.
+       * tests/spline-time-optimization.stdout: Regenerate.
+
 2010-03-03  Thomas Moulard  <thomas.moul...@gmail.com>
 
        Fix SPEC file.
diff --git a/include/roboptim/trajectory/cubic-b-spline.hh 
b/include/roboptim/trajectory/cubic-b-spline.hh
index e02164c..d76320e 100644
--- a/include/roboptim/trajectory/cubic-b-spline.hh
+++ b/include/roboptim/trajectory/cubic-b-spline.hh
@@ -97,9 +97,9 @@ namespace roboptim
       const throw ();
 
     template <typename P>
-    void freezeCurveStart (P& problem);
+    void freezeCurveStart (P& problem, size_type offset = 0) const throw ();
     template <typename P>
-    void freezeCurveEnd (P& problem);
+    void freezeCurveEnd (P& problem, size_type offset = 0) const throw ();
 
   protected:
     void impl_compute (result_t&, double) const throw ();
@@ -121,4 +121,5 @@ namespace roboptim
 
 } // end of namespace roboptim.
 
+# include <roboptim/trajectory/cubic-b-spline.hxx>
 #endif //! ROBOPTIM_TRAJECTORY_TRAJECTORY_HH
diff --git a/include/roboptim/trajectory/cubic-b-spline.hxx 
b/include/roboptim/trajectory/cubic-b-spline.hxx
index 5aadeed..0f0f974 100644
--- a/include/roboptim/trajectory/cubic-b-spline.hxx
+++ b/include/roboptim/trajectory/cubic-b-spline.hxx
@@ -17,81 +17,61 @@
 
 #ifndef ROBOPTIM_TRAJECTORY_CUBIC_B_SPLINE_HXX
 # define ROBOPTIM_TRAJECTORY_CUBIC_B_SPLINE_HXX
+# include <roboptim/core/numeric-linear-function.hh>
 
 namespace roboptim
 {
   template <typename P>
   void
-  CubicBSpline::frezzeCurveStart (P& problem)
+  CubicBSpline::freezeCurveStart (P& problem, size_type offset) const throw ()
   {
-    using boost::numeric::ublas::zero_matrix;
-    using boost::numeric::ublas::zero_vector;
+    using boost::shared_ptr;
+    const size_type paramSize = parameters ().size ();
+    const Function::interval_t interval = Function::makeInterval (0, 0);
+    assert (paramSize >= offset + 3 * outputSize ());
 
-    Function::matrix_t A[3];
-    Function::vector_t b[3];
+    for (size_type i = 0; i < outputSize (); ++i)
+      {
+       Function::matrix_t A (1, offset + paramSize);
+       Function::vector_t b (1);
+       A.clear ();
+       b.clear ();
 
-    A[0] = zero_matrix<double>(1, paramSize);
-    A[1] = zero_matrix<double>(1, paramSize);
-    A[2] = zero_matrix<double>(1, paramSize);
-
-    b[0] = zero_vector<double>(1);
-    b[1] = zero_vector<double>(1);
-    b[2] = zero_vector<double>(1);
-    A[0](0,1) = A[1](0,2) = A[2](0,3)=1./6.;
-    A[0](0,4) = A[1](0,5) = A[2](0,6)=2./3.;
-    A[0](0,7) = A[1](0,8) = A[2](0,9)=1./6.;
-    b[0](0) = -freeTimeTraj_.parameters ()[1+0];
-    b[1](0) = -freeTimeTraj_.parameters ()[1+1];
-    b[2](0) = -freeTimeTraj_.parameters ()[1+2];
-    NumericLinearFunction* boundaryCond;
-    boundaryCond = new NumericLinearFunction(A[0], b[0]);
-    boost::shared_ptr<LinearFunction>  boundaryCond0ShPtr(boundaryCond);
-    boundaryCond = new NumericLinearFunction(A[1], b[1]);
-    boost::shared_ptr<LinearFunction>  boundaryCond1ShPtr(boundaryCond);
-    boundaryCond = new NumericLinearFunction(A[2], b[2]);
-    boost::shared_ptr<LinearFunction>  boundaryCond2ShPtr(boundaryCond);
-
-    problem.addConstraint(boundaryCond0ShPtr, interval);
-    problem.addConstraint(boundaryCond1ShPtr, interval);
-    problem.addConstraint(boundaryCond2ShPtr, interval);
+       A (0, offset + i + 0. * outputSize ()) = 1. / 6.;
+       A (0, offset + i + 1. * outputSize ()) = 2. / 3.;
+       A (0, offset + i + 2. * outputSize ()) = 1. / 6.;
+       b (0) = -parameters ()[offset + i];
+       NumericLinearFunction* boundaryCond = new NumericLinearFunction (A, b);
+       shared_ptr<LinearFunction> boundaryCondShPtr (boundaryCond);
+       problem.addConstraint (boundaryCondShPtr, interval);
+      }
   }
 
   template <typename P>
   void
-  CubicBSpline::frezzeCurveEnd (P& problem)
+  CubicBSpline::freezeCurveEnd (P& problem, size_type offset) const throw ()
   {
-    using boost::numeric::ublas::zero_matrix;
-    using boost::numeric::ublas::zero_vector;
-
-    Function::matrix_t A[3];
-    Function::vector_t b[3];
+    using boost::shared_ptr;
+    const size_type paramSize = parameters ().size ();
+    const Function::interval_t interval = Function::makeInterval (0, 0);
+    assert (paramSize >= offset + 3 * outputSize ());
 
-    A[0] = zero_matrix<double>(1, paramSize);
-    A[1] = zero_matrix<double>(1, paramSize);
-    A[2] = zero_matrix<double>(1, paramSize);
-    b[0] = zero_vector<double>(1);
-    b[1] = zero_vector<double>(1);
-    b[2] = zero_vector<double>(1);
+    for (size_type i = 0; i < outputSize (); ++i)
+      {
+       Function::matrix_t A (1, offset + paramSize);
+       Function::vector_t b (1);
+       A.clear ();
+       b.clear ();
 
-    A[0](0,paramSize-9) = A[1](0,paramSize-8) = A[2](0,paramSize-7)=1./6.;
-    A[0](0,paramSize-6) = A[1](0,paramSize-5) = A[2](0,paramSize-4)=2./3.;
-    A[0](0,paramSize-3) = A[1](0,paramSize-2) = A[2](0,paramSize-1)=1./6.;
-    b[0](0) = -freeTimeTraj_.parameters ()[paramSize-3];
-    b[1](0) = -freeTimeTraj_.parameters ()[paramSize-2];
-    b[2](0) = -freeTimeTraj_.parameters ()[paramSize-1];
-    boundaryCond = new NumericLinearFunction(A[0], b[0]);
-    boost::shared_ptr<LinearFunction>  boundaryCond3ShPtr(boundaryCond);
-    boundaryCond = new NumericLinearFunction(A[1], b[1]);
-    boost::shared_ptr<LinearFunction>  boundaryCond4ShPtr(boundaryCond);
-    boundaryCond = new NumericLinearFunction(A[2], b[2]);
-    boost::shared_ptr<LinearFunction>  boundaryCond5ShPtr(boundaryCond);
-
-    Function::interval_t interval = Function::makeInterval(0., 0.);
-    problem.addConstraint(boundaryCond3ShPtr, interval);
-    problem.addConstraint(boundaryCond4ShPtr, interval);
-    problem.addConstraint(boundaryCond5ShPtr, interval);
+       A (0, paramSize - 1 - i - 0. * outputSize ()) = 1. / 6.;
+       A (0, paramSize - 1 - i - 1. * outputSize ()) = 2. / 3.;
+       A (0, paramSize - 1 - i - 2. * outputSize ()) = 1. / 6.;
+       b (0) = -parameters ()[paramSize - 1 - i];
+       NumericLinearFunction* boundaryCond = new NumericLinearFunction (A, b);
+       shared_ptr<LinearFunction> boundaryCondShPtr (boundaryCond);
+       problem.addConstraint (boundaryCondShPtr, interval);
+      }
   }
-
 } // end of namespace roboptim.
 
 #endif //! ROBOPTIM_TRAJECTORY_TRAJECTORY_HXX
diff --git a/tests/spline-optimization.cc b/tests/spline-optimization.cc
index 89727db..dbad8a2 100644
--- a/tests/spline-optimization.cc
+++ b/tests/spline-optimization.cc
@@ -28,7 +28,6 @@
 #include <roboptim/core/visualization/gnuplot-commands.hh>
 #include <roboptim/core/visualization/gnuplot-function.hh>
 
-#include <roboptim/trajectory/freeze.hh>
 #include <roboptim/trajectory/fwd.hh>
 #include <roboptim/trajectory/spline-length.hh>
 #include <roboptim/trajectory/cubic-b-spline.hh>
@@ -48,6 +47,32 @@ using namespace roboptim::visualization::gnuplot;
 typedef CFSQPSolver::problem_t::constraints_t constraint_t;
 typedef CFSQPSolver solver_t;
 
+void showSpline (const CubicBSpline& spline);
+
+void showSpline (const CubicBSpline& spline)
+{
+  std::cout
+    << "# Values:" << std::endl
+    << "# " << normalize (spline (0.)) << std::endl
+    << "# " << normalize (spline (2.5)) << std::endl
+    << "# " << normalize (spline (4.)) << std::endl
+
+    << "# 1st derivative:" << std::endl
+    << "# " << normalize (spline.derivative (0., 1)) << std::endl
+    << "# " << normalize (spline.derivative (2.5, 1)) << std::endl
+    << "# " << normalize (spline.derivative (4., 1)) << std::endl
+
+    << "# 2nd derivative:" << std::endl
+    << "# " << normalize (spline.derivative (0., 2)) << std::endl
+    << "# " << normalize (spline.derivative (2.5, 2)) << std::endl
+    << "# " << normalize (spline.derivative (4., 2)) << std::endl
+
+    << "# variationConfigWrtParam:" << std::endl
+    << "# " << normalize (spline.variationConfigWrtParam (0.)) << std::endl
+    << "# " << normalize (spline.variationConfigWrtParam (2.5)) << std::endl
+    << "# " << normalize (spline.variationConfigWrtParam (4.)) << std::endl;
+}
+
 int run_test ()
 {
   using namespace boost::assign;
@@ -71,26 +96,7 @@ int run_test ()
   CubicBSpline spline (timeRange, 2, params, "before");
   discreteInterval_t interval (0., 4., 0.01);
 
-  std::cout
-    << "# Values:" << std::endl
-    << "# " << normalize (spline (0.)) << std::endl
-    << "# " << normalize (spline (2.5)) << std::endl
-    << "# " << normalize (spline (4.)) << std::endl
-
-    << "# 1st derivative:" << std::endl
-    << "# " << normalize (spline.derivative (0., 1)) << std::endl
-    << "# " << normalize (spline.derivative (2.5, 1)) << std::endl
-    << "# " << normalize (spline.derivative (4., 1)) << std::endl
-
-    << "# 2nd derivative:" << std::endl
-    << "# " << normalize (spline.derivative (0., 2)) << std::endl
-    << "# " << normalize (spline.derivative (2.5, 2)) << std::endl
-    << "# " << normalize (spline.derivative (4., 2)) << std::endl
-
-    << "# variationConfigWrtParam:" << std::endl
-    << "# " << normalize (spline.variationConfigWrtParam (0.)) << std::endl
-    << "# " << normalize (spline.variationConfigWrtParam (2.5)) << std::endl
-    << "# " << normalize (spline.variationConfigWrtParam (4.)) << std::endl;
+  showSpline (spline);
 
   Gnuplot gnuplot = Gnuplot::make_interactive_gnuplot ();
   gnuplot
@@ -120,20 +126,8 @@ int run_test ()
   solver_t::problem_t problem (cost);
   problem.startingPoint () = params;
 
-  std::vector<Function::size_type> indices;
-  indices.push_back (0);
-  indices.push_back (1);
-  indices.push_back (2);
-  indices.push_back (3);
-  indices.push_back (4);
-  indices.push_back (5);
-  indices.push_back (params.size () - 6);
-  indices.push_back (params.size () - 5);
-  indices.push_back (params.size () - 4);
-  indices.push_back (params.size () - 3);
-  indices.push_back (params.size () - 2);
-  indices.push_back (params.size () - 1);
-  makeFreeze (problem) (indices, params);
+  spline.freezeCurveStart (problem);
+  spline.freezeCurveEnd (problem);
 
   SolverFactory<solver_t> factory ("cfsqp", problem);
   solver_t& solver = factory ();
@@ -151,6 +145,7 @@ int run_test ()
       {
        Result& result = boost::get<Result> (res);
        CubicBSpline optimizedSpline (timeRange, 2, result.x, "after");
+       showSpline (optimizedSpline);
        params = result.x;
        gnuplot << plot_xy (optimizedSpline);
        break;
@@ -165,6 +160,7 @@ int run_test ()
       {
        ResultWithWarnings& result = boost::get<ResultWithWarnings> (res);
        CubicBSpline optimizedSpline (timeRange, 2, result.x, "after");
+       showSpline (optimizedSpline);
        params = result.x;
        std::cerr << result << std::endl;
        gnuplot << plot_xy (optimizedSpline);
diff --git a/tests/spline-optimization.stdout b/tests/spline-optimization.stdout
index 4cb3deb..f3a4741 100644
--- a/tests/spline-optimization.stdout
+++ b/tests/spline-optimization.stdout
@@ -14,8 +14,24 @@
 # 
[2,16]((0.17,0.00,0.67,0.00,0.17,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00),(0.00,0.17,0.00,0.67,0.00,0.17,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00))
 # 
[2,16]((0.00,0.00,0.00,0.00,0.00,0.00,0.11,0.00,0.65,0.00,0.24,0.00,0.00,0.00,0.00,0.00),(0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.11,0.00,0.65,0.00,0.24,0.00,0.00,0.00,0.00))
 # 
[2,16]((0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.17,0.00,0.67,0.00,0.17,0.00),(0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.17,0.00,0.67,0.00,0.17))
+# Values:
+# [2](0.00,0.00)
+# [2](62.63,62.63)
+# [2](100.00,100.00)
+# 1st derivative:
+# [2](21.48,21.48)
+# [2](24.97,24.97)
+# [2](21.48,21.48)
+# 2nd derivative:
+# [2](13.87,13.87)
+# [2](-1.06,-1.06)
+# [2](-13.87,-13.87)
+# variationConfigWrtParam:
+# 
[2,16]((0.17,0.00,0.67,0.00,0.17,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00),(0.00,0.17,0.00,0.67,0.00,0.17,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00))
+# 
[2,16]((0.00,0.00,0.00,0.00,0.00,0.00,0.11,0.00,0.65,0.00,0.24,0.00,0.00,0.00,0.00,0.00),(0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.11,0.00,0.65,0.00,0.24,0.00,0.00,0.00,0.00))
+# 
[2,16]((0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.17,0.00,0.67,0.00,0.17,0.00),(0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.17,0.00,0.67,0.00,0.17))
 #!/usr/bin/gnuplot
-# Generated by RobOptim core library 0.5
+# Generated by RobOptim core library 0.5.12.dc6a
 set terminal wxt persist
 set multiplot layout 1,2
 set grid
@@ -121,104 +137,104 @@ plot '-' title 'before' with line
 e
 
 plot '-' title 'after' with line
-0.000877 0.000877
-0.007018 0.007018
-0.023684 0.023684
-0.056140 0.056140
-0.109649 0.109649
-0.189473 0.189473
-0.300877 0.300877
-0.449122 0.449122
-0.639473 0.639473
-0.877191 0.877191
-1.167542 1.167542
-1.515787 1.515787
-1.927190 1.927190
-2.407013 2.407013
-2.960521 2.960521
-3.592976 3.592976
-4.309642 4.309642
-5.115781 5.115781
-6.016656 6.016656
-7.017532 7.017532
-8.121367 8.121367
-9.321914 9.321914
-10.610618 10.610618
-11.978927 11.978927
-13.418289 13.418289
-14.920150 14.920150
-16.475959 16.475959
-18.077163 18.077163
-19.715210 19.715210
-21.381545 21.381545
-23.067618 23.067618
-24.764876 24.764876
-26.464765 26.464765
-28.158733 28.158733
-29.838228 29.838228
-31.494697 31.494697
-33.119587 33.119587
-34.704347 34.704347
-36.240422 36.240422
-37.719262 37.719262
-39.134834 39.134834
-40.491196 40.491196
-41.794927 41.794927
-43.052606 43.052606
-44.270812 44.270812
-45.456123 45.456123
-46.615118 46.615118
-47.754377 47.754377
-48.880478 48.880478
+0.870031 0.870031
+1.760881 1.760881
+2.671182 2.671182
+3.599565 3.599565
+4.544661 4.544661
+5.505102 5.505102
+6.479520 6.479520
+7.466546 7.466546
+8.464811 8.464811
+9.472947 9.472947
+10.489585 10.489585
+11.513357 11.513357
+12.542894 12.542894
+13.576828 13.576828
+14.613790 14.613790
+15.652411 15.652411
+16.691324 16.691324
+17.729159 17.729159
+18.764548 18.764548
+19.796122 19.796122
+20.822807 20.822807
+21.844702 21.844702
+22.862201 22.862201
+23.875697 23.875697
+24.885584 24.885584
+25.892254 25.892254
+26.896102 26.896102
+27.897520 27.897520
+28.896902 28.896902
+29.894641 29.894641
+30.891132 30.891132
+31.886766 31.886766
+32.881939 32.881939
+33.877042 33.877042
+34.872469 34.872469
+35.868614 35.868614
+36.865871 36.865871
+37.864632 37.864632
+38.865290 38.865290
+39.868241 39.868241
+40.873765 40.873765
+41.881706 41.881706
+42.891794 42.891794
+43.903762 43.903762
+44.917341 44.917341
+45.932262 45.932262
+46.948257 46.948257
+47.965057 47.965057
+48.982394 48.982394
 50.000000 50.000000
-51.119522 51.119522
-52.245623 52.245623
-53.384882 53.384882
-54.543877 54.543877
-55.729188 55.729188
-56.947394 56.947394
-58.205073 58.205073
-59.508804 59.508804
-60.865166 60.865166
-62.280738 62.280738
-63.759578 63.759578
-65.295653 65.295653
-66.880413 66.880413
-68.505303 68.505303
-70.161772 70.161772
-71.841267 71.841267
-73.535235 73.535235
-75.235124 75.235124
-76.932382 76.932382
-78.618455 78.618455
-80.284790 80.284790
-81.922837 81.922837
-83.524041 83.524041
-85.079850 85.079850
-86.581711 86.581711
-88.021073 88.021073
-89.389382 89.389382
-90.678086 90.678086
-91.878633 91.878633
-92.982468 92.982468
-93.983344 93.983344
-94.884219 94.884219
-95.690358 95.690358
-96.407024 96.407024
-97.039479 97.039479
-97.592987 97.592987
-98.072810 98.072810
-98.484213 98.484213
-98.832458 98.832458
-99.122809 99.122809
-99.360527 99.360527
-99.550878 99.550878
-99.699123 99.699123
-99.810527 99.810527
-99.890351 99.890351
-99.943860 99.943860
-99.976316 99.976316
-99.992982 99.992982
+51.017606 51.017606
+52.034943 52.034943
+53.051743 53.051743
+54.067738 54.067738
+55.082659 55.082659
+56.096238 56.096238
+57.108206 57.108206
+58.118294 58.118294
+59.126235 59.126235
+60.131759 60.131759
+61.134710 61.134710
+62.135368 62.135368
+63.134129 63.134129
+64.131386 64.131386
+65.127531 65.127531
+66.122958 66.122958
+67.118061 67.118061
+68.113234 68.113234
+69.108868 69.108868
+70.105359 70.105359
+71.103098 71.103098
+72.102480 72.102480
+73.103898 73.103898
+74.107746 74.107746
+75.114416 75.114416
+76.124303 76.124303
+77.137799 77.137799
+78.155298 78.155298
+79.177193 79.177193
+80.203878 80.203878
+81.235452 81.235452
+82.270841 82.270841
+83.308676 83.308676
+84.347589 84.347589
+85.386210 85.386210
+86.423172 86.423172
+87.457106 87.457106
+88.486643 88.486643
+89.510415 89.510415
+90.527053 90.527053
+91.535189 91.535189
+92.533454 92.533454
+93.520480 93.520480
+94.494898 94.494898
+95.455339 95.455339
+96.400435 96.400435
+97.328818 97.328818
+98.239119 98.239119
 e
 
 unset multiplot
diff --git a/tests/spline-time-optimization.cc 
b/tests/spline-time-optimization.cc
index a5d6b9e..5b0f351 100644
--- a/tests/spline-time-optimization.cc
+++ b/tests/spline-time-optimization.cc
@@ -31,7 +31,6 @@
 #include <roboptim/core/visualization/gnuplot-function.hh>
 
 #include <roboptim/trajectory/free-time-trajectory.hh>
-#include <roboptim/trajectory/freeze.hh>
 #include <roboptim/trajectory/fwd.hh>
 #include <roboptim/trajectory/limit-speed.hh>
 #include <roboptim/trajectory/spline-length.hh>
@@ -97,14 +96,8 @@ int run_test ()
 
   const freeTime_t::vector_t freeTimeParams = freeTimeTraj.parameters ();
 
-  std::vector<Function::size_type> indices;
-  indices.push_back (1);
-  indices.push_back (2);
-  indices.push_back (3);
-  indices.push_back (freeTimeParams.size () - 3);
-  indices.push_back (freeTimeParams.size () - 2);
-  indices.push_back (freeTimeParams.size () - 1);
-  makeFreeze (problem) (indices, freeTimeParams);
+  spline.freezeCurveStart (problem, 1);
+  spline.freezeCurveEnd (problem, 1);
 
   Function::interval_t vRange = Function::makeUpperInterval (.5 * vMax * vMax);
   LimitSpeed<FreeTimeTrajectory<CubicBSpline> >::addToProblem
diff --git a/tests/spline-time-optimization.stdout 
b/tests/spline-time-optimization.stdout
index 0fa2cd1..b921506 100644
--- a/tests/spline-time-optimization.stdout
+++ b/tests/spline-time-optimization.stdout
@@ -3,904 +3,920 @@ Solver:
     Numeric linear function
       A = 
[1,16]((-1.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00))
       B = [1](0.00)
-    Argument's bounds: (0.00, inf), (0.00, 0.00), (0.00, 0.00), (0.00, 0.00), 
(-inf, inf), (-inf, inf), (-inf, inf), (-inf, inf), (-inf, inf), (-inf, inf), 
(-inf, inf), (-inf, inf), (-inf, inf), (200.00, 200.00), (200.00, 200.00), 
(200.00, 200.00)
+    Argument's bounds: (0.00, inf), (-inf, inf), (-inf, inf), (-inf, inf), 
(-inf, inf), (-inf, inf), (-inf, inf), (-inf, inf), (-inf, inf), (-inf, inf), 
(-inf, inf), (-inf, inf), (-inf, inf), (-inf, inf), (-inf, inf), (-inf, inf)
     Argument's scales: 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 
1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00
-    Number of constraints: 150
+    Number of constraints: 152
     Constraint 0
+        Numeric linear function
+          A = 
[1,16]((0.00,0.17,0.67,0.17,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00))
+          B = [1](-0.00)
+        Bounds: (0.00, 0.00)
+        Scales: 1.00
+        Initial value: [1](0.00)
+        
+    Constraint 1
+        Numeric linear function
+          A = 
[1,16]((0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.17,0.67,0.17,0.00))
+          B = [1](-200.00)
+        Bounds: (0.00, 0.00)
+        Scales: 1.00
+        Initial value: [1](-3.33) (constraint not satisfied)
+        
+    Constraint 2
         speed limit (0.00662252) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](0.02)
         
-    Constraint 1
+    Constraint 3
         speed limit (0.013245) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](0.29)
         
-    Constraint 2
+    Constraint 4
         speed limit (0.0198675) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1.45)
         
-    Constraint 3
+    Constraint 5
         speed limit (0.0264901) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](4.59)
         
-    Constraint 4
+    Constraint 6
         speed limit (0.0331126) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](11.22)
         
-    Constraint 5
+    Constraint 7
         speed limit (0.0397351) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](23.26)
         
-    Constraint 6
+    Constraint 8
         speed limit (0.0463576) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](43.09)
         
-    Constraint 7
+    Constraint 9
         speed limit (0.0529801) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](73.52)
         
-    Constraint 8
+    Constraint 10
         speed limit (0.0596026) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](117.76)
         
-    Constraint 9
+    Constraint 11
         speed limit (0.0662252) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](179.49)
         
-    Constraint 10
+    Constraint 12
         speed limit (0.0728477) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](262.78)
         
-    Constraint 11
+    Constraint 13
         speed limit (0.0794702) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](372.18)
         
-    Constraint 12
+    Constraint 14
         speed limit (0.0860927) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](510.52)
         
-    Constraint 13
+    Constraint 15
         speed limit (0.0927152) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](661.56)
         
-    Constraint 14
+    Constraint 16
         speed limit (0.0993377) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](816.75)
         
-    Constraint 15
+    Constraint 17
         speed limit (0.10596) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](971.51)
         
-    Constraint 16
+    Constraint 18
         speed limit (0.112583) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1121.66)
         
-    Constraint 17
+    Constraint 19
         speed limit (0.119205) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1263.48)
         
-    Constraint 18
+    Constraint 20
         speed limit (0.125828) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1393.66)
         
-    Constraint 19
+    Constraint 21
         speed limit (0.13245) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1509.33)
         
-    Constraint 20
+    Constraint 22
         speed limit (0.139073) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1608.05)
         
-    Constraint 21
+    Constraint 23
         speed limit (0.145695) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1687.81)
         
-    Constraint 22
+    Constraint 24
         speed limit (0.152318) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1747.03)
         
-    Constraint 23
+    Constraint 25
         speed limit (0.15894) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1784.56)
         
-    Constraint 24
+    Constraint 26
         speed limit (0.165563) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1799.68)
         
-    Constraint 25
+    Constraint 27
         speed limit (0.172185) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 26
+    Constraint 28
         speed limit (0.178808) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 27
+    Constraint 29
         speed limit (0.18543) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 28
+    Constraint 30
         speed limit (0.192053) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 29
+    Constraint 31
         speed limit (0.198675) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 30
+    Constraint 32
         speed limit (0.205298) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 31
+    Constraint 33
         speed limit (0.211921) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 32
+    Constraint 34
         speed limit (0.218543) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 33
+    Constraint 35
         speed limit (0.225166) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 34
+    Constraint 36
         speed limit (0.231788) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 35
+    Constraint 37
         speed limit (0.238411) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 36
+    Constraint 38
         speed limit (0.245033) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 37
+    Constraint 39
         speed limit (0.251656) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 38
+    Constraint 40
         speed limit (0.258278) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 39
+    Constraint 41
         speed limit (0.264901) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 40
+    Constraint 42
         speed limit (0.271523) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 41
+    Constraint 43
         speed limit (0.278146) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 42
+    Constraint 44
         speed limit (0.284768) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 43
+    Constraint 45
         speed limit (0.291391) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 44
+    Constraint 46
         speed limit (0.298013) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 45
+    Constraint 47
         speed limit (0.304636) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 46
+    Constraint 48
         speed limit (0.311258) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 47
+    Constraint 49
         speed limit (0.317881) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 48
+    Constraint 50
         speed limit (0.324503) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 49
+    Constraint 51
         speed limit (0.331126) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 50
+    Constraint 52
         speed limit (0.337748) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 51
+    Constraint 53
         speed limit (0.344371) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 52
+    Constraint 54
         speed limit (0.350993) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 53
+    Constraint 55
         speed limit (0.357616) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 54
+    Constraint 56
         speed limit (0.364238) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 55
+    Constraint 57
         speed limit (0.370861) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 56
+    Constraint 58
         speed limit (0.377483) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 57
+    Constraint 59
         speed limit (0.384106) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 58
+    Constraint 60
         speed limit (0.390728) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 59
+    Constraint 61
         speed limit (0.397351) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 60
+    Constraint 62
         speed limit (0.403974) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 61
+    Constraint 63
         speed limit (0.410596) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 62
+    Constraint 64
         speed limit (0.417219) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 63
+    Constraint 65
         speed limit (0.423841) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 64
+    Constraint 66
         speed limit (0.430464) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 65
+    Constraint 67
         speed limit (0.437086) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 66
+    Constraint 68
         speed limit (0.443709) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 67
+    Constraint 69
         speed limit (0.450331) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 68
+    Constraint 70
         speed limit (0.456954) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 69
+    Constraint 71
         speed limit (0.463576) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 70
+    Constraint 72
         speed limit (0.470199) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 71
+    Constraint 73
         speed limit (0.476821) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 72
+    Constraint 74
         speed limit (0.483444) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 73
+    Constraint 75
         speed limit (0.490066) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 74
+    Constraint 76
         speed limit (0.496689) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 75
+    Constraint 77
         speed limit (0.503311) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 76
+    Constraint 78
         speed limit (0.509934) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 77
+    Constraint 79
         speed limit (0.516556) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 78
+    Constraint 80
         speed limit (0.523179) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 79
+    Constraint 81
         speed limit (0.529801) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 80
+    Constraint 82
         speed limit (0.536424) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 81
+    Constraint 83
         speed limit (0.543046) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 82
+    Constraint 84
         speed limit (0.549669) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 83
+    Constraint 85
         speed limit (0.556291) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 84
+    Constraint 86
         speed limit (0.562914) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 85
+    Constraint 87
         speed limit (0.569536) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 86
+    Constraint 88
         speed limit (0.576159) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 87
+    Constraint 89
         speed limit (0.582781) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 88
+    Constraint 90
         speed limit (0.589404) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 89
+    Constraint 91
         speed limit (0.596026) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 90
+    Constraint 92
         speed limit (0.602649) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 91
+    Constraint 93
         speed limit (0.609272) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 92
+    Constraint 94
         speed limit (0.615894) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 93
+    Constraint 95
         speed limit (0.622517) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 94
+    Constraint 96
         speed limit (0.629139) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 95
+    Constraint 97
         speed limit (0.635762) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 96
+    Constraint 98
         speed limit (0.642384) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 97
+    Constraint 99
         speed limit (0.649007) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 98
+    Constraint 100
         speed limit (0.655629) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 99
+    Constraint 101
         speed limit (0.662252) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 100
+    Constraint 102
         speed limit (0.668874) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 101
+    Constraint 103
         speed limit (0.675497) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 102
+    Constraint 104
         speed limit (0.682119) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 103
+    Constraint 105
         speed limit (0.688742) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 104
+    Constraint 106
         speed limit (0.695364) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 105
+    Constraint 107
         speed limit (0.701987) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 106
+    Constraint 108
         speed limit (0.708609) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 107
+    Constraint 109
         speed limit (0.715232) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 108
+    Constraint 110
         speed limit (0.721854) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 109
+    Constraint 111
         speed limit (0.728477) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 110
+    Constraint 112
         speed limit (0.735099) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 111
+    Constraint 113
         speed limit (0.741722) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 112
+    Constraint 114
         speed limit (0.748344) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 113
+    Constraint 115
         speed limit (0.754967) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 114
+    Constraint 116
         speed limit (0.761589) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 115
+    Constraint 117
         speed limit (0.768212) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 116
+    Constraint 118
         speed limit (0.774834) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 117
+    Constraint 119
         speed limit (0.781457) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 118
+    Constraint 120
         speed limit (0.788079) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 119
+    Constraint 121
         speed limit (0.794702) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 120
+    Constraint 122
         speed limit (0.801325) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 121
+    Constraint 123
         speed limit (0.807947) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 122
+    Constraint 124
         speed limit (0.81457) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 123
+    Constraint 125
         speed limit (0.821192) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 124
+    Constraint 126
         speed limit (0.827815) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1800.00)
         
-    Constraint 125
+    Constraint 127
         speed limit (0.834437) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1799.68)
         
-    Constraint 126
+    Constraint 128
         speed limit (0.84106) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1784.56)
         
-    Constraint 127
+    Constraint 129
         speed limit (0.847682) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1747.03)
         
-    Constraint 128
+    Constraint 130
         speed limit (0.854305) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1687.81)
         
-    Constraint 129
+    Constraint 131
         speed limit (0.860927) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1608.05)
         
-    Constraint 130
+    Constraint 132
         speed limit (0.86755) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1509.33)
         
-    Constraint 131
+    Constraint 133
         speed limit (0.874172) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1393.66)
         
-    Constraint 132
+    Constraint 134
         speed limit (0.880795) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1263.48)
         
-    Constraint 133
+    Constraint 135
         speed limit (0.887417) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1121.66)
         
-    Constraint 134
+    Constraint 136
         speed limit (0.89404) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](971.51)
         
-    Constraint 135
+    Constraint 137
         speed limit (0.900662) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](816.75)
         
-    Constraint 136
+    Constraint 138
         speed limit (0.907285) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](661.56)
         
-    Constraint 137
+    Constraint 139
         speed limit (0.913907) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](510.52)
         
-    Constraint 138
+    Constraint 140
         speed limit (0.92053) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](372.18)
         
-    Constraint 139
+    Constraint 141
         speed limit (0.927152) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](262.78)
         
-    Constraint 140
+    Constraint 142
         speed limit (0.933775) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](179.49)
         
-    Constraint 141
+    Constraint 143
         speed limit (0.940397) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](117.76)
         
-    Constraint 142
+    Constraint 144
         speed limit (0.94702) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](73.52)
         
-    Constraint 143
+    Constraint 145
         speed limit (0.953642) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](43.09)
         
-    Constraint 144
+    Constraint 146
         speed limit (0.960265) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](23.26)
         
-    Constraint 145
+    Constraint 147
         speed limit (0.966887) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](11.22)
         
-    Constraint 146
+    Constraint 148
         speed limit (0.97351) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](4.59)
         
-    Constraint 147
+    Constraint 149
         speed limit (0.980132) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](1.45)
         
-    Constraint 148
+    Constraint 150
         speed limit (0.986755) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
         Initial value: [1](0.29)
         
-    Constraint 149
+    Constraint 151
         speed limit (0.993377) (derivable function)
         Bounds: (-inf, 3612.50)
         Scales: 1.00
@@ -921,6 +937,6 @@ Solver:
 CFSQP specific variables: 
   Nineq: 150
   Nineqn: 150
-  Neq: 0
+  Neq: 2
   Neqn: 0
-  CFSQP constraints: (0, 0), (1, 0), (2, 0), (3, 0), (4, 0), (5, 0), (6, 0), 
(7, 0), (8, 0), (9, 0), (10, 0), (11, 0), (12, 0), (13, 0), (14, 0), (15, 0), 
(16, 0), (17, 0), (18, 0), (19, 0), (20, 0), (21, 0), (22, 0), (23, 0), (24, 
0), (25, 0), (26, 0), (27, 0), (28, 0), (29, 0), (30, 0), (31, 0), (32, 0), 
(33, 0), (34, 0), (35, 0), (36, 0), (37, 0), (38, 0), (39, 0), (40, 0), (41, 
0), (42, 0), (43, 0), (44, 0), (45, 0), (46, 0), (47, 0), (48, 0), (49, 0), 
(50, 0), (51, 0), (52, 0), (53, 0), (54, 0), (55, 0), (56, 0), (57, 0), (58, 
0), (59, 0), (60, 0), (61, 0), (62, 0), (63, 0), (64, 0), (65, 0), (66, 0), 
(67, 0), (68, 0), (69, 0), (70, 0), (71, 0), (72, 0), (73, 0), (74, 0), (75, 
0), (76, 0), (77, 0), (78, 0), (79, 0), (80, 0), (81, 0), (82, 0), (83, 0), 
(84, 0), (85, 0), (86, 0), (87, 0), (88, 0), (89, 0), (90, 0), (91, 0), (92, 
0), (93, 0), (94, 0), (95, 0), (96, 0), (97, 0), (98, 0), (99, 0), (100, 0), 
(101, 0), (102, 0), (103, 0), (104, 0), (105, 0), (106, 0), (107, 0), (108, 0), 
(109, 0), (110, 0), (111, 0), (112, 0), (113, 0), (114, 0), (115, 0), (116, 0), 
(117, 0), (118, 0), (119, 0), (120, 0), (121, 0), (122, 0), (123, 0), (124, 0), 
(125, 0), (126, 0), (127, 0), (128, 0), (129, 0), (130, 0), (131, 0), (132, 0), 
(133, 0), (134, 0), (135, 0), (136, 0), (137, 0), (138, 0), (139, 0), (140, 0), 
(141, 0), (142, 0), (143, 0), (144, 0), (145, 0), (146, 0), (147, 0), (148, 0), 
(149, 0)
+  CFSQP constraints: (2, 0), (3, 0), (4, 0), (5, 0), (6, 0), (7, 0), (8, 0), 
(9, 0), (10, 0), (11, 0), (12, 0), (13, 0), (14, 0), (15, 0), (16, 0), (17, 0), 
(18, 0), (19, 0), (20, 0), (21, 0), (22, 0), (23, 0), (24, 0), (25, 0), (26, 
0), (27, 0), (28, 0), (29, 0), (30, 0), (31, 0), (32, 0), (33, 0), (34, 0), 
(35, 0), (36, 0), (37, 0), (38, 0), (39, 0), (40, 0), (41, 0), (42, 0), (43, 
0), (44, 0), (45, 0), (46, 0), (47, 0), (48, 0), (49, 0), (50, 0), (51, 0), 
(52, 0), (53, 0), (54, 0), (55, 0), (56, 0), (57, 0), (58, 0), (59, 0), (60, 
0), (61, 0), (62, 0), (63, 0), (64, 0), (65, 0), (66, 0), (67, 0), (68, 0), 
(69, 0), (70, 0), (71, 0), (72, 0), (73, 0), (74, 0), (75, 0), (76, 0), (77, 
0), (78, 0), (79, 0), (80, 0), (81, 0), (82, 0), (83, 0), (84, 0), (85, 0), 
(86, 0), (87, 0), (88, 0), (89, 0), (90, 0), (91, 0), (92, 0), (93, 0), (94, 
0), (95, 0), (96, 0), (97, 0), (98, 0), (99, 0), (100, 0), (101, 0), (102, 0), 
(103, 0), (104, 0), (105, 0), (106, 0), (107, 0), (108, 0), (109, 0), (110, 0), 
(111, 0), (112, 0), (113, 0), (114, 0), (115, 0), (116, 0), (117, 0), (118, 0), 
(119, 0), (120, 0), (121, 0), (122, 0), (123, 0), (124, 0), (125, 0), (126, 0), 
(127, 0), (128, 0), (129, 0), (130, 0), (131, 0), (132, 0), (133, 0), (134, 0), 
(135, 0), (136, 0), (137, 0), (138, 0), (139, 0), (140, 0), (141, 0), (142, 0), 
(143, 0), (144, 0), (145, 0), (146, 0), (147, 0), (148, 0), (149, 0), (150, 0), 
(151, 0), (0, 1), (1, 1)

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                      |   11 +
 include/roboptim/trajectory/cubic-b-spline.hh  |    5 +-
 include/roboptim/trajectory/cubic-b-spline.hxx |   98 +++-----
 tests/spline-optimization.cc                   |   66 +++---
 tests/spline-optimization.stdout               |  212 +++++++++-------
 tests/spline-time-optimization.cc              |   11 +-
 tests/spline-time-optimization.stdout          |  322 +++++++++++++-----------
 7 files changed, 369 insertions(+), 356 deletions(-)


hooks/post-receive
-- 
roboptim-trajectory

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
roboptim-commit mailing list
roboptim-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/roboptim-commit

Reply via email to