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,406 @@
|
|
|
1
|
+
// Copyright (c) 2012 Oswin Krause
|
|
2
|
+
// Copyright (c) 2013 Joaquim Duran
|
|
3
|
+
//
|
|
4
|
+
// Distributed under the Boost Software License, Version 1.0. (See
|
|
5
|
+
// accompanying file LICENSE_1_0.txt or copy at
|
|
6
|
+
// http://www.boost.org/LICENSE_1_0.txt)
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
#ifndef BOOST_UBLAS_MATRIX_VECTOR_HPP
|
|
10
|
+
#define BOOST_UBLAS_MATRIX_VECTOR_HPP
|
|
11
|
+
|
|
12
|
+
#include <boost/numeric/ublas/matrix_proxy.hpp> //for matrix_row, matrix_column and matrix_expression
|
|
13
|
+
#include <boost/numeric/ublas/vector.hpp>
|
|
14
|
+
#include <boost/iterator/iterator_facade.hpp>
|
|
15
|
+
#include <boost/range/iterator_range.hpp>
|
|
16
|
+
#include <boost/type_traits/is_convertible.hpp>
|
|
17
|
+
#include <boost/utility/enable_if.hpp>
|
|
18
|
+
|
|
19
|
+
namespace boost { namespace numeric { namespace ublas {
|
|
20
|
+
|
|
21
|
+
namespace detail{
|
|
22
|
+
|
|
23
|
+
/** \brief Iterator used in the represention of a matrix as a vector of rows or columns
|
|
24
|
+
*
|
|
25
|
+
* Iterator used in the represention of a matrix as a vector of rows/columns. It refers
|
|
26
|
+
* to the i-th element of the matrix, a column or a row depending of Reference type.
|
|
27
|
+
*
|
|
28
|
+
* The type of Reference should provide a constructor Reference(matrix, i)
|
|
29
|
+
*
|
|
30
|
+
* This iterator is invalidated when the underlying matrix is resized.
|
|
31
|
+
*
|
|
32
|
+
* \tparameter Matrix type of matrix that is represented as a vector of row/column
|
|
33
|
+
* \tparameter Reference Matrix row or matrix column type.
|
|
34
|
+
*/
|
|
35
|
+
template<class Matrix, class Reference>
|
|
36
|
+
class matrix_vector_iterator: public boost::iterator_facade<
|
|
37
|
+
matrix_vector_iterator<Matrix,Reference>,
|
|
38
|
+
typename vector_temporary_traits<Reference>::type,
|
|
39
|
+
boost::random_access_traversal_tag,
|
|
40
|
+
Reference
|
|
41
|
+
>{
|
|
42
|
+
public:
|
|
43
|
+
matrix_vector_iterator(){}
|
|
44
|
+
|
|
45
|
+
///\brief constructs a matrix_vector_iterator as pointing to the i-th proxy
|
|
46
|
+
BOOST_UBLAS_INLINE
|
|
47
|
+
matrix_vector_iterator(Matrix& matrix, std::size_t position)
|
|
48
|
+
: matrix_(&matrix),position_(position) {}
|
|
49
|
+
|
|
50
|
+
template<class M, class R>
|
|
51
|
+
BOOST_UBLAS_INLINE
|
|
52
|
+
matrix_vector_iterator(matrix_vector_iterator<M,R> const& other)
|
|
53
|
+
: matrix_(other.matrix_),position_(other.position_) {}
|
|
54
|
+
|
|
55
|
+
private:
|
|
56
|
+
friend class boost::iterator_core_access;
|
|
57
|
+
template <class M,class R> friend class matrix_vector_iterator;
|
|
58
|
+
|
|
59
|
+
BOOST_UBLAS_INLINE
|
|
60
|
+
void increment() {
|
|
61
|
+
++position_;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
BOOST_UBLAS_INLINE
|
|
65
|
+
void decrement() {
|
|
66
|
+
--position_;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
BOOST_UBLAS_INLINE
|
|
70
|
+
void advance(std::ptrdiff_t n){
|
|
71
|
+
position_ += n;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
template<class M,class R>
|
|
75
|
+
BOOST_UBLAS_INLINE
|
|
76
|
+
std::ptrdiff_t distance_to(matrix_vector_iterator<M,R> const& other) const{
|
|
77
|
+
BOOST_UBLAS_CHECK (matrix_ == other.matrix_, external_logic ());
|
|
78
|
+
return (std::ptrdiff_t)other.position_ - (std::ptrdiff_t)position_;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
template<class M,class R>
|
|
82
|
+
BOOST_UBLAS_INLINE
|
|
83
|
+
bool equal(matrix_vector_iterator<M,R> const& other) const{
|
|
84
|
+
BOOST_UBLAS_CHECK (matrix_ == other.matrix_, external_logic ());
|
|
85
|
+
return (position_ == other.position_);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
BOOST_UBLAS_INLINE
|
|
89
|
+
Reference dereference() const {
|
|
90
|
+
return Reference(*matrix_,position_);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
Matrix* matrix_;//no matrix_closure here to ensure easy usage
|
|
94
|
+
std::size_t position_;
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/** \brief Represents a \c Matrix as a vector of rows.
|
|
100
|
+
*
|
|
101
|
+
* Implements an interface to Matrix that the underlaying matrix is represented as a
|
|
102
|
+
* vector of rows.
|
|
103
|
+
*
|
|
104
|
+
* The vector could be resized which causes the resize of the number of rows of
|
|
105
|
+
* the underlaying matrix.
|
|
106
|
+
*/
|
|
107
|
+
template<class Matrix>
|
|
108
|
+
class matrix_row_vector {
|
|
109
|
+
public:
|
|
110
|
+
typedef ublas::matrix_row<Matrix> value_type;
|
|
111
|
+
typedef ublas::matrix_row<Matrix> reference;
|
|
112
|
+
typedef ublas::matrix_row<Matrix const> const_reference;
|
|
113
|
+
|
|
114
|
+
typedef ublas::detail::matrix_vector_iterator<Matrix, ublas::matrix_row<Matrix> > iterator;
|
|
115
|
+
typedef ublas::detail::matrix_vector_iterator<Matrix const, ublas::matrix_row<Matrix const> const> const_iterator;
|
|
116
|
+
typedef boost::reverse_iterator<iterator> reverse_iterator;
|
|
117
|
+
typedef boost::reverse_iterator<const_iterator> const_reverse_iterator;
|
|
118
|
+
|
|
119
|
+
typedef typename boost::iterator_difference<iterator>::type difference_type;
|
|
120
|
+
typedef typename Matrix::size_type size_type;
|
|
121
|
+
|
|
122
|
+
BOOST_UBLAS_INLINE
|
|
123
|
+
explicit matrix_row_vector(Matrix& matrix) :
|
|
124
|
+
matrix_(&matrix) {
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
BOOST_UBLAS_INLINE
|
|
128
|
+
iterator begin(){
|
|
129
|
+
return iterator(*matrix_, 0);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
BOOST_UBLAS_INLINE
|
|
133
|
+
const_iterator begin() const {
|
|
134
|
+
return const_iterator(*matrix_, 0);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
BOOST_UBLAS_INLINE
|
|
138
|
+
const_iterator cbegin() const {
|
|
139
|
+
return begin();
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
BOOST_UBLAS_INLINE
|
|
143
|
+
iterator end() {
|
|
144
|
+
return iterator(*matrix_, matrix_->size1());
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
BOOST_UBLAS_INLINE
|
|
148
|
+
const_iterator end() const {
|
|
149
|
+
return const_iterator(*matrix_, matrix_->size1());
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
BOOST_UBLAS_INLINE
|
|
153
|
+
const_iterator cend() const {
|
|
154
|
+
return end();
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
BOOST_UBLAS_INLINE
|
|
158
|
+
reverse_iterator rbegin() {
|
|
159
|
+
return reverse_iterator(end());
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
BOOST_UBLAS_INLINE
|
|
163
|
+
const_reverse_iterator rbegin() const {
|
|
164
|
+
return const_reverse_iterator(end());
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
BOOST_UBLAS_INLINE
|
|
168
|
+
const_reverse_iterator crbegin() const {
|
|
169
|
+
return rbegin();
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
BOOST_UBLAS_INLINE
|
|
173
|
+
reverse_iterator rend() {
|
|
174
|
+
return reverse_iterator(begin());
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
BOOST_UBLAS_INLINE
|
|
178
|
+
const_reverse_iterator rend() const {
|
|
179
|
+
return const_reverse_iterator(begin());
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
BOOST_UBLAS_INLINE
|
|
183
|
+
const_reverse_iterator crend() const {
|
|
184
|
+
return end();
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
BOOST_UBLAS_INLINE
|
|
188
|
+
value_type operator()(size_type index) {
|
|
189
|
+
return value_type(*matrix_, index);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
BOOST_UBLAS_INLINE
|
|
193
|
+
value_type operator()(size_type index) const {
|
|
194
|
+
return value_type(*matrix_, index);
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
BOOST_UBLAS_INLINE
|
|
198
|
+
reference operator[](size_type index){
|
|
199
|
+
return (*this) (index);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
BOOST_UBLAS_INLINE
|
|
203
|
+
const_reference operator[](size_type index) const {
|
|
204
|
+
return (*this) (index);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
BOOST_UBLAS_INLINE
|
|
208
|
+
size_type size() const {
|
|
209
|
+
return matrix_->size1();
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
BOOST_UBLAS_INLINE
|
|
213
|
+
void resize(size_type size, bool preserve = true) {
|
|
214
|
+
matrix_->resize(size, matrix_->size2(), preserve);
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
private:
|
|
218
|
+
Matrix* matrix_;
|
|
219
|
+
};
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
/** \brief Convenience function to create \c matrix_row_vector.
|
|
223
|
+
*
|
|
224
|
+
* Function to create \c matrix_row_vector objects.
|
|
225
|
+
* \param matrix the \c matrix_expression that generates the matrix that \c matrix_row_vector is referring.
|
|
226
|
+
* \return Created \c matrix_row_vector object.
|
|
227
|
+
*
|
|
228
|
+
* \tparam Matrix the type of matrix that \c matrix_row_vector is referring.
|
|
229
|
+
*/
|
|
230
|
+
template<class Matrix>
|
|
231
|
+
BOOST_UBLAS_INLINE
|
|
232
|
+
matrix_row_vector<Matrix> make_row_vector(matrix_expression<Matrix>& matrix){
|
|
233
|
+
return matrix_row_vector<Matrix>(matrix());
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
/** \brief Convenience function to create \c matrix_row_vector.
|
|
238
|
+
*
|
|
239
|
+
* Function to create \c matrix_row_vector objects.
|
|
240
|
+
* \param matrix the \c matrix_expression that generates the matrix that \c matrix_row_vector is referring.
|
|
241
|
+
* \return Created \c matrix_row_vector object.
|
|
242
|
+
*
|
|
243
|
+
* \tparam Matrix the type of matrix that \c matrix_row_vector is referring.
|
|
244
|
+
*/
|
|
245
|
+
template<class Matrix>
|
|
246
|
+
BOOST_UBLAS_INLINE
|
|
247
|
+
matrix_row_vector<Matrix const> make_row_vector(matrix_expression<Matrix> const& matrix){
|
|
248
|
+
return matrix_row_vector<Matrix const>(matrix());
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
/** \brief Represents a \c Matrix as a vector of columns.
|
|
253
|
+
*
|
|
254
|
+
* Implements an interface to Matrix that the underlaying matrix is represented as a
|
|
255
|
+
* vector of columns.
|
|
256
|
+
*
|
|
257
|
+
* The vector could be resized which causes the resize of the number of columns of
|
|
258
|
+
* the underlaying matrix.
|
|
259
|
+
*/
|
|
260
|
+
template<class Matrix>
|
|
261
|
+
class matrix_column_vector {
|
|
262
|
+
public:
|
|
263
|
+
typedef ublas::matrix_column<Matrix> value_type;
|
|
264
|
+
typedef ublas::matrix_column<Matrix> reference;
|
|
265
|
+
typedef const ublas::matrix_column<Matrix const> const_reference;
|
|
266
|
+
|
|
267
|
+
typedef ublas::detail::matrix_vector_iterator<Matrix, ublas::matrix_column<Matrix> > iterator;
|
|
268
|
+
typedef ublas::detail::matrix_vector_iterator<Matrix const, ublas::matrix_column<Matrix const> const > const_iterator;
|
|
269
|
+
typedef boost::reverse_iterator<iterator> reverse_iterator;
|
|
270
|
+
typedef boost::reverse_iterator<const_iterator> const_reverse_iterator;
|
|
271
|
+
|
|
272
|
+
typedef typename boost::iterator_difference<iterator>::type difference_type;
|
|
273
|
+
typedef typename Matrix::size_type size_type;
|
|
274
|
+
|
|
275
|
+
BOOST_UBLAS_INLINE
|
|
276
|
+
explicit matrix_column_vector(Matrix& matrix) :
|
|
277
|
+
matrix_(&matrix){
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
BOOST_UBLAS_INLINE
|
|
281
|
+
iterator begin() {
|
|
282
|
+
return iterator(*matrix_, 0);
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
BOOST_UBLAS_INLINE
|
|
286
|
+
const_iterator begin() const {
|
|
287
|
+
return const_iterator(*matrix_, 0);
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
BOOST_UBLAS_INLINE
|
|
291
|
+
const_iterator cbegin() const {
|
|
292
|
+
return begin();
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
BOOST_UBLAS_INLINE
|
|
296
|
+
iterator end() {
|
|
297
|
+
return iterator(*matrix_, matrix_->size2());
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
BOOST_UBLAS_INLINE
|
|
301
|
+
const_iterator end() const {
|
|
302
|
+
return const_iterator(*matrix_, matrix_->size2());
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
BOOST_UBLAS_INLINE
|
|
306
|
+
const_iterator cend() const {
|
|
307
|
+
return end();
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
BOOST_UBLAS_INLINE
|
|
311
|
+
reverse_iterator rbegin() {
|
|
312
|
+
return reverse_iterator(end());
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
BOOST_UBLAS_INLINE
|
|
316
|
+
const_reverse_iterator rbegin() const {
|
|
317
|
+
return const_reverse_iterator(end());
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
BOOST_UBLAS_INLINE
|
|
321
|
+
const_reverse_iterator crbegin() const {
|
|
322
|
+
return rbegin();
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
BOOST_UBLAS_INLINE
|
|
326
|
+
reverse_iterator rend() {
|
|
327
|
+
return reverse_iterator(begin());
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
BOOST_UBLAS_INLINE
|
|
331
|
+
const_reverse_iterator rend() const {
|
|
332
|
+
return const_reverse_iterator(begin());
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
BOOST_UBLAS_INLINE
|
|
336
|
+
const_reverse_iterator crend() const {
|
|
337
|
+
return rend();
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
BOOST_UBLAS_INLINE
|
|
341
|
+
value_type operator()(size_type index) {
|
|
342
|
+
return value_type(*matrix_, index);
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
BOOST_UBLAS_INLINE
|
|
346
|
+
value_type operator()(size_type index) const {
|
|
347
|
+
return value_type(*matrix_, index);
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
BOOST_UBLAS_INLINE
|
|
351
|
+
reference operator[](size_type index) {
|
|
352
|
+
return (*this) (index);
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
BOOST_UBLAS_INLINE
|
|
356
|
+
const_reference operator[](size_type index) const {
|
|
357
|
+
return (*this) (index);
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
BOOST_UBLAS_INLINE
|
|
361
|
+
size_type size() const {
|
|
362
|
+
return matrix_->size2();
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
BOOST_UBLAS_INLINE
|
|
366
|
+
void resize(size_type size, bool preserve = true) {
|
|
367
|
+
matrix_->resize(matrix_->size1(), size, preserve);
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
private:
|
|
371
|
+
Matrix* matrix_;
|
|
372
|
+
};
|
|
373
|
+
|
|
374
|
+
|
|
375
|
+
/** \brief Convenience function to create \c matrix_column_vector.
|
|
376
|
+
*
|
|
377
|
+
* Function to create \c matrix_column_vector objects.
|
|
378
|
+
* \param matrix the \c matrix_expression that generates the matrix that \c matrix_column_vector is referring.
|
|
379
|
+
* \return Created \c matrix_column_vector object.
|
|
380
|
+
*
|
|
381
|
+
* \tparam Matrix the type of matrix that \c matrix_column_vector is referring.
|
|
382
|
+
*/
|
|
383
|
+
template<class Matrix>
|
|
384
|
+
BOOST_UBLAS_INLINE
|
|
385
|
+
matrix_column_vector<Matrix> make_column_vector(matrix_expression<Matrix>& matrix){
|
|
386
|
+
return matrix_column_vector<Matrix>(matrix());
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
|
|
390
|
+
/** \brief Convenience function to create \c matrix_column_vector.
|
|
391
|
+
*
|
|
392
|
+
* Function to create \c matrix_column_vector objects.
|
|
393
|
+
* \param matrix the \c matrix_expression that generates the matrix that \c matrix_column_vector is referring.
|
|
394
|
+
* \return Created \c matrix_column_vector object.
|
|
395
|
+
*
|
|
396
|
+
* \tparam Matrix the type of matrix that \c matrix_column_vector is referring.
|
|
397
|
+
*/
|
|
398
|
+
template<class Matrix>
|
|
399
|
+
BOOST_UBLAS_INLINE
|
|
400
|
+
matrix_column_vector<Matrix const> make_column_vector(matrix_expression<Matrix> const& matrix){
|
|
401
|
+
return matrix_column_vector<Matrix const>(matrix());
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
}}}
|
|
405
|
+
|
|
406
|
+
#endif
|