boost.cxx 0.0.2 → 1.90.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -2
- package/boost/cast.hpp +20 -0
- package/boost/numeric/conversion/bounds.hpp +24 -0
- package/boost/numeric/conversion/cast.hpp +61 -0
- package/boost/numeric/conversion/conversion_traits.hpp +32 -0
- package/boost/numeric/conversion/converter.hpp +68 -0
- package/boost/numeric/conversion/converter_policies.hpp +194 -0
- package/boost/numeric/conversion/detail/bounds.hpp +58 -0
- package/boost/numeric/conversion/detail/conversion_traits.hpp +97 -0
- package/boost/numeric/conversion/detail/converter.hpp +593 -0
- package/boost/numeric/conversion/detail/int_float_mixture.hpp +72 -0
- package/boost/numeric/conversion/detail/is_subranged.hpp +234 -0
- package/boost/numeric/conversion/detail/meta.hpp +120 -0
- package/boost/numeric/conversion/detail/numeric_cast_traits.hpp +138 -0
- package/boost/numeric/conversion/detail/old_numeric_cast.hpp +308 -0
- package/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp +1741 -0
- package/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp +347 -0
- package/boost/numeric/conversion/detail/sign_mixture.hpp +72 -0
- package/boost/numeric/conversion/detail/udt_builtin_mixture.hpp +69 -0
- package/boost/numeric/conversion/int_float_mixture.hpp +30 -0
- package/boost/numeric/conversion/int_float_mixture_enum.hpp +29 -0
- package/boost/numeric/conversion/is_subranged.hpp +27 -0
- package/boost/numeric/conversion/numeric_cast_traits.hpp +31 -0
- package/boost/numeric/conversion/sign_mixture.hpp +30 -0
- package/boost/numeric/conversion/sign_mixture_enum.hpp +29 -0
- package/boost/numeric/conversion/udt_builtin_mixture.hpp +28 -0
- package/boost/numeric/conversion/udt_builtin_mixture_enum.hpp +26 -0
- package/boost/numeric/interval/arith.hpp +305 -0
- package/boost/numeric/interval/arith2.hpp +304 -0
- package/boost/numeric/interval/arith3.hpp +69 -0
- package/boost/numeric/interval/checking.hpp +130 -0
- package/boost/numeric/interval/compare/certain.hpp +113 -0
- package/boost/numeric/interval/compare/explicit.hpp +248 -0
- package/boost/numeric/interval/compare/lexicographic.hpp +122 -0
- package/boost/numeric/interval/compare/possible.hpp +113 -0
- package/boost/numeric/interval/compare/set.hpp +101 -0
- package/boost/numeric/interval/compare/tribool.hpp +138 -0
- package/boost/numeric/interval/compare.hpp +19 -0
- package/boost/numeric/interval/constants.hpp +85 -0
- package/boost/numeric/interval/detail/alpha_rounding_control.hpp +113 -0
- package/boost/numeric/interval/detail/bcc_rounding_control.hpp +57 -0
- package/boost/numeric/interval/detail/bugs.hpp +48 -0
- package/boost/numeric/interval/detail/c99_rounding_control.hpp +50 -0
- package/boost/numeric/interval/detail/c99sub_rounding_control.hpp +43 -0
- package/boost/numeric/interval/detail/division.hpp +194 -0
- package/boost/numeric/interval/detail/ia64_rounding_control.hpp +83 -0
- package/boost/numeric/interval/detail/interval_prototype.hpp +41 -0
- package/boost/numeric/interval/detail/msvc_rounding_control.hpp +113 -0
- package/boost/numeric/interval/detail/ppc_rounding_control.hpp +99 -0
- package/boost/numeric/interval/detail/sparc_rounding_control.hpp +112 -0
- package/boost/numeric/interval/detail/test_input.hpp +76 -0
- package/boost/numeric/interval/detail/x86_rounding_control.hpp +108 -0
- package/boost/numeric/interval/detail/x86gcc_rounding_control.hpp +51 -0
- package/boost/numeric/interval/ext/integer.hpp +70 -0
- package/boost/numeric/interval/ext/x86_fast_rounding_control.hpp +70 -0
- package/boost/numeric/interval/hw_rounding.hpp +73 -0
- package/boost/numeric/interval/interval.hpp +450 -0
- package/boost/numeric/interval/io.hpp +41 -0
- package/boost/numeric/interval/limits.hpp +49 -0
- package/boost/numeric/interval/policies.hpp +75 -0
- package/boost/numeric/interval/rounded_arith.hpp +120 -0
- package/boost/numeric/interval/rounded_transc.hpp +140 -0
- package/boost/numeric/interval/rounding.hpp +101 -0
- package/boost/numeric/interval/transc.hpp +232 -0
- package/boost/numeric/interval/utility.hpp +335 -0
- package/boost/numeric/interval/utility_fwd.hpp +172 -0
- package/boost/numeric/interval.hpp +32 -0
- package/boost/numeric/odeint/algebra/algebra_dispatcher.hpp +86 -0
- package/boost/numeric/odeint/algebra/array_algebra.hpp +293 -0
- package/boost/numeric/odeint/algebra/default_operations.hpp +599 -0
- package/boost/numeric/odeint/algebra/detail/extract_value_type.hpp +51 -0
- package/boost/numeric/odeint/algebra/detail/for_each.hpp +165 -0
- package/boost/numeric/odeint/algebra/detail/macros.hpp +35 -0
- package/boost/numeric/odeint/algebra/detail/norm_inf.hpp +46 -0
- package/boost/numeric/odeint/algebra/fusion_algebra.hpp +216 -0
- package/boost/numeric/odeint/algebra/fusion_algebra_dispatcher.hpp +48 -0
- package/boost/numeric/odeint/algebra/multi_array_algebra.hpp +146 -0
- package/boost/numeric/odeint/algebra/norm_result_type.hpp +33 -0
- package/boost/numeric/odeint/algebra/operations_dispatcher.hpp +41 -0
- package/boost/numeric/odeint/algebra/range_algebra.hpp +142 -0
- package/boost/numeric/odeint/algebra/vector_space_algebra.hpp +175 -0
- package/boost/numeric/odeint/config.hpp +53 -0
- package/boost/numeric/odeint/external/blaze/blaze_algebra_dispatcher.hpp +55 -0
- package/boost/numeric/odeint/external/blaze/blaze_resize.hpp +64 -0
- package/boost/numeric/odeint/external/compute/compute.hpp +27 -0
- package/boost/numeric/odeint/external/compute/compute_algebra.hpp +65 -0
- package/boost/numeric/odeint/external/compute/compute_algebra_dispatcher.hpp +41 -0
- package/boost/numeric/odeint/external/compute/compute_operations.hpp +198 -0
- package/boost/numeric/odeint/external/compute/compute_operations_dispatcher.hpp +44 -0
- package/boost/numeric/odeint/external/compute/compute_resize.hpp +92 -0
- package/boost/numeric/odeint/external/eigen/eigen.hpp +27 -0
- package/boost/numeric/odeint/external/eigen/eigen_algebra.hpp +98 -0
- package/boost/numeric/odeint/external/eigen/eigen_algebra_dispatcher.hpp +49 -0
- package/boost/numeric/odeint/external/eigen/eigen_resize.hpp +103 -0
- package/boost/numeric/odeint/external/gsl/gsl_wrapper.hpp +228 -0
- package/boost/numeric/odeint/external/mkl/mkl_operations.hpp +181 -0
- package/boost/numeric/odeint/external/mpi/mpi.hpp +25 -0
- package/boost/numeric/odeint/external/mpi/mpi_nested_algebra.hpp +62 -0
- package/boost/numeric/odeint/external/mpi/mpi_state.hpp +113 -0
- package/boost/numeric/odeint/external/mpi/mpi_vector_state.hpp +95 -0
- package/boost/numeric/odeint/external/mtl4/implicit_euler_mtl4.hpp +161 -0
- package/boost/numeric/odeint/external/mtl4/mtl4.hpp +23 -0
- package/boost/numeric/odeint/external/mtl4/mtl4_algebra_dispatcher.hpp +99 -0
- package/boost/numeric/odeint/external/mtl4/mtl4_resize.hpp +134 -0
- package/boost/numeric/odeint/external/nt2/nt2_algebra_dispatcher.hpp +25 -0
- package/boost/numeric/odeint/external/nt2/nt2_copy.hpp +33 -0
- package/boost/numeric/odeint/external/nt2/nt2_norm_inf.hpp +31 -0
- package/boost/numeric/odeint/external/nt2/nt2_resize.hpp +54 -0
- package/boost/numeric/odeint/external/openmp/openmp.hpp +31 -0
- package/boost/numeric/odeint/external/openmp/openmp_nested_algebra.hpp +281 -0
- package/boost/numeric/odeint/external/openmp/openmp_range_algebra.hpp +276 -0
- package/boost/numeric/odeint/external/openmp/openmp_state.hpp +172 -0
- package/boost/numeric/odeint/external/thrust/thrust.hpp +27 -0
- package/boost/numeric/odeint/external/thrust/thrust_algebra.hpp +217 -0
- package/boost/numeric/odeint/external/thrust/thrust_algebra_dispatcher.hpp +118 -0
- package/boost/numeric/odeint/external/thrust/thrust_operations.hpp +233 -0
- package/boost/numeric/odeint/external/thrust/thrust_operations_dispatcher.hpp +118 -0
- package/boost/numeric/odeint/external/thrust/thrust_resize.hpp +197 -0
- package/boost/numeric/odeint/external/vexcl/vexcl.hpp +28 -0
- package/boost/numeric/odeint/external/vexcl/vexcl_abs.hpp +61 -0
- package/boost/numeric/odeint/external/vexcl/vexcl_algebra_dispatcher.hpp +51 -0
- package/boost/numeric/odeint/external/vexcl/vexcl_copy.hpp +55 -0
- package/boost/numeric/odeint/external/vexcl/vexcl_norm_inf.hpp +68 -0
- package/boost/numeric/odeint/external/vexcl/vexcl_resize.hpp +96 -0
- package/boost/numeric/odeint/external/vexcl/vexcl_same_instance.hpp +58 -0
- package/boost/numeric/odeint/external/viennacl/viennacl_operations.hpp +226 -0
- package/boost/numeric/odeint/external/viennacl/viennacl_resize.hpp +68 -0
- package/boost/numeric/odeint/integrate/check_adapter.hpp +222 -0
- package/boost/numeric/odeint/integrate/detail/functors.hpp +70 -0
- package/boost/numeric/odeint/integrate/detail/integrate_adaptive.hpp +161 -0
- package/boost/numeric/odeint/integrate/detail/integrate_const.hpp +167 -0
- package/boost/numeric/odeint/integrate/detail/integrate_n_steps.hpp +161 -0
- package/boost/numeric/odeint/integrate/detail/integrate_times.hpp +179 -0
- package/boost/numeric/odeint/integrate/integrate.hpp +133 -0
- package/boost/numeric/odeint/integrate/integrate_adaptive.hpp +127 -0
- package/boost/numeric/odeint/integrate/integrate_const.hpp +195 -0
- package/boost/numeric/odeint/integrate/integrate_n_steps.hpp +178 -0
- package/boost/numeric/odeint/integrate/integrate_times.hpp +220 -0
- package/boost/numeric/odeint/integrate/max_step_checker.hpp +114 -0
- package/boost/numeric/odeint/integrate/null_observer.hpp +38 -0
- package/boost/numeric/odeint/integrate/observer_collection.hpp +55 -0
- package/boost/numeric/odeint/iterator/adaptive_iterator.hpp +183 -0
- package/boost/numeric/odeint/iterator/adaptive_time_iterator.hpp +175 -0
- package/boost/numeric/odeint/iterator/const_step_iterator.hpp +180 -0
- package/boost/numeric/odeint/iterator/const_step_time_iterator.hpp +173 -0
- package/boost/numeric/odeint/iterator/detail/ode_iterator_base.hpp +199 -0
- package/boost/numeric/odeint/iterator/impl/adaptive_iterator_impl.hpp +251 -0
- package/boost/numeric/odeint/iterator/impl/const_step_iterator_impl.hpp +228 -0
- package/boost/numeric/odeint/iterator/impl/n_step_iterator_impl.hpp +239 -0
- package/boost/numeric/odeint/iterator/impl/times_iterator_impl.hpp +369 -0
- package/boost/numeric/odeint/iterator/integrate/detail/functors.hpp +70 -0
- package/boost/numeric/odeint/iterator/integrate/detail/integrate_adaptive.hpp +121 -0
- package/boost/numeric/odeint/iterator/integrate/detail/integrate_const.hpp +111 -0
- package/boost/numeric/odeint/iterator/integrate/detail/integrate_n_steps.hpp +107 -0
- package/boost/numeric/odeint/iterator/integrate/detail/integrate_times.hpp +67 -0
- package/boost/numeric/odeint/iterator/integrate/integrate.hpp +111 -0
- package/boost/numeric/odeint/iterator/integrate/integrate_adaptive.hpp +127 -0
- package/boost/numeric/odeint/iterator/integrate/integrate_const.hpp +158 -0
- package/boost/numeric/odeint/iterator/integrate/integrate_n_steps.hpp +123 -0
- package/boost/numeric/odeint/iterator/integrate/integrate_times.hpp +131 -0
- package/boost/numeric/odeint/iterator/integrate/null_observer.hpp +38 -0
- package/boost/numeric/odeint/iterator/integrate/observer_collection.hpp +55 -0
- package/boost/numeric/odeint/iterator/n_step_iterator.hpp +168 -0
- package/boost/numeric/odeint/iterator/n_step_time_iterator.hpp +169 -0
- package/boost/numeric/odeint/iterator/times_iterator.hpp +189 -0
- package/boost/numeric/odeint/iterator/times_time_iterator.hpp +193 -0
- package/boost/numeric/odeint/stepper/adams_bashforth.hpp +418 -0
- package/boost/numeric/odeint/stepper/adams_bashforth_moulton.hpp +313 -0
- package/boost/numeric/odeint/stepper/adams_moulton.hpp +201 -0
- package/boost/numeric/odeint/stepper/adaptive_adams_bashforth_moulton.hpp +237 -0
- package/boost/numeric/odeint/stepper/base/algebra_stepper_base.hpp +91 -0
- package/boost/numeric/odeint/stepper/base/explicit_error_stepper_base.hpp +588 -0
- package/boost/numeric/odeint/stepper/base/explicit_error_stepper_fsal_base.hpp +677 -0
- package/boost/numeric/odeint/stepper/base/explicit_stepper_base.hpp +415 -0
- package/boost/numeric/odeint/stepper/base/symplectic_rkn_stepper_base.hpp +431 -0
- package/boost/numeric/odeint/stepper/bulirsch_stoer.hpp +642 -0
- package/boost/numeric/odeint/stepper/bulirsch_stoer_dense_out.hpp +838 -0
- package/boost/numeric/odeint/stepper/controlled_adams_bashforth_moulton.hpp +322 -0
- package/boost/numeric/odeint/stepper/controlled_runge_kutta.hpp +1018 -0
- package/boost/numeric/odeint/stepper/controlled_step_result.hpp +42 -0
- package/boost/numeric/odeint/stepper/dense_output_runge_kutta.hpp +476 -0
- package/boost/numeric/odeint/stepper/detail/adams_bashforth_call_algebra.hpp +148 -0
- package/boost/numeric/odeint/stepper/detail/adams_bashforth_coefficients.hpp +168 -0
- package/boost/numeric/odeint/stepper/detail/adams_moulton_call_algebra.hpp +148 -0
- package/boost/numeric/odeint/stepper/detail/adams_moulton_coefficients.hpp +168 -0
- package/boost/numeric/odeint/stepper/detail/adaptive_adams_coefficients.hpp +207 -0
- package/boost/numeric/odeint/stepper/detail/generic_rk_algorithm.hpp +247 -0
- package/boost/numeric/odeint/stepper/detail/generic_rk_call_algebra.hpp +263 -0
- package/boost/numeric/odeint/stepper/detail/generic_rk_operations.hpp +252 -0
- package/boost/numeric/odeint/stepper/detail/pid_step_adjuster.hpp +199 -0
- package/boost/numeric/odeint/stepper/detail/pid_step_adjuster_coefficients.hpp +180 -0
- package/boost/numeric/odeint/stepper/detail/rotating_buffer.hpp +84 -0
- package/boost/numeric/odeint/stepper/euler.hpp +166 -0
- package/boost/numeric/odeint/stepper/explicit_error_generic_rk.hpp +255 -0
- package/boost/numeric/odeint/stepper/explicit_generic_rk.hpp +246 -0
- package/boost/numeric/odeint/stepper/extrapolation_stepper.hpp +288 -0
- package/boost/numeric/odeint/stepper/generation/generation_controlled_adams_bashforth_moulton.hpp +59 -0
- package/boost/numeric/odeint/stepper/generation/generation_controlled_runge_kutta.hpp +61 -0
- package/boost/numeric/odeint/stepper/generation/generation_dense_output_runge_kutta.hpp +65 -0
- package/boost/numeric/odeint/stepper/generation/generation_rosenbrock4.hpp +79 -0
- package/boost/numeric/odeint/stepper/generation/generation_runge_kutta_cash_karp54.hpp +47 -0
- package/boost/numeric/odeint/stepper/generation/generation_runge_kutta_cash_karp54_classic.hpp +48 -0
- package/boost/numeric/odeint/stepper/generation/generation_runge_kutta_dopri5.hpp +56 -0
- package/boost/numeric/odeint/stepper/generation/generation_runge_kutta_fehlberg78.hpp +46 -0
- package/boost/numeric/odeint/stepper/generation/make_controlled.hpp +103 -0
- package/boost/numeric/odeint/stepper/generation/make_dense_output.hpp +100 -0
- package/boost/numeric/odeint/stepper/generation.hpp +37 -0
- package/boost/numeric/odeint/stepper/implicit_euler.hpp +170 -0
- package/boost/numeric/odeint/stepper/modified_midpoint.hpp +315 -0
- package/boost/numeric/odeint/stepper/rosenbrock4.hpp +346 -0
- package/boost/numeric/odeint/stepper/rosenbrock4_controller.hpp +240 -0
- package/boost/numeric/odeint/stepper/rosenbrock4_dense_output.hpp +204 -0
- package/boost/numeric/odeint/stepper/runge_kutta4.hpp +181 -0
- package/boost/numeric/odeint/stepper/runge_kutta4_classic.hpp +232 -0
- package/boost/numeric/odeint/stepper/runge_kutta_cash_karp54.hpp +231 -0
- package/boost/numeric/odeint/stepper/runge_kutta_cash_karp54_classic.hpp +289 -0
- package/boost/numeric/odeint/stepper/runge_kutta_dopri5.hpp +403 -0
- package/boost/numeric/odeint/stepper/runge_kutta_fehlberg78.hpp +374 -0
- package/boost/numeric/odeint/stepper/stepper_categories.hpp +66 -0
- package/boost/numeric/odeint/stepper/symplectic_euler.hpp +136 -0
- package/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_m4_mclachlan.hpp +160 -0
- package/boost/numeric/odeint/stepper/symplectic_rkn_sb3a_mclachlan.hpp +162 -0
- package/boost/numeric/odeint/stepper/velocity_verlet.hpp +375 -0
- package/boost/numeric/odeint/tools/assert.hpp +30 -0
- package/boost/numeric/odeint/tools/is_standalone.hpp +21 -0
- package/boost/numeric/odeint/tools/traits.hpp +39 -0
- package/boost/numeric/odeint/util/bind.hpp +35 -0
- package/boost/numeric/odeint/util/copy.hpp +88 -0
- package/boost/numeric/odeint/util/detail/is_range.hpp +127 -0
- package/boost/numeric/odeint/util/detail/less_with_sign.hpp +78 -0
- package/boost/numeric/odeint/util/is_pair.hpp +42 -0
- package/boost/numeric/odeint/util/is_resizeable.hpp +84 -0
- package/boost/numeric/odeint/util/multi_array_adaption.hpp +131 -0
- package/boost/numeric/odeint/util/n_ary_helper.hpp +96 -0
- package/boost/numeric/odeint/util/odeint_error.hpp +77 -0
- package/boost/numeric/odeint/util/resize.hpp +120 -0
- package/boost/numeric/odeint/util/resizer.hpp +94 -0
- package/boost/numeric/odeint/util/same_instance.hpp +56 -0
- package/boost/numeric/odeint/util/same_size.hpp +117 -0
- package/boost/numeric/odeint/util/split.hpp +64 -0
- package/boost/numeric/odeint/util/split_adaptor.hpp +103 -0
- package/boost/numeric/odeint/util/state_wrapper.hpp +50 -0
- package/boost/numeric/odeint/util/stepper_traits.hpp +63 -0
- package/boost/numeric/odeint/util/ublas_matrix_expression.patch +6 -0
- package/boost/numeric/odeint/util/ublas_wrapper.hpp +297 -0
- package/boost/numeric/odeint/util/unit_helper.hpp +151 -0
- package/boost/numeric/odeint/util/unwrap_reference.hpp +141 -0
- package/boost/numeric/odeint/version.hpp +55 -0
- package/boost/numeric/odeint.hpp +87 -0
- package/boost/numeric/ublas/assignment.hpp +1288 -0
- package/boost/numeric/ublas/banded.hpp +2372 -0
- package/boost/numeric/ublas/blas.hpp +499 -0
- package/boost/numeric/ublas/detail/concepts.hpp +1465 -0
- package/boost/numeric/ublas/detail/config.hpp +304 -0
- package/boost/numeric/ublas/detail/definitions.hpp +212 -0
- package/boost/numeric/ublas/detail/documentation.hpp +33 -0
- package/boost/numeric/ublas/detail/duff.hpp +56 -0
- package/boost/numeric/ublas/detail/iterator.hpp +1448 -0
- package/boost/numeric/ublas/detail/matrix_assign.hpp +1785 -0
- package/boost/numeric/ublas/detail/raw.hpp +878 -0
- package/boost/numeric/ublas/detail/returntype_deduction.hpp +174 -0
- package/boost/numeric/ublas/detail/temporary.hpp +33 -0
- package/boost/numeric/ublas/detail/vector_assign.hpp +609 -0
- package/boost/numeric/ublas/doxydoc.hpp +58 -0
- package/boost/numeric/ublas/exception.hpp +297 -0
- package/boost/numeric/ublas/experimental/sparse_view.hpp +317 -0
- package/boost/numeric/ublas/expression_types.hpp +506 -0
- package/boost/numeric/ublas/functional.hpp +2112 -0
- package/boost/numeric/ublas/fwd.hpp +229 -0
- package/boost/numeric/ublas/hermitian.hpp +2633 -0
- package/boost/numeric/ublas/io.hpp +355 -0
- package/boost/numeric/ublas/lu.hpp +350 -0
- package/boost/numeric/ublas/matrix.hpp +6013 -0
- package/boost/numeric/ublas/matrix_expression.hpp +5693 -0
- package/boost/numeric/ublas/matrix_proxy.hpp +5457 -0
- package/boost/numeric/ublas/matrix_sparse.hpp +5773 -0
- package/boost/numeric/ublas/matrix_vector.hpp +406 -0
- package/boost/numeric/ublas/opencl/elementwise.hpp +508 -0
- package/boost/numeric/ublas/opencl/library.hpp +38 -0
- package/boost/numeric/ublas/opencl/matrix.hpp +123 -0
- package/boost/numeric/ublas/opencl/misc.hpp +182 -0
- package/boost/numeric/ublas/opencl/operations.hpp +18 -0
- package/boost/numeric/ublas/opencl/prod.hpp +364 -0
- package/boost/numeric/ublas/opencl/transpose.hpp +142 -0
- package/boost/numeric/ublas/opencl/vector.hpp +90 -0
- package/boost/numeric/ublas/opencl.hpp +16 -0
- package/boost/numeric/ublas/operation/begin.hpp +318 -0
- package/boost/numeric/ublas/operation/c_array.hpp +41 -0
- package/boost/numeric/ublas/operation/end.hpp +318 -0
- package/boost/numeric/ublas/operation/num_columns.hpp +45 -0
- package/boost/numeric/ublas/operation/num_rows.hpp +44 -0
- package/boost/numeric/ublas/operation/size.hpp +350 -0
- package/boost/numeric/ublas/operation.hpp +830 -0
- package/boost/numeric/ublas/operation_blocked.hpp +266 -0
- package/boost/numeric/ublas/operation_sparse.hpp +198 -0
- package/boost/numeric/ublas/operations.hpp +26 -0
- package/boost/numeric/ublas/storage.hpp +2131 -0
- package/boost/numeric/ublas/storage_sparse.hpp +578 -0
- package/boost/numeric/ublas/symmetric.hpp +2309 -0
- package/boost/numeric/ublas/tags.hpp +37 -0
- package/boost/numeric/ublas/tensor/algorithms.hpp +345 -0
- package/boost/numeric/ublas/tensor/expression.hpp +181 -0
- package/boost/numeric/ublas/tensor/expression_evaluation.hpp +288 -0
- package/boost/numeric/ublas/tensor/extents.hpp +335 -0
- package/boost/numeric/ublas/tensor/functions.hpp +558 -0
- package/boost/numeric/ublas/tensor/index.hpp +89 -0
- package/boost/numeric/ublas/tensor/multi_index.hpp +110 -0
- package/boost/numeric/ublas/tensor/multi_index_utility.hpp +364 -0
- package/boost/numeric/ublas/tensor/multiplication.hpp +945 -0
- package/boost/numeric/ublas/tensor/operators_arithmetic.hpp +244 -0
- package/boost/numeric/ublas/tensor/operators_comparison.hpp +175 -0
- package/boost/numeric/ublas/tensor/ostream.hpp +122 -0
- package/boost/numeric/ublas/tensor/storage_traits.hpp +84 -0
- package/boost/numeric/ublas/tensor/strides.hpp +251 -0
- package/boost/numeric/ublas/tensor/tensor.hpp +734 -0
- package/boost/numeric/ublas/tensor.hpp +26 -0
- package/boost/numeric/ublas/traits/c_array.hpp +110 -0
- package/boost/numeric/ublas/traits/const_iterator_type.hpp +127 -0
- package/boost/numeric/ublas/traits/iterator_type.hpp +126 -0
- package/boost/numeric/ublas/traits.hpp +753 -0
- package/boost/numeric/ublas/triangular.hpp +2775 -0
- package/boost/numeric/ublas/vector.hpp +2947 -0
- package/boost/numeric/ublas/vector_expression.hpp +1762 -0
- package/boost/numeric/ublas/vector_of_vector.hpp +1347 -0
- package/boost/numeric/ublas/vector_proxy.hpp +1697 -0
- package/boost/numeric/ublas/vector_sparse.hpp +2246 -0
- package/package.json +3 -7
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
/*
|
|
2
|
+
[auto_generated]
|
|
3
|
+
boost/numeric/odeint/stepper/extrapolation_stepper.hpp
|
|
4
|
+
|
|
5
|
+
[begin_description]
|
|
6
|
+
extrapolation stepper
|
|
7
|
+
[end_description]
|
|
8
|
+
|
|
9
|
+
Copyright 2009-2015 Mario Mulansky
|
|
10
|
+
|
|
11
|
+
Distributed under the Boost Software License, Version 1.0.
|
|
12
|
+
(See accompanying file LICENSE_1_0.txt or
|
|
13
|
+
copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
#ifndef BOOST_NUMERIC_ODEINT_STEPPER_EXTRAPOLATION_STEPPER_HPP_INCLUDED
|
|
17
|
+
#define BOOST_NUMERIC_ODEINT_STEPPER_EXTRAPOLATION_STEPPER_HPP_INCLUDED
|
|
18
|
+
|
|
19
|
+
#include <iostream>
|
|
20
|
+
|
|
21
|
+
#include <algorithm>
|
|
22
|
+
|
|
23
|
+
#include <boost/config.hpp> // for min/max guidelines
|
|
24
|
+
#include <boost/static_assert.hpp>
|
|
25
|
+
|
|
26
|
+
#include <boost/numeric/odeint/util/bind.hpp>
|
|
27
|
+
#include <boost/numeric/odeint/util/unwrap_reference.hpp>
|
|
28
|
+
|
|
29
|
+
#include <boost/numeric/odeint/stepper/base/explicit_error_stepper_base.hpp>
|
|
30
|
+
#include <boost/numeric/odeint/stepper/modified_midpoint.hpp>
|
|
31
|
+
#include <boost/numeric/odeint/stepper/controlled_step_result.hpp>
|
|
32
|
+
#include <boost/numeric/odeint/algebra/range_algebra.hpp>
|
|
33
|
+
#include <boost/numeric/odeint/algebra/default_operations.hpp>
|
|
34
|
+
#include <boost/numeric/odeint/algebra/algebra_dispatcher.hpp>
|
|
35
|
+
#include <boost/numeric/odeint/algebra/operations_dispatcher.hpp>
|
|
36
|
+
|
|
37
|
+
#include <boost/numeric/odeint/util/state_wrapper.hpp>
|
|
38
|
+
#include <boost/numeric/odeint/util/is_resizeable.hpp>
|
|
39
|
+
#include <boost/numeric/odeint/util/resizer.hpp>
|
|
40
|
+
#include <boost/numeric/odeint/util/unit_helper.hpp>
|
|
41
|
+
#include <boost/numeric/odeint/util/detail/less_with_sign.hpp>
|
|
42
|
+
|
|
43
|
+
namespace boost
|
|
44
|
+
{
|
|
45
|
+
namespace numeric
|
|
46
|
+
{
|
|
47
|
+
namespace odeint
|
|
48
|
+
{
|
|
49
|
+
|
|
50
|
+
template < unsigned short Order, class State, class Value = double,
|
|
51
|
+
class Deriv = State, class Time = Value,
|
|
52
|
+
class Algebra = typename algebra_dispatcher< State >::algebra_type,
|
|
53
|
+
class Operations =
|
|
54
|
+
typename operations_dispatcher< State >::operations_type,
|
|
55
|
+
class Resizer = initially_resizer >
|
|
56
|
+
#ifndef DOXYGEN_SKIP
|
|
57
|
+
class extrapolation_stepper
|
|
58
|
+
: public explicit_error_stepper_base<
|
|
59
|
+
extrapolation_stepper< Order, State, Value, Deriv, Time, Algebra,
|
|
60
|
+
Operations, Resizer >,
|
|
61
|
+
Order, Order, Order - 2, State, Value, Deriv, Time, Algebra,
|
|
62
|
+
Operations, Resizer >
|
|
63
|
+
#else
|
|
64
|
+
class extrapolation_stepper : public explicit_error_stepper_base
|
|
65
|
+
#endif
|
|
66
|
+
{
|
|
67
|
+
|
|
68
|
+
private:
|
|
69
|
+
// check for Order being odd
|
|
70
|
+
static_assert(
|
|
71
|
+
( ( Order % 2 ) == 0 ) && ( Order > 2 ),
|
|
72
|
+
"extrapolation_stepper requires even Order larger than 2" );
|
|
73
|
+
|
|
74
|
+
public:
|
|
75
|
+
#ifndef DOXYGEN_SKIP
|
|
76
|
+
typedef explicit_error_stepper_base<
|
|
77
|
+
extrapolation_stepper< Order, State, Value, Deriv, Time, Algebra,
|
|
78
|
+
Operations, Resizer >,
|
|
79
|
+
Order, Order, Order - 2, State, Value, Deriv, Time, Algebra, Operations,
|
|
80
|
+
Resizer > stepper_base_type;
|
|
81
|
+
#else
|
|
82
|
+
typedef explicit_error_stepper_base< extrapolation_stepper< ... >, ... >
|
|
83
|
+
stepper_base_type;
|
|
84
|
+
#endif
|
|
85
|
+
|
|
86
|
+
typedef typename stepper_base_type::state_type state_type;
|
|
87
|
+
typedef typename stepper_base_type::value_type value_type;
|
|
88
|
+
typedef typename stepper_base_type::deriv_type deriv_type;
|
|
89
|
+
typedef typename stepper_base_type::time_type time_type;
|
|
90
|
+
typedef typename stepper_base_type::algebra_type algebra_type;
|
|
91
|
+
typedef typename stepper_base_type::operations_type operations_type;
|
|
92
|
+
typedef typename stepper_base_type::resizer_type resizer_type;
|
|
93
|
+
|
|
94
|
+
#ifndef DOXYGEN_SKIP
|
|
95
|
+
typedef typename stepper_base_type::stepper_type stepper_type;
|
|
96
|
+
typedef typename stepper_base_type::wrapped_state_type wrapped_state_type;
|
|
97
|
+
typedef typename stepper_base_type::wrapped_deriv_type wrapped_deriv_type;
|
|
98
|
+
|
|
99
|
+
typedef std::vector< value_type > value_vector;
|
|
100
|
+
typedef std::vector< value_vector > value_matrix;
|
|
101
|
+
typedef std::vector< size_t > int_vector;
|
|
102
|
+
typedef std::vector< wrapped_state_type > state_table_type;
|
|
103
|
+
typedef modified_midpoint< state_type, value_type, deriv_type, time_type,
|
|
104
|
+
algebra_type, operations_type,
|
|
105
|
+
resizer_type > midpoint_stepper_type;
|
|
106
|
+
|
|
107
|
+
#endif // DOXYGEN_SKIP
|
|
108
|
+
|
|
109
|
+
typedef unsigned short order_type;
|
|
110
|
+
static const order_type order_value = stepper_base_type::order_value;
|
|
111
|
+
static const order_type stepper_order_value =
|
|
112
|
+
stepper_base_type::stepper_order_value;
|
|
113
|
+
static const order_type error_order_value =
|
|
114
|
+
stepper_base_type::error_order_value;
|
|
115
|
+
|
|
116
|
+
const static size_t m_k_max = ( order_value - 2 ) / 2;
|
|
117
|
+
|
|
118
|
+
extrapolation_stepper( const algebra_type &algebra = algebra_type() )
|
|
119
|
+
: stepper_base_type( algebra ), m_interval_sequence( m_k_max + 1 ),
|
|
120
|
+
m_coeff( m_k_max + 1 ), m_table( m_k_max )
|
|
121
|
+
{
|
|
122
|
+
for ( unsigned short i = 0; i < m_k_max + 1; i++ )
|
|
123
|
+
{
|
|
124
|
+
m_interval_sequence[i] = 2 * ( i + 1 );
|
|
125
|
+
m_coeff[i].resize( i );
|
|
126
|
+
for ( size_t k = 0; k < i; ++k )
|
|
127
|
+
{
|
|
128
|
+
const value_type r =
|
|
129
|
+
static_cast< value_type >( m_interval_sequence[i] ) /
|
|
130
|
+
static_cast< value_type >( m_interval_sequence[k] );
|
|
131
|
+
m_coeff[i][k] =
|
|
132
|
+
static_cast< value_type >( 1 ) /
|
|
133
|
+
( r * r - static_cast< value_type >(
|
|
134
|
+
1 ) ); // coefficients for extrapolation
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
template < class System, class StateIn, class DerivIn, class StateOut,
|
|
140
|
+
class Err >
|
|
141
|
+
void do_step_impl( System system, const StateIn &in, const DerivIn &dxdt,
|
|
142
|
+
time_type t, StateOut &out, time_type dt, Err &xerr )
|
|
143
|
+
{
|
|
144
|
+
// std::cout << "dt: " << dt << std::endl;
|
|
145
|
+
// normal step
|
|
146
|
+
do_step_impl( system, in, dxdt, t, out, dt );
|
|
147
|
+
|
|
148
|
+
static const value_type val1( 1.0 );
|
|
149
|
+
// additionally, perform the error calculation
|
|
150
|
+
stepper_base_type::m_algebra.for_each3(
|
|
151
|
+
xerr, out, m_table[0].m_v,
|
|
152
|
+
typename operations_type::template scale_sum2<
|
|
153
|
+
value_type, value_type >( val1, -val1 ) );
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
template < class System, class StateInOut, class DerivIn, class Err >
|
|
157
|
+
void do_step_impl_io( System system, StateInOut &inout, const DerivIn &dxdt,
|
|
158
|
+
time_type t, time_type dt, Err &xerr )
|
|
159
|
+
{
|
|
160
|
+
// normal step
|
|
161
|
+
do_step_impl_io( system, inout, dxdt, t, dt );
|
|
162
|
+
|
|
163
|
+
static const value_type val1( 1.0 );
|
|
164
|
+
// additionally, perform the error calculation
|
|
165
|
+
stepper_base_type::m_algebra.for_each3(
|
|
166
|
+
xerr, inout, m_table[0].m_v,
|
|
167
|
+
typename operations_type::template scale_sum2<
|
|
168
|
+
value_type, value_type >( val1, -val1 ) );
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
template < class System, class StateIn, class DerivIn, class StateOut >
|
|
172
|
+
void do_step_impl( System system, const StateIn &in, const DerivIn &dxdt,
|
|
173
|
+
time_type t, StateOut &out, time_type dt )
|
|
174
|
+
{
|
|
175
|
+
m_resizer.adjust_size(in, [this](auto&& arg) { return this->resize_impl<StateIn>(std::forward<decltype(arg)>(arg)); });
|
|
176
|
+
size_t k = 0;
|
|
177
|
+
m_midpoint.set_steps( m_interval_sequence[k] );
|
|
178
|
+
m_midpoint.do_step( system, in, dxdt, t, out, dt );
|
|
179
|
+
for ( k = 1; k <= m_k_max; ++k )
|
|
180
|
+
{
|
|
181
|
+
m_midpoint.set_steps( m_interval_sequence[k] );
|
|
182
|
+
m_midpoint.do_step( system, in, dxdt, t, m_table[k - 1].m_v, dt );
|
|
183
|
+
extrapolate( k, m_table, m_coeff, out );
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
template < class System, class StateInOut, class DerivIn >
|
|
188
|
+
void do_step_impl_io( System system, StateInOut &inout, const DerivIn &dxdt,
|
|
189
|
+
time_type t, time_type dt )
|
|
190
|
+
{
|
|
191
|
+
// special care for inout
|
|
192
|
+
m_xout_resizer.adjust_size(inout, [this](auto&& arg) { return this->resize_m_xout<StateInOut>(std::forward<decltype(arg)>(arg)); });
|
|
193
|
+
do_step_impl( system, inout, dxdt, t, m_xout.m_v, dt );
|
|
194
|
+
boost::numeric::odeint::copy( m_xout.m_v, inout );
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
template < class System, class StateInOut, class DerivIn >
|
|
198
|
+
void do_step_dxdt_impl( System system, StateInOut &x, const DerivIn &dxdt,
|
|
199
|
+
time_type t, time_type dt )
|
|
200
|
+
{
|
|
201
|
+
do_step_impl_io( system , x , dxdt , t , dt );
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
template < class System, class StateIn, class DerivIn, class StateOut >
|
|
205
|
+
void do_step_dxdt_impl( System system, const StateIn &in,
|
|
206
|
+
const DerivIn &dxdt, time_type t, StateOut &out,
|
|
207
|
+
time_type dt )
|
|
208
|
+
{
|
|
209
|
+
do_step_impl( system , in , dxdt , t , out , dt );
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
template < class StateIn > void adjust_size( const StateIn &x )
|
|
214
|
+
{
|
|
215
|
+
resize_impl( x );
|
|
216
|
+
m_midpoint.adjust_size( x );
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
private:
|
|
220
|
+
template < class StateIn > bool resize_impl( const StateIn &x )
|
|
221
|
+
{
|
|
222
|
+
bool resized( false );
|
|
223
|
+
for ( size_t i = 0; i < m_k_max; ++i )
|
|
224
|
+
resized |= adjust_size_by_resizeability(
|
|
225
|
+
m_table[i], x, typename is_resizeable< state_type >::type() );
|
|
226
|
+
return resized;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
template < class StateIn > bool resize_m_xout( const StateIn &x )
|
|
230
|
+
{
|
|
231
|
+
return adjust_size_by_resizeability(
|
|
232
|
+
m_xout, x, typename is_resizeable< state_type >::type() );
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
template < class StateInOut >
|
|
236
|
+
void extrapolate( size_t k, state_table_type &table,
|
|
237
|
+
const value_matrix &coeff, StateInOut &xest )
|
|
238
|
+
/* polynomial extrapolation, see http://www.nr.com/webnotes/nr3web21.pdf
|
|
239
|
+
uses the obtained intermediate results to extrapolate to dt->0
|
|
240
|
+
*/
|
|
241
|
+
{
|
|
242
|
+
static const value_type val1 = static_cast< value_type >( 1.0 );
|
|
243
|
+
|
|
244
|
+
for ( int j = k - 1; j > 0; --j )
|
|
245
|
+
{
|
|
246
|
+
stepper_base_type::m_algebra.for_each3(
|
|
247
|
+
table[j - 1].m_v, table[j].m_v, table[j - 1].m_v,
|
|
248
|
+
typename operations_type::template scale_sum2<
|
|
249
|
+
value_type, value_type >( val1 + coeff[k][j],
|
|
250
|
+
-coeff[k][j] ) );
|
|
251
|
+
}
|
|
252
|
+
stepper_base_type::m_algebra.for_each3(
|
|
253
|
+
xest, table[0].m_v, xest,
|
|
254
|
+
typename operations_type::template scale_sum2<
|
|
255
|
+
value_type, value_type >( val1 + coeff[k][0], -coeff[k][0] ) );
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
private:
|
|
259
|
+
midpoint_stepper_type m_midpoint;
|
|
260
|
+
|
|
261
|
+
resizer_type m_resizer;
|
|
262
|
+
resizer_type m_xout_resizer;
|
|
263
|
+
|
|
264
|
+
int_vector m_interval_sequence; // stores the successive interval counts
|
|
265
|
+
value_matrix m_coeff;
|
|
266
|
+
|
|
267
|
+
wrapped_state_type m_xout;
|
|
268
|
+
state_table_type m_table; // sequence of states for extrapolation
|
|
269
|
+
};
|
|
270
|
+
|
|
271
|
+
/******** DOXYGEN *******/
|
|
272
|
+
|
|
273
|
+
/**
|
|
274
|
+
* \class extrapolation_stepper
|
|
275
|
+
* \brief Extrapolation stepper with configurable order, and error estimation.
|
|
276
|
+
*
|
|
277
|
+
* The extrapolation stepper is a stepper with error estimation and configurable
|
|
278
|
+
* order. The order is given as template parameter and needs to be an _odd_
|
|
279
|
+
* number. The stepper is based on several executions of the modified midpoint
|
|
280
|
+
* method and a Richardson extrapolation. This is essentially the same technique
|
|
281
|
+
* as for bulirsch_stoer, but without the variable order.
|
|
282
|
+
*
|
|
283
|
+
* \note The Order parameter has to be an even number greater 2.
|
|
284
|
+
*/
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
#endif
|
package/boost/numeric/odeint/stepper/generation/generation_controlled_adams_bashforth_moulton.hpp
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/*
|
|
2
|
+
boost/numeric/odeint/stepper/detail/generation_controlled_adams_bashforth_moulton.hpp
|
|
3
|
+
|
|
4
|
+
[begin_description]
|
|
5
|
+
Spezialization of the generation functions for creation of the controlled adams bashforth moulton stepper.
|
|
6
|
+
[end_description]
|
|
7
|
+
|
|
8
|
+
Copyright 2017 Valentin Noah Hartmann
|
|
9
|
+
|
|
10
|
+
Distributed under the Boost Software License, Version 1.0.
|
|
11
|
+
(See accompanying file LICENSE_1_0.txt or
|
|
12
|
+
copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
#ifndef GENERATION_CONTROLLED_ADAMS_BASHFORTH_MOULTON_HPP_INCLUDED
|
|
16
|
+
#define GENERATION_CONTROLLED_ADAMS_BASHFORTH_MOULTON_HPP_INCLUDED
|
|
17
|
+
|
|
18
|
+
#include <boost/numeric/odeint/stepper/adaptive_adams_bashforth_moulton.hpp>
|
|
19
|
+
#include <boost/numeric/odeint/stepper/controlled_adams_bashforth_moulton.hpp>
|
|
20
|
+
#include <boost/numeric/odeint/stepper/generation/make_controlled.hpp>
|
|
21
|
+
|
|
22
|
+
namespace boost {
|
|
23
|
+
namespace numeric {
|
|
24
|
+
namespace odeint {
|
|
25
|
+
|
|
26
|
+
template< size_t Steps, class State , class Value , class Deriv , class Time , class Algebra , class Operations , class Resizer >
|
|
27
|
+
struct get_controller< adaptive_adams_bashforth_moulton< Steps, State , Value , Deriv , Time , Algebra , Operations , Resizer > >
|
|
28
|
+
{
|
|
29
|
+
typedef adaptive_adams_bashforth_moulton<Steps, State, Value, Deriv, Time, Algebra, Operations, Resizer> stepper_type;
|
|
30
|
+
typedef controlled_adams_bashforth_moulton< stepper_type > type;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
// controller factory for controlled_adams_bashforth_moulton
|
|
34
|
+
template< class Stepper >
|
|
35
|
+
struct controller_factory< Stepper , controlled_adams_bashforth_moulton< Stepper > >
|
|
36
|
+
{
|
|
37
|
+
typedef Stepper stepper_type;
|
|
38
|
+
typedef controlled_adams_bashforth_moulton< stepper_type > controller_type;
|
|
39
|
+
typedef typename controller_type::step_adjuster_type step_adjuster_type;
|
|
40
|
+
typedef typename stepper_type::value_type value_type;
|
|
41
|
+
typedef typename stepper_type::value_type time_type;
|
|
42
|
+
|
|
43
|
+
controller_type operator()( value_type abs_error , value_type rel_error , const stepper_type &stepper )
|
|
44
|
+
{
|
|
45
|
+
return controller_type(step_adjuster_type(abs_error, rel_error));
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
controller_type operator()( value_type abs_error , value_type rel_error ,
|
|
49
|
+
time_type max_dt, const stepper_type &stepper )
|
|
50
|
+
{
|
|
51
|
+
return controller_type( step_adjuster_type(abs_error, rel_error, max_dt));
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
#endif
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/*
|
|
2
|
+
[auto_generated]
|
|
3
|
+
boost/numeric/odeint/stepper/generation/generation_controlled_runge_kutta.hpp
|
|
4
|
+
|
|
5
|
+
[begin_description]
|
|
6
|
+
Specialization of the controller factory for the controlled_runge_kutta class.
|
|
7
|
+
[end_description]
|
|
8
|
+
|
|
9
|
+
Copyright 2011-2012 Karsten Ahnert
|
|
10
|
+
Copyright 2011-2012 Mario Mulansky
|
|
11
|
+
|
|
12
|
+
Distributed under the Boost Software License, Version 1.0.
|
|
13
|
+
(See accompanying file LICENSE_1_0.txt or
|
|
14
|
+
copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
#ifndef BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_GENERATION_CONTROLLED_RUNGE_KUTTA_HPP_INCLUDED
|
|
19
|
+
#define BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_GENERATION_CONTROLLED_RUNGE_KUTTA_HPP_INCLUDED
|
|
20
|
+
|
|
21
|
+
#include <boost/numeric/odeint/stepper/controlled_runge_kutta.hpp>
|
|
22
|
+
#include <boost/numeric/odeint/stepper/generation/make_controlled.hpp>
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
namespace boost {
|
|
26
|
+
namespace numeric {
|
|
27
|
+
namespace odeint {
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
// controller factory for controlled_runge_kutta
|
|
31
|
+
template< class Stepper >
|
|
32
|
+
struct controller_factory< Stepper , controlled_runge_kutta< Stepper > >
|
|
33
|
+
{
|
|
34
|
+
typedef Stepper stepper_type;
|
|
35
|
+
typedef controlled_runge_kutta< stepper_type > controller_type;
|
|
36
|
+
typedef typename controller_type::error_checker_type error_checker_type;
|
|
37
|
+
typedef typename controller_type::step_adjuster_type step_adjuster_type;
|
|
38
|
+
typedef typename stepper_type::value_type value_type;
|
|
39
|
+
typedef typename stepper_type::value_type time_type;
|
|
40
|
+
|
|
41
|
+
controller_type operator()( value_type abs_error , value_type rel_error , const stepper_type &stepper )
|
|
42
|
+
{
|
|
43
|
+
return controller_type( error_checker_type( abs_error , rel_error ) ,
|
|
44
|
+
step_adjuster_type() , stepper );
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
controller_type operator()( value_type abs_error , value_type rel_error ,
|
|
48
|
+
time_type max_dt, const stepper_type &stepper )
|
|
49
|
+
{
|
|
50
|
+
return controller_type( error_checker_type( abs_error , rel_error ) ,
|
|
51
|
+
step_adjuster_type(max_dt) , stepper );
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
} // odeint
|
|
57
|
+
} // numeric
|
|
58
|
+
} // boost
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
#endif // BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_GENERATION_CONTROLLED_RUNGE_KUTTA_HPP_INCLUDED
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/*
|
|
2
|
+
[auto_generated]
|
|
3
|
+
boost/numeric/odeint/stepper/generation/generation_dense_output_runge_kutta.hpp
|
|
4
|
+
|
|
5
|
+
[begin_description]
|
|
6
|
+
Specialization of the controller factory for the dense_output_runge_kutta class.
|
|
7
|
+
[end_description]
|
|
8
|
+
|
|
9
|
+
Copyright 2011-2012 Karsten Ahnert
|
|
10
|
+
Copyright 2011-2012 Mario Mulansky
|
|
11
|
+
|
|
12
|
+
Distributed under the Boost Software License, Version 1.0.
|
|
13
|
+
(See accompanying file LICENSE_1_0.txt or
|
|
14
|
+
copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
#ifndef BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_GENERATION_DENSE_OUTPUT_RUNGE_KUTTA_HPP_INCLUDED
|
|
19
|
+
#define BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_GENERATION_DENSE_OUTPUT_RUNGE_KUTTA_HPP_INCLUDED
|
|
20
|
+
|
|
21
|
+
#include <boost/numeric/odeint/stepper/controlled_runge_kutta.hpp>
|
|
22
|
+
#include <boost/numeric/odeint/stepper/dense_output_runge_kutta.hpp>
|
|
23
|
+
#include <boost/numeric/odeint/stepper/generation/make_dense_output.hpp>
|
|
24
|
+
|
|
25
|
+
namespace boost {
|
|
26
|
+
namespace numeric {
|
|
27
|
+
namespace odeint {
|
|
28
|
+
|
|
29
|
+
// controller factory for controlled_runge_kutta
|
|
30
|
+
template< class Stepper >
|
|
31
|
+
struct dense_output_factory< Stepper , dense_output_runge_kutta< controlled_runge_kutta< Stepper > > >
|
|
32
|
+
{
|
|
33
|
+
typedef Stepper stepper_type;
|
|
34
|
+
typedef controlled_runge_kutta< stepper_type > controller_type;
|
|
35
|
+
typedef typename controller_type::error_checker_type error_checker_type;
|
|
36
|
+
typedef typename controller_type::step_adjuster_type step_adjuster_type;
|
|
37
|
+
typedef typename stepper_type::value_type value_type;
|
|
38
|
+
typedef typename stepper_type::time_type time_type;
|
|
39
|
+
typedef dense_output_runge_kutta< controller_type > dense_output_type;
|
|
40
|
+
|
|
41
|
+
dense_output_type operator()( value_type abs_error , value_type rel_error , const stepper_type &stepper )
|
|
42
|
+
{
|
|
43
|
+
return dense_output_type( controller_type( error_checker_type( abs_error , rel_error ) ,
|
|
44
|
+
step_adjuster_type() , stepper ) );
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
dense_output_type operator()( value_type abs_error , value_type rel_error ,
|
|
48
|
+
time_type max_dt , const stepper_type &stepper )
|
|
49
|
+
{
|
|
50
|
+
return dense_output_type(
|
|
51
|
+
controller_type( error_checker_type( abs_error , rel_error) ,
|
|
52
|
+
step_adjuster_type( max_dt ) , stepper ) );
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
} // odeint
|
|
61
|
+
} // numeric
|
|
62
|
+
} // boost
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
#endif // BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_GENERATION_DENSE_OUTPUT_RUNGE_KUTTA_HPP_INCLUDED
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/*
|
|
2
|
+
[auto_generated]
|
|
3
|
+
boost/numeric/odeint/stepper/generation/generation_rosenbrock4.hpp
|
|
4
|
+
|
|
5
|
+
[begin_description]
|
|
6
|
+
Enable the factory functions for the controller and the dense output of the Rosenbrock4 method.
|
|
7
|
+
[end_description]
|
|
8
|
+
|
|
9
|
+
Copyright 2011-2012 Karsten Ahnert
|
|
10
|
+
Copyright 2011-2012 Mario Mulansky
|
|
11
|
+
|
|
12
|
+
Distributed under the Boost Software License, Version 1.0.
|
|
13
|
+
(See accompanying file LICENSE_1_0.txt or
|
|
14
|
+
copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
#ifndef BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_GENERATION_ROSENBROCK4_HPP_INCLUDED
|
|
19
|
+
#define BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_GENERATION_ROSENBROCK4_HPP_INCLUDED
|
|
20
|
+
|
|
21
|
+
#include <boost/numeric/odeint/stepper/rosenbrock4.hpp>
|
|
22
|
+
#include <boost/numeric/odeint/stepper/rosenbrock4_controller.hpp>
|
|
23
|
+
#include <boost/numeric/odeint/stepper/rosenbrock4_dense_output.hpp>
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
namespace boost {
|
|
27
|
+
namespace numeric {
|
|
28
|
+
namespace odeint {
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
template< class Value , class Coefficients , class Resize >
|
|
32
|
+
struct get_controller< rosenbrock4< Value , Coefficients , Resize > >
|
|
33
|
+
{
|
|
34
|
+
typedef rosenbrock4< Value , Coefficients , Resize > stepper_type;
|
|
35
|
+
typedef rosenbrock4_controller< stepper_type > type;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
template< class Value , class Coefficients , class Resize >
|
|
41
|
+
struct get_dense_output< rosenbrock4< Value , Coefficients , Resize > >
|
|
42
|
+
{
|
|
43
|
+
typedef rosenbrock4< Value , Coefficients , Resize > stepper_type;
|
|
44
|
+
typedef rosenbrock4_controller< stepper_type > controller_type;
|
|
45
|
+
typedef rosenbrock4_dense_output< controller_type > type;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
// controller factory for controlled_runge_kutta
|
|
51
|
+
template< class Stepper >
|
|
52
|
+
struct dense_output_factory< Stepper , rosenbrock4_dense_output< rosenbrock4_controller< Stepper > > >
|
|
53
|
+
{
|
|
54
|
+
typedef Stepper stepper_type;
|
|
55
|
+
typedef rosenbrock4_controller< stepper_type > controller_type;
|
|
56
|
+
typedef typename stepper_type::value_type value_type;
|
|
57
|
+
typedef typename stepper_type::time_type time_type;
|
|
58
|
+
typedef rosenbrock4_dense_output< controller_type > dense_output_type;
|
|
59
|
+
|
|
60
|
+
dense_output_type operator()( value_type abs_error , value_type rel_error , const stepper_type &stepper )
|
|
61
|
+
{
|
|
62
|
+
return dense_output_type( controller_type( abs_error , rel_error , stepper ) );
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
dense_output_type operator()( value_type abs_error , value_type rel_error ,
|
|
66
|
+
time_type max_dt, const stepper_type &stepper )
|
|
67
|
+
{
|
|
68
|
+
return dense_output_type( controller_type( abs_error , rel_error , max_dt , stepper ) );
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
} // odeint
|
|
75
|
+
} // numeric
|
|
76
|
+
} // boost
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
#endif // BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_GENERATION_ROSENBROCK4_HPP_INCLUDED
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/*
|
|
2
|
+
[auto_generated]
|
|
3
|
+
boost/numeric/odeint/stepper/generation/generation_runge_kutta_cash_karp54.hpp
|
|
4
|
+
|
|
5
|
+
[begin_description]
|
|
6
|
+
Enable the factory functions for the controller and the dense output of the Runge-Kutta-Cash-Karp 54 method.
|
|
7
|
+
[end_description]
|
|
8
|
+
|
|
9
|
+
Copyright 2011 Karsten Ahnert
|
|
10
|
+
Copyright 2011 Mario Mulansky
|
|
11
|
+
|
|
12
|
+
Distributed under the Boost Software License, Version 1.0.
|
|
13
|
+
(See accompanying file LICENSE_1_0.txt or
|
|
14
|
+
copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
#ifndef BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_GENERATION_RUNGE_KUTTA_CASH_KARP54_HPP_INCLUDED
|
|
19
|
+
#define BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_GENERATION_RUNGE_KUTTA_CASH_KARP54_HPP_INCLUDED
|
|
20
|
+
|
|
21
|
+
#include <boost/numeric/odeint/stepper/controlled_runge_kutta.hpp>
|
|
22
|
+
#include <boost/numeric/odeint/stepper/runge_kutta_cash_karp54.hpp>
|
|
23
|
+
#include <boost/numeric/odeint/stepper/generation/make_controlled.hpp>
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
namespace boost {
|
|
27
|
+
namespace numeric {
|
|
28
|
+
namespace odeint {
|
|
29
|
+
|
|
30
|
+
// Specializations for runge_kutta_cash_karp54
|
|
31
|
+
template< class State , class Value , class Deriv , class Time , class Algebra , class Operations , class Resize >
|
|
32
|
+
struct get_controller< runge_kutta_cash_karp54< State , Value , Deriv , Time , Algebra , Operations , Resize > >
|
|
33
|
+
{
|
|
34
|
+
typedef runge_kutta_cash_karp54< State , Value , Deriv , Time , Algebra , Operations , Resize > stepper_type;
|
|
35
|
+
typedef controlled_runge_kutta< stepper_type > type;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
} // odeint
|
|
43
|
+
} // numeric
|
|
44
|
+
} // boost
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
#endif // BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_GENERATION_RUNGE_KUTTA_CASH_KARP54_HPP_INCLUDED
|
package/boost/numeric/odeint/stepper/generation/generation_runge_kutta_cash_karp54_classic.hpp
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/*
|
|
2
|
+
[auto_generated]
|
|
3
|
+
boost/numeric/odeint/stepper/generation/generation_runge_kutta_cash_karp54_classic.hpp
|
|
4
|
+
|
|
5
|
+
[begin_description]
|
|
6
|
+
Enable the factory functions for the controller and the dense output of the
|
|
7
|
+
Runge-Kutta-Cash-Karp 54 method with the classical implementation.
|
|
8
|
+
[end_description]
|
|
9
|
+
|
|
10
|
+
Copyright 2011 Karsten Ahnert
|
|
11
|
+
Copyright 2011 Mario Mulansky
|
|
12
|
+
|
|
13
|
+
Distributed under the Boost Software License, Version 1.0.
|
|
14
|
+
(See accompanying file LICENSE_1_0.txt or
|
|
15
|
+
copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
#ifndef BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_GENERATION_RUNGE_KUTTA_CASH_KARP54_CLASSIC_HPP_INCLUDED
|
|
20
|
+
#define BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_GENERATION_RUNGE_KUTTA_CASH_KARP54_CLASSIC_HPP_INCLUDED
|
|
21
|
+
|
|
22
|
+
#include <boost/numeric/odeint/stepper/controlled_runge_kutta.hpp>
|
|
23
|
+
#include <boost/numeric/odeint/stepper/runge_kutta_cash_karp54_classic.hpp>
|
|
24
|
+
#include <boost/numeric/odeint/stepper/generation/make_controlled.hpp>
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
namespace boost {
|
|
28
|
+
namespace numeric {
|
|
29
|
+
namespace odeint {
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
// Specializations for runge_kutta_cash_karp54
|
|
33
|
+
template< class State , class Value , class Deriv , class Time , class Algebra , class Operations , class Resize >
|
|
34
|
+
struct get_controller< runge_kutta_cash_karp54_classic< State , Value , Deriv , Time , Algebra , Operations , Resize > >
|
|
35
|
+
{
|
|
36
|
+
typedef runge_kutta_cash_karp54_classic< State , Value , Deriv , Time , Algebra , Operations , Resize > stepper_type;
|
|
37
|
+
typedef controlled_runge_kutta< stepper_type > type;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
} // odeint
|
|
44
|
+
} // numeric
|
|
45
|
+
} // boost
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
#endif // BOOST_NUMERIC_ODEINT_STEPPER_GENERATION_GENERATION_RUNGE_KUTTA_CASH_KARP54_CLASSIC_HPP_INCLUDED
|