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,55 @@
|
|
|
1
|
+
/*
|
|
2
|
+
[auto_generated]
|
|
3
|
+
boost/numeric/odeint/external/vexcl/vexcl_copy.hpp
|
|
4
|
+
|
|
5
|
+
[begin_description]
|
|
6
|
+
copy_impl specializations for vexcl
|
|
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_VEXCL_VEXCL_COPY_HPP_INCLUDED
|
|
19
|
+
#define BOOST_NUMERIC_ODEINT_EXTERNAL_VEXCL_VEXCL_COPY_HPP_INCLUDED
|
|
20
|
+
|
|
21
|
+
#include <vexcl/vector.hpp>
|
|
22
|
+
#include <vexcl/multivector.hpp>
|
|
23
|
+
|
|
24
|
+
#include <boost/numeric/odeint/util/copy.hpp>
|
|
25
|
+
|
|
26
|
+
namespace boost {
|
|
27
|
+
namespace numeric {
|
|
28
|
+
namespace odeint {
|
|
29
|
+
|
|
30
|
+
template< typename T1, typename T2 >
|
|
31
|
+
struct copy_impl< vex::vector<T1>, vex::vector<T2> >
|
|
32
|
+
{
|
|
33
|
+
static void copy( const vex::vector<T1> &from , vex::vector<T2> &to )
|
|
34
|
+
{
|
|
35
|
+
to = from;
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
template< typename T1, typename T2, size_t N >
|
|
40
|
+
struct copy_impl< vex::multivector<T1, N>, vex::multivector<T2, N> >
|
|
41
|
+
{
|
|
42
|
+
static void copy( const vex::multivector<T1, N> &from , vex::multivector<T2, N> &to )
|
|
43
|
+
{
|
|
44
|
+
to = from;
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
} // namespace odeint
|
|
50
|
+
} // namespace numeric
|
|
51
|
+
} // namespace boost
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
#endif // BOOST_NUMERIC_ODEINT_EXTERNAL_VEXCL_VEXCL_COPY_HPP_INCLUDED
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/*
|
|
2
|
+
[auto_generated]
|
|
3
|
+
boost/numeric/odeint/external/vexcl/vexcl_norm_inf.hpp
|
|
4
|
+
|
|
5
|
+
[begin_description]
|
|
6
|
+
vector_space_norm_inf specialization for vexcl
|
|
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_VEXCL_VEXCL_NORM_INF_HPP_DEFINED
|
|
19
|
+
#define BOOST_NUMERIC_ODEINT_EXTERNAL_VEXCL_VEXCL_NORM_INF_HPP_DEFINED
|
|
20
|
+
|
|
21
|
+
#include <map>
|
|
22
|
+
#include <algorithm>
|
|
23
|
+
|
|
24
|
+
#include <vexcl/vector.hpp>
|
|
25
|
+
#include <vexcl/multivector.hpp>
|
|
26
|
+
#include <vexcl/reductor.hpp>
|
|
27
|
+
|
|
28
|
+
#include <boost/numeric/odeint/algebra/vector_space_algebra.hpp>
|
|
29
|
+
|
|
30
|
+
namespace boost {
|
|
31
|
+
namespace numeric {
|
|
32
|
+
namespace odeint {
|
|
33
|
+
|
|
34
|
+
// specialization for vexcl vector
|
|
35
|
+
template <typename T>
|
|
36
|
+
struct vector_space_norm_inf< vex::vector<T> > {
|
|
37
|
+
typedef T result_type;
|
|
38
|
+
|
|
39
|
+
T operator()( const vex::vector<T> &x ) const {
|
|
40
|
+
const auto &max = vex::get_reductor<T, vex::MAX>(x.queue_list());
|
|
41
|
+
|
|
42
|
+
return max( fabs(x) );
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
// specialization for vexcl multivector
|
|
47
|
+
template <typename T, size_t N>
|
|
48
|
+
struct vector_space_norm_inf< vex::multivector<T, N> > {
|
|
49
|
+
typedef T result_type;
|
|
50
|
+
|
|
51
|
+
T operator()( const vex::multivector<T, N> &x ) const {
|
|
52
|
+
const auto &max = vex::get_reductor<T, vex::MAX>(x.queue_list());
|
|
53
|
+
|
|
54
|
+
// Reducing a multivector results in std::array<T, N>:
|
|
55
|
+
auto m = max( fabs(x) );
|
|
56
|
+
|
|
57
|
+
// We will need to reduce it even further:
|
|
58
|
+
return *std::max_element(m.begin(), m.end());
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
} // namespace odeint
|
|
64
|
+
} // namespace numeric
|
|
65
|
+
} // namespace boost
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
#endif // BOOST_NUMERIC_ODEINT_EXTERNAL_VEXCL_VEXCL_NORM_INF_HPP_DEFINED
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/*
|
|
2
|
+
[auto_generated]
|
|
3
|
+
boost/numeric/odeint/external/vexcl/vexcl_resize.hpp
|
|
4
|
+
|
|
5
|
+
[begin_description]
|
|
6
|
+
Enable resizing for vexcl vector and multivector.
|
|
7
|
+
[end_description]
|
|
8
|
+
|
|
9
|
+
Copyright 2012 Karsten Ahnert
|
|
10
|
+
Copyright 2012 Mario Mulansky
|
|
11
|
+
Copyright 2012 Denis Demidov
|
|
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_VEXCL_VEXCL_RESIZE_HPP_INCLUDED
|
|
20
|
+
#define BOOST_NUMERIC_ODEINT_EXTERNAL_VEXCL_VEXCL_RESIZE_HPP_INCLUDED
|
|
21
|
+
|
|
22
|
+
#include <type_traits>
|
|
23
|
+
|
|
24
|
+
#include <vexcl/vector.hpp>
|
|
25
|
+
#include <vexcl/multivector.hpp>
|
|
26
|
+
|
|
27
|
+
#include <boost/numeric/odeint/util/is_resizeable.hpp>
|
|
28
|
+
#include <boost/numeric/odeint/util/resize.hpp>
|
|
29
|
+
#include <boost/numeric/odeint/util/same_size.hpp>
|
|
30
|
+
|
|
31
|
+
namespace boost {
|
|
32
|
+
namespace numeric {
|
|
33
|
+
namespace odeint {
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
/*
|
|
38
|
+
* specializations for vex::vector< T >
|
|
39
|
+
*/
|
|
40
|
+
template< typename T >
|
|
41
|
+
struct is_resizeable< vex::vector< T > > : std::true_type { };
|
|
42
|
+
|
|
43
|
+
template< typename T >
|
|
44
|
+
struct resize_impl< vex::vector< T > , vex::vector< T > >
|
|
45
|
+
{
|
|
46
|
+
static void resize( vex::vector< T > &x1 , const vex::vector< T > &x2 )
|
|
47
|
+
{
|
|
48
|
+
x1.resize( x2.queue_list() , x2.size() );
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
template< typename T >
|
|
53
|
+
struct same_size_impl< vex::vector< T > , vex::vector< T > >
|
|
54
|
+
{
|
|
55
|
+
static bool same_size( const vex::vector< T > &x1 , const vex::vector< T > &x2 )
|
|
56
|
+
{
|
|
57
|
+
return x1.size() == x2.size();
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
/*
|
|
66
|
+
* specializations for vex::multivector< T >
|
|
67
|
+
*/
|
|
68
|
+
template< typename T , size_t N >
|
|
69
|
+
struct is_resizeable< vex::multivector< T , N > > : std::true_type { };
|
|
70
|
+
|
|
71
|
+
template< typename T , size_t N >
|
|
72
|
+
struct resize_impl< vex::multivector< T , N > , vex::multivector< T , N > >
|
|
73
|
+
{
|
|
74
|
+
static void resize( vex::multivector< T , N > &x1 , const vex::multivector< T , N > &x2 )
|
|
75
|
+
{
|
|
76
|
+
x1.resize( x2.queue_list() , x2.size() );
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
template< typename T , size_t N >
|
|
81
|
+
struct same_size_impl< vex::multivector< T , N > , vex::multivector< T , N > >
|
|
82
|
+
{
|
|
83
|
+
static bool same_size( const vex::multivector< T , N > &x1 , const vex::multivector< T , N > &x2 )
|
|
84
|
+
{
|
|
85
|
+
return x1.size() == x2.size();
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
} // namespace odeint
|
|
91
|
+
} // namespace numeric
|
|
92
|
+
} // namespace boost
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
#endif // BOOST_NUMERIC_ODEINT_EXTERNAL_VEXCL_VEXCL_RESIZE_HPP_INCLUDED
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/*
|
|
2
|
+
[auto_generated]
|
|
3
|
+
boost/numeric/odeint/external/vexcl/vexcl_same_instance.hpp
|
|
4
|
+
|
|
5
|
+
[begin_description]
|
|
6
|
+
Check if two VexCL containers are the same instance.
|
|
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_VEXCL_VEXCL_SAME_INSTANCE_HPP_INCLUDED
|
|
19
|
+
#define BOOST_NUMERIC_ODEINT_EXTERNAL_VEXCL_VEXCL_SAME_INSTANCE_HPP_INCLUDED
|
|
20
|
+
|
|
21
|
+
#include <vexcl/vector.hpp>
|
|
22
|
+
#include <vexcl/multivector.hpp>
|
|
23
|
+
|
|
24
|
+
#include <boost/numeric/odeint/util/same_instance.hpp>
|
|
25
|
+
|
|
26
|
+
namespace boost {
|
|
27
|
+
namespace numeric {
|
|
28
|
+
namespace odeint {
|
|
29
|
+
|
|
30
|
+
template <typename T>
|
|
31
|
+
struct same_instance_impl< vex::vector<T> , vex::vector<T> >
|
|
32
|
+
{
|
|
33
|
+
static bool same_instance( const vex::vector<T> &x1 , const vex::vector<T> &x2 )
|
|
34
|
+
{
|
|
35
|
+
return
|
|
36
|
+
static_cast<const vex::vector<T>*>(&x1) ==
|
|
37
|
+
static_cast<const vex::vector<T>*>(&x2);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
template <typename T, size_t N>
|
|
42
|
+
struct same_instance_impl< vex::multivector<T, N> , vex::multivector<T, N> >
|
|
43
|
+
{
|
|
44
|
+
static bool same_instance( const vex::multivector<T, N> &x1 , const vex::multivector<T, N> &x2 )
|
|
45
|
+
{
|
|
46
|
+
return
|
|
47
|
+
static_cast<const vex::multivector<T, N>*>(&x1) ==
|
|
48
|
+
static_cast<const vex::multivector<T, N>*>(&x2);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
} // namespace odeint
|
|
53
|
+
} // namespace numeric
|
|
54
|
+
} // namespace boost
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
#endif // BOOST_NUMERIC_ODEINT_EXTERNAL_VEXCL_VEXCL_SAME_INSTANCE_HPP_INCLUDED
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
/*
|
|
2
|
+
[auto_generated]
|
|
3
|
+
boost/numeric/odeint/external/viennacl_operations.hpp
|
|
4
|
+
|
|
5
|
+
[begin_description]
|
|
6
|
+
ViennaCL operations.
|
|
7
|
+
[end_description]
|
|
8
|
+
|
|
9
|
+
Copyright 2012 Denis Demidov
|
|
10
|
+
Copyright 2012 Karsten Ahnert
|
|
11
|
+
Copyright 2012 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_EXTERNAL_VIENNACL_VIENNACL_OPERATIONS_HPP_INCLUDED
|
|
20
|
+
#define BOOST_NUMERIC_ODEINT_EXTERNAL_VIENNACL_VIENNACL_OPERATIONS_HPP_INCLUDED
|
|
21
|
+
|
|
22
|
+
#include <viennacl/vector.hpp>
|
|
23
|
+
|
|
24
|
+
#ifdef VIENNACL_WITH_OPENCL
|
|
25
|
+
# include <viennacl/generator/custom_operation.hpp>
|
|
26
|
+
#endif
|
|
27
|
+
|
|
28
|
+
namespace boost {
|
|
29
|
+
namespace numeric {
|
|
30
|
+
namespace odeint {
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
#ifdef VIENNACL_WITH_OPENCL
|
|
34
|
+
struct viennacl_operations
|
|
35
|
+
{
|
|
36
|
+
|
|
37
|
+
template< class Fac1 = double , class Fac2 = Fac1 >
|
|
38
|
+
struct scale_sum2
|
|
39
|
+
{
|
|
40
|
+
const Fac1 m_alpha1;
|
|
41
|
+
const Fac2 m_alpha2;
|
|
42
|
+
|
|
43
|
+
scale_sum2( Fac1 alpha1 , Fac2 alpha2 )
|
|
44
|
+
: m_alpha1( alpha1 ) , m_alpha2( alpha2 )
|
|
45
|
+
{ }
|
|
46
|
+
|
|
47
|
+
template< class T1 , class T2 , class T3 >
|
|
48
|
+
void operator()( viennacl::vector<T1> &v1 ,
|
|
49
|
+
const viennacl::vector<T2> &v2 ,
|
|
50
|
+
const viennacl::vector<T3> &v3
|
|
51
|
+
) const
|
|
52
|
+
{
|
|
53
|
+
using namespace viennacl;
|
|
54
|
+
|
|
55
|
+
static generator::symbolic_vector <0, T1> sym_v1;
|
|
56
|
+
static generator::symbolic_vector <1, T2> sym_v2;
|
|
57
|
+
static generator::symbolic_vector <2, T3> sym_v3;
|
|
58
|
+
static generator::cpu_symbolic_scalar<3, Fac1> sym_a1;
|
|
59
|
+
static generator::cpu_symbolic_scalar<4, Fac2> sym_a2;
|
|
60
|
+
|
|
61
|
+
static generator::custom_operation op(
|
|
62
|
+
sym_v1 = sym_a1 * sym_v2
|
|
63
|
+
+ sym_a2 * sym_v3,
|
|
64
|
+
"scale_sum2"
|
|
65
|
+
);
|
|
66
|
+
|
|
67
|
+
ocl::enqueue( op(v1, v2, v3, m_alpha1, m_alpha2) );
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
typedef void result_type;
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
template< class Fac1 = double , class Fac2 = Fac1 , class Fac3 = Fac2 >
|
|
75
|
+
struct scale_sum3
|
|
76
|
+
{
|
|
77
|
+
const Fac1 m_alpha1;
|
|
78
|
+
const Fac2 m_alpha2;
|
|
79
|
+
const Fac3 m_alpha3;
|
|
80
|
+
|
|
81
|
+
scale_sum3( Fac1 alpha1 , Fac2 alpha2 , Fac3 alpha3 )
|
|
82
|
+
: m_alpha1( alpha1 ) , m_alpha2( alpha2 ) , m_alpha3( alpha3 )
|
|
83
|
+
{ }
|
|
84
|
+
|
|
85
|
+
template< class T1 , class T2 , class T3 , class T4 >
|
|
86
|
+
void operator()( viennacl::vector<T1> &v1 ,
|
|
87
|
+
const viennacl::vector<T2> &v2 ,
|
|
88
|
+
const viennacl::vector<T3> &v3 ,
|
|
89
|
+
const viennacl::vector<T4> &v4
|
|
90
|
+
) const
|
|
91
|
+
{
|
|
92
|
+
using namespace viennacl;
|
|
93
|
+
|
|
94
|
+
static generator::symbolic_vector <0, T1> sym_v1;
|
|
95
|
+
static generator::symbolic_vector <1, T2> sym_v2;
|
|
96
|
+
static generator::symbolic_vector <2, T3> sym_v3;
|
|
97
|
+
static generator::symbolic_vector <3, T4> sym_v4;
|
|
98
|
+
static generator::cpu_symbolic_scalar<4, Fac1> sym_a1;
|
|
99
|
+
static generator::cpu_symbolic_scalar<5, Fac2> sym_a2;
|
|
100
|
+
static generator::cpu_symbolic_scalar<6, Fac3> sym_a3;
|
|
101
|
+
|
|
102
|
+
static generator::custom_operation op(
|
|
103
|
+
sym_v1 = sym_a1 * sym_v2
|
|
104
|
+
+ sym_a2 * sym_v3
|
|
105
|
+
+ sym_a3 * sym_v4,
|
|
106
|
+
"scale_sum3"
|
|
107
|
+
);
|
|
108
|
+
|
|
109
|
+
ocl::enqueue( op(v1, v2, v3, v4, m_alpha1, m_alpha2, m_alpha3) );
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
typedef void result_type;
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
template< class Fac1 = double , class Fac2 = Fac1 , class Fac3 = Fac2 , class Fac4 = Fac3 >
|
|
117
|
+
struct scale_sum4
|
|
118
|
+
{
|
|
119
|
+
const Fac1 m_alpha1;
|
|
120
|
+
const Fac2 m_alpha2;
|
|
121
|
+
const Fac3 m_alpha3;
|
|
122
|
+
const Fac4 m_alpha4;
|
|
123
|
+
|
|
124
|
+
scale_sum4( Fac1 alpha1 , Fac2 alpha2 , Fac3 alpha3 , Fac4 alpha4 )
|
|
125
|
+
: m_alpha1( alpha1 ) , m_alpha2( alpha2 ) , m_alpha3( alpha3 ) , m_alpha4( alpha4 ) { }
|
|
126
|
+
|
|
127
|
+
template< class T1 , class T2 , class T3 , class T4 , class T5 >
|
|
128
|
+
void operator()( viennacl::vector<T1> &v1 ,
|
|
129
|
+
const viennacl::vector<T2> &v2 ,
|
|
130
|
+
const viennacl::vector<T3> &v3 ,
|
|
131
|
+
const viennacl::vector<T4> &v4 ,
|
|
132
|
+
const viennacl::vector<T5> &v5
|
|
133
|
+
) const
|
|
134
|
+
{
|
|
135
|
+
using namespace viennacl;
|
|
136
|
+
|
|
137
|
+
static generator::symbolic_vector <0, T1> sym_v1;
|
|
138
|
+
static generator::symbolic_vector <1, T2> sym_v2;
|
|
139
|
+
static generator::symbolic_vector <2, T3> sym_v3;
|
|
140
|
+
static generator::symbolic_vector <3, T4> sym_v4;
|
|
141
|
+
static generator::symbolic_vector <4, T5> sym_v5;
|
|
142
|
+
static generator::cpu_symbolic_scalar<5, Fac1> sym_a1;
|
|
143
|
+
static generator::cpu_symbolic_scalar<6, Fac2> sym_a2;
|
|
144
|
+
static generator::cpu_symbolic_scalar<7, Fac3> sym_a3;
|
|
145
|
+
static generator::cpu_symbolic_scalar<8, Fac4> sym_a4;
|
|
146
|
+
|
|
147
|
+
static generator::custom_operation op(
|
|
148
|
+
sym_v1 = sym_a1 * sym_v2
|
|
149
|
+
+ sym_a2 * sym_v3
|
|
150
|
+
+ sym_a3 * sym_v4
|
|
151
|
+
+ sym_a4 * sym_v5,
|
|
152
|
+
"scale_sum4"
|
|
153
|
+
);
|
|
154
|
+
|
|
155
|
+
ocl::enqueue( op(v1, v2, v3, v4, v5,
|
|
156
|
+
m_alpha1, m_alpha2, m_alpha3, m_alpha4) );
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
typedef void result_type;
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
template< class Fac1 = double , class Fac2 = Fac1 , class Fac3 = Fac2 , class Fac4 = Fac3 , class Fac5 = Fac4 >
|
|
164
|
+
struct scale_sum5
|
|
165
|
+
{
|
|
166
|
+
const Fac1 m_alpha1;
|
|
167
|
+
const Fac2 m_alpha2;
|
|
168
|
+
const Fac3 m_alpha3;
|
|
169
|
+
const Fac4 m_alpha4;
|
|
170
|
+
const Fac5 m_alpha5;
|
|
171
|
+
|
|
172
|
+
scale_sum5( Fac1 alpha1 , Fac2 alpha2 , Fac3 alpha3 , Fac4 alpha4 , Fac5 alpha5 )
|
|
173
|
+
: m_alpha1( alpha1 ) , m_alpha2( alpha2 ) , m_alpha3( alpha3 ) , m_alpha4( alpha4 ) , m_alpha5( alpha5 ) { }
|
|
174
|
+
|
|
175
|
+
template< class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
|
|
176
|
+
void operator()( viennacl::vector<T1> &v1 ,
|
|
177
|
+
const viennacl::vector<T2> &v2 ,
|
|
178
|
+
const viennacl::vector<T3> &v3 ,
|
|
179
|
+
const viennacl::vector<T4> &v4 ,
|
|
180
|
+
const viennacl::vector<T5> &v5 ,
|
|
181
|
+
const viennacl::vector<T6> &v6
|
|
182
|
+
) const
|
|
183
|
+
{
|
|
184
|
+
using namespace viennacl;
|
|
185
|
+
|
|
186
|
+
static generator::symbolic_vector < 0, T1> sym_v1;
|
|
187
|
+
static generator::symbolic_vector < 1, T2> sym_v2;
|
|
188
|
+
static generator::symbolic_vector < 2, T3> sym_v3;
|
|
189
|
+
static generator::symbolic_vector < 3, T4> sym_v4;
|
|
190
|
+
static generator::symbolic_vector < 4, T5> sym_v5;
|
|
191
|
+
static generator::symbolic_vector < 5, T6> sym_v6;
|
|
192
|
+
static generator::cpu_symbolic_scalar< 6, Fac1> sym_a1;
|
|
193
|
+
static generator::cpu_symbolic_scalar< 7, Fac2> sym_a2;
|
|
194
|
+
static generator::cpu_symbolic_scalar< 8, Fac3> sym_a3;
|
|
195
|
+
static generator::cpu_symbolic_scalar< 9, Fac4> sym_a4;
|
|
196
|
+
static generator::cpu_symbolic_scalar<10, Fac5> sym_a5;
|
|
197
|
+
|
|
198
|
+
static generator::custom_operation op(
|
|
199
|
+
sym_v1 = sym_a1 * sym_v2
|
|
200
|
+
+ sym_a2 * sym_v3
|
|
201
|
+
+ sym_a3 * sym_v4
|
|
202
|
+
+ sym_a4 * sym_v5
|
|
203
|
+
+ sym_a5 * sym_v6,
|
|
204
|
+
"scale_sum5"
|
|
205
|
+
);
|
|
206
|
+
|
|
207
|
+
ocl::enqueue( op(v1, v2, v3, v4, v5, v6,
|
|
208
|
+
m_alpha1, m_alpha2, m_alpha3, m_alpha4, m_alpha5) );
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
typedef void result_type;
|
|
212
|
+
};
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
};
|
|
216
|
+
#else
|
|
217
|
+
struct viennacl_operations : public default_operations {};
|
|
218
|
+
#endif
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
} // odeint
|
|
222
|
+
} // numeric
|
|
223
|
+
} // boost
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
#endif // BOOST_NUMERIC_ODEINT_EXTERNAL_VIENNACL_VIENNACL_OPERATIONS_HPP_INCLUDED
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/*
|
|
2
|
+
[auto_generated]
|
|
3
|
+
boost/numeric/odeint/external/viennacl/viennacl_resize.hpp
|
|
4
|
+
|
|
5
|
+
[begin_description]
|
|
6
|
+
Enable resizing for viennacl vector.
|
|
7
|
+
[end_description]
|
|
8
|
+
|
|
9
|
+
Copyright 2012 Denis Demidov
|
|
10
|
+
Copyright 2012 Karsten Ahnert
|
|
11
|
+
Copyright 2012 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_EXTERNAL_VIENNACL_VIENNACL_RESIZE_HPP_INCLUDED
|
|
20
|
+
#define BOOST_NUMERIC_ODEINT_EXTERNAL_VIENNACL_VIENNACL_RESIZE_HPP_INCLUDED
|
|
21
|
+
|
|
22
|
+
#include <type_traits>
|
|
23
|
+
|
|
24
|
+
#include <viennacl/vector.hpp>
|
|
25
|
+
|
|
26
|
+
#include <boost/numeric/odeint/util/is_resizeable.hpp>
|
|
27
|
+
#include <boost/numeric/odeint/util/resize.hpp>
|
|
28
|
+
#include <boost/numeric/odeint/util/same_size.hpp>
|
|
29
|
+
|
|
30
|
+
namespace boost {
|
|
31
|
+
namespace numeric {
|
|
32
|
+
namespace odeint {
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
/*
|
|
37
|
+
* specializations for viennacl::vector< T >
|
|
38
|
+
*/
|
|
39
|
+
template< typename T >
|
|
40
|
+
struct is_resizeable< viennacl::vector< T > > : std::true_type { };
|
|
41
|
+
|
|
42
|
+
template< typename T >
|
|
43
|
+
struct resize_impl< viennacl::vector< T > , viennacl::vector< T > >
|
|
44
|
+
{
|
|
45
|
+
static void resize( viennacl::vector< T > &x1 , const viennacl::vector< T > &x2 )
|
|
46
|
+
{
|
|
47
|
+
x1.resize( x2.size() , false );
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
template< typename T >
|
|
52
|
+
struct same_size_impl< viennacl::vector< T > , viennacl::vector< T > >
|
|
53
|
+
{
|
|
54
|
+
static bool same_size( const viennacl::vector< T > &x1 , const viennacl::vector< T > &x2 )
|
|
55
|
+
{
|
|
56
|
+
return x1.size() == x2.size();
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
} // namespace odeint
|
|
63
|
+
} // namespace numeric
|
|
64
|
+
} // namespace boost
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
#endif // BOOST_NUMERIC_ODEINT_EXTERNAL_VIENNACL_VIENNACL_RESIZE_HPP_INCLUDED
|