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,161 @@
|
|
|
1
|
+
/*
|
|
2
|
+
[begin_description]
|
|
3
|
+
Modification of the implicit Euler method, works with the MTL4 matrix library only.
|
|
4
|
+
[end_description]
|
|
5
|
+
|
|
6
|
+
Copyright 2012-2013 Andreas Angelopoulos
|
|
7
|
+
Copyright 2012-2013 Karsten Ahnert
|
|
8
|
+
Copyright 2012-2013 Mario Mulansky
|
|
9
|
+
|
|
10
|
+
Distributed under the Boost Software License, Version 1.0.
|
|
11
|
+
(See accompanying file LICENSE_1_0.txt or
|
|
12
|
+
copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
#ifndef BOOST_NUMERIC_ODEINT_EXTERNAL_IMPLICIT_EULER_MTL4_HPP_INCLUDED
|
|
17
|
+
#define BOOST_NUMERIC_ODEINT_EXTERNAL_IMPLICIT_EULER_MTL4_HPP_INCLUDED
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
#include <utility>
|
|
21
|
+
|
|
22
|
+
#include <boost/numeric/odeint/util/bind.hpp>
|
|
23
|
+
#include <boost/numeric/odeint/util/unwrap_reference.hpp>
|
|
24
|
+
#include <boost/numeric/odeint/stepper/stepper_categories.hpp>
|
|
25
|
+
|
|
26
|
+
#include <boost/numeric/odeint/external/mtl4/mtl4_resize.hpp>
|
|
27
|
+
|
|
28
|
+
#include <boost/numeric/mtl/mtl.hpp>
|
|
29
|
+
#include <boost/numeric/itl/itl.hpp>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
namespace boost {
|
|
35
|
+
namespace numeric {
|
|
36
|
+
namespace odeint {
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
template< class ValueType , class Resizer = initially_resizer >
|
|
40
|
+
class implicit_euler_mtl4
|
|
41
|
+
{
|
|
42
|
+
|
|
43
|
+
public:
|
|
44
|
+
|
|
45
|
+
typedef ValueType value_type;
|
|
46
|
+
typedef value_type time_type;
|
|
47
|
+
typedef mtl::dense_vector<value_type> state_type;
|
|
48
|
+
|
|
49
|
+
typedef state_wrapper< state_type > wrapped_state_type;
|
|
50
|
+
typedef state_type deriv_type;
|
|
51
|
+
typedef state_wrapper< deriv_type > wrapped_deriv_type;
|
|
52
|
+
typedef mtl::compressed2D< value_type > matrix_type;
|
|
53
|
+
typedef state_wrapper< matrix_type > wrapped_matrix_type;
|
|
54
|
+
|
|
55
|
+
typedef Resizer resizer_type;
|
|
56
|
+
typedef stepper_tag stepper_category;
|
|
57
|
+
|
|
58
|
+
typedef implicit_euler_mtl4< ValueType , Resizer > stepper_type;
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
implicit_euler_mtl4( const value_type epsilon = 1E-6 )
|
|
62
|
+
: m_epsilon( epsilon ) , m_resizer() ,
|
|
63
|
+
m_dxdt() , m_x() ,
|
|
64
|
+
m_identity() , m_jacobi()
|
|
65
|
+
{ }
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
template< class System >
|
|
69
|
+
void do_step( System system , state_type &x , time_type t , time_type dt )
|
|
70
|
+
{
|
|
71
|
+
typedef typename odeint::unwrap_reference< System >::type system_type;
|
|
72
|
+
typedef typename odeint::unwrap_reference< typename system_type::first_type >::type deriv_func_type;
|
|
73
|
+
typedef typename odeint::unwrap_reference< typename system_type::second_type >::type jacobi_func_type;
|
|
74
|
+
system_type &sys = system;
|
|
75
|
+
deriv_func_type &deriv_func = sys.first;
|
|
76
|
+
jacobi_func_type &jacobi_func = sys.second;
|
|
77
|
+
|
|
78
|
+
m_resizer.adjust_size(x, [this](auto&& arg) { return this->resize_impl<StateIn>(std::forward<decltype(arg)>(arg)); });
|
|
79
|
+
|
|
80
|
+
m_identity.m_v = 1;
|
|
81
|
+
|
|
82
|
+
t += dt;
|
|
83
|
+
m_x.m_v = x;
|
|
84
|
+
|
|
85
|
+
deriv_func( x , m_dxdt.m_v , t );
|
|
86
|
+
jacobi_func( x , m_jacobi.m_v , t );
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
m_dxdt.m_v *= -dt;
|
|
90
|
+
|
|
91
|
+
m_jacobi.m_v *= dt;
|
|
92
|
+
m_jacobi.m_v -= m_identity.m_v ;
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
// using ilu_0 preconditioning -incomplete LU factorisation
|
|
97
|
+
// itl::pc::diagonal<matrix_type,double> L(m_jacobi.m_v);
|
|
98
|
+
itl::pc::ilu_0<matrix_type> L( m_jacobi.m_v );
|
|
99
|
+
|
|
100
|
+
solve( m_jacobi.m_v , m_x.m_v , m_dxdt.m_v , L );
|
|
101
|
+
x+= m_x.m_v;
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
template< class StateType >
|
|
108
|
+
void adjust_size( const StateType &x )
|
|
109
|
+
{
|
|
110
|
+
resize_impl( x );
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
private:
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
/*
|
|
118
|
+
Applying approximate iterative linear solvers
|
|
119
|
+
default solver is Biconjugate gradient stabilized method
|
|
120
|
+
itl::bicgstab(A, x, b, L, iter);
|
|
121
|
+
*/
|
|
122
|
+
template < class LinearOperator, class HilbertSpaceX, class HilbertSpaceB, class Preconditioner>
|
|
123
|
+
void solve(const LinearOperator& A, HilbertSpaceX& x, const HilbertSpaceB& b,
|
|
124
|
+
const Preconditioner& L, int max_iteractions =500)
|
|
125
|
+
{
|
|
126
|
+
// Termination criterion: r < 1e-6 * b or N iterations
|
|
127
|
+
itl::basic_iteration< double > iter( b , max_iteractions , 1e-6 );
|
|
128
|
+
itl::bicgstab( A , x , b , L , iter );
|
|
129
|
+
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
template< class StateIn >
|
|
134
|
+
bool resize_impl( const StateIn &x )
|
|
135
|
+
{
|
|
136
|
+
bool resized = false;
|
|
137
|
+
resized |= adjust_size_by_resizeability( m_dxdt , x , typename is_resizeable<deriv_type>::type() );
|
|
138
|
+
resized |= adjust_size_by_resizeability( m_x , x , typename is_resizeable<state_type>::type() );
|
|
139
|
+
resized |= adjust_size_by_resizeability( m_identity , x , typename is_resizeable<matrix_type>::type() );
|
|
140
|
+
resized |= adjust_size_by_resizeability( m_jacobi , x , typename is_resizeable<matrix_type>::type() );
|
|
141
|
+
return resized;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
private:
|
|
146
|
+
|
|
147
|
+
value_type m_epsilon;
|
|
148
|
+
resizer_type m_resizer;
|
|
149
|
+
wrapped_deriv_type m_dxdt;
|
|
150
|
+
wrapped_state_type m_x;
|
|
151
|
+
wrapped_matrix_type m_identity;
|
|
152
|
+
wrapped_matrix_type m_jacobi;
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
} // odeint
|
|
157
|
+
} // numeric
|
|
158
|
+
} // boost
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
#endif // BOOST_NUMERIC_ODEINT_EXTERNAL_IMPLICIT_EULER_MTL4_HPP_INCLUDED
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/*
|
|
2
|
+
[auto_generated]
|
|
3
|
+
/boost/numeric/odeint/external/mtl4/mtl4.hpp
|
|
4
|
+
|
|
5
|
+
[begin_description]
|
|
6
|
+
includes all headers required for using mtl4 with odeint
|
|
7
|
+
[end_description]
|
|
8
|
+
|
|
9
|
+
Copyright 2013 Karsten Ahnert
|
|
10
|
+
Copyright 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
|
+
#ifndef BOOST_NUMERIC_ODEINT_EXTERNAL_MTL4_MTL4_HPP_INCLUDED
|
|
18
|
+
#define BOOST_NUMERIC_ODEINT_EXTERNAL_MTL4_MTL4_HPP_INCLUDED
|
|
19
|
+
|
|
20
|
+
#include <boost/numeric/odeint/external/mtl4/mtl4_algebra_dispatcher.hpp>
|
|
21
|
+
#include <boost/numeric/odeint/external/mtl4/mtl4_resize.hpp>
|
|
22
|
+
|
|
23
|
+
#endif // BOOST_NUMERIC_ODEINT_EXTERNAL_MTL4_MTL4_INCLUDED
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/*
|
|
2
|
+
[auto_generated]
|
|
3
|
+
boost/numeric/odeint/external/mtl4/mtl4_algebra_dispatcher.hpp
|
|
4
|
+
|
|
5
|
+
[begin_description]
|
|
6
|
+
specialization of the algebra dispatcher for mtl4
|
|
7
|
+
[end_description]
|
|
8
|
+
|
|
9
|
+
Copyright 2013 Karsten Ahnert
|
|
10
|
+
Copyright 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
|
+
#ifndef BOOST_NUMERIC_ODEINT_MTL4_MTL4_ALGEBRA_DISPATCHER_HPP_INCLUDED
|
|
18
|
+
#define BOOST_NUMERIC_ODEINT_MTL4_MTL4_ALGEBRA_DISPATCHER_HPP_INCLUDED
|
|
19
|
+
|
|
20
|
+
#include <boost/numeric/mtl/mtl.hpp>
|
|
21
|
+
|
|
22
|
+
#include <boost/numeric/odeint/algebra/vector_space_algebra.hpp>
|
|
23
|
+
#include <boost/numeric/odeint/algebra/algebra_dispatcher.hpp>
|
|
24
|
+
|
|
25
|
+
namespace boost {
|
|
26
|
+
namespace numeric {
|
|
27
|
+
namespace odeint {
|
|
28
|
+
|
|
29
|
+
template<typename Value, typename Parameters>
|
|
30
|
+
struct algebra_dispatcher< mtl::dense_vector< Value , Parameters > >
|
|
31
|
+
{
|
|
32
|
+
typedef vector_space_algebra algebra_type;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
template<typename Value, typename Parameters>
|
|
36
|
+
struct algebra_dispatcher< mtl::dense2D< Value , Parameters > >
|
|
37
|
+
{
|
|
38
|
+
typedef vector_space_algebra algebra_type;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
template<typename Value , size_t BitMask , typename Parameters>
|
|
42
|
+
struct algebra_dispatcher< mtl::morton_dense< Value , BitMask, Parameters > >
|
|
43
|
+
{
|
|
44
|
+
typedef vector_space_algebra algebra_type;
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
template<typename Value, typename Parameters>
|
|
48
|
+
struct algebra_dispatcher< mtl::compressed2D< Value , Parameters > >
|
|
49
|
+
{
|
|
50
|
+
typedef vector_space_algebra algebra_type;
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
// specialization of infinity norm calculation
|
|
54
|
+
|
|
55
|
+
template<typename Value, typename Parameters>
|
|
56
|
+
struct vector_space_norm_inf< mtl::dense_vector< Value , Parameters > >
|
|
57
|
+
{
|
|
58
|
+
typedef Value result_type;
|
|
59
|
+
Value operator()( const mtl::dense_vector< Value , Parameters > &x ) const
|
|
60
|
+
{
|
|
61
|
+
return mtl::infinity_norm(x);
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
template<typename Value, typename Parameters>
|
|
66
|
+
struct vector_space_norm_inf< mtl::dense2D< Value , Parameters > >
|
|
67
|
+
{
|
|
68
|
+
typedef Value result_type;
|
|
69
|
+
Value operator()( const mtl::dense2D< Value , Parameters > &x ) const
|
|
70
|
+
{
|
|
71
|
+
return mtl::infinity_norm(x);
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
template<typename Value , size_t BitMask , typename Parameters>
|
|
76
|
+
struct vector_space_norm_inf< mtl::morton_dense< Value , BitMask , Parameters > >
|
|
77
|
+
{
|
|
78
|
+
typedef Value result_type;
|
|
79
|
+
Value operator()( const mtl::morton_dense< Value , BitMask , Parameters > &x ) const
|
|
80
|
+
{
|
|
81
|
+
return mtl::infinity_norm(x);
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
template<typename Value, typename Parameters>
|
|
86
|
+
struct vector_space_norm_inf< mtl::compressed2D< Value , Parameters > >
|
|
87
|
+
{
|
|
88
|
+
typedef Value result_type;
|
|
89
|
+
Value operator()( const mtl::compressed2D< Value , Parameters > &x ) const
|
|
90
|
+
{
|
|
91
|
+
return mtl::infinity_norm(x);
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
#endif // BOOST_NUMERIC_ODEINT_MTL4_MTL4_ALGEBRA_DISPATCHER_INCLUDED
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/*
|
|
2
|
+
[begin_description]
|
|
3
|
+
Modification of the implicit Euler method, works with the MTL4 matrix library only.
|
|
4
|
+
[end_description]
|
|
5
|
+
|
|
6
|
+
Copyright 2012-2013 Andreas Angelopoulos
|
|
7
|
+
Copyright 2012-2013 Karsten Ahnert
|
|
8
|
+
Copyright 2012-2013 Mario Mulansky
|
|
9
|
+
|
|
10
|
+
Distributed under the Boost Software License, Version 1.0.
|
|
11
|
+
(See accompanying file LICENSE_1_0.txt or
|
|
12
|
+
copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
#ifndef BOOST_NUMERIC_ODEINT_EXTERNAL_MTL4_RESIZE_HPP_INCLUDED
|
|
17
|
+
#define BOOST_NUMERIC_ODEINT_EXTERNAL_MTL4_RESIZE_HPP_INCLUDED
|
|
18
|
+
|
|
19
|
+
#include <boost/numeric/odeint/util/is_resizeable.hpp>
|
|
20
|
+
#include <boost/numeric/odeint/util/resize.hpp>
|
|
21
|
+
#include <boost/numeric/odeint/util/same_size.hpp>
|
|
22
|
+
|
|
23
|
+
#include <boost/numeric/mtl/vector/dense_vector.hpp>
|
|
24
|
+
#include <boost/numeric/mtl/matrix/dense2D.hpp>
|
|
25
|
+
#include <boost/numeric/mtl/matrix/compressed2D.hpp>
|
|
26
|
+
|
|
27
|
+
#include <type_traits>
|
|
28
|
+
|
|
29
|
+
namespace boost {
|
|
30
|
+
namespace numeric {
|
|
31
|
+
namespace odeint {
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
template< class Value , class Parameters >
|
|
35
|
+
struct is_resizeable< mtl::dense_vector< Value , Parameters > >
|
|
36
|
+
{
|
|
37
|
+
typedef std::true_type type;
|
|
38
|
+
const static bool value = type::value;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
template< class Value , class Parameters >
|
|
42
|
+
struct is_resizeable< mtl::dense2D< Value , Parameters > >
|
|
43
|
+
{
|
|
44
|
+
typedef std::true_type type;
|
|
45
|
+
const static bool value = type::value;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
template< class Value , class Parameters >
|
|
49
|
+
struct is_resizeable< mtl::compressed2D< Value , Parameters > >
|
|
50
|
+
{
|
|
51
|
+
typedef std::true_type type;
|
|
52
|
+
const static bool value = type::value;
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
template< class Value , class Parameters >
|
|
59
|
+
struct same_size_impl< mtl::dense_vector< Value , Parameters > , mtl::dense_vector< Value , Parameters > >
|
|
60
|
+
{
|
|
61
|
+
static bool same_size( const mtl::dense_vector< Value , Parameters > &v1 ,
|
|
62
|
+
const mtl::dense_vector< Value , Parameters > &v2 )
|
|
63
|
+
{
|
|
64
|
+
return mtl::size( v1 ) == mtl::size( v2 );
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
template< class Value , class Parameters >
|
|
69
|
+
struct resize_impl< mtl::dense_vector< Value , Parameters > , mtl::dense_vector< Value , Parameters > >
|
|
70
|
+
{
|
|
71
|
+
static void resize( mtl::dense_vector< Value , Parameters > &v1 ,
|
|
72
|
+
const mtl::dense_vector< Value , Parameters > &v2 )
|
|
73
|
+
{
|
|
74
|
+
v1.change_dim( mtl::size( v2 ) );
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
template< class Value , class MatrixParameters , class VectorParameters >
|
|
81
|
+
struct same_size_impl< mtl::dense2D< Value , MatrixParameters > , mtl::dense_vector< Value , VectorParameters > >
|
|
82
|
+
{
|
|
83
|
+
static bool same_size( const mtl::dense2D< Value , MatrixParameters > &m ,
|
|
84
|
+
const mtl::dense_vector< Value , VectorParameters > &v )
|
|
85
|
+
{
|
|
86
|
+
return ( ( mtl::size( v ) == m.num_cols() ) && ( mtl::size( v ) == m.num_rows() ) );
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
template< class Value , class MatrixParameters , class VectorParameters >
|
|
91
|
+
struct resize_impl< mtl::dense2D< Value , MatrixParameters > , mtl::dense_vector< Value , VectorParameters > >
|
|
92
|
+
{
|
|
93
|
+
static void resize( mtl::dense2D< Value , MatrixParameters > &m ,
|
|
94
|
+
const mtl::dense_vector< Value , VectorParameters > &v )
|
|
95
|
+
{
|
|
96
|
+
m.change_dim( mtl::size( v ) , mtl::size( v ) , false );
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
template< class Value , class MatrixParameters , class VectorParameters >
|
|
104
|
+
struct same_size_impl< mtl::compressed2D< Value , MatrixParameters > , mtl::dense_vector< Value , VectorParameters > >
|
|
105
|
+
{
|
|
106
|
+
static bool same_size( const mtl::compressed2D< Value , MatrixParameters > &m ,
|
|
107
|
+
const mtl::dense_vector< Value , VectorParameters > &v )
|
|
108
|
+
{
|
|
109
|
+
return ( ( mtl::size( v ) == m.num_cols() ) && ( mtl::size( v ) == m.num_rows() ) );
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
template< class Value , class MatrixParameters , class VectorParameters >
|
|
114
|
+
struct resize_impl< mtl::compressed2D< Value , MatrixParameters > , mtl::dense_vector< Value , VectorParameters > >
|
|
115
|
+
{
|
|
116
|
+
static void resize( mtl::compressed2D< Value , MatrixParameters > &m ,
|
|
117
|
+
const mtl::dense_vector< Value , VectorParameters > &v )
|
|
118
|
+
{
|
|
119
|
+
m.change_dim( mtl::size( v ) , mtl::size( v ) );
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
} // namespace odeint
|
|
131
|
+
} // namespace numeric
|
|
132
|
+
} // namespace boost
|
|
133
|
+
|
|
134
|
+
#endif // BOOST_NUMERIC_ODEINT_EXTERNAL_MTL4_RESIZE_HPP_INCLUDED
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
//==============================================================================
|
|
2
|
+
// Copyright 2014 LRI UMR 8623 CNRS/Univ Paris Sud XI
|
|
3
|
+
// Copyright 2014 NumScale SAS
|
|
4
|
+
//
|
|
5
|
+
// Distributed under the Boost Software License, Version 1.0.
|
|
6
|
+
// See accompanying file LICENSE.txt or copy at
|
|
7
|
+
// http://www.boost.org/LICENSE_1_0.txt
|
|
8
|
+
//==============================================================================
|
|
9
|
+
#ifndef BOOST_NUMERIC_ODEINT_EXTERNAL_NT2_NT2_ALGEBRA_DISPATCHER_HPP_INCLUDED
|
|
10
|
+
#define BOOST_NUMERIC_ODEINT_EXTERNAL_NT2_NT2_ALGEBRA_DISPATCHER_HPP_INCLUDED
|
|
11
|
+
|
|
12
|
+
#include <nt2/core/container/table/table.hpp>
|
|
13
|
+
|
|
14
|
+
#include <boost/numeric/odeint/algebra/vector_space_algebra.hpp>
|
|
15
|
+
#include <boost/numeric/odeint/algebra/algebra_dispatcher.hpp>
|
|
16
|
+
|
|
17
|
+
namespace boost { namespace numeric { namespace odeint {
|
|
18
|
+
template<typename T, typename S>
|
|
19
|
+
struct algebra_dispatcher<nt2::container::table<T,S> >
|
|
20
|
+
{
|
|
21
|
+
typedef vector_space_algebra algebra_type;
|
|
22
|
+
};
|
|
23
|
+
} } }
|
|
24
|
+
|
|
25
|
+
#endif
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
//==============================================================================
|
|
2
|
+
// Copyright 2014 LASMEA UMR 6602 CNRS/Univ. Clermont II
|
|
3
|
+
// Copyright 2014 LRI UMR 8623 CNRS/Univ Paris Sud XI
|
|
4
|
+
// Copyright 2014 MetaScale SAS
|
|
5
|
+
//
|
|
6
|
+
// Distributed under the Boost Software License, Version 1.0.
|
|
7
|
+
// See accompanying file LICENSE.txt or copy at
|
|
8
|
+
// http://www.boost.org/LICENSE_1_0.txt
|
|
9
|
+
//==============================================================================
|
|
10
|
+
#ifndef BOOST_NUMERIC_ODEINT_EXTERNAL_NT2_NT2_COPY_HPP_INCLUDED
|
|
11
|
+
#define BOOST_NUMERIC_ODEINT_EXTERNAL_NT2_NT2_COPY_HPP_INCLUDED
|
|
12
|
+
|
|
13
|
+
#include <nt2/core/container/table/table.hpp>
|
|
14
|
+
|
|
15
|
+
#include <boost/numeric/odeint/util/copy.hpp>
|
|
16
|
+
|
|
17
|
+
namespace boost { namespace numeric { namespace odeint {
|
|
18
|
+
|
|
19
|
+
template<typename T, typename S>
|
|
20
|
+
struct copy_impl< nt2::container::table<T,S>
|
|
21
|
+
, nt2::container::table<T,S>
|
|
22
|
+
>
|
|
23
|
+
{
|
|
24
|
+
static void copy ( const nt2::container::table<T,S> &v1
|
|
25
|
+
, nt2::container::table<T,S> &v2
|
|
26
|
+
)
|
|
27
|
+
{
|
|
28
|
+
v2 = v1;
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
} } }
|
|
32
|
+
|
|
33
|
+
#endif
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
//==============================================================================
|
|
2
|
+
// Copyright 2014 LRI UMR 8623 CNRS/Univ Paris Sud XI
|
|
3
|
+
// Copyright 2014 NumScale SAS
|
|
4
|
+
//
|
|
5
|
+
// Distributed under the Boost Software License, Version 1.0.
|
|
6
|
+
// See accompanying file LICENSE.txt or copy at
|
|
7
|
+
// http://www.boost.org/LICENSE_1_0.txt
|
|
8
|
+
//==============================================================================
|
|
9
|
+
#ifndef BOOST_NUMERIC_ODEINT_EXTERNAL_NT2_NT2_NORM_INF_HPP_INCLUDED
|
|
10
|
+
#define BOOST_NUMERIC_ODEINT_EXTERNAL_NT2_NT2_NORM_INF_HPP_INCLUDED
|
|
11
|
+
|
|
12
|
+
#include <nt2/core/container/table/table.hpp>
|
|
13
|
+
#include <nt2/include/functions/globalmax.hpp>
|
|
14
|
+
#include <nt2/include/functions/abs.hpp>
|
|
15
|
+
|
|
16
|
+
#include <boost/numeric/odeint/algebra/vector_space_algebra.hpp>
|
|
17
|
+
|
|
18
|
+
namespace boost { namespace numeric { namespace odeint
|
|
19
|
+
{
|
|
20
|
+
template<typename T, typename S>
|
|
21
|
+
struct vector_space_norm_inf<nt2::container::table<T,S> >
|
|
22
|
+
{
|
|
23
|
+
typedef T result_type;
|
|
24
|
+
result_type operator()(const nt2::container::table<T,S> &v1) const
|
|
25
|
+
{
|
|
26
|
+
return nt2::globalmax(nt2::abs(v1));
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
} } }
|
|
30
|
+
|
|
31
|
+
#endif
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
//==============================================================================
|
|
2
|
+
// Copyright 2014 LRI UMR 8623 CNRS/Univ Paris Sud XI
|
|
3
|
+
// Copyright 2014 NumScale SAS
|
|
4
|
+
//
|
|
5
|
+
// Distributed under the Boost Software License, Version 1.0.
|
|
6
|
+
// See accompanying file LICENSE.txt or copy at
|
|
7
|
+
// http://www.boost.org/LICENSE_1_0.txt
|
|
8
|
+
//==============================================================================
|
|
9
|
+
#ifndef BOOST_NUMERIC_ODEINT_EXTERNAL_NT2_NT2_RESIZE_HPP_INCLUDED
|
|
10
|
+
#define BOOST_NUMERIC_ODEINT_EXTERNAL_NT2_NT2_RESIZE_HPP_INCLUDED
|
|
11
|
+
|
|
12
|
+
#include <nt2/core/container/table/table.hpp>
|
|
13
|
+
|
|
14
|
+
#include <boost/numeric/odeint/util/same_size.hpp>
|
|
15
|
+
|
|
16
|
+
#include <type_traits>
|
|
17
|
+
|
|
18
|
+
namespace boost { namespace numeric { namespace odeint {
|
|
19
|
+
|
|
20
|
+
template<typename T, typename S>
|
|
21
|
+
struct is_resizeable< nt2::container::table<T,S> >
|
|
22
|
+
{
|
|
23
|
+
typedef std::true_type type;
|
|
24
|
+
static const bool value = type::value;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
template<typename T, typename S>
|
|
28
|
+
struct same_size_impl< nt2::container::table<T,S>
|
|
29
|
+
, nt2::container::table<T,S>
|
|
30
|
+
>
|
|
31
|
+
{
|
|
32
|
+
static bool same_size ( const nt2::container::table<T,S> &v1
|
|
33
|
+
, const nt2::container::table<T,S> &v2
|
|
34
|
+
)
|
|
35
|
+
{
|
|
36
|
+
return v1.extent() == v2.extent();
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
template<typename T, typename S>
|
|
41
|
+
struct resize_impl< nt2::container::table<T,S>
|
|
42
|
+
, nt2::container::table<T,S>
|
|
43
|
+
>
|
|
44
|
+
{
|
|
45
|
+
static void resize ( nt2::container::table<T,S> &v1
|
|
46
|
+
, const nt2::container::table<T,S> &v2
|
|
47
|
+
)
|
|
48
|
+
{
|
|
49
|
+
v1.resize( v2.extent() );
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
} } }
|
|
53
|
+
|
|
54
|
+
#endif
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/*
|
|
2
|
+
[auto_generated]
|
|
3
|
+
boost/numeric/odeint/external/openmp/openmp.hpp
|
|
4
|
+
|
|
5
|
+
[begin_description]
|
|
6
|
+
Wrappers for OpenMP.
|
|
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_EXTERNAL_OPENMP_OPENMP_HPP_INCLUDED
|
|
20
|
+
#define BOOST_NUMERIC_ODEINT_EXTERNAL_OPENMP_OPENMP_HPP_INCLUDED
|
|
21
|
+
|
|
22
|
+
// level 1: parallel iteration over random access container
|
|
23
|
+
#include <boost/numeric/odeint/external/openmp/openmp_range_algebra.hpp>
|
|
24
|
+
|
|
25
|
+
// level 2: split range state
|
|
26
|
+
#include <boost/numeric/odeint/external/openmp/openmp_state.hpp>
|
|
27
|
+
|
|
28
|
+
// level 3: process a random access container of sub-states in parallel
|
|
29
|
+
#include <boost/numeric/odeint/external/openmp/openmp_nested_algebra.hpp>
|
|
30
|
+
|
|
31
|
+
#endif
|