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,237 @@
|
|
|
1
|
+
/*
|
|
2
|
+
boost/numeric/odeint/stepper/detail/adaptive_adams_bashforth_moulton.hpp
|
|
3
|
+
|
|
4
|
+
[begin_description]
|
|
5
|
+
Implemetation of an adaptive adams bashforth moulton stepper.
|
|
6
|
+
Used as the stepper for the controlled adams bashforth moulton stepper.
|
|
7
|
+
[end_description]
|
|
8
|
+
|
|
9
|
+
Copyright 2017 Valentin Noah Hartmann
|
|
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_ADAPTIVE_ADAMS_BASHFORTH_MOULTON_HPP_INCLUDED
|
|
17
|
+
#define BOOST_NUMERIC_ODEINT_STEPPER_ADAPTIVE_ADAMS_BASHFORTH_MOULTON_HPP_INCLUDED
|
|
18
|
+
|
|
19
|
+
#include <boost/numeric/odeint/stepper/detail/adaptive_adams_coefficients.hpp>
|
|
20
|
+
|
|
21
|
+
#include <boost/numeric/odeint/util/unwrap_reference.hpp>
|
|
22
|
+
#include <boost/numeric/odeint/util/bind.hpp>
|
|
23
|
+
#include <boost/numeric/odeint/util/copy.hpp>
|
|
24
|
+
|
|
25
|
+
#include <boost/numeric/odeint/algebra/default_operations.hpp>
|
|
26
|
+
#include <boost/numeric/odeint/algebra/algebra_dispatcher.hpp>
|
|
27
|
+
#include <boost/numeric/odeint/algebra/operations_dispatcher.hpp>
|
|
28
|
+
|
|
29
|
+
#include <boost/numeric/odeint/util/state_wrapper.hpp>
|
|
30
|
+
#include <boost/numeric/odeint/util/is_resizeable.hpp>
|
|
31
|
+
#include <boost/numeric/odeint/util/resizer.hpp>
|
|
32
|
+
|
|
33
|
+
#include <boost/numeric/odeint/stepper/stepper_categories.hpp>
|
|
34
|
+
|
|
35
|
+
#include <boost/numeric/odeint/stepper/base/algebra_stepper_base.hpp>
|
|
36
|
+
#include <boost/numeric/odeint/stepper/detail/rotating_buffer.hpp>
|
|
37
|
+
|
|
38
|
+
namespace boost {
|
|
39
|
+
namespace numeric {
|
|
40
|
+
namespace odeint {
|
|
41
|
+
|
|
42
|
+
template<
|
|
43
|
+
size_t Steps,
|
|
44
|
+
class State,
|
|
45
|
+
class Value = double,
|
|
46
|
+
class Deriv = State,
|
|
47
|
+
class Time = Value,
|
|
48
|
+
class Algebra = typename algebra_dispatcher< State >::algebra_type ,
|
|
49
|
+
class Operations = typename operations_dispatcher< State >::operations_type,
|
|
50
|
+
class Resizer = initially_resizer
|
|
51
|
+
>
|
|
52
|
+
class adaptive_adams_bashforth_moulton: public algebra_stepper_base< Algebra , Operations >
|
|
53
|
+
{
|
|
54
|
+
public:
|
|
55
|
+
static const size_t steps = Steps;
|
|
56
|
+
|
|
57
|
+
typedef unsigned short order_type;
|
|
58
|
+
static const order_type order_value = steps;
|
|
59
|
+
|
|
60
|
+
typedef State state_type;
|
|
61
|
+
typedef Value value_type;
|
|
62
|
+
typedef Deriv deriv_type;
|
|
63
|
+
typedef Time time_type;
|
|
64
|
+
|
|
65
|
+
typedef state_wrapper< state_type > wrapped_state_type;
|
|
66
|
+
typedef state_wrapper< deriv_type > wrapped_deriv_type;
|
|
67
|
+
|
|
68
|
+
typedef algebra_stepper_base< Algebra , Operations > algebra_stepper_base_type;
|
|
69
|
+
typedef typename algebra_stepper_base_type::algebra_type algebra_type;
|
|
70
|
+
typedef typename algebra_stepper_base_type::operations_type operations_type;
|
|
71
|
+
typedef Resizer resizer_type;
|
|
72
|
+
typedef error_stepper_tag stepper_category;
|
|
73
|
+
|
|
74
|
+
typedef detail::adaptive_adams_coefficients< Steps , Deriv , Value , Time , Algebra , Operations , Resizer > coeff_type;
|
|
75
|
+
typedef adaptive_adams_bashforth_moulton< Steps , State , Value , Deriv , Time , Algebra , Operations , Resizer > stepper_type;
|
|
76
|
+
|
|
77
|
+
order_type order() const { return order_value; };
|
|
78
|
+
order_type stepper_order() const { return order_value + 1; };
|
|
79
|
+
order_type error_order() const { return order_value; };
|
|
80
|
+
|
|
81
|
+
adaptive_adams_bashforth_moulton( const algebra_type &algebra = algebra_type() )
|
|
82
|
+
:algebra_stepper_base_type( algebra ), m_coeff(),
|
|
83
|
+
m_dxdt_resizer(), m_xnew_resizer(), m_xerr_resizer()
|
|
84
|
+
{};
|
|
85
|
+
|
|
86
|
+
template< class System >
|
|
87
|
+
void do_step(System system, state_type &inOut, time_type t, time_type dt )
|
|
88
|
+
{
|
|
89
|
+
m_xnew_resizer.adjust_size(inOut, [this](auto&& arg) { return this->resize_xnew_impl<state_type>(std::forward<decltype(arg)>(arg)); });
|
|
90
|
+
|
|
91
|
+
do_step(system, inOut, t, m_xnew.m_v, dt, m_xerr.m_v);
|
|
92
|
+
boost::numeric::odeint::copy( m_xnew.m_v , inOut);
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
template< class System >
|
|
96
|
+
void do_step(System system, const state_type &in, time_type t, state_type &out, time_type dt )
|
|
97
|
+
{
|
|
98
|
+
do_step(system, in, t, out, dt, m_xerr.m_v);
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
template< class System >
|
|
102
|
+
void do_step(System system, state_type &inOut, time_type t, time_type dt, state_type &xerr)
|
|
103
|
+
{
|
|
104
|
+
m_xnew_resizer.adjust_size(inOut, [this](auto&& arg) { return this->resize_xnew_impl<state_type>(std::forward<decltype(arg)>(arg)); });
|
|
105
|
+
|
|
106
|
+
do_step(system, inOut, t, m_xnew.m_v, dt, xerr);
|
|
107
|
+
boost::numeric::odeint::copy( m_xnew.m_v , inOut);
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
template< class System >
|
|
111
|
+
void do_step(System system, const state_type &in, time_type t, state_type &out, time_type dt , state_type &xerr)
|
|
112
|
+
{
|
|
113
|
+
do_step_impl(system, in, t, out, dt, xerr);
|
|
114
|
+
|
|
115
|
+
system(out, m_dxdt.m_v, t+dt);
|
|
116
|
+
m_coeff.do_step(m_dxdt.m_v);
|
|
117
|
+
m_coeff.confirm();
|
|
118
|
+
|
|
119
|
+
if(m_coeff.m_eo < order_value)
|
|
120
|
+
{
|
|
121
|
+
m_coeff.m_eo ++;
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
template< class ExplicitStepper, class System >
|
|
126
|
+
void initialize(ExplicitStepper stepper, System system, state_type &inOut, time_type &t, time_type dt)
|
|
127
|
+
{
|
|
128
|
+
reset();
|
|
129
|
+
dt = dt/static_cast< time_type >(order_value);
|
|
130
|
+
|
|
131
|
+
m_dxdt_resizer.adjust_size(inOut, [this](auto&& arg) { return this->resize_dxdt_impl<state_type>(std::forward<decltype(arg)>(arg)); });
|
|
132
|
+
|
|
133
|
+
system( inOut , m_dxdt.m_v , t );
|
|
134
|
+
for( size_t i=0 ; i<order_value; ++i )
|
|
135
|
+
{
|
|
136
|
+
stepper.do_step_dxdt_impl( system, inOut, m_dxdt.m_v, t, dt );
|
|
137
|
+
|
|
138
|
+
system( inOut , m_dxdt.m_v , t + dt);
|
|
139
|
+
|
|
140
|
+
m_coeff.predict(t, dt);
|
|
141
|
+
m_coeff.do_step(m_dxdt.m_v);
|
|
142
|
+
m_coeff.confirm();
|
|
143
|
+
|
|
144
|
+
t += dt;
|
|
145
|
+
|
|
146
|
+
if(m_coeff.m_eo < order_value)
|
|
147
|
+
{
|
|
148
|
+
++m_coeff.m_eo;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
template< class System >
|
|
154
|
+
void initialize(System system, state_type &inOut, time_type &t, time_type dt)
|
|
155
|
+
{
|
|
156
|
+
reset();
|
|
157
|
+
dt = dt/static_cast< time_type >(order_value);
|
|
158
|
+
|
|
159
|
+
for(size_t i=0; i<order_value; ++i)
|
|
160
|
+
{
|
|
161
|
+
this->do_step(system, inOut, t, dt);
|
|
162
|
+
t += dt;
|
|
163
|
+
};
|
|
164
|
+
};
|
|
165
|
+
|
|
166
|
+
template< class System >
|
|
167
|
+
void do_step_impl(System system, const state_type & in, time_type t, state_type & out, time_type &dt, state_type &xerr)
|
|
168
|
+
{
|
|
169
|
+
size_t eO = m_coeff.m_eo;
|
|
170
|
+
|
|
171
|
+
m_xerr_resizer.adjust_size(in, [this](auto&& arg) { return this->resize_xerr_impl<state_type>(std::forward<decltype(arg)>(arg)); });
|
|
172
|
+
m_dxdt_resizer.adjust_size(in, [this](auto&& arg) { return this->resize_dxdt_impl<state_type>(std::forward<decltype(arg)>(arg)); });
|
|
173
|
+
|
|
174
|
+
m_coeff.predict(t, dt);
|
|
175
|
+
if (m_coeff.m_steps_init == 1)
|
|
176
|
+
{
|
|
177
|
+
system(in, m_dxdt.m_v, t);
|
|
178
|
+
m_coeff.do_step(m_dxdt.m_v, 1);
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
boost::numeric::odeint::copy( in , out );
|
|
182
|
+
for(size_t i=0; i<eO; ++i)
|
|
183
|
+
{
|
|
184
|
+
this->m_algebra.for_each3(out, out, m_coeff.phi[1][i].m_v,
|
|
185
|
+
typename Operations::template scale_sum2<double, double>(1.0, dt*m_coeff.g[i]*m_coeff.beta[0][i]));
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
system(out, m_dxdt.m_v, t+dt);
|
|
189
|
+
m_coeff.do_step(m_dxdt.m_v);
|
|
190
|
+
|
|
191
|
+
this->m_algebra.for_each3(out, out, m_coeff.phi[0][eO].m_v,
|
|
192
|
+
typename Operations::template scale_sum2<double, double>(1.0, dt*m_coeff.g[eO]));
|
|
193
|
+
|
|
194
|
+
// error for current order
|
|
195
|
+
this->m_algebra.for_each2(xerr, m_coeff.phi[0][eO].m_v,
|
|
196
|
+
typename Operations::template scale_sum1<double>(dt*(m_coeff.g[eO])));
|
|
197
|
+
};
|
|
198
|
+
|
|
199
|
+
const coeff_type& coeff() const { return m_coeff; };
|
|
200
|
+
coeff_type & coeff() { return m_coeff; };
|
|
201
|
+
|
|
202
|
+
void reset() { m_coeff.reset(); };
|
|
203
|
+
const deriv_type & dxdt() const { return m_dxdt.m_v; };
|
|
204
|
+
|
|
205
|
+
private:
|
|
206
|
+
template< class StateType >
|
|
207
|
+
bool resize_dxdt_impl( const StateType &x )
|
|
208
|
+
{
|
|
209
|
+
return adjust_size_by_resizeability( m_dxdt, x, typename is_resizeable<deriv_type>::type() );
|
|
210
|
+
};
|
|
211
|
+
template< class StateType >
|
|
212
|
+
bool resize_xnew_impl( const StateType &x )
|
|
213
|
+
{
|
|
214
|
+
return adjust_size_by_resizeability( m_xnew, x, typename is_resizeable<state_type>::type() );
|
|
215
|
+
};
|
|
216
|
+
template< class StateType >
|
|
217
|
+
bool resize_xerr_impl( const StateType &x )
|
|
218
|
+
{
|
|
219
|
+
return adjust_size_by_resizeability( m_xerr, x, typename is_resizeable<state_type>::type() );
|
|
220
|
+
};
|
|
221
|
+
|
|
222
|
+
coeff_type m_coeff;
|
|
223
|
+
|
|
224
|
+
resizer_type m_dxdt_resizer;
|
|
225
|
+
resizer_type m_xnew_resizer;
|
|
226
|
+
resizer_type m_xerr_resizer;
|
|
227
|
+
|
|
228
|
+
wrapped_deriv_type m_dxdt;
|
|
229
|
+
wrapped_state_type m_xnew;
|
|
230
|
+
wrapped_state_type m_xerr;
|
|
231
|
+
};
|
|
232
|
+
|
|
233
|
+
} // odeint
|
|
234
|
+
} // numeric
|
|
235
|
+
} // boost
|
|
236
|
+
|
|
237
|
+
#endif
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/*
|
|
2
|
+
[auto_generated]
|
|
3
|
+
boost/numeric/odeint/stepper/base/algebra_stepper_base.hpp
|
|
4
|
+
|
|
5
|
+
[begin_description]
|
|
6
|
+
Base class for all steppers with an algebra and operations.
|
|
7
|
+
[end_description]
|
|
8
|
+
|
|
9
|
+
Copyright 2012-2013 Karsten Ahnert
|
|
10
|
+
Copyright 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_BASE_ALGEBRA_STEPPER_BASE_HPP_INCLUDED
|
|
19
|
+
#define BOOST_NUMERIC_ODEINT_STEPPER_BASE_ALGEBRA_STEPPER_BASE_HPP_INCLUDED
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
namespace boost {
|
|
23
|
+
namespace numeric {
|
|
24
|
+
namespace odeint {
|
|
25
|
+
|
|
26
|
+
template< class Algebra , class Operations >
|
|
27
|
+
class algebra_stepper_base
|
|
28
|
+
{
|
|
29
|
+
public:
|
|
30
|
+
|
|
31
|
+
typedef Algebra algebra_type;
|
|
32
|
+
typedef Operations operations_type;
|
|
33
|
+
|
|
34
|
+
algebra_stepper_base( const algebra_type &algebra = algebra_type() )
|
|
35
|
+
: m_algebra( algebra ) { }
|
|
36
|
+
|
|
37
|
+
algebra_type& algebra()
|
|
38
|
+
{
|
|
39
|
+
return m_algebra;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const algebra_type& algebra() const
|
|
43
|
+
{
|
|
44
|
+
return m_algebra;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
protected:
|
|
48
|
+
|
|
49
|
+
algebra_type m_algebra;
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
/******* DOXYGEN *******/
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* \class algebra_stepper_base
|
|
57
|
+
* \brief Base class for all steppers with algebra and operations.
|
|
58
|
+
*
|
|
59
|
+
* This class serves a base class for all steppers with algebra and operations. It holds the
|
|
60
|
+
* algebra and provides access to the algebra. The operations are not instantiated, since they are
|
|
61
|
+
* static classes inside the operations class.
|
|
62
|
+
*
|
|
63
|
+
* \tparam Algebra The type of the algebra. Must fulfill the Algebra Concept, at least partially to work
|
|
64
|
+
* with the stepper.
|
|
65
|
+
* \tparam Operations The type of the operations. Must fulfill the Operations Concept, at least partially
|
|
66
|
+
* to work with the stepper.
|
|
67
|
+
*/
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* \fn algebra_stepper_base::algebra_stepper_base( const algebra_type &algebra = algebra_type() )
|
|
71
|
+
* \brief Constructs a algebra_stepper_base and creates the algebra. This constructor can be used as a default
|
|
72
|
+
* constructor if the algebra has a default constructor.
|
|
73
|
+
* \param algebra The algebra_stepper_base stores and uses a copy of algebra.
|
|
74
|
+
*/
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* \fn algebra_type& algebra_stepper_base::algebra()
|
|
78
|
+
* \return A reference to the algebra which is held by this class.
|
|
79
|
+
*/
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* \fn const algebra_type& algebra_stepper_base::algebra() const
|
|
83
|
+
* \return A const reference to the algebra which is held by this class.
|
|
84
|
+
*/
|
|
85
|
+
|
|
86
|
+
} // odeint
|
|
87
|
+
} // numeric
|
|
88
|
+
} // boost
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
#endif // BOOST_NUMERIC_ODEINT_STEPPER_BASE_ALGEBRA_STEPPER_BASE_HPP_INCLUDED
|