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,96 @@
|
|
|
1
|
+
/*
|
|
2
|
+
[auto_generated]
|
|
3
|
+
boost/numeric/odeint/util/n_ary_helper.hpp
|
|
4
|
+
|
|
5
|
+
Macros to generate scale_sumN and for_eachN functors.
|
|
6
|
+
|
|
7
|
+
Copyright 2013 Karsten Ahnert
|
|
8
|
+
Copyright 2013 Mario Mulansky
|
|
9
|
+
Copyright 2013 Pascal Germroth
|
|
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_UTIL_N_ARY_HELPER_HPP_INCLUDED
|
|
17
|
+
#define BOOST_NUMERIC_ODEINT_UTIL_N_ARY_HELPER_HPP_INCLUDED
|
|
18
|
+
|
|
19
|
+
#include <boost/preprocessor/repetition.hpp>
|
|
20
|
+
|
|
21
|
+
// like BOOST_PP_ENUM_SHIFTED but with a comma in front like _TRAILING
|
|
22
|
+
#define BOOST_ODEINT_ENUM_TRAILING_SHIFTED_PARAMS(count, param) \
|
|
23
|
+
BOOST_PP_COMMA_IF(BOOST_PP_DEC(count)) \
|
|
24
|
+
BOOST_PP_ENUM_SHIFTED_PARAMS(count, param)
|
|
25
|
+
|
|
26
|
+
#define BOOST_ODEINT_ENUM_TRAILING_SHIFTED_BINARY_PARAMS(count, p1, p2) \
|
|
27
|
+
BOOST_PP_COMMA_IF(BOOST_PP_DEC(count)) \
|
|
28
|
+
BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS(count, p1, p2)
|
|
29
|
+
|
|
30
|
+
// like BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS(n, p1, p2) but p2 is shifted left.
|
|
31
|
+
// generate "p1 ## 0 = p2, p1 ## 1 = p3 ## 0, p1 ## 2 = p3 ## 1"
|
|
32
|
+
#define BOOST_ODEINT_ENUM_LSHIFTED_BINARY_PARAMS(count, p1, p2, p3) \
|
|
33
|
+
BOOST_PP_ENUM(count, BOOST_ODEINT_ENUM_LSHIFTED_BINARY_PARAMS_, (p1, p2, p3))
|
|
34
|
+
#define BOOST_ODEINT_ENUM_LSHIFTED_BINARY_PARAMS_(z, n, data) \
|
|
35
|
+
BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM(3, 0, data), n) \
|
|
36
|
+
BOOST_PP_IF(n, \
|
|
37
|
+
BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM(3, 2, data), BOOST_PP_DEC(n)), \
|
|
38
|
+
BOOST_PP_TUPLE_ELEM(3, 1, data))
|
|
39
|
+
|
|
40
|
+
// like BOOST_PP_ENUM_BINARY_PARAMS(n, p1, p2) but with statements.
|
|
41
|
+
// "p1 ## 0 p2 ## 0 ; p1 ## 1 p2 ## 1 ; ..."
|
|
42
|
+
#define BOOST_ODEINT_ENUM_BINARY_STATEMENTS(count, p1, p2) \
|
|
43
|
+
BOOST_PP_REPEAT(count, BOOST_ODEINT_ENUM_BINARY_STATEMENTS_, (p1, p2))
|
|
44
|
+
#define BOOST_ODEINT_ENUM_BINARY_STATEMENTS_(z, n, data) \
|
|
45
|
+
BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM(2, 0, data), n) \
|
|
46
|
+
BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM(2, 1, data), n) ;
|
|
47
|
+
|
|
48
|
+
// like BOOST_PP_ENUM_BINARY_PARAMS(n, p1, p2) but p2 is in parens.
|
|
49
|
+
// "p1 ## 0 (p2 ## 0) , p1 ## 1 (p2 ## 1) , ..."
|
|
50
|
+
#define BOOST_ODEINT_ENUM_UNARY_CALLS(count, p1, p2) \
|
|
51
|
+
BOOST_PP_ENUM(count, BOOST_ODEINT_ENUM_UNARY_CALLS_, (p1, p2))
|
|
52
|
+
#define BOOST_ODEINT_ENUM_SHIFTED_UNARY_CALLS(count, p1, p2) \
|
|
53
|
+
BOOST_PP_ENUM_SHIFTED(count, BOOST_ODEINT_ENUM_UNARY_CALLS_, (p1, p2))
|
|
54
|
+
#define BOOST_ODEINT_ENUM_TRAILING_SHIFTED_UNARY_CALLS(count, p1, p2) \
|
|
55
|
+
BOOST_PP_COMMA_IF(BOOST_PP_DEC(count)) \
|
|
56
|
+
BOOST_PP_ENUM_SHIFTED(count, BOOST_ODEINT_ENUM_UNARY_CALLS_, (p1, p2))
|
|
57
|
+
#define BOOST_ODEINT_ENUM_UNARY_CALLS_(z, n, data) \
|
|
58
|
+
BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM(2, 0, data), n) \
|
|
59
|
+
( BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM(2, 1, data), n) )
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
// maximum arity + 1 for scale_sum and for_each
|
|
63
|
+
#define BOOST_ODEINT_N_ARY_MAX 16
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
// generate scale_sum1 to scale_sumN, operator body generated by macro(N)
|
|
67
|
+
#define BOOST_ODEINT_GEN_SCALE_SUM(macro) \
|
|
68
|
+
BOOST_PP_REPEAT_FROM_TO(1, BOOST_ODEINT_N_ARY_MAX, BOOST_ODEINT_GEN_SCALE_SUM_, macro)
|
|
69
|
+
#define BOOST_ODEINT_GEN_SCALE_SUM_(z, n, macro) \
|
|
70
|
+
template< BOOST_ODEINT_ENUM_LSHIFTED_BINARY_PARAMS(n, class Fac, = double, = Fac) > \
|
|
71
|
+
struct BOOST_PP_CAT(scale_sum, n) \
|
|
72
|
+
{ \
|
|
73
|
+
BOOST_ODEINT_ENUM_BINARY_STATEMENTS(n, const Fac, m_alpha) \
|
|
74
|
+
\
|
|
75
|
+
BOOST_PP_CAT(scale_sum, n) \
|
|
76
|
+
( BOOST_PP_ENUM_BINARY_PARAMS(n, Fac, alpha) ) \
|
|
77
|
+
: BOOST_ODEINT_ENUM_UNARY_CALLS(n, m_alpha, alpha) {} \
|
|
78
|
+
\
|
|
79
|
+
template< BOOST_PP_ENUM_PARAMS(BOOST_PP_INC(n), class T) > \
|
|
80
|
+
void operator()( T0 &t0 \
|
|
81
|
+
BOOST_ODEINT_ENUM_TRAILING_SHIFTED_BINARY_PARAMS(BOOST_PP_INC(n), const T, &t) \
|
|
82
|
+
) const \
|
|
83
|
+
{ macro(n) } \
|
|
84
|
+
typedef void result_type; \
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
// generate for_each1 to for_eachN, body generated by macro(N)
|
|
88
|
+
#define BOOST_ODEINT_GEN_FOR_EACH(macro) \
|
|
89
|
+
BOOST_PP_REPEAT_FROM_TO(1, BOOST_ODEINT_N_ARY_MAX, BOOST_ODEINT_GEN_FOR_EACH_, macro)
|
|
90
|
+
#define BOOST_ODEINT_GEN_FOR_EACH_(z, n, macro) \
|
|
91
|
+
template< BOOST_PP_ENUM_PARAMS(n, class S) , class Op > \
|
|
92
|
+
static void for_each##n ( BOOST_PP_ENUM_BINARY_PARAMS(n, S, &s) , Op op ) \
|
|
93
|
+
{ macro(n) }
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
#endif
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/*
|
|
2
|
+
[auto_generated]
|
|
3
|
+
boost/numeric/odeint/util/odeint_error.hpp
|
|
4
|
+
|
|
5
|
+
[begin_description]
|
|
6
|
+
Runtime Exceptions thrown by odeint
|
|
7
|
+
[end_description]
|
|
8
|
+
|
|
9
|
+
Copyright 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
|
+
|
|
17
|
+
#ifndef BOOST_NUMERIC_ODEINT_UTIL_ODEINT_ERROR_HPP_INCLUDED
|
|
18
|
+
#define BOOST_NUMERIC_ODEINT_UTIL_ODEINT_ERROR_HPP_INCLUDED
|
|
19
|
+
|
|
20
|
+
#include <stdexcept>
|
|
21
|
+
#include <string>
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
namespace boost {
|
|
25
|
+
namespace numeric {
|
|
26
|
+
namespace odeint {
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* \brief Runtime error thrown by odeint
|
|
31
|
+
*/
|
|
32
|
+
class odeint_error : public std::runtime_error
|
|
33
|
+
{
|
|
34
|
+
public:
|
|
35
|
+
odeint_error(const std::string &s)
|
|
36
|
+
: std::runtime_error(s)
|
|
37
|
+
{ }
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* \brief Runtime error thrown from integrate routines
|
|
43
|
+
*
|
|
44
|
+
* This Error occures when too many iterations are performed in between two
|
|
45
|
+
* observer calls in the integrate routines.
|
|
46
|
+
*/
|
|
47
|
+
class no_progress_error : public odeint_error
|
|
48
|
+
{
|
|
49
|
+
public:
|
|
50
|
+
no_progress_error(const std::string &s)
|
|
51
|
+
: odeint_error(s)
|
|
52
|
+
{ }
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* \brief Runtime error thrown during stepsize adjustment
|
|
58
|
+
*
|
|
59
|
+
* This Error occures when too many iterations are performed without finding
|
|
60
|
+
* an appropriate new step size. This usually indicates non-continuous points
|
|
61
|
+
* in the ODE.
|
|
62
|
+
*/
|
|
63
|
+
class step_adjustment_error : public odeint_error
|
|
64
|
+
{
|
|
65
|
+
public:
|
|
66
|
+
step_adjustment_error(const std::string &s)
|
|
67
|
+
: odeint_error(s)
|
|
68
|
+
{ }
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
#endif // BOOST_NUMERIC_ODEINT_UTIL_ODEINT_ERROR_HPP_INCLUDED
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/*
|
|
2
|
+
[auto_generated]
|
|
3
|
+
boost/numeric/odeint/util/state_wrapper.hpp
|
|
4
|
+
|
|
5
|
+
[begin_description]
|
|
6
|
+
State wrapper for the state type in all stepper. The state wrappers are responsible for construction,
|
|
7
|
+
destruction, copying construction, assignment and resizing.
|
|
8
|
+
[end_description]
|
|
9
|
+
|
|
10
|
+
Copyright 2011-2013 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_UTIL_RESIZE_HPP_INCLUDED
|
|
20
|
+
#define BOOST_NUMERIC_ODEINT_UTIL_RESIZE_HPP_INCLUDED
|
|
21
|
+
|
|
22
|
+
#include <type_traits>
|
|
23
|
+
|
|
24
|
+
#include <boost/range.hpp>
|
|
25
|
+
|
|
26
|
+
#include <boost/utility/enable_if.hpp>
|
|
27
|
+
#include <boost/fusion/include/is_sequence.hpp>
|
|
28
|
+
#include <boost/fusion/include/zip_view.hpp>
|
|
29
|
+
#include <boost/fusion/include/vector.hpp>
|
|
30
|
+
#include <boost/fusion/include/make_fused.hpp>
|
|
31
|
+
#include <boost/fusion/include/for_each.hpp>
|
|
32
|
+
|
|
33
|
+
#include <boost/numeric/odeint/util/is_resizeable.hpp>
|
|
34
|
+
|
|
35
|
+
namespace boost {
|
|
36
|
+
namespace numeric {
|
|
37
|
+
namespace odeint {
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
template< class StateOut , class StateIn , class Enabler = void >
|
|
41
|
+
struct resize_impl_sfinae
|
|
42
|
+
{
|
|
43
|
+
static void resize( StateOut &x1 , const StateIn &x2 )
|
|
44
|
+
{
|
|
45
|
+
x1.resize( boost::size( x2 ) );
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
// resize function
|
|
50
|
+
// standard implementation relies on boost.range and resize member function
|
|
51
|
+
template< class StateOut , class StateIn >
|
|
52
|
+
struct resize_impl
|
|
53
|
+
{
|
|
54
|
+
static void resize( StateOut &x1 , const StateIn &x2 )
|
|
55
|
+
{
|
|
56
|
+
resize_impl_sfinae< StateOut , StateIn >::resize( x1 , x2 );
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
// do not overload or specialize this function, specialize resize_impl<> instead
|
|
62
|
+
template< class StateOut , class StateIn >
|
|
63
|
+
void resize( StateOut &x1 , const StateIn &x2 )
|
|
64
|
+
{
|
|
65
|
+
resize_impl< StateOut , StateIn >::resize( x1 , x2 );
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
namespace detail {
|
|
70
|
+
|
|
71
|
+
struct resizer
|
|
72
|
+
{
|
|
73
|
+
typedef void result_type;
|
|
74
|
+
|
|
75
|
+
template< class StateOut , class StateIn >
|
|
76
|
+
void operator()( StateOut &x1 , const StateIn &x2 ) const
|
|
77
|
+
{
|
|
78
|
+
resize_op( x1 , x2 , typename is_resizeable< StateOut >::type() );
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
template< class StateOut , class StateIn >
|
|
82
|
+
void resize_op( StateOut &x1 , const StateIn &x2 , std::true_type ) const
|
|
83
|
+
{
|
|
84
|
+
resize( x1 , x2 );
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
template< class StateOut , class StateIn >
|
|
88
|
+
void resize_op( StateOut &/*x1*/ , const StateIn &/*x2*/ , std::false_type ) const
|
|
89
|
+
{
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
};
|
|
93
|
+
} // namespace detail
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
/*
|
|
97
|
+
* specialization for fusion sequences
|
|
98
|
+
*/
|
|
99
|
+
template< class FusionSeq >
|
|
100
|
+
struct resize_impl_sfinae< FusionSeq , FusionSeq ,
|
|
101
|
+
typename boost::enable_if< typename boost::fusion::traits::is_sequence< FusionSeq >::type >::type >
|
|
102
|
+
{
|
|
103
|
+
static void resize( FusionSeq &x1 , const FusionSeq &x2 )
|
|
104
|
+
{
|
|
105
|
+
typedef boost::fusion::vector< FusionSeq& , const FusionSeq& > Sequences;
|
|
106
|
+
Sequences sequences( x1 , x2 );
|
|
107
|
+
boost::fusion::for_each( boost::fusion::zip_view< Sequences >( sequences ) , boost::fusion::make_fused( detail::resizer() ) );
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
#endif // BOOST_NUMERIC_ODEINT_UTIL_RESIZE_HPP_INCLUDED
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/*
|
|
2
|
+
[auto_generated]
|
|
3
|
+
boost/numeric/odeint/util/resizer.hpp
|
|
4
|
+
|
|
5
|
+
[begin_description]
|
|
6
|
+
Implementation of the resizers.
|
|
7
|
+
[end_description]
|
|
8
|
+
|
|
9
|
+
Copyright 2011-2012 Mario Mulansky
|
|
10
|
+
Copyright 2011 Karsten Ahnert
|
|
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_UTIL_RESIZER_HPP_INCLUDED
|
|
19
|
+
#define BOOST_NUMERIC_ODEINT_UTIL_RESIZER_HPP_INCLUDED
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
#include <boost/numeric/odeint/util/is_resizeable.hpp>
|
|
23
|
+
#include <boost/numeric/odeint/util/same_size.hpp>
|
|
24
|
+
#include <boost/numeric/odeint/util/resize.hpp>
|
|
25
|
+
#include <type_traits>
|
|
26
|
+
|
|
27
|
+
namespace boost {
|
|
28
|
+
namespace numeric {
|
|
29
|
+
namespace odeint {
|
|
30
|
+
|
|
31
|
+
template< class ResizeWrappedState , class State >
|
|
32
|
+
bool adjust_size_by_resizeability( ResizeWrappedState &x , const State &y , std::true_type )
|
|
33
|
+
{
|
|
34
|
+
if ( !same_size( x.m_v , y ) )
|
|
35
|
+
{
|
|
36
|
+
resize( x.m_v , y );
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
else
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
template< class ResizeWrappedState , class State >
|
|
44
|
+
bool adjust_size_by_resizeability( ResizeWrappedState & /* x */ , const State & /* y */ , std::false_type )
|
|
45
|
+
{
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
struct always_resizer
|
|
50
|
+
{
|
|
51
|
+
template< class State , class ResizeFunction >
|
|
52
|
+
bool adjust_size( const State &x , ResizeFunction f )
|
|
53
|
+
{
|
|
54
|
+
return f( x );
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
struct initially_resizer
|
|
60
|
+
{
|
|
61
|
+
|
|
62
|
+
bool m_initialized;
|
|
63
|
+
|
|
64
|
+
initially_resizer() : m_initialized( false )
|
|
65
|
+
{ }
|
|
66
|
+
|
|
67
|
+
template< class State , class ResizeFunction >
|
|
68
|
+
bool adjust_size( const State &x , ResizeFunction f )
|
|
69
|
+
{
|
|
70
|
+
if( !m_initialized )
|
|
71
|
+
{
|
|
72
|
+
m_initialized = true;
|
|
73
|
+
return f( x );
|
|
74
|
+
} else
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
struct never_resizer
|
|
81
|
+
{
|
|
82
|
+
template< class State , class ResizeFunction >
|
|
83
|
+
bool adjust_size( const State &/*x*/ , ResizeFunction /*f*/ )
|
|
84
|
+
{
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
#endif // BOOST_NUMERIC_ODEINT_UTIL_RESIZER_HPP_INCLUDED
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/*
|
|
2
|
+
[auto_generated]
|
|
3
|
+
boost/numeric/odeint/util/same_instance.hpp
|
|
4
|
+
|
|
5
|
+
[begin_description]
|
|
6
|
+
Basic check if two variables are the same instance
|
|
7
|
+
[end_description]
|
|
8
|
+
|
|
9
|
+
Copyright 2012 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_UTIL_SAME_INSTANCE_HPP_INCLUDED
|
|
19
|
+
#define BOOST_NUMERIC_ODEINT_UTIL_SAME_INSTANCE_HPP_INCLUDED
|
|
20
|
+
|
|
21
|
+
namespace boost {
|
|
22
|
+
namespace numeric {
|
|
23
|
+
namespace odeint {
|
|
24
|
+
|
|
25
|
+
template< class T1 , class T2 , class Enabler=void >
|
|
26
|
+
struct same_instance_impl
|
|
27
|
+
{
|
|
28
|
+
static bool same_instance( const T1& /* x1 */ , const T2& /* x2 */ )
|
|
29
|
+
{
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
template< class T >
|
|
35
|
+
struct same_instance_impl< T , T >
|
|
36
|
+
{
|
|
37
|
+
static bool same_instance( const T &x1 , const T &x2 )
|
|
38
|
+
{
|
|
39
|
+
// check pointers
|
|
40
|
+
return (&x1 == &x2);
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
template< class T1 , class T2 >
|
|
46
|
+
bool same_instance( const T1 &x1 , const T2 &x2 )
|
|
47
|
+
{
|
|
48
|
+
return same_instance_impl< T1 , T2 >::same_instance( x1 , x2 );
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
} // namespace odeint
|
|
53
|
+
} // namespace numeric
|
|
54
|
+
} // namespace boost
|
|
55
|
+
|
|
56
|
+
#endif
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/*
|
|
2
|
+
[auto_generated]
|
|
3
|
+
boost/numeric/odeint/util/state_wrapper.hpp
|
|
4
|
+
|
|
5
|
+
[begin_description]
|
|
6
|
+
State wrapper for the state type in all stepper. The state wrappers are responsible for construction,
|
|
7
|
+
destruction, copying construction, assignment and resizing.
|
|
8
|
+
[end_description]
|
|
9
|
+
|
|
10
|
+
Copyright 2011-2013 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_UTIL_SAME_SIZE_HPP_INCLUDED
|
|
20
|
+
#define BOOST_NUMERIC_ODEINT_UTIL_SAME_SIZE_HPP_INCLUDED
|
|
21
|
+
|
|
22
|
+
#include <type_traits>
|
|
23
|
+
|
|
24
|
+
#include <boost/numeric/odeint/util/is_resizeable.hpp>
|
|
25
|
+
|
|
26
|
+
#include <boost/utility/enable_if.hpp>
|
|
27
|
+
#include <boost/fusion/include/is_sequence.hpp>
|
|
28
|
+
#include <boost/fusion/include/zip_view.hpp>
|
|
29
|
+
#include <boost/fusion/include/vector.hpp>
|
|
30
|
+
#include <boost/fusion/include/make_fused.hpp>
|
|
31
|
+
#include <boost/fusion/include/all.hpp>
|
|
32
|
+
|
|
33
|
+
#include <boost/range.hpp>
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
namespace boost {
|
|
37
|
+
namespace numeric {
|
|
38
|
+
namespace odeint {
|
|
39
|
+
|
|
40
|
+
template< typename State1 , typename State2 , class Enabler = void >
|
|
41
|
+
struct same_size_impl_sfinae
|
|
42
|
+
{
|
|
43
|
+
static bool same_size( const State1 &x1 , const State2 &x2 )
|
|
44
|
+
{
|
|
45
|
+
return ( boost::size( x1 ) == boost::size( x2 ) );
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
// same_size function
|
|
51
|
+
// standard implementation relies on boost.range
|
|
52
|
+
template< class State1 , class State2 >
|
|
53
|
+
struct same_size_impl
|
|
54
|
+
{
|
|
55
|
+
static bool same_size( const State1 &x1 , const State2 &x2 )
|
|
56
|
+
{
|
|
57
|
+
return same_size_impl_sfinae< State1 , State2 >::same_size( x1 , x2 );
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
// do not overload or specialize this function, specialize resize_impl<> instead
|
|
63
|
+
template< class State1 , class State2 >
|
|
64
|
+
bool same_size( const State1 &x1 , const State2 &x2 )
|
|
65
|
+
{
|
|
66
|
+
return same_size_impl< State1 , State2 >::same_size( x1 , x2 );
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
namespace detail {
|
|
70
|
+
|
|
71
|
+
struct same_size_fusion
|
|
72
|
+
{
|
|
73
|
+
typedef bool result_type;
|
|
74
|
+
|
|
75
|
+
template< class S1 , class S2 >
|
|
76
|
+
bool operator()( const S1 &x1 , const S2 &x2 ) const
|
|
77
|
+
{
|
|
78
|
+
return same_size_op( x1 , x2 , typename is_resizeable< S1 >::type() );
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
template< class S1 , class S2 >
|
|
82
|
+
bool same_size_op( const S1 &x1 , const S2 &x2 , std::true_type ) const
|
|
83
|
+
{
|
|
84
|
+
return same_size( x1 , x2 );
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
template< class S1 , class S2 >
|
|
88
|
+
bool same_size_op( const S1 &/*x1*/ , const S2 &/*x2*/ , std::false_type ) const
|
|
89
|
+
{
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
} // namespace detail
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
template< class FusionSeq >
|
|
99
|
+
struct same_size_impl_sfinae< FusionSeq , FusionSeq , typename boost::enable_if< typename boost::fusion::traits::is_sequence< FusionSeq >::type >::type >
|
|
100
|
+
{
|
|
101
|
+
static bool same_size( const FusionSeq &x1 , const FusionSeq &x2 )
|
|
102
|
+
{
|
|
103
|
+
typedef boost::fusion::vector< const FusionSeq& , const FusionSeq& > Sequences;
|
|
104
|
+
Sequences sequences( x1 , x2 );
|
|
105
|
+
return boost::fusion::all( boost::fusion::zip_view< Sequences >( sequences ) ,
|
|
106
|
+
boost::fusion::make_fused( detail::same_size_fusion() ) );
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
#endif // BOOST_NUMERIC_ODEINT_UTIL_SAME_SIZE_HPP_INCLUDED
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/*
|
|
2
|
+
[auto_generated]
|
|
3
|
+
boost/numeric/odeint/util/split.hpp
|
|
4
|
+
|
|
5
|
+
[begin_description]
|
|
6
|
+
Split abstraction for parallel backends.
|
|
7
|
+
[end_description]
|
|
8
|
+
|
|
9
|
+
Copyright 2013 Karsten Ahnert
|
|
10
|
+
Copyright 2013 Mario Mulansky
|
|
11
|
+
Copyright 2013 Pascal Germroth
|
|
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_UTIL_SPLIT_HPP_INCLUDED
|
|
20
|
+
#define BOOST_NUMERIC_ODEINT_UTIL_SPLIT_HPP_INCLUDED
|
|
21
|
+
|
|
22
|
+
namespace boost {
|
|
23
|
+
namespace numeric {
|
|
24
|
+
namespace odeint {
|
|
25
|
+
|
|
26
|
+
/*
|
|
27
|
+
* No default implementation of the split operation
|
|
28
|
+
*/
|
|
29
|
+
template< class Container1, class Container2 , class Enabler = void >
|
|
30
|
+
struct split_impl
|
|
31
|
+
{
|
|
32
|
+
static void split( const Container1 &from , Container2 &to );
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
template< class Container1 , class Container2 >
|
|
36
|
+
void split( const Container1 &from , Container2 &to )
|
|
37
|
+
{
|
|
38
|
+
split_impl< Container1 , Container2 >::split( from , to );
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
/*
|
|
43
|
+
* No default implementation of the unsplit operation
|
|
44
|
+
*/
|
|
45
|
+
template< class Container1, class Container2 , class Enabler = void >
|
|
46
|
+
struct unsplit_impl
|
|
47
|
+
{
|
|
48
|
+
static void unsplit( const Container1 &from , Container2 &to );
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
template< class Container1 , class Container2 >
|
|
52
|
+
void unsplit( const Container1 &from , Container2 &to )
|
|
53
|
+
{
|
|
54
|
+
unsplit_impl< Container1 , Container2 >::unsplit( from , to );
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
} // namespace odeint
|
|
59
|
+
} // namespace numeric
|
|
60
|
+
} // namespace boost
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
#endif // BOOST_NUMERIC_ODEINT_UTIL_COPY_HPP_INCLUDED
|
|
64
|
+
|