Server IP : 104.21.38.3 / Your IP : 172.68.164.28 Web Server : Apache System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /www/server/mysql/src/boost/boost_1_59_0/boost/numeric/odeint/algebra/ |
Upload File : |
/* [auto_generated] boost/numeric/odeint/algebra/array_algebra.hpp [begin_description] Algebra for Arrays. Highly specialized for odeint. Const arguments are introduce to work with odeint. The Array algebra can be used for Array structures with two template parameters: Array<T, N> [end_description] Copyright 2011-2013 Mario Mulansky Copyright 2011-2012 Karsten Ahnert Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef BOOST_NUMERIC_ODEINT_ALGEBRA_ARRAY_ALGEBRA_HPP_INCLUDED #define BOOST_NUMERIC_ODEINT_ALGEBRA_ARRAY_ALGEBRA_HPP_INCLUDED #include <algorithm> #include <boost/array.hpp> #include <boost/numeric/odeint/algebra/norm_result_type.hpp> namespace boost { namespace numeric { namespace odeint { struct array_algebra { //template< typename T , size_t dim , class Op > template < template < typename, size_t > class Array, typename T, size_t dim, class Op > static void for_each1( Array< T, dim > &s1, Op op ) { for( size_t i=0 ; i<dim ; ++i ) op( s1[i] ); } template < template < typename, size_t > class Array, typename T, size_t dim, class Op > static void for_each2( Array< T, dim > &s1, const Array< T, dim > &s2, Op op ) { for( size_t i=0 ; i<dim ; ++i ) op( s1[i] , s2[i] ); } template < template < typename, size_t > class Array, typename T, size_t dim, class Op > static void for_each3( Array< T , dim > &s1 , const Array< T , dim > &s2 , const Array< T , dim > &s3 , Op op ) { for( size_t i=0 ; i<dim ; ++i ) op( s1[i] , s2[i] , s3[i] ); } /* different const signature - required for the scale_sum_swap2 operation */ template < template < typename, size_t > class Array, typename T, size_t dim, class Op > static void for_each3( Array< T , dim > &s1 , Array< T , dim > &s2 , const Array< T , dim > &s3 , Op op ) { for( size_t i=0 ; i<dim ; ++i ) op( s1[i] , s2[i] , s3[i] ); } template < template < typename, size_t > class Array, typename T, size_t dim, class Op > static void for_each4( Array< T , dim > &s1 , const Array< T , dim > &s2 , const Array< T , dim > &s3 , const Array< T , dim > &s4 , Op op ) { for( size_t i=0 ; i<dim ; ++i ) op( s1[i] , s2[i] , s3[i] , s4[i] ); } template < template < typename, size_t > class Array, typename T, size_t dim, class Op > static void for_each5( Array< T , dim > &s1 , const Array< T , dim > &s2 , const Array< T , dim > &s3 , const Array< T , dim > &s4 , const Array< T , dim > &s5 , Op op ) { for( size_t i=0 ; i<dim ; ++i ) op( s1[i] , s2[i] , s3[i] , s4[i] , s5[i] ); } template < template < typename, size_t > class Array, typename T, size_t dim, class Op > static void for_each6( Array< T , dim > &s1 , const Array< T , dim > &s2 , const Array< T , dim > &s3 , const Array< T , dim > &s4 , const Array< T , dim > &s5 , const Array< T , dim > &s6 , Op op ) { for( size_t i=0 ; i<dim ; ++i ) op( s1[i] , s2[i] , s3[i] , s4[i] , s5[i] , s6[i] ); } template < template < typename, size_t > class Array, typename T, size_t dim, class Op > static void for_each7( Array< T , dim > &s1 , const Array< T , dim > &s2 , const Array< T , dim > &s3 , const Array< T , dim > &s4 , const Array< T , dim > &s5 , const Array< T , dim > &s6 , const Array< T , dim > &s7 , Op op ) { for( size_t i=0 ; i<dim ; ++i ) op( s1[i] , s2[i] , s3[i] , s4[i] , s5[i] , s6[i] , s7[i] ); } template < template < typename, size_t > class Array, typename T, size_t dim, class Op > static void for_each8( Array< T , dim > &s1 , const Array< T , dim > &s2 , const Array< T , dim > &s3 , const Array< T , dim > &s4 , const Array< T , dim > &s5 , const Array< T , dim > &s6 , const Array< T , dim > &s7 , const Array< T , dim > &s8 , Op op ) { for( size_t i=0 ; i<dim ; ++i ) op( s1[i] , s2[i] , s3[i] , s4[i] , s5[i] , s6[i] , s7[i] , s8[i] ); } template < template < typename, size_t > class Array, typename T, size_t dim, class Op > static void for_each9( Array< T , dim > &s1 , const Array< T , dim > &s2 , const Array< T , dim > &s3 , const Array< T , dim > &s4 , const Array< T , dim > &s5 , const Array< T , dim > &s6 , const Array< T , dim > &s7 , const Array< T , dim > &s8 , const Array< T , dim > &s9 , Op op ) { for( size_t i=0 ; i<dim ; ++i ) op( s1[i] , s2[i] , s3[i] , s4[i] , s5[i] , s6[i] , s7[i] , s8[i] , s9[i] ); } template < template < typename, size_t > class Array, typename T, size_t dim, class Op > static void for_each10( Array< T , dim > &s1 , const Array< T , dim > &s2 , const Array< T , dim > &s3 , const Array< T , dim > &s4 , const Array< T , dim > &s5 , const Array< T , dim > &s6 , const Array< T , dim > &s7 , const Array< T , dim > &s8 , const Array< T , dim > &s9 , const Array< T , dim > &s10 , Op op ) { for( size_t i=0 ; i<dim ; ++i ) op( s1[i] , s2[i] , s3[i] , s4[i] , s5[i] , s6[i] , s7[i] , s8[i] , s9[i] , s10[i] ); } template < template < typename, size_t > class Array, typename T, size_t dim, class Op > static void for_each11( Array< T , dim > &s1 , const Array< T , dim > &s2 , const Array< T , dim > &s3 , const Array< T , dim > &s4 , const Array< T , dim > &s5 , const Array< T , dim > &s6 , const Array< T , dim > &s7 , const Array< T , dim > &s8 , const Array< T , dim > &s9 , const Array< T , dim > &s10 , const Array< T , dim > &s11 , Op op ) { for( size_t i=0 ; i<dim ; ++i ) op( s1[i] , s2[i] , s3[i] , s4[i] , s5[i] , s6[i] , s7[i] , s8[i] , s9[i] , s10[i] , s11[i] ); } template < template < typename, size_t > class Array, typename T, size_t dim, class Op > static void for_each12( Array< T , dim > &s1 , const Array< T , dim > &s2 , const Array< T , dim > &s3 , const Array< T , dim > &s4 , const Array< T , dim > &s5 , const Array< T , dim > &s6 , const Array< T , dim > &s7 , const Array< T , dim > &s8 , const Array< T , dim > &s9 , const Array< T , dim > &s10 , const Array< T , dim > &s11 , const Array< T , dim > &s12 , Op op ) { for( size_t i=0 ; i<dim ; ++i ) op( s1[i] , s2[i] , s3[i] , s4[i] , s5[i] , s6[i] , s7[i] , s8[i] , s9[i] , s10[i] , s11[i] , s12[i] ); } template < template < typename, size_t > class Array, typename T, size_t dim, class Op > static void for_each13( Array< T , dim > &s1 , const Array< T , dim > &s2 , const Array< T , dim > &s3 , const Array< T , dim > &s4 , const Array< T , dim > &s5 , const Array< T , dim > &s6 , const Array< T , dim > &s7 , const Array< T , dim > &s8 , const Array< T , dim > &s9 , const Array< T , dim > &s10 , const Array< T , dim > &s11 , const Array< T , dim > &s12 , const Array< T , dim > &s13 , Op op ) { for( size_t i=0 ; i<dim ; ++i ) op( s1[i] , s2[i] , s3[i] , s4[i] , s5[i] , s6[i] , s7[i] , s8[i] , s9[i] , s10[i] , s11[i] , s12[i] , s13[i] ); } template < template < typename, size_t > class Array, typename T, size_t dim, class Op > static void for_each14( Array< T , dim > &s1 , const Array< T , dim > &s2 , const Array< T , dim > &s3 , const Array< T , dim > &s4 , const Array< T , dim > &s5 , const Array< T , dim > &s6 , const Array< T , dim > &s7 , const Array< T , dim > &s8 , const Array< T , dim > &s9 , const Array< T , dim > &s10 , const Array< T , dim > &s11 , const Array< T , dim > &s12 , const Array< T , dim > &s13 , const Array< T , dim > &s14 , Op op ) { for( size_t i=0 ; i<dim ; ++i ) op( s1[i] , s2[i] , s3[i] , s4[i] , s5[i] , s6[i] , s7[i] , s8[i] , s9[i] , s10[i] , s11[i] , s12[i] , s13[i] , s14[i] ); } template < template < typename, size_t > class Array, typename T, size_t dim, class Op > static void for_each15( Array< T , dim > &s1 , const Array< T , dim > &s2 , const Array< T , dim > &s3 , const Array< T , dim > &s4 , const Array< T , dim > &s5 , const Array< T , dim > &s6 , const Array< T , dim > &s7 , const Array< T , dim > &s8 , const Array< T , dim > &s9 , const Array< T , dim > &s10 , const Array< T , dim > &s11 , const Array< T , dim > &s12 , const Array< T , dim > &s13 , const Array< T , dim > &s14 , const Array< T , dim > &s15 , Op op ) { for( size_t i=0 ; i<dim ; ++i ) op( s1[i] , s2[i] , s3[i] , s4[i] , s5[i] , s6[i] , s7[i] , s8[i] , s9[i] , s10[i] , s11[i] , s12[i] , s13[i] , s14[i] , s15[i] ); } template < template < typename, size_t > class Array, typename T, size_t dim> static typename norm_result_type< Array< T , dim > >::type norm_inf( const Array< T , dim > &s ) { BOOST_USING_STD_MAX(); using std::abs; typedef typename norm_result_type< Array< T , dim > >::type result_type; result_type init = static_cast< result_type >( 0 ); for( size_t i=0 ; i<dim ; ++i ) init = max BOOST_PREVENT_MACRO_SUBSTITUTION ( init , static_cast< result_type >(abs(s[i])) ); return init; } }; } } } #endif // BOOST_NUMERIC_ODEINT_ALGEBRA_ARRAY_ALGEBRA_HPP_INCLUDED