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,415 @@
|
|
|
1
|
+
/*
|
|
2
|
+
[auto_generated]
|
|
3
|
+
boost/numeric/odeint/stepper/base/explicit_stepper_base.hpp
|
|
4
|
+
|
|
5
|
+
[begin_description]
|
|
6
|
+
Base class for all explicit Runge Kutta steppers.
|
|
7
|
+
[end_description]
|
|
8
|
+
|
|
9
|
+
Copyright 2010-2013 Karsten Ahnert
|
|
10
|
+
Copyright 2010-2012 Mario Mulansky
|
|
11
|
+
Copyright 2012 Christoph Koke
|
|
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_BASE_EXPLICIT_STEPPER_BASE_HPP_INCLUDED
|
|
20
|
+
#define BOOST_NUMERIC_ODEINT_STEPPER_BASE_EXPLICIT_STEPPER_BASE_HPP_INCLUDED
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
#include <boost/utility/enable_if.hpp>
|
|
24
|
+
#include <boost/type_traits/is_same.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/util/state_wrapper.hpp>
|
|
30
|
+
#include <boost/numeric/odeint/util/resizer.hpp>
|
|
31
|
+
#include <boost/numeric/odeint/util/is_resizeable.hpp>
|
|
32
|
+
|
|
33
|
+
#include <boost/numeric/odeint/stepper/stepper_categories.hpp>
|
|
34
|
+
|
|
35
|
+
#include <boost/numeric/odeint/stepper/base/algebra_stepper_base.hpp>
|
|
36
|
+
|
|
37
|
+
namespace boost {
|
|
38
|
+
namespace numeric {
|
|
39
|
+
namespace odeint {
|
|
40
|
+
|
|
41
|
+
/*
|
|
42
|
+
* base class for explicit steppers
|
|
43
|
+
* models the stepper concept
|
|
44
|
+
*
|
|
45
|
+
* this class provides the following overloads
|
|
46
|
+
* do_step( sys , x , t , dt )
|
|
47
|
+
* do_step( sys , in , t , out , dt )
|
|
48
|
+
* do_step( sys , x , dxdt_in , t , dt )
|
|
49
|
+
* do_step( sys , in , dxdt_in , t , out , dt )
|
|
50
|
+
*/
|
|
51
|
+
|
|
52
|
+
template<
|
|
53
|
+
class Stepper ,
|
|
54
|
+
unsigned short Order ,
|
|
55
|
+
class State ,
|
|
56
|
+
class Value ,
|
|
57
|
+
class Deriv ,
|
|
58
|
+
class Time ,
|
|
59
|
+
class Algebra ,
|
|
60
|
+
class Operations ,
|
|
61
|
+
class Resizer
|
|
62
|
+
>
|
|
63
|
+
class explicit_stepper_base : public algebra_stepper_base< Algebra , Operations >
|
|
64
|
+
{
|
|
65
|
+
public:
|
|
66
|
+
|
|
67
|
+
#ifndef DOXYGEN_SKIP
|
|
68
|
+
typedef explicit_stepper_base< Stepper , Order , State , Value , Deriv , Time , Algebra , Operations , Resizer > internal_stepper_base_type;
|
|
69
|
+
#endif // DOXYGEN_SKIP
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
typedef State state_type;
|
|
73
|
+
typedef Value value_type;
|
|
74
|
+
typedef Deriv deriv_type;
|
|
75
|
+
typedef Time time_type;
|
|
76
|
+
typedef Resizer resizer_type;
|
|
77
|
+
typedef Stepper stepper_type;
|
|
78
|
+
typedef stepper_tag stepper_category;
|
|
79
|
+
typedef algebra_stepper_base< Algebra , Operations > algebra_stepper_base_type;
|
|
80
|
+
typedef typename algebra_stepper_base_type::algebra_type algebra_type;
|
|
81
|
+
typedef typename algebra_stepper_base_type::operations_type operations_type;
|
|
82
|
+
typedef unsigned short order_type;
|
|
83
|
+
|
|
84
|
+
#ifndef DOXYGEN_SKIP
|
|
85
|
+
typedef state_wrapper< state_type > wrapped_state_type;
|
|
86
|
+
typedef state_wrapper< deriv_type > wrapped_deriv_type;
|
|
87
|
+
#endif // DOXYGEN_SKIP
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
static const order_type order_value = Order;
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
explicit_stepper_base( const algebra_type &algebra = algebra_type() )
|
|
94
|
+
: algebra_stepper_base_type( algebra )
|
|
95
|
+
{ }
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* \return Returns the order of the stepper.
|
|
99
|
+
*/
|
|
100
|
+
order_type order( void ) const
|
|
101
|
+
{
|
|
102
|
+
return order_value;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
/*
|
|
107
|
+
* Version 1 : do_step( sys , x , t , dt )
|
|
108
|
+
*
|
|
109
|
+
* the two overloads are needed in order to solve the forwarding problem
|
|
110
|
+
*/
|
|
111
|
+
template< class System , class StateInOut >
|
|
112
|
+
void do_step( System system , StateInOut &x , time_type t , time_type dt )
|
|
113
|
+
{
|
|
114
|
+
do_step_v1( system , x , t , dt );
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* \brief Second version to solve the forwarding problem, can be called with Boost.Range as StateInOut.
|
|
119
|
+
*/
|
|
120
|
+
template< class System , class StateInOut >
|
|
121
|
+
void do_step( System system , const StateInOut &x , time_type t , time_type dt )
|
|
122
|
+
{
|
|
123
|
+
do_step_v1( system , x , t , dt );
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/*
|
|
127
|
+
* Version 2 : do_step( sys , x , dxdt , t , dt )
|
|
128
|
+
*
|
|
129
|
+
* this version does not solve the forwarding problem, boost.range can not be used
|
|
130
|
+
*
|
|
131
|
+
* the disable is needed to avoid ambiguous overloads if state_type = time_type
|
|
132
|
+
*/
|
|
133
|
+
template< class System , class StateInOut , class DerivIn >
|
|
134
|
+
typename boost::disable_if< boost::is_same< DerivIn , time_type > , void >::type
|
|
135
|
+
do_step( System system , StateInOut &x , const DerivIn &dxdt , time_type t , time_type dt )
|
|
136
|
+
{
|
|
137
|
+
this->stepper().do_step_impl( system , x , dxdt , t , x , dt );
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
/*
|
|
142
|
+
* named Version 2: do_step_dxdt_impl( sys , in , dxdt , t , dt )
|
|
143
|
+
*
|
|
144
|
+
* this version is needed when this stepper is used for initializing
|
|
145
|
+
* multistep stepper like adams-bashforth. Hence we provide an explicitely
|
|
146
|
+
* named version that is not disabled. Meant for internal use only.
|
|
147
|
+
*/
|
|
148
|
+
template < class System, class StateInOut, class DerivIn >
|
|
149
|
+
void do_step_dxdt_impl( System system, StateInOut &x, const DerivIn &dxdt,
|
|
150
|
+
time_type t, time_type dt )
|
|
151
|
+
{
|
|
152
|
+
this->stepper().do_step_impl( system , x , dxdt , t , x , dt );
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
/*
|
|
157
|
+
* Version 3 : do_step( sys , in , t , out , dt )
|
|
158
|
+
*
|
|
159
|
+
* this version does not solve the forwarding problem, boost.range can not be used
|
|
160
|
+
*/
|
|
161
|
+
template< class System , class StateIn , class StateOut >
|
|
162
|
+
void do_step( System system , const StateIn &in , time_type t , StateOut &out , time_type dt )
|
|
163
|
+
{
|
|
164
|
+
typename odeint::unwrap_reference< System >::type &sys = system;
|
|
165
|
+
m_resizer.adjust_size(in, [this](auto&& arg) { return this->resize_impl<StateIn>(std::forward<decltype(arg)>(arg)); });
|
|
166
|
+
sys( in , m_dxdt.m_v ,t );
|
|
167
|
+
this->stepper().do_step_impl( system , in , m_dxdt.m_v , t , out , dt );
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
/*
|
|
172
|
+
* Version 4 : do_step( sys , in , dxdt , t , out , dt )
|
|
173
|
+
*
|
|
174
|
+
* this version does not solve the forwarding problem, boost.range can not be used
|
|
175
|
+
*/
|
|
176
|
+
template< class System , class StateIn , class DerivIn , class StateOut >
|
|
177
|
+
void do_step( System system , const StateIn &in , const DerivIn &dxdt , time_type t , StateOut &out , time_type dt )
|
|
178
|
+
{
|
|
179
|
+
this->stepper().do_step_impl( system , in , dxdt , t , out , dt );
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
/*
|
|
184
|
+
* named Version 4: do_step_dxdt_impl( sys , in , dxdt , t , out, dt )
|
|
185
|
+
*
|
|
186
|
+
* this version is needed when this stepper is used for initializing
|
|
187
|
+
* multistep stepper like adams-bashforth. Hence we provide an explicitely
|
|
188
|
+
* named version. Meant for internal use only.
|
|
189
|
+
*/
|
|
190
|
+
template < class System, class StateIn, class DerivIn, class StateOut >
|
|
191
|
+
void do_step_dxdt_impl( System system, const StateIn &in,
|
|
192
|
+
const DerivIn &dxdt, time_type t, StateOut &out,
|
|
193
|
+
time_type dt )
|
|
194
|
+
{
|
|
195
|
+
this->stepper().do_step_impl( system , in , dxdt , t , out , dt );
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
template< class StateIn >
|
|
199
|
+
void adjust_size( const StateIn &x )
|
|
200
|
+
{
|
|
201
|
+
resize_impl( x );
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
private:
|
|
205
|
+
|
|
206
|
+
stepper_type& stepper( void )
|
|
207
|
+
{
|
|
208
|
+
return *static_cast< stepper_type* >( this );
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
const stepper_type& stepper( void ) const
|
|
212
|
+
{
|
|
213
|
+
return *static_cast< const stepper_type* >( this );
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
template< class StateIn >
|
|
218
|
+
bool resize_impl( const StateIn &x )
|
|
219
|
+
{
|
|
220
|
+
return adjust_size_by_resizeability( m_dxdt , x , typename is_resizeable<deriv_type>::type() );
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
template< class System , class StateInOut >
|
|
225
|
+
void do_step_v1( System system , StateInOut &x , time_type t , time_type dt )
|
|
226
|
+
{
|
|
227
|
+
typename odeint::unwrap_reference< System >::type &sys = system;
|
|
228
|
+
m_resizer.adjust_size(x, [this](auto&& arg) { return this->resize_impl<StateInOut>(std::forward<decltype(arg)>(arg)); });
|
|
229
|
+
sys( x , m_dxdt.m_v ,t );
|
|
230
|
+
this->stepper().do_step_impl( system , x , m_dxdt.m_v , t , x , dt );
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
resizer_type m_resizer;
|
|
235
|
+
|
|
236
|
+
protected:
|
|
237
|
+
|
|
238
|
+
wrapped_deriv_type m_dxdt;
|
|
239
|
+
};
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
/******* DOXYGEN *********/
|
|
243
|
+
|
|
244
|
+
/**
|
|
245
|
+
* \class explicit_stepper_base
|
|
246
|
+
* \brief Base class for explicit steppers without step size control and without dense output.
|
|
247
|
+
*
|
|
248
|
+
* This class serves as the base class for all explicit steppers with algebra and operations.
|
|
249
|
+
* Step size control and error estimation as well as dense output are not provided. explicit_stepper_base
|
|
250
|
+
* is used as the interface in a CRTP (currently recurring template pattern). In order to work
|
|
251
|
+
* correctly the parent class needs to have a method `do_step_impl( system , in , dxdt_in , t , out , dt )`.
|
|
252
|
+
* This is method is used by explicit_stepper_base. explicit_stepper_base derives from
|
|
253
|
+
* algebra_stepper_base. An example how this class can be used is
|
|
254
|
+
*
|
|
255
|
+
* \code
|
|
256
|
+
* template< class State , class Value , class Deriv , class Time , class Algebra , class Operations , class Resizer >
|
|
257
|
+
* class custom_euler : public explicit_stepper_base< 1 , State , Value , Deriv , Time , Algebra , Operations , Resizer >
|
|
258
|
+
* {
|
|
259
|
+
* public:
|
|
260
|
+
*
|
|
261
|
+
* typedef explicit_stepper_base< 1 , State , Value , Deriv , Time , Algebra , Operations , Resizer > base_type;
|
|
262
|
+
*
|
|
263
|
+
* custom_euler( const Algebra &algebra = Algebra() ) { }
|
|
264
|
+
*
|
|
265
|
+
* template< class Sys , class StateIn , class DerivIn , class StateOut >
|
|
266
|
+
* void do_step_impl( Sys sys , const StateIn &in , const DerivIn &dxdt , Time t , StateOut &out , Time dt )
|
|
267
|
+
* {
|
|
268
|
+
* m_algebra.for_each3( out , in , dxdt , Operations::scale_sum2< Value , Time >( 1.0 , dt );
|
|
269
|
+
* }
|
|
270
|
+
*
|
|
271
|
+
* template< class State >
|
|
272
|
+
* void adjust_size( const State &x )
|
|
273
|
+
* {
|
|
274
|
+
* base_type::adjust_size( x );
|
|
275
|
+
* }
|
|
276
|
+
* };
|
|
277
|
+
* \endcode
|
|
278
|
+
*
|
|
279
|
+
* For the Stepper concept only the `do_step( sys , x , t , dt )` needs to be implemented. But this class
|
|
280
|
+
* provides additional `do_step` variants since the stepper is explicit. These methods can be used to increase
|
|
281
|
+
* the performance in some situation, for example if one needs to analyze `dxdt` during each step. In this case
|
|
282
|
+
* one can use
|
|
283
|
+
*
|
|
284
|
+
* \code
|
|
285
|
+
* sys( x , dxdt , t );
|
|
286
|
+
* stepper.do_step( sys , x , dxdt , t , dt ); // the value of dxdt is used here
|
|
287
|
+
* t += dt;
|
|
288
|
+
* \endcode
|
|
289
|
+
*
|
|
290
|
+
* In detail explicit_stepper_base provides the following `do_step` variants
|
|
291
|
+
* - `do_step( sys , x , t , dt )` - The classical `do_step` method needed to fulfill the Stepper concept. The state is updated in-place.
|
|
292
|
+
* A type modelling a Boost.Range can be used for x.
|
|
293
|
+
* - `do_step( sys , in , t , out , dt )` - This method updates the state out-of-place, hence the result of the step is stored in `out`.
|
|
294
|
+
* - `do_step( sys , x , dxdt , t , dt )` - This method updates the state in-place, but the derivative at the point `t` must be
|
|
295
|
+
* explicitly passed in `dxdt`. For an example see the code snippet above.
|
|
296
|
+
* - `do_step( sys , in , dxdt , t , out , dt )` - This method update the state out-of-place and expects that the derivative at the point
|
|
297
|
+
* `t` is explicitly passed in `dxdt`. It is a combination of the two `do_step` methods above.
|
|
298
|
+
*
|
|
299
|
+
* \note The system is always passed as value, which might result in poor performance if it contains data. In this case it can be used with `boost::ref`
|
|
300
|
+
* or `std::ref`, for example `stepper.do_step( boost::ref( sys ) , x , t , dt );`
|
|
301
|
+
*
|
|
302
|
+
* \note The time `t` is not advanced by the stepper. This has to done manually, or by the appropriate `integrate` routines or `iterator`s.
|
|
303
|
+
*
|
|
304
|
+
* \tparam Stepper The stepper on which this class should work. It is used via CRTP, hence explicit_stepper_base
|
|
305
|
+
* provides the interface for the Stepper.
|
|
306
|
+
* \tparam Order The order of the stepper.
|
|
307
|
+
* \tparam State The state type for the stepper.
|
|
308
|
+
* \tparam Value The value type for the stepper. This should be a floating point type, like float,
|
|
309
|
+
* double, or a multiprecision type. It must not necessary be the value_type of the State. For example
|
|
310
|
+
* the State can be a `vector< complex< double > >` in this case the Value must be double.
|
|
311
|
+
* The default value is double.
|
|
312
|
+
* \tparam Deriv The type representing time derivatives of the state type. It is usually the same type as the
|
|
313
|
+
* state type, only if used with Boost.Units both types differ.
|
|
314
|
+
* \tparam Time The type representing the time. Usually the same type as the value type. When Boost.Units is
|
|
315
|
+
* used, this type has usually a unit.
|
|
316
|
+
* \tparam Algebra The algebra type which must fulfill the Algebra Concept.
|
|
317
|
+
* \tparam Operations The type for the operations which must fulfill the Operations Concept.
|
|
318
|
+
* \tparam Resizer The resizer policy class.
|
|
319
|
+
*/
|
|
320
|
+
|
|
321
|
+
|
|
322
|
+
/**
|
|
323
|
+
* \fn explicit_stepper_base::explicit_stepper_base( const algebra_type &algebra )
|
|
324
|
+
* \brief Constructs a explicit_stepper_base class. This constructor can be used as a default
|
|
325
|
+
* constructor if the algebra has a default constructor.
|
|
326
|
+
* \param algebra A copy of algebra is made and stored inside explicit_stepper_base.
|
|
327
|
+
*/
|
|
328
|
+
|
|
329
|
+
/**
|
|
330
|
+
* \fn explicit_stepper_base::order_type order( void ) const
|
|
331
|
+
* \return Returns the order of the stepper.
|
|
332
|
+
*/
|
|
333
|
+
|
|
334
|
+
/**
|
|
335
|
+
* \fn explicit_stepper_base::do_step( System system , StateInOut &x , time_type t , time_type dt )
|
|
336
|
+
* \brief This method performs one step. It transforms the result in-place.
|
|
337
|
+
*
|
|
338
|
+
* \param system The system function to solve, hence the r.h.s. of the ordinary differential equation. It must fulfill the
|
|
339
|
+
* Simple System concept.
|
|
340
|
+
* \param x The state of the ODE which should be solved. After calling do_step the result is updated in x.
|
|
341
|
+
* \param t The value of the time, at which the step should be performed.
|
|
342
|
+
* \param dt The step size.
|
|
343
|
+
*/
|
|
344
|
+
|
|
345
|
+
|
|
346
|
+
/**
|
|
347
|
+
* \fn explicit_stepper_base::do_step( System system , StateInOut &x , const DerivIn &dxdt , time_type t , time_type dt )
|
|
348
|
+
|
|
349
|
+
* \brief The method performs one step. Additionally to the other method
|
|
350
|
+
* the derivative of x is also passed to this method. It is supposed to be used in the following way:
|
|
351
|
+
*
|
|
352
|
+
* \code
|
|
353
|
+
* sys( x , dxdt , t );
|
|
354
|
+
* stepper.do_step( sys , x , dxdt , t , dt );
|
|
355
|
+
* \endcode
|
|
356
|
+
*
|
|
357
|
+
* The result is updated in place in x. This method is disabled if Time and Deriv are of the same type. In this
|
|
358
|
+
* case the method could not be distinguished from other `do_step` versions.
|
|
359
|
+
*
|
|
360
|
+
* \note This method does not solve the forwarding problem.
|
|
361
|
+
*
|
|
362
|
+
* \param system The system function to solve, hence the r.h.s. of the ODE. It must fulfill the
|
|
363
|
+
* Simple System concept.
|
|
364
|
+
* \param x The state of the ODE which should be solved. After calling do_step the result is updated in x.
|
|
365
|
+
* \param dxdt The derivative of x at t.
|
|
366
|
+
* \param t The value of the time, at which the step should be performed.
|
|
367
|
+
* \param dt The step size.
|
|
368
|
+
*/
|
|
369
|
+
|
|
370
|
+
/**
|
|
371
|
+
* \fn void explicit_stepper_base::do_step( System system , const StateIn &in , time_type t , StateOut &out , time_type dt )
|
|
372
|
+
* \brief The method performs one step. The state of the ODE is updated out-of-place.
|
|
373
|
+
* \note This method does not solve the forwarding problem.
|
|
374
|
+
*
|
|
375
|
+
* \param system The system function to solve, hence the r.h.s. of the ODE. It must fulfill the
|
|
376
|
+
* Simple System concept.
|
|
377
|
+
* \param in The state of the ODE which should be solved. in is not modified in this method
|
|
378
|
+
* \param t The value of the time, at which the step should be performed.
|
|
379
|
+
* \param out The result of the step is written in out.
|
|
380
|
+
* \param dt The step size.
|
|
381
|
+
*/
|
|
382
|
+
|
|
383
|
+
/**
|
|
384
|
+
* \fn void explicit_stepper_base::do_step( System system , const StateIn &in , const DerivIn &dxdt , time_type t , StateOut &out , time_type dt )
|
|
385
|
+
* \brief The method performs one step. The state of the ODE is updated out-of-place.
|
|
386
|
+
* Furthermore, the derivative of x at t is passed to the stepper.
|
|
387
|
+
* It is supposed to be used in the following way:
|
|
388
|
+
*
|
|
389
|
+
* \code
|
|
390
|
+
* sys( in , dxdt , t );
|
|
391
|
+
* stepper.do_step( sys , in , dxdt , t , out , dt );
|
|
392
|
+
* \endcode
|
|
393
|
+
*
|
|
394
|
+
* \note This method does not solve the forwarding problem.
|
|
395
|
+
*
|
|
396
|
+
* \param system The system function to solve, hence the r.h.s. of the ODE. It must fulfill the
|
|
397
|
+
* Simple System concept.
|
|
398
|
+
* \param in The state of the ODE which should be solved. in is not modified in this method
|
|
399
|
+
* \param dxdt The derivative of x at t.
|
|
400
|
+
* \param t The value of the time, at which the step should be performed.
|
|
401
|
+
* \param out The result of the step is written in out.
|
|
402
|
+
* \param dt The step size.
|
|
403
|
+
*/
|
|
404
|
+
|
|
405
|
+
/**
|
|
406
|
+
* \fn void explicit_stepper_base::adjust_size( const StateIn &x )
|
|
407
|
+
* \brief Adjust the size of all temporaries in the stepper manually.
|
|
408
|
+
* \param x A state from which the size of the temporaries to be resized is deduced.
|
|
409
|
+
*/
|
|
410
|
+
|
|
411
|
+
} // odeint
|
|
412
|
+
} // numeric
|
|
413
|
+
} // boost
|
|
414
|
+
|
|
415
|
+
#endif // BOOST_NUMERIC_ODEINT_STEPPER_BASE_EXPLICIT_STEPPER_BASE_HPP_INCLUDED
|