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,41 @@
|
|
|
1
|
+
/*
|
|
2
|
+
[auto_generated]
|
|
3
|
+
boost/numeric/odeint/external/compute/compute_algebra_dispatcher.hpp
|
|
4
|
+
|
|
5
|
+
[begin_description]
|
|
6
|
+
algebra_dispatcher specialization for Boost.Compute
|
|
7
|
+
[end_description]
|
|
8
|
+
|
|
9
|
+
Copyright 2009-2013 Karsten Ahnert
|
|
10
|
+
Copyright 2009-2013 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_EXTERNAL_COMPUTE_COMPUTE_ALGEBRA_DISPATCHER_HPP_DEFINED
|
|
19
|
+
#define BOOST_NUMERIC_ODEINT_EXTERNAL_COMPUTE_COMPUTE_ALGEBRA_DISPATCHER_HPP_DEFINED
|
|
20
|
+
|
|
21
|
+
#include <boost/compute/container/vector.hpp>
|
|
22
|
+
|
|
23
|
+
#include <boost/numeric/odeint/external/compute/compute_algebra.hpp>
|
|
24
|
+
#include <boost/numeric/odeint/algebra/algebra_dispatcher.hpp>
|
|
25
|
+
|
|
26
|
+
namespace boost {
|
|
27
|
+
namespace numeric {
|
|
28
|
+
namespace odeint {
|
|
29
|
+
|
|
30
|
+
// specialization for Boost.Compute vector
|
|
31
|
+
template< class T , class A >
|
|
32
|
+
struct algebra_dispatcher< boost::compute::vector< T , A > >
|
|
33
|
+
{
|
|
34
|
+
typedef compute_algebra algebra_type;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
} // namespace odeint
|
|
38
|
+
} // namespace numeric
|
|
39
|
+
} // namespace boost
|
|
40
|
+
|
|
41
|
+
#endif // BOOST_NUMERIC_ODEINT_EXTERNAL_COMPUTE_COMPUTE_ALGEBRA_DISPATCHER_HPP_DEFINED
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
/*
|
|
2
|
+
[auto_generated]
|
|
3
|
+
boost/numeric/odeint/external/compute/compute_operations.hpp
|
|
4
|
+
|
|
5
|
+
[begin_description]
|
|
6
|
+
Operations of Boost.Compute zipped iterators. Is the counterpart of the compute_algebra.
|
|
7
|
+
[end_description]
|
|
8
|
+
|
|
9
|
+
Copyright 2009-2011 Karsten Ahnert
|
|
10
|
+
Copyright 2009-2011 Mario Mulansky
|
|
11
|
+
|
|
12
|
+
Distributed under the Boost Software License, Version 1.0.
|
|
13
|
+
(See accompanying file LICENSE_1_0.txt or
|
|
14
|
+
copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
#ifndef BOOST_NUMERIC_ODEINT_EXTERNAL_COMPUTE_COMPUTE_OPERATIONS_HPP_DEFINED
|
|
19
|
+
#define BOOST_NUMERIC_ODEINT_EXTERNAL_COMPUTE_COMPUTE_OPERATIONS_HPP_DEFINED
|
|
20
|
+
|
|
21
|
+
#include <boost/preprocessor/repetition.hpp>
|
|
22
|
+
#include <boost/compute.hpp>
|
|
23
|
+
|
|
24
|
+
namespace boost {
|
|
25
|
+
namespace numeric {
|
|
26
|
+
namespace odeint {
|
|
27
|
+
|
|
28
|
+
struct compute_operations {
|
|
29
|
+
|
|
30
|
+
#define BOOST_ODEINT_COMPUTE_TEMPL_FAC(z, n, unused) \
|
|
31
|
+
, class Fac ## n = BOOST_PP_CAT(Fac, BOOST_PP_DEC(n))
|
|
32
|
+
|
|
33
|
+
#define BOOST_ODEINT_COMPUTE_MEMB_FAC(z, n, unused) \
|
|
34
|
+
const Fac ## n m_alpha ## n;
|
|
35
|
+
|
|
36
|
+
#define BOOST_ODEINT_COMPUTE_PRM_FAC(z, n, unused) \
|
|
37
|
+
BOOST_PP_COMMA_IF(n) const Fac ## n alpha ## n
|
|
38
|
+
|
|
39
|
+
#define BOOST_ODEINT_COMPUTE_INIT_FAC(z, n, unused) \
|
|
40
|
+
BOOST_PP_COMMA_IF(n) m_alpha ## n (alpha ## n)
|
|
41
|
+
|
|
42
|
+
#define BOOST_ODEINT_COMPUTE_PRM_STATE(z, n, unused) \
|
|
43
|
+
BOOST_PP_COMMA_IF(n) StateType ## n &s ## n
|
|
44
|
+
|
|
45
|
+
#define BOOST_ODEINT_COMPUTE_BEGIN_STATE(z, n, unused) \
|
|
46
|
+
BOOST_PP_COMMA_IF( BOOST_PP_DEC(n) ) s ## n.begin()
|
|
47
|
+
|
|
48
|
+
#define BOOST_ODEINT_COMPUTE_END_STATE(z, n, unused) \
|
|
49
|
+
BOOST_PP_COMMA_IF( BOOST_PP_DEC(n) ) s ## n.end()
|
|
50
|
+
|
|
51
|
+
#define BOOST_ODEINT_COMPUTE_LAMBDA(z, n, unused) \
|
|
52
|
+
BOOST_PP_EXPR_IF(n, +) m_alpha ## n * bc::lambda::get< n >(bc::_1)
|
|
53
|
+
|
|
54
|
+
#define BOOST_ODEINT_COMPUTE_OPERATIONS(z, n, unused) \
|
|
55
|
+
template< \
|
|
56
|
+
class Fac0 = double \
|
|
57
|
+
BOOST_PP_REPEAT_FROM_TO(1, n, BOOST_ODEINT_COMPUTE_TEMPL_FAC, ~) \
|
|
58
|
+
> \
|
|
59
|
+
struct scale_sum ## n { \
|
|
60
|
+
BOOST_PP_REPEAT(n, BOOST_ODEINT_COMPUTE_MEMB_FAC, ~) \
|
|
61
|
+
scale_sum ## n( \
|
|
62
|
+
BOOST_PP_REPEAT(n, BOOST_ODEINT_COMPUTE_PRM_FAC, ~) \
|
|
63
|
+
) \
|
|
64
|
+
: BOOST_PP_REPEAT(n, BOOST_ODEINT_COMPUTE_INIT_FAC, ~) \
|
|
65
|
+
{ } \
|
|
66
|
+
template< BOOST_PP_ENUM_PARAMS(BOOST_PP_INC(n), class StateType) > \
|
|
67
|
+
void operator()( \
|
|
68
|
+
BOOST_PP_REPEAT( \
|
|
69
|
+
BOOST_PP_INC(n), \
|
|
70
|
+
BOOST_ODEINT_COMPUTE_PRM_STATE, ~) \
|
|
71
|
+
) const \
|
|
72
|
+
{ \
|
|
73
|
+
namespace bc = boost::compute; \
|
|
74
|
+
bc::transform( \
|
|
75
|
+
bc::make_zip_iterator( \
|
|
76
|
+
boost::make_tuple( \
|
|
77
|
+
BOOST_PP_REPEAT_FROM_TO( \
|
|
78
|
+
1, BOOST_PP_INC(n), \
|
|
79
|
+
BOOST_ODEINT_COMPUTE_BEGIN_STATE, ~) \
|
|
80
|
+
) \
|
|
81
|
+
), \
|
|
82
|
+
bc::make_zip_iterator( \
|
|
83
|
+
boost::make_tuple( \
|
|
84
|
+
BOOST_PP_REPEAT_FROM_TO( \
|
|
85
|
+
1, BOOST_PP_INC(n), \
|
|
86
|
+
BOOST_ODEINT_COMPUTE_END_STATE, ~) \
|
|
87
|
+
) \
|
|
88
|
+
), \
|
|
89
|
+
s0.begin(), \
|
|
90
|
+
BOOST_PP_REPEAT(n, BOOST_ODEINT_COMPUTE_LAMBDA, ~) \
|
|
91
|
+
); \
|
|
92
|
+
} \
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
BOOST_PP_REPEAT_FROM_TO(2, 8, BOOST_ODEINT_COMPUTE_OPERATIONS, ~)
|
|
96
|
+
|
|
97
|
+
#undef BOOST_ODEINT_COMPUTE_TEMPL_FAC
|
|
98
|
+
#undef BOOST_ODEINT_COMPUTE_MEMB_FAC
|
|
99
|
+
#undef BOOST_ODEINT_COMPUTE_PRM_FAC
|
|
100
|
+
#undef BOOST_ODEINT_COMPUTE_INIT_FAC
|
|
101
|
+
#undef BOOST_ODEINT_COMPUTE_PRM_STATE
|
|
102
|
+
#undef BOOST_ODEINT_COMPUTE_BEGIN_STATE
|
|
103
|
+
#undef BOOST_ODEINT_COMPUTE_END_STATE
|
|
104
|
+
#undef BOOST_ODEINT_COMPUTE_LAMBDA
|
|
105
|
+
#undef BOOST_ODEINT_COMPUTE_OPERATIONS
|
|
106
|
+
|
|
107
|
+
template<class Fac1 = double, class Fac2 = Fac1>
|
|
108
|
+
struct scale_sum_swap2 {
|
|
109
|
+
const Fac1 m_alpha1;
|
|
110
|
+
const Fac2 m_alpha2;
|
|
111
|
+
|
|
112
|
+
scale_sum_swap2(const Fac1 alpha1, const Fac2 alpha2)
|
|
113
|
+
: m_alpha1(alpha1), m_alpha2(alpha2) { }
|
|
114
|
+
|
|
115
|
+
template<class State0, class State1, class State2>
|
|
116
|
+
void operator()(State0 &s0, State1 &s1, State2 &s2) const {
|
|
117
|
+
namespace bc = boost::compute;
|
|
118
|
+
|
|
119
|
+
bc::command_queue &queue = bc::system::default_queue();
|
|
120
|
+
const bc::context &context = queue.get_context();
|
|
121
|
+
|
|
122
|
+
const char source[] = BOOST_COMPUTE_STRINGIZE_SOURCE(
|
|
123
|
+
kernel void scale_sum_swap2(
|
|
124
|
+
F1 a1, F2 a2,
|
|
125
|
+
global T0 *x0, global T1 *x1, global T2 *x2,
|
|
126
|
+
)
|
|
127
|
+
{
|
|
128
|
+
uint i = get_global_id(0);
|
|
129
|
+
T0 tmp = x0[i];
|
|
130
|
+
x0[i] = a1 * x1[i] + a2 * x2[i];
|
|
131
|
+
x1[i] = tmp;
|
|
132
|
+
}
|
|
133
|
+
);
|
|
134
|
+
|
|
135
|
+
std::stringstream options;
|
|
136
|
+
options
|
|
137
|
+
<< " -DT0=" << bc::type_name<typename State0::value_type>()
|
|
138
|
+
<< " -DT1=" << bc::type_name<typename State1::value_type>()
|
|
139
|
+
<< " -DT2=" << bc::type_name<typename State2::value_type>()
|
|
140
|
+
<< " -DF1=" << bc::type_name<Fac1>()
|
|
141
|
+
<< " -DF2=" << bc::type_name<Fac2>();
|
|
142
|
+
|
|
143
|
+
bc::program program =
|
|
144
|
+
bc::program::build_with_source(source, context, options.str());
|
|
145
|
+
|
|
146
|
+
bc::kernel kernel(program, "scale_sum_swap2");
|
|
147
|
+
kernel.set_arg(0, m_alpha1);
|
|
148
|
+
kernel.set_arg(1, m_alpha2);
|
|
149
|
+
kernel.set_arg(2, s0.get_buffer());
|
|
150
|
+
kernel.set_arg(3, s1.get_buffer());
|
|
151
|
+
kernel.set_arg(4, s2.get_buffer());
|
|
152
|
+
|
|
153
|
+
queue.enqueue_1d_range_kernel(kernel, 0, s0.size());
|
|
154
|
+
|
|
155
|
+
}
|
|
156
|
+
};
|
|
157
|
+
|
|
158
|
+
template<class Fac1 = double>
|
|
159
|
+
struct rel_error {
|
|
160
|
+
const Fac1 m_eps_abs, m_eps_rel, m_a_x, m_a_dxdt;
|
|
161
|
+
|
|
162
|
+
rel_error(const Fac1 eps_abs, const Fac1 eps_rel, const Fac1 a_x, const Fac1 a_dxdt)
|
|
163
|
+
: m_eps_abs(eps_abs), m_eps_rel(eps_rel), m_a_x(a_x), m_a_dxdt(a_dxdt) { }
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
template <class State0, class State1, class State2>
|
|
167
|
+
void operator()(State0 &s0, State1 &s1, State2 &s2) const {
|
|
168
|
+
namespace bc = boost::compute;
|
|
169
|
+
using bc::_1;
|
|
170
|
+
using bc::lambda::get;
|
|
171
|
+
|
|
172
|
+
bc::for_each(
|
|
173
|
+
bc::make_zip_iterator(
|
|
174
|
+
boost::make_tuple(
|
|
175
|
+
s0.begin(),
|
|
176
|
+
s1.begin(),
|
|
177
|
+
s2.begin()
|
|
178
|
+
)
|
|
179
|
+
),
|
|
180
|
+
bc::make_zip_iterator(
|
|
181
|
+
boost::make_tuple(
|
|
182
|
+
s0.end(),
|
|
183
|
+
s1.end(),
|
|
184
|
+
s2.end()
|
|
185
|
+
)
|
|
186
|
+
),
|
|
187
|
+
get<0>(_1) = abs( get<0>(_1) ) /
|
|
188
|
+
(m_eps_abs + m_eps_rel * (m_a_x * abs(get<1>(_1) + m_a_dxdt * abs(get<2>(_1)))))
|
|
189
|
+
);
|
|
190
|
+
}
|
|
191
|
+
};
|
|
192
|
+
};
|
|
193
|
+
|
|
194
|
+
} // odeint
|
|
195
|
+
} // numeric
|
|
196
|
+
} // boost
|
|
197
|
+
|
|
198
|
+
#endif // BOOST_NUMERIC_ODEINT_EXTERNAL_COMPUTE_COMPUTE_OPERATIONS_HPP_DEFINED
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/*
|
|
2
|
+
[auto_generated]
|
|
3
|
+
boost/numeric/odeint/external/compute/compute_operations_dispatcher.hpp
|
|
4
|
+
|
|
5
|
+
[begin_description]
|
|
6
|
+
operations_dispatcher specialization for Boost.Compute
|
|
7
|
+
[end_description]
|
|
8
|
+
|
|
9
|
+
Copyright 2009-2013 Karsten Ahnert
|
|
10
|
+
Copyright 2009-2013 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_EXTERNAL_COMPUTE_COMPUTE_OPERATIONS_DISPATCHER_HPP_DEFINED
|
|
19
|
+
#define BOOST_NUMERIC_ODEINT_EXTERNAL_COMPUTE_COMPUTE_OPERATIONS_DISPATCHER_HPP_DEFINED
|
|
20
|
+
|
|
21
|
+
#include <boost/compute/container/vector.hpp>
|
|
22
|
+
|
|
23
|
+
#include <boost/numeric/odeint/external/compute/compute_operations.hpp>
|
|
24
|
+
#include <boost/numeric/odeint/algebra/operations_dispatcher.hpp>
|
|
25
|
+
|
|
26
|
+
namespace boost {
|
|
27
|
+
namespace numeric {
|
|
28
|
+
namespace odeint {
|
|
29
|
+
|
|
30
|
+
// specialization for Boost.Compute vector
|
|
31
|
+
template< class T , class A >
|
|
32
|
+
struct operations_dispatcher< boost::compute::vector< T , A > >
|
|
33
|
+
{
|
|
34
|
+
typedef compute_operations operations_type;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
} // namespace odeint
|
|
38
|
+
} // namespace numeric
|
|
39
|
+
} // namespace boost
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
#endif // BOOST_NUMERIC_ODEINT_EXTERNAL_COMPUTE_COMPUTE_OPERATIONS_DISPATCHER_HPP_DEFINED
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/*
|
|
2
|
+
[auto_generated]
|
|
3
|
+
boost/numeric/odeint/external/compute/compute_resize.hpp
|
|
4
|
+
|
|
5
|
+
[begin_description]
|
|
6
|
+
Enable resizing for Boost.Compute vector
|
|
7
|
+
[end_description]
|
|
8
|
+
|
|
9
|
+
Copyright 2009-2011 Karsten Ahnert
|
|
10
|
+
Copyright 2009-2011 Mario Mulansky
|
|
11
|
+
|
|
12
|
+
Distributed under the Boost Software License, Version 1.0.
|
|
13
|
+
(See accompanying file LICENSE_1_0.txt or
|
|
14
|
+
copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
#ifndef BOOST_NUMERIC_ODEINT_EXTERNAL_COMPUTE_COMPUTE_RESIZE_HPP_DEFINED
|
|
19
|
+
#define BOOST_NUMERIC_ODEINT_EXTERNAL_COMPUTE_COMPUTE_RESIZE_HPP_DEFINED
|
|
20
|
+
|
|
21
|
+
#include <boost/compute/container/vector.hpp>
|
|
22
|
+
|
|
23
|
+
#include <boost/numeric/odeint/util/copy.hpp>
|
|
24
|
+
|
|
25
|
+
#include <type_traits>
|
|
26
|
+
|
|
27
|
+
namespace boost {
|
|
28
|
+
namespace numeric {
|
|
29
|
+
namespace odeint {
|
|
30
|
+
|
|
31
|
+
template< class T, class A >
|
|
32
|
+
struct is_resizeable< boost::compute::vector< T , A > >
|
|
33
|
+
{
|
|
34
|
+
struct type : public std::true_type { };
|
|
35
|
+
const static bool value = type::value;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
template< class T, class A >
|
|
39
|
+
struct same_size_impl< boost::compute::vector< T, A > , boost::compute::vector< T, A > >
|
|
40
|
+
{
|
|
41
|
+
static bool same_size( const boost::compute::vector< T, A > &x , const boost::compute::vector< T, A > &y )
|
|
42
|
+
{
|
|
43
|
+
return x.size() == y.size();
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
template< class T, class A >
|
|
48
|
+
struct resize_impl< boost::compute::vector< T, A > , boost::compute::vector< T, A > >
|
|
49
|
+
{
|
|
50
|
+
static void resize( boost::compute::vector< T, A > &x , const boost::compute::vector< T, A > &y )
|
|
51
|
+
{
|
|
52
|
+
x.resize( y.size() );
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
template< class Container1, class T, class A >
|
|
58
|
+
struct copy_impl< Container1 , boost::compute::vector< T, A > >
|
|
59
|
+
{
|
|
60
|
+
static void copy( const Container1 &from , boost::compute::vector< T, A > &to )
|
|
61
|
+
{
|
|
62
|
+
boost::compute::copy( boost::begin( from ) , boost::end( from ) , boost::begin( to ) );
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
template< class T, class A, class Container2 >
|
|
67
|
+
struct copy_impl< boost::compute::vector< T, A > , Container2 >
|
|
68
|
+
{
|
|
69
|
+
static void copy( const boost::compute::vector< T, A > &from , Container2 &to )
|
|
70
|
+
{
|
|
71
|
+
boost::compute::copy( boost::begin( from ) , boost::end( from ) , boost::begin( to ) );
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
template< class T, class A >
|
|
76
|
+
struct copy_impl< boost::compute::vector< T, A > , boost::compute::vector< T, A > >
|
|
77
|
+
{
|
|
78
|
+
static void copy( const boost::compute::vector< T, A > &from , boost::compute::vector< T, A > &to )
|
|
79
|
+
{
|
|
80
|
+
boost::compute::copy( boost::begin( from ) , boost::end( from ) , boost::begin( to ) );
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
} // odeint
|
|
88
|
+
} // numeric
|
|
89
|
+
} // boost
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
#endif // BOOST_NUMERIC_ODEINT_EXTERNAL_COMPUTE_COMPUTE_RESIZE_HPP_DEFINED
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/*
|
|
2
|
+
[auto_generated]
|
|
3
|
+
boost/numeric/odeint/external/eigen/eigen.hpp
|
|
4
|
+
|
|
5
|
+
[begin_description]
|
|
6
|
+
tba.
|
|
7
|
+
[end_description]
|
|
8
|
+
|
|
9
|
+
Copyright 2009-2012 Karsten Ahnert
|
|
10
|
+
Copyright 2009-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_EXTERNAL_EIGEN_EIGEN_HPP_INCLUDED
|
|
19
|
+
#define BOOST_NUMERIC_ODEINT_EXTERNAL_EIGEN_EIGEN_HPP_INCLUDED
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
#include <boost/numeric/odeint/external/eigen/eigen_algebra.hpp>
|
|
23
|
+
#include <boost/numeric/odeint/external/eigen/eigen_algebra_dispatcher.hpp>
|
|
24
|
+
#include <boost/numeric/odeint/external/eigen/eigen_resize.hpp>
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
#endif // BOOST_NUMERIC_ODEINT_EXTERNAL_EIGEN_EIGEN_HPP_INCLUDED
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/*
|
|
2
|
+
[auto_generated]
|
|
3
|
+
boost/numeric/odeint/external/eigen/eigen_algebra.hpp
|
|
4
|
+
|
|
5
|
+
[begin_description]
|
|
6
|
+
tba.
|
|
7
|
+
[end_description]
|
|
8
|
+
|
|
9
|
+
Copyright 2013 Christian Shelton
|
|
10
|
+
Copyright 2013 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_EXTERNAL_EIGEN_EIGEN_ALGEBRA_HPP_INCLUDED
|
|
19
|
+
#define BOOST_NUMERIC_ODEINT_EXTERNAL_EIGEN_EIGEN_ALGEBRA_HPP_INCLUDED
|
|
20
|
+
|
|
21
|
+
#include <Eigen/Dense>
|
|
22
|
+
#include <boost/numeric/odeint/algebra/vector_space_algebra.hpp>
|
|
23
|
+
|
|
24
|
+
// Necessary routines for Eigen matrices to work with vector_space_algebra
|
|
25
|
+
// from odeint
|
|
26
|
+
// (that is, it lets odeint treat the eigen matrices correctly, knowing
|
|
27
|
+
// how to add, multiply, compute the norm, etc)
|
|
28
|
+
namespace Eigen {
|
|
29
|
+
|
|
30
|
+
template<typename D>
|
|
31
|
+
inline const
|
|
32
|
+
typename Eigen::CwiseBinaryOp<
|
|
33
|
+
internal::scalar_sum_op<typename internal::traits<D>::Scalar>,
|
|
34
|
+
typename DenseBase<D>::ConstantReturnType,
|
|
35
|
+
const D>
|
|
36
|
+
operator+(const typename Eigen::MatrixBase<D> &m,
|
|
37
|
+
const typename Eigen::internal::traits<D>::Scalar &s) {
|
|
38
|
+
return CwiseBinaryOp<
|
|
39
|
+
internal::scalar_sum_op<typename internal::traits<D>::Scalar>,
|
|
40
|
+
typename DenseBase<D>::ConstantReturnType,
|
|
41
|
+
const D>(DenseBase<D>::Constant(m.rows(), m.cols(), s), m.derived());
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
template<typename D>
|
|
45
|
+
inline const
|
|
46
|
+
typename Eigen::CwiseBinaryOp<
|
|
47
|
+
internal::scalar_sum_op<typename internal::traits<D>::Scalar>,
|
|
48
|
+
typename DenseBase<D>::ConstantReturnType,
|
|
49
|
+
const D>
|
|
50
|
+
operator+(const typename Eigen::internal::traits<D>::Scalar &s,
|
|
51
|
+
const typename Eigen::MatrixBase<D> &m) {
|
|
52
|
+
return CwiseBinaryOp<
|
|
53
|
+
internal::scalar_sum_op<typename internal::traits<D>::Scalar>,
|
|
54
|
+
typename DenseBase<D>::ConstantReturnType,
|
|
55
|
+
const D>(DenseBase<D>::Constant(m.rows(), m.cols(), s), m.derived());
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
template<typename D1,typename D2>
|
|
59
|
+
inline const
|
|
60
|
+
typename Eigen::CwiseBinaryOp<
|
|
61
|
+
typename Eigen::internal::scalar_quotient_op<
|
|
62
|
+
typename Eigen::internal::traits<D1>::Scalar>,
|
|
63
|
+
const D1, const D2>
|
|
64
|
+
operator/(const Eigen::MatrixBase<D1> &x1, const Eigen::MatrixBase<D2> &x2) {
|
|
65
|
+
return x1.cwiseQuotient(x2);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
template< typename D >
|
|
70
|
+
inline const
|
|
71
|
+
typename Eigen::CwiseUnaryOp<
|
|
72
|
+
typename Eigen::internal::scalar_abs_op<
|
|
73
|
+
typename Eigen::internal::traits< D >::Scalar > ,
|
|
74
|
+
const D >
|
|
75
|
+
abs( const Eigen::MatrixBase< D > &m ) {
|
|
76
|
+
return m.cwiseAbs();
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
} // end Eigen namespace
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
namespace boost {
|
|
83
|
+
namespace numeric {
|
|
84
|
+
namespace odeint {
|
|
85
|
+
|
|
86
|
+
template<typename B,int S1,int S2,int O, int M1, int M2>
|
|
87
|
+
struct vector_space_norm_inf< Eigen::Matrix<B,S1,S2,O,M1,M2> >
|
|
88
|
+
{
|
|
89
|
+
typedef B result_type;
|
|
90
|
+
result_type operator()( const Eigen::Matrix<B,S1,S2,O,M1,M2> &m ) const
|
|
91
|
+
{
|
|
92
|
+
return m.template lpNorm<Eigen::Infinity>();
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
} } } // end boost::numeric::odeint namespace
|
|
97
|
+
|
|
98
|
+
#endif // BOOST_NUMERIC_ODEINT_EXTERNAL_EIGEN_EIGEN_ALGEBRA_HPP_INCLUDED
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/*
|
|
2
|
+
[auto_generated]
|
|
3
|
+
boost/numeric/odeint/external/eigen/eigen_algebra_dispatcher.hpp
|
|
4
|
+
|
|
5
|
+
[begin_description]
|
|
6
|
+
tba.
|
|
7
|
+
[end_description]
|
|
8
|
+
|
|
9
|
+
Copyright 2009-2012 Karsten Ahnert
|
|
10
|
+
Copyright 2009-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_EXTERNAL_EIGEN_EIGEN_ALGEBRA_DISPATCHER_HPP_INCLUDED
|
|
19
|
+
#define BOOST_NUMERIC_ODEINT_EXTERNAL_EIGEN_EIGEN_ALGEBRA_DISPATCHER_HPP_INCLUDED
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
namespace boost {
|
|
23
|
+
namespace numeric {
|
|
24
|
+
namespace odeint {
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
template< class Derived >
|
|
28
|
+
struct algebra_dispatcher_sfinae< Derived ,
|
|
29
|
+
typename boost::enable_if< typename boost::is_base_of< Eigen::MatrixBase< Derived > , Derived >::type >::type >
|
|
30
|
+
{
|
|
31
|
+
typedef vector_space_algebra algebra_type;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
template < class Derived >
|
|
36
|
+
struct algebra_dispatcher_sfinae< Derived ,
|
|
37
|
+
typename boost::enable_if< typename boost::is_base_of< Eigen::ArrayBase< Derived > , Derived >::type >::type >
|
|
38
|
+
{
|
|
39
|
+
typedef vector_space_algebra algebra_type;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
} // namespace odeint
|
|
45
|
+
} // namespace numeric
|
|
46
|
+
} // namespace boost
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
#endif // BOOST_NUMERIC_ODEINT_EXTERNAL_EIGEN_EIGEN_ALGEBRA_DISPATCHER_HPP_INCLUDED
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/*
|
|
2
|
+
[auto_generated]
|
|
3
|
+
boost/numeric/odeint/external/eigen/eigen_resize.hpp
|
|
4
|
+
|
|
5
|
+
[begin_description]
|
|
6
|
+
tba.
|
|
7
|
+
[end_description]
|
|
8
|
+
|
|
9
|
+
Copyright 2013 Ankur Sinha
|
|
10
|
+
Copyright 2013 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_EXTERNAL_EIGEN_EIGEN_RESIZE_HPP_DEFINED
|
|
19
|
+
#define BOOST_NUMERIC_ODEINT_EXTERNAL_EIGEN_EIGEN_RESIZE_HPP_DEFINED
|
|
20
|
+
|
|
21
|
+
#include <type_traits>
|
|
22
|
+
|
|
23
|
+
#include <boost/numeric/odeint/util/is_resizeable.hpp>
|
|
24
|
+
#include <boost/numeric/odeint/util/resize.hpp>
|
|
25
|
+
#include <boost/numeric/odeint/util/same_size.hpp>
|
|
26
|
+
|
|
27
|
+
#include <Eigen/Dense>
|
|
28
|
+
|
|
29
|
+
namespace boost {
|
|
30
|
+
namespace numeric {
|
|
31
|
+
namespace odeint {
|
|
32
|
+
|
|
33
|
+
template< class Derived >
|
|
34
|
+
struct is_resizeable_sfinae< Derived ,
|
|
35
|
+
typename std::enable_if< std::is_base_of< Eigen::MatrixBase< Derived > , Derived >::value >::type >
|
|
36
|
+
{
|
|
37
|
+
typedef std::integral_constant<bool, true> type;
|
|
38
|
+
const static bool value = type::value;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
template < class Derived >
|
|
43
|
+
struct is_resizeable_sfinae< Derived ,
|
|
44
|
+
typename std::enable_if< std::is_base_of< Eigen::ArrayBase< Derived > , Derived >::value >::type >
|
|
45
|
+
{
|
|
46
|
+
typedef std::integral_constant<bool, true> type;
|
|
47
|
+
const static bool value = type::value;
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
template< class Derived >
|
|
53
|
+
struct same_size_impl_sfinae< Derived , Derived ,
|
|
54
|
+
typename std::enable_if< std::is_base_of< Eigen::MatrixBase< Derived > , Derived >::value >::type >
|
|
55
|
+
{
|
|
56
|
+
static bool same_size( const Eigen::MatrixBase< Derived > &m1 , const Eigen::MatrixBase< Derived > &m2 )
|
|
57
|
+
|
|
58
|
+
{
|
|
59
|
+
return ( ( m1.innerSize () == m2.innerSize () ) && ( m1.outerSize() == m2.outerSize() ) );
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
template< class Derived >
|
|
64
|
+
struct same_size_impl_sfinae< Derived , Derived ,
|
|
65
|
+
typename std::enable_if< std::is_base_of< Eigen::ArrayBase< Derived > , Derived >::value >::type >
|
|
66
|
+
{
|
|
67
|
+
static bool same_size( const Eigen::ArrayBase< Derived > &v1 , const Eigen::ArrayBase< Derived > &v2 )
|
|
68
|
+
{
|
|
69
|
+
return ( ( v1.innerSize () == v2.innerSize () ) && ( v1.outerSize() == v2.outerSize() ) );
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
template< class Derived >
|
|
77
|
+
struct resize_impl_sfinae< Derived , Derived ,
|
|
78
|
+
typename std::enable_if< std::is_base_of< Eigen::MatrixBase< Derived > , Derived >::value >::type >
|
|
79
|
+
{
|
|
80
|
+
static void resize( Eigen::MatrixBase< Derived > &m1 , const Eigen::MatrixBase< Derived > &m2 )
|
|
81
|
+
{
|
|
82
|
+
m1.derived().resizeLike(m2);
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
template< class Derived >
|
|
87
|
+
struct resize_impl_sfinae< Derived , Derived ,
|
|
88
|
+
typename std::enable_if< std::is_base_of< Eigen::ArrayBase< Derived > , Derived >::value >::type >
|
|
89
|
+
{
|
|
90
|
+
static void resize( Eigen::ArrayBase< Derived > &v1 , const Eigen::ArrayBase< Derived > &v2 )
|
|
91
|
+
{
|
|
92
|
+
v1.derived().resizeLike(v2);
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
} // namespace odeint
|
|
99
|
+
} // namespace numeric
|
|
100
|
+
} // namespace boost
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
#endif // BOOST_NUMERIC_ODEINT_EXTERNAL_EIGEN_EIGEN_RESIZE_HPP_DEFINED
|