├── .git-blame-ignore-revs ├── .github ├── dependabot.yml └── workflows │ ├── nix.yml │ ├── update-flake-lock.yml │ └── windows-conda.yml ├── .gitignore ├── .gitlab-ci.yml ├── .gitmodules ├── .mergify.yml ├── .pre-commit-config.yaml ├── CHANGELOG.md ├── CMakeLists.txt ├── LICENSE ├── README.md ├── doc ├── curves.pdf └── source │ ├── curves.tex │ └── images │ └── De_Casteljau_construction.png ├── flake.lock ├── flake.nix ├── include └── ndcurves │ ├── MathDefs.h │ ├── bernstein.h │ ├── bezier_curve.h │ ├── constant_curve.h │ ├── cross_implementation.h │ ├── cubic_hermite_spline.h │ ├── curve_abc.h │ ├── curve_constraint.h │ ├── curve_conversion.h │ ├── exact_cubic.h │ ├── fwd.h │ ├── helpers │ ├── effector_spline.h │ └── effector_spline_rotation.h │ ├── linear_variable.h │ ├── optimization │ ├── definitions.h │ ├── details.h │ ├── integral_cost.h │ └── quadratic_problem.h │ ├── piecewise_curve.h │ ├── polynomial.h │ ├── python │ └── python_definitions.h │ ├── quadratic_variable.h │ ├── se3_curve.h │ ├── serialization │ ├── archive.hpp │ ├── curves.hpp │ ├── eigen-matrix.hpp │ └── registeration.hpp │ ├── sinusoidal.h │ ├── so3_linear.h │ └── so3_smooth.h ├── package.xml ├── pyproject.toml ├── python ├── CMakeLists.txt ├── ndcurves │ ├── CMakeLists.txt │ ├── __init__.py │ ├── archive_python_binding.h │ ├── curves_python.cpp │ ├── namespace.cpp │ ├── namespace.h │ ├── optimization.py │ ├── optimization_python.cpp │ ├── optimization_python.h │ ├── plot.py │ ├── python_variables.cpp │ └── python_variables.h └── test │ ├── notebook.py │ ├── optimization.py │ ├── registration.py │ ├── sandbox │ ├── fit.py │ ├── qp_traj │ │ ├── convex_hull.py │ │ ├── plot_cord.py │ │ ├── qp.py │ │ ├── qp_cord.py │ │ ├── test_cord.py │ │ └── varBezier.py │ ├── test.ipynb │ ├── test_var.py │ └── varBezier.py │ ├── test-constant.py │ ├── test-curve-constraints.py │ ├── test-minjerk.py │ ├── test-sinusoidal.py │ └── test.py └── tests ├── CMakeLists.txt ├── Main.cpp ├── data ├── discrete_points_acc.txt ├── discrete_points_error.txt ├── discrete_points_pos.txt ├── discrete_points_vel.txt └── test.pb ├── load_problem.h ├── test-constant.cpp ├── test-curve-constraints.cpp ├── test-minjerk.cpp ├── test-operations.cpp ├── test-polynomial.cpp ├── test-se3.cpp ├── test-sinusoidal-serialization.cpp ├── test-sinusoidal.cpp └── test-so3-smooth.cpp /.git-blame-ignore-revs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/.git-blame-ignore-revs -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/.github/dependabot.yml -------------------------------------------------------------------------------- /.github/workflows/nix.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/.github/workflows/nix.yml -------------------------------------------------------------------------------- /.github/workflows/update-flake-lock.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/.github/workflows/update-flake-lock.yml -------------------------------------------------------------------------------- /.github/workflows/windows-conda.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/.github/workflows/windows-conda.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/.gitignore -------------------------------------------------------------------------------- /.gitlab-ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/.gitlab-ci.yml -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/.gitmodules -------------------------------------------------------------------------------- /.mergify.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/.mergify.yml -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/.pre-commit-config.yaml -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/CMakeLists.txt -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/README.md -------------------------------------------------------------------------------- /doc/curves.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/doc/curves.pdf -------------------------------------------------------------------------------- /doc/source/curves.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/doc/source/curves.tex -------------------------------------------------------------------------------- /doc/source/images/De_Casteljau_construction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/doc/source/images/De_Casteljau_construction.png -------------------------------------------------------------------------------- /flake.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/flake.lock -------------------------------------------------------------------------------- /flake.nix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/flake.nix -------------------------------------------------------------------------------- /include/ndcurves/MathDefs.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/include/ndcurves/MathDefs.h -------------------------------------------------------------------------------- /include/ndcurves/bernstein.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/include/ndcurves/bernstein.h -------------------------------------------------------------------------------- /include/ndcurves/bezier_curve.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/include/ndcurves/bezier_curve.h -------------------------------------------------------------------------------- /include/ndcurves/constant_curve.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/include/ndcurves/constant_curve.h -------------------------------------------------------------------------------- /include/ndcurves/cross_implementation.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/include/ndcurves/cross_implementation.h -------------------------------------------------------------------------------- /include/ndcurves/cubic_hermite_spline.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/include/ndcurves/cubic_hermite_spline.h -------------------------------------------------------------------------------- /include/ndcurves/curve_abc.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/include/ndcurves/curve_abc.h -------------------------------------------------------------------------------- /include/ndcurves/curve_constraint.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/include/ndcurves/curve_constraint.h -------------------------------------------------------------------------------- /include/ndcurves/curve_conversion.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/include/ndcurves/curve_conversion.h -------------------------------------------------------------------------------- /include/ndcurves/exact_cubic.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/include/ndcurves/exact_cubic.h -------------------------------------------------------------------------------- /include/ndcurves/fwd.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/include/ndcurves/fwd.h -------------------------------------------------------------------------------- /include/ndcurves/helpers/effector_spline.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/include/ndcurves/helpers/effector_spline.h -------------------------------------------------------------------------------- /include/ndcurves/helpers/effector_spline_rotation.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/include/ndcurves/helpers/effector_spline_rotation.h -------------------------------------------------------------------------------- /include/ndcurves/linear_variable.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/include/ndcurves/linear_variable.h -------------------------------------------------------------------------------- /include/ndcurves/optimization/definitions.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/include/ndcurves/optimization/definitions.h -------------------------------------------------------------------------------- /include/ndcurves/optimization/details.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/include/ndcurves/optimization/details.h -------------------------------------------------------------------------------- /include/ndcurves/optimization/integral_cost.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/include/ndcurves/optimization/integral_cost.h -------------------------------------------------------------------------------- /include/ndcurves/optimization/quadratic_problem.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/include/ndcurves/optimization/quadratic_problem.h -------------------------------------------------------------------------------- /include/ndcurves/piecewise_curve.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/include/ndcurves/piecewise_curve.h -------------------------------------------------------------------------------- /include/ndcurves/polynomial.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/include/ndcurves/polynomial.h -------------------------------------------------------------------------------- /include/ndcurves/python/python_definitions.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/include/ndcurves/python/python_definitions.h -------------------------------------------------------------------------------- /include/ndcurves/quadratic_variable.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/include/ndcurves/quadratic_variable.h -------------------------------------------------------------------------------- /include/ndcurves/se3_curve.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/include/ndcurves/se3_curve.h -------------------------------------------------------------------------------- /include/ndcurves/serialization/archive.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/include/ndcurves/serialization/archive.hpp -------------------------------------------------------------------------------- /include/ndcurves/serialization/curves.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/include/ndcurves/serialization/curves.hpp -------------------------------------------------------------------------------- /include/ndcurves/serialization/eigen-matrix.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/include/ndcurves/serialization/eigen-matrix.hpp -------------------------------------------------------------------------------- /include/ndcurves/serialization/registeration.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/include/ndcurves/serialization/registeration.hpp -------------------------------------------------------------------------------- /include/ndcurves/sinusoidal.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/include/ndcurves/sinusoidal.h -------------------------------------------------------------------------------- /include/ndcurves/so3_linear.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/include/ndcurves/so3_linear.h -------------------------------------------------------------------------------- /include/ndcurves/so3_smooth.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/include/ndcurves/so3_smooth.h -------------------------------------------------------------------------------- /package.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/package.xml -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/pyproject.toml -------------------------------------------------------------------------------- /python/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/python/CMakeLists.txt -------------------------------------------------------------------------------- /python/ndcurves/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/python/ndcurves/CMakeLists.txt -------------------------------------------------------------------------------- /python/ndcurves/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/python/ndcurves/__init__.py -------------------------------------------------------------------------------- /python/ndcurves/archive_python_binding.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/python/ndcurves/archive_python_binding.h -------------------------------------------------------------------------------- /python/ndcurves/curves_python.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/python/ndcurves/curves_python.cpp -------------------------------------------------------------------------------- /python/ndcurves/namespace.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/python/ndcurves/namespace.cpp -------------------------------------------------------------------------------- /python/ndcurves/namespace.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/python/ndcurves/namespace.h -------------------------------------------------------------------------------- /python/ndcurves/optimization.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/python/ndcurves/optimization.py -------------------------------------------------------------------------------- /python/ndcurves/optimization_python.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/python/ndcurves/optimization_python.cpp -------------------------------------------------------------------------------- /python/ndcurves/optimization_python.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/python/ndcurves/optimization_python.h -------------------------------------------------------------------------------- /python/ndcurves/plot.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/python/ndcurves/plot.py -------------------------------------------------------------------------------- /python/ndcurves/python_variables.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/python/ndcurves/python_variables.cpp -------------------------------------------------------------------------------- /python/ndcurves/python_variables.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/python/ndcurves/python_variables.h -------------------------------------------------------------------------------- /python/test/notebook.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/python/test/notebook.py -------------------------------------------------------------------------------- /python/test/optimization.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/python/test/optimization.py -------------------------------------------------------------------------------- /python/test/registration.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/python/test/registration.py -------------------------------------------------------------------------------- /python/test/sandbox/fit.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/python/test/sandbox/fit.py -------------------------------------------------------------------------------- /python/test/sandbox/qp_traj/convex_hull.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/python/test/sandbox/qp_traj/convex_hull.py -------------------------------------------------------------------------------- /python/test/sandbox/qp_traj/plot_cord.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/python/test/sandbox/qp_traj/plot_cord.py -------------------------------------------------------------------------------- /python/test/sandbox/qp_traj/qp.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/python/test/sandbox/qp_traj/qp.py -------------------------------------------------------------------------------- /python/test/sandbox/qp_traj/qp_cord.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/python/test/sandbox/qp_traj/qp_cord.py -------------------------------------------------------------------------------- /python/test/sandbox/qp_traj/test_cord.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/python/test/sandbox/qp_traj/test_cord.py -------------------------------------------------------------------------------- /python/test/sandbox/qp_traj/varBezier.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/python/test/sandbox/qp_traj/varBezier.py -------------------------------------------------------------------------------- /python/test/sandbox/test.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/python/test/sandbox/test.ipynb -------------------------------------------------------------------------------- /python/test/sandbox/test_var.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/python/test/sandbox/test_var.py -------------------------------------------------------------------------------- /python/test/sandbox/varBezier.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/python/test/sandbox/varBezier.py -------------------------------------------------------------------------------- /python/test/test-constant.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/python/test/test-constant.py -------------------------------------------------------------------------------- /python/test/test-curve-constraints.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/python/test/test-curve-constraints.py -------------------------------------------------------------------------------- /python/test/test-minjerk.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/python/test/test-minjerk.py -------------------------------------------------------------------------------- /python/test/test-sinusoidal.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/python/test/test-sinusoidal.py -------------------------------------------------------------------------------- /python/test/test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/python/test/test.py -------------------------------------------------------------------------------- /tests/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/tests/CMakeLists.txt -------------------------------------------------------------------------------- /tests/Main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/tests/Main.cpp -------------------------------------------------------------------------------- /tests/data/discrete_points_acc.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/tests/data/discrete_points_acc.txt -------------------------------------------------------------------------------- /tests/data/discrete_points_error.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/tests/data/discrete_points_error.txt -------------------------------------------------------------------------------- /tests/data/discrete_points_pos.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/tests/data/discrete_points_pos.txt -------------------------------------------------------------------------------- /tests/data/discrete_points_vel.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/tests/data/discrete_points_vel.txt -------------------------------------------------------------------------------- /tests/data/test.pb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/tests/data/test.pb -------------------------------------------------------------------------------- /tests/load_problem.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/tests/load_problem.h -------------------------------------------------------------------------------- /tests/test-constant.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/tests/test-constant.cpp -------------------------------------------------------------------------------- /tests/test-curve-constraints.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/tests/test-curve-constraints.cpp -------------------------------------------------------------------------------- /tests/test-minjerk.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/tests/test-minjerk.cpp -------------------------------------------------------------------------------- /tests/test-operations.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/tests/test-operations.cpp -------------------------------------------------------------------------------- /tests/test-polynomial.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/tests/test-polynomial.cpp -------------------------------------------------------------------------------- /tests/test-se3.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/tests/test-se3.cpp -------------------------------------------------------------------------------- /tests/test-sinusoidal-serialization.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/tests/test-sinusoidal-serialization.cpp -------------------------------------------------------------------------------- /tests/test-sinusoidal.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/tests/test-sinusoidal.cpp -------------------------------------------------------------------------------- /tests/test-so3-smooth.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loco-3d/ndcurves/HEAD/tests/test-so3-smooth.cpp --------------------------------------------------------------------------------