array.hpp File Reference

#include <exception>
#include <stdexcept>
#include <iterator>
#include <algorithm>
#include <iostream>
#include <iomanip>
#include <limits>
#include <cmath>
#include <cstdlib>

Go to the source code of this file.

Classes

class  lite::size_mismatch_error
 A mismatch between the sizes of two arrays in an operation or invalid size for a single array. More...
class  lite::constant< type_, value_ >
 This class can be used to encapsulate an element of a lite::pack as a constant element. More...
class  lite::pack< type0_..., typeN_ >
 This is a general tuple class that can pack together elements of different types. Furthermore, individual elements can be marked as constant so that they won't occupy memory in the pack object. More...
class  lite::sub_pack< pack_type_, keep0_..., keepN_ >
 This class can be used to define and extract a subset of element of a pack as another pack. More...
struct  lite::get_type< index_, type_ >
 This class can be used to retrieve the type of the elements of a pack type. More...
class  lite::c_iterator< value_type_ >
 This class implements an iterator that returns the same value everywhere. More...
class  lite::u_iterator< base_iter_type_, func_type_, is_static_ >
 This class implements an iterator that returns the result of applying a function object to the return value of another iterator. More...
class  lite::b_iterator< left_base_iterator_type_, right_base_iterator_type_, func_type_, is_static_ >
 This class implements an iterator that returns the result of applying a binary function object to the return value of two other iterators. More...
struct  lite::size_transformer< transform_type_, input_size_type_ >
 This can be used to apply a transform object of type transform_type_ to a size object of type input_size_type_. More...
struct  lite::iterator_transformer< transform_type_, input_iterator_type_, input_size_type_ >
 This can be used to apply a transform object of type transform_type_ to a pair of iterator object and size object respectively of types input_size_type_ and input_size_type_. More...
class  lite::plane< dim_ >
 This transform, when applied to an array of dimension N, returns a reference array of dimension N-1 by fixing the index at dimension dim_. More...
class  lite::diagonal
 This transform returns a 1-D reference array that corresponds to the main diagonal of the array. More...
class  lite::transpose
 This transform returns a reference array that references the original array but its dimensions in revere order. More...
class  lite::block< n0_..., nN_ >
 This transform can be used to create a reference array that corresponds to a block of the original array. The resulting array will have equal or less dimensions. More...
struct  lite::array_signature_traits< signature_, base_iterator_type_ >
 This can be used to extract information from array signatures and get the appropriate iterator type and size type for a signature. More...
struct  lite::default_array_traits
 This is the default array traits type used by the class lite::array.See Array Traits for more information. More...
class  lite::array< signature_, traits_type_, rep_ >
 This class represents a general sinlge/multidimensional array with constant/variable size dimensions. More...
class  lite::reference_rep< iterator_type_ >
 This is a tag type that can be used to specify reference representation for an array. More...
class  lite::internal_rep< reversed_ >
 This is a tag type that can be used to specify internal representation for an array. More...
class  lite::hybrid_rep< reversed_, internal_buf_size_ >
 This is a tag type that can be used to specify hybrid representation for an array. More...
struct  lite::transform_traits< array_type_, trans_type_ >
 This class provides information about applying a transform object to an array object. It can be used for example to get the exact type of the array that is returned as the result of applying a transform. More...
class  lite::array_comparator
 This class defines a function object that can be used to compare two compatible arrays to define an ordering. More...

Namespaces

namespace  lite
 

Contains all the lite classes and functions.


namespace  lite::transforms
 

Imports all the array transforms.

This namespace includes all the predefined transforms.


Defines

#define LITE_ARRAY_MAX_DIMS   3
 The maximum number of dimensions for arrays.
#define LITE_ARRAY_MAX_PACKS   4
 The maximum number of elements in a lite::pack.
#define LITE_ARRAY_MAX_VECTOR_ARGS   5
 The maximum size of fixed size vectors (1D arrays) which can be initialized using a constructor.
#define LITE_ARRAY_MAX_ITERATOR_ARGS   3
 The maximum number of arguments that will be passed from the constructor of a reference array to its iterator object verbatim.
#define LITE_ARRAY_MAX_STATIC_UNROLL_LENGTH   5
 For all array operations in which the innermost loop has a constant number of iterations which is no more than LITE_ARRAY_MAX_STATIC_UNROLL_LENGTH the innermost loop is fully unrolled.
#define LITE_ARRAY_MAX_DYNAMIC_UNROLL_DEPTH   4
 For all array operations in which the innermost loop has a non-constant number of iterations or has more than LITE_ARRAY_MAX_STATIC_UNROLL_LENGTH number of iterations, the innermost loop is dynamically unrolled in $2^k$ iterations at a time where k is at most LITE_ARRAY_MAX_DYNAMIC_UNROLL_DEPTH .
#define LITE_ARRAY_VERSION   3505
 Integral version number of the library.
#define LITE_ARRAY_VERSION_STR   "3.505"
 An string representation of the version number of the library.
#define LITE_ARRAY_USE(x)   ((void)(x))
#define DOCUMENTATION_ONLY
#define LITE_INLINE   inline
#define LITE_ARRAY_SIZE_CHECK(size1, size2, msg)   lite_array_size_check(size1, size2, msg)

Typedefs

typedef plane< 0 > lite::row
 This transform, when applied to an array of dimension N, returns a reference array of dimension N-1 by fixing the index at dimension 0.
typedef plane< 1 > lite::column
 This transform, when applied to an array of dimension N (N must be at least 2), returns a reference array of dimension N-1 by fixing the index at dimension 0.

Functions

template<int index_, typename type_ >
get_type< index_, type_ >::type lite::get (const type_ &a)
template<int index_, typename type_ , typename value_type_ >
void lite::set (type_ &a, const value_type_ &v)
template<typename l_type0_ , ... , typename l_typeN_ , typename r_type0_ , ... , typename r_typeN_ >
bool lite::operator< (const pack< l_type0_,..., l_typeN_ > &a, const pack< r_type0_,..., r_typeN_ > &b)
LITE_INLINE bool lite::operator< (const pack<> &, const pack<> &)
template<typename l_type0_ , typename r_type0_ >
LITE_INLINE bool lite::operator< (const pack< l_type0_ > &a, const pack< r_type0_ > &b)
template<typename l_type0_ , typename l_type1_ , typename r_type0_ , typename r_type1_ >
LITE_INLINE bool lite::operator< (const pack< l_type0_, l_type1_ > &a, const pack< r_type0_, r_type1_ > &b)
template<typename l_type0_ , typename l_type1_ , typename l_type2_ , typename r_type0_ , typename r_type1_ , typename r_type2_ >
LITE_INLINE bool lite::operator< (const pack< l_type0_, l_type1_, l_type2_ > &a, const pack< r_type0_, r_type1_, r_type2_ > &b)
template<typename l_type0_ , ... , typename l_typeN_ , typename r_type0_ , ... , typename r_typeN_ >
bool lite::operator<= (const pack< l_type0_,..., l_typeN_ > &a, const pack< r_type0_,..., r_typeN_ > &b)
LITE_INLINE bool lite::operator<= (const pack<> &, const pack<> &)
template<typename l_type0_ , typename r_type0_ >
LITE_INLINE bool lite::operator<= (const pack< l_type0_ > &a, const pack< r_type0_ > &b)
template<typename l_type0_ , typename l_type1_ , typename r_type0_ , typename r_type1_ >
LITE_INLINE bool lite::operator<= (const pack< l_type0_, l_type1_ > &a, const pack< r_type0_, r_type1_ > &b)
template<typename l_type0_ , typename l_type1_ , typename l_type2_ , typename r_type0_ , typename r_type1_ , typename r_type2_ >
LITE_INLINE bool lite::operator<= (const pack< l_type0_, l_type1_, l_type2_ > &a, const pack< r_type0_, r_type1_, r_type2_ > &b)
template<typename l_type0_ , ... , typename l_typeN_ , typename r_type0_ , ... , typename r_typeN_ >
bool lite::operator== (const pack< l_type0_,..., l_typeN_ > &a, const pack< r_type0_,..., r_typeN_ > &b)
LITE_INLINE bool lite::operator== (const pack<> &, const pack<> &)
template<typename l_type0_ , typename r_type0_ >
LITE_INLINE bool lite::operator== (const pack< l_type0_ > &a, const pack< r_type0_ > &b)
template<typename l_type0_ , typename l_type1_ , typename r_type0_ , typename r_type1_ >
LITE_INLINE bool lite::operator== (const pack< l_type0_, l_type1_ > &a, const pack< r_type0_, r_type1_ > &b)
template<typename l_type0_ , typename l_type1_ , typename l_type2_ , typename r_type0_ , typename r_type1_ , typename r_type2_ >
LITE_INLINE bool lite::operator== (const pack< l_type0_, l_type1_, l_type2_ > &a, const pack< r_type0_, r_type1_, r_type2_ > &b)
template<typename l_type0_ , ... , typename l_typeN_ , typename r_type0_ , ... , typename r_typeN_ >
bool lite::operator>= (const pack< l_type0_,..., l_typeN_ > &a, const pack< r_type0_,..., r_typeN_ > &b)
LITE_INLINE bool lite::operator>= (const pack<> &, const pack<> &)
template<typename l_type0_ , typename r_type0_ >
LITE_INLINE bool lite::operator>= (const pack< l_type0_ > &a, const pack< r_type0_ > &b)
template<typename l_type0_ , typename l_type1_ , typename r_type0_ , typename r_type1_ >
LITE_INLINE bool lite::operator>= (const pack< l_type0_, l_type1_ > &a, const pack< r_type0_, r_type1_ > &b)
template<typename l_type0_ , typename l_type1_ , typename l_type2_ , typename r_type0_ , typename r_type1_ , typename r_type2_ >
LITE_INLINE bool lite::operator>= (const pack< l_type0_, l_type1_, l_type2_ > &a, const pack< r_type0_, r_type1_, r_type2_ > &b)
template<typename l_type0_ , ... , typename l_typeN_ , typename r_type0_ , ... , typename r_typeN_ >
bool lite::operator> (const pack< l_type0_,..., l_typeN_ > &a, const pack< r_type0_,..., r_typeN_ > &b)
LITE_INLINE bool lite::operator> (const pack<> &, const pack<> &)
template<typename l_type0_ , typename r_type0_ >
LITE_INLINE bool lite::operator> (const pack< l_type0_ > &a, const pack< r_type0_ > &b)
template<typename l_type0_ , typename l_type1_ , typename r_type0_ , typename r_type1_ >
LITE_INLINE bool lite::operator> (const pack< l_type0_, l_type1_ > &a, const pack< r_type0_, r_type1_ > &b)
template<typename l_type0_ , typename l_type1_ , typename l_type2_ , typename r_type0_ , typename r_type1_ , typename r_type2_ >
LITE_INLINE bool lite::operator> (const pack< l_type0_, l_type1_, l_type2_ > &a, const pack< r_type0_, r_type1_, r_type2_ > &b)
template<typename l_type0_ , ... , typename l_typeN_ , typename r_type0_ , ... , typename r_typeN_ >
bool lite::operator!= (const pack< l_type0_,..., l_typeN_ > &a, const pack< r_type0_,..., r_typeN_ > &b)
template<typename char_type_ , typename traits_type_ , typename type0_ , ... , typename typeN_ >
std::basic_ostream< char_type_,
traits_type_ > & 
lite::operator<< (std::basic_ostream< char_type_, traits_type_ > &os, const pack< type0_,..., typeN_ > &p)
 Prints the pack p to the output stream os.
template<typename char_type_ , typename traits_type_ , typename type0_ , ... , typename typeN_ >
std::basic_istream< char_type_,
traits_type_ > & 
lite::operator>> (std::basic_istream< char_type_, traits_type_ > &is, pack< type0_,..., typeN_ > &p)
 Scans (reads) the pack p from the input stream is.
template<typename left_size_type_ , typename right_size_type_ >
void lite::lite_array_size_check (const left_size_type_ &a, const right_size_type_ &b, const std::string &msg)
template<typename iter_type_ >
LITE_INLINE
std::iterator_traits< pack
< iter_type_ > >::reference 
lite::at (const pack< iter_type_ > &it)
template<typename iter_type_ , typename ind_type0_ >
LITE_INLINE
std::iterator_traits< pack
< iter_type_, ind_type0_ >
>::reference 
lite::at (const pack< iter_type_, ind_type0_ > &it)
template<typename iter_type_ , typename ind_type0_ >
LITE_INLINE
std::iterator_traits< pack
< iter_type_, ind_type0_ >
>::reference 
lite::at (const pack< iter_type_, ind_type0_ > &it, int ind0)
template<typename iter_type_ , typename ind_type0_ , typename ind_type1_ >
LITE_INLINE
std::iterator_traits< pack
< iter_type_, ind_type0_,
ind_type1_ > >::reference 
lite::at (const pack< iter_type_, ind_type0_, ind_type1_ > &it)
template<typename iter_type_ , typename ind_type0_ , typename ind_type1_ >
LITE_INLINE
std::iterator_traits< pack
< iter_type_, ind_type0_,
ind_type1_ > >::reference 
lite::at (const pack< iter_type_, ind_type0_, ind_type1_ > &it, int ind0)
template<typename iter_type_ , typename ind_type0_ , typename ind_type1_ >
LITE_INLINE
std::iterator_traits< pack
< iter_type_, ind_type0_,
ind_type1_ > >::reference 
lite::at (const pack< iter_type_, ind_type0_, ind_type1_ > &it, int ind0, int ind1)
template<typename iter_type_ , typename ind_type0_ , typename ind_type1_ , typename ind_type2_ >
LITE_INLINE
std::iterator_traits< pack
< iter_type_, ind_type0_,
ind_type1_, ind_type2_ >
>::reference 
lite::at (const pack< iter_type_, ind_type0_, ind_type1_, ind_type2_ > &it)
template<typename iter_type_ , typename ind_type0_ , typename ind_type1_ , typename ind_type2_ >
LITE_INLINE
std::iterator_traits< pack
< iter_type_, ind_type0_,
ind_type1_, ind_type2_ >
>::reference 
lite::at (const pack< iter_type_, ind_type0_, ind_type1_, ind_type2_ > &it, int ind0)
template<typename iter_type_ , typename ind_type0_ , typename ind_type1_ , typename ind_type2_ >
LITE_INLINE
std::iterator_traits< pack
< iter_type_, ind_type0_,
ind_type1_, ind_type2_ >
>::reference 
lite::at (const pack< iter_type_, ind_type0_, ind_type1_, ind_type2_ > &it, int ind0, int ind1)
template<typename iter_type_ , typename ind_type0_ , typename ind_type1_ , typename ind_type2_ >
LITE_INLINE
std::iterator_traits< pack
< iter_type_, ind_type0_,
ind_type1_, ind_type2_ >
>::reference 
lite::at (const pack< iter_type_, ind_type0_, ind_type1_, ind_type2_ > &it, int ind0, int ind1, int ind2)
template<int dim_, typename iter_type_ , typename ind_type0_ , typename ind_type1_ , typename ind_type2_ >
LITE_INLINE detail::enable_if
< dim_==0, void >::type 
lite::inc (pack< iter_type_, ind_type0_, ind_type1_, ind_type2_ > &it)
template<int dim_, typename iter_type_ , typename ind_type0_ , typename ind_type1_ , typename ind_type2_ >
LITE_INLINE detail::enable_if
< dim_==0, void >::type 
lite::dec (pack< iter_type_, ind_type0_, ind_type1_, ind_type2_ > &it)
template<int dim_, typename iter_type_ , typename ind_type0_ , typename ind_type1_ , typename ind_type2_ >
LITE_INLINE detail::enable_if
< dim_==0, void >::type 
lite::shift (pack< iter_type_, ind_type0_, ind_type1_, ind_type2_ > &it, int diff)
template<class value_type_ >
LITE_INLINE c_iterator
< value_type_ > 
lite::make_c_iterator (const value_type_ &val)
 Constructs and returns a lite::c_iterator that returns val everywhere.
template<typename value_type_ >
LITE_INLINE
std::iterator_traits
< c_iterator< value_type_ >
>::reference 
lite::at (const c_iterator< value_type_ > &it)
template<typename value_type_ >
LITE_INLINE
std::iterator_traits
< c_iterator< value_type_ >
>::reference 
lite::at (const c_iterator< value_type_ > &it, int)
template<typename value_type_ >
LITE_INLINE
std::iterator_traits
< c_iterator< value_type_ >
>::reference 
lite::at (const c_iterator< value_type_ > &it, int, int)
template<typename value_type_ >
LITE_INLINE
std::iterator_traits
< c_iterator< value_type_ >
>::reference 
lite::at (const c_iterator< value_type_ > &it, int, int, int)
template<int dim_, typename value_type_ >
LITE_INLINE void lite::inc (c_iterator< value_type_ > &)
template<int dim_, typename value_type_ >
LITE_INLINE void lite::dec (c_iterator< value_type_ > &)
template<int dim_, typename value_type_ >
LITE_INLINE void lite::shift (c_iterator< value_type_ > &, int)
template<typename func_type_ , typename base_iter_type_ >
LITE_INLINE u_iterator
< base_iter_type_, func_type_,
true > 
lite::make_u_iterator (const base_iter_type_ &it)
 Creates a lite::u_iterator from a base iterator it and a static function object of type func_type_.
template<typename func_type_ , typename base_iter_type_ >
LITE_INLINE u_iterator
< base_iter_type_, func_type_,
false > 
lite::make_u_iterator (const base_iter_type_ &it, const func_type_ &func)
 Creates a lite::u_iterator from a base iterator it and function object func.
template<typename base_iter_type_ , typename func_type_ , bool is_static_>
LITE_INLINE u_iterator
< base_iter_type_, func_type_,
is_static_ >::reference 
lite::at (const u_iterator< base_iter_type_, func_type_, is_static_ > &it)
template<typename base_iter_type_ , typename func_type_ , bool is_static_>
LITE_INLINE u_iterator
< base_iter_type_, func_type_,
is_static_ >::reference 
lite::at (const u_iterator< base_iter_type_, func_type_, is_static_ > &it, int ind0)
template<typename base_iter_type_ , typename func_type_ , bool is_static_>
LITE_INLINE u_iterator
< base_iter_type_, func_type_,
is_static_ >::reference 
lite::at (const u_iterator< base_iter_type_, func_type_, is_static_ > &it, int ind0, int ind1)
template<typename base_iter_type_ , typename func_type_ , bool is_static_>
LITE_INLINE u_iterator
< base_iter_type_, func_type_,
is_static_ >::reference 
lite::at (const u_iterator< base_iter_type_, func_type_, is_static_ > &it, int ind0, int ind1, int ind2)
template<int dim_, typename base_iter_type_ , typename func_type_ , bool is_static_>
LITE_INLINE void lite::inc (u_iterator< base_iter_type_, func_type_, is_static_ > &it)
template<int dim_, typename base_iter_type_ , typename func_type_ , bool is_static_>
LITE_INLINE void lite::dec (u_iterator< base_iter_type_, func_type_, is_static_ > &it)
template<int dim_, typename base_iter_type_ , typename func_type_ , bool is_static_>
LITE_INLINE void lite::shift (u_iterator< base_iter_type_, func_type_, is_static_ > &it, int diff)
template<typename func_type_ , typename left_base_iterator_type_ , typename right_base_iterator_type_ >
LITE_INLINE b_iterator
< left_base_iterator_type_,
right_base_iterator_type_,
func_type_, true > 
lite::make_b_iterator (const left_base_iterator_type_ &left_it, const right_base_iterator_type_ &right_it)
 Creates a lite::b_iterator from base iterators left_it and right_it and a static function object of type func_type_.
template<typename func_type_ , typename left_base_iterator_type_ , typename right_base_iterator_type_ >
LITE_INLINE b_iterator
< left_base_iterator_type_,
right_base_iterator_type_,
func_type_, false > 
lite::make_b_iterator (const left_base_iterator_type_ &left_it, const right_base_iterator_type_ &right_it, const func_type_ &func)
 Creates a lite::b_iterator from the base iterators left_it and right_it and function object func.
template<typename left_base_iter_type_ , typename right_base_iter_type_ , typename func_type_ , bool is_static_>
LITE_INLINE b_iterator
< left_base_iter_type_,
right_base_iter_type_,
func_type_, is_static_ >
::reference 
lite::at (const b_iterator< left_base_iter_type_, right_base_iter_type_, func_type_, is_static_ > &it)
template<typename left_base_iter_type_ , typename right_base_iter_type_ , typename func_type_ , bool is_static_>
LITE_INLINE b_iterator
< left_base_iter_type_,
right_base_iter_type_,
func_type_, is_static_ >
::reference 
lite::at (const b_iterator< left_base_iter_type_, right_base_iter_type_, func_type_, is_static_ > &it, int ind0)
template<typename left_base_iter_type_ , typename right_base_iter_type_ , typename func_type_ , bool is_static_>
LITE_INLINE b_iterator
< left_base_iter_type_,
right_base_iter_type_,
func_type_, is_static_ >
::reference 
lite::at (const b_iterator< left_base_iter_type_, right_base_iter_type_, func_type_, is_static_ > &it, int ind0, int ind1)
template<typename left_base_iter_type_ , typename right_base_iter_type_ , typename func_type_ , bool is_static_>
LITE_INLINE b_iterator
< left_base_iter_type_,
right_base_iter_type_,
func_type_, is_static_ >
::reference 
lite::at (const b_iterator< left_base_iter_type_, right_base_iter_type_, func_type_, is_static_ > &it, int ind0, int ind1, int ind2)
template<int dim_, typename left_base_iter_type_ , typename right_base_iter_type_ , typename func_type_ , bool is_static_>
LITE_INLINE void lite::inc (b_iterator< left_base_iter_type_, right_base_iter_type_, func_type_, is_static_ > &it)
template<int dim_, typename left_base_iter_type_ , typename right_base_iter_type_ , typename func_type_ , bool is_static_>
LITE_INLINE void lite::dec (b_iterator< left_base_iter_type_, right_base_iter_type_, func_type_, is_static_ > &it)
template<int dim_, typename left_base_iter_type_ , typename right_base_iter_type_ , typename func_type_ , bool is_static_>
LITE_INLINE void lite::shift (b_iterator< left_base_iter_type_, right_base_iter_type_, func_type_, is_static_ > &it, int diff)
template<typename iterator_type_ , typename size_type_ >
LITE_INLINE void lite::for_each (const iterator_type_ &iter, const size_type_ &size)
 Evaluates every element of the array pointed by iter and of size size.
template<typename iterator_type_ , typename function_type_ , typename size_type_ >
LITE_INLINE void lite::for_each (const iterator_type_ &iter, function_type_ &func, const size_type_ &size)
 Applies the function object func to every element of the array pointed by iter and of size size.
template<typename iterator_type_ , typename size_type_ >
LITE_INLINE bool lite::for_each_c (const iterator_type_ &iter, const size_type_ &size)
 Evaluates every element of the array pointed by iter and of size size while the elements evaluate to true. Returns true if all the elements evaluated to true.
template<typename iterator_type_ , typename function_type_ , typename size_type_ >
LITE_INLINE bool lite::for_each_c (const iterator_type_ &iter, function_type_ &func, const size_type_ &size)
 Applies the function object func to every element of the array pointed by iter and of size size, while the function object evaluates to true. Returns true if the function object evaluates to true for all the elements.
template<typename signature_ , typename traits_type_ , typename rep_ >
LITE_INLINE void lite::for_each (const array< signature_, traits_type_, rep_ > &a)
 Evaluates every element of the array a.
template<typename signature_ , typename traits_type_ , typename rep_ >
LITE_INLINE void lite::for_each (array< signature_, traits_type_, rep_ > &a)
 Evaluates every element of the array a.
template<typename signature_ , typename traits_type_ , typename rep_ , typename function_type_ >
LITE_INLINE void lite::for_each (const array< signature_, traits_type_, rep_ > &a, function_type_ &func)
 Applies the function object func to every element of the array a.
template<typename signature_ , typename traits_type_ , typename rep_ , typename function_type_ >
LITE_INLINE void lite::for_each (array< signature_, traits_type_, rep_ > &a, function_type_ &func)
 Applies the function object func to every element of the array a.
template<typename signature_ , typename traits_type_ , typename rep_ >
LITE_INLINE bool lite::for_each_c (const array< signature_, traits_type_, rep_ > &a)
 Evaluates every element of the array a while the elements evaluate to true. Returns true if all the elements evaluated to true.
template<typename signature_ , typename traits_type_ , typename rep_ >
LITE_INLINE bool lite::for_each_c (array< signature_, traits_type_, rep_ > &a)
 Evaluates every element of the array a while the elements evaluate to true. Returns true if all the elements evaluated to true.
template<typename signature_ , typename traits_type_ , typename rep_ , typename function_type_ >
LITE_INLINE bool lite::for_each_c (const array< signature_, traits_type_, rep_ > &a, function_type_ &func)
 Applies the function object func to every element of the array a while the function object evaluates to true. Returns true if the function object evaluates to true for all the elements.
template<typename signature_ , typename traits_type_ , typename rep_ , typename function_type_ >
LITE_INLINE bool lite::for_each_c (array< signature_, traits_type_, rep_ > &a, function_type_ &func)
 Applies the function object func to every element of the array a while the function object evaluates to true. Returns true if the function object evaluates to true for all the elements.
template<typename signature_ , typename traits_type_ , typename src_rep_ >
LITE_INLINE array< signature_,
traits_type_, src_rep_ >
::temporary_array 
lite::copy (const array< signature_, traits_type_, src_rep_ > &src)
template<typename size_type_ >
int lite::volume (const size_type_ &sz)
 Returns the total volume of an array of the size sz.
template<typename func_type_ , typename signature_ , typename traits_type_ , typename rep_ >
LITE_INLINE array< signature_,
traits_type_, reference_rep
< u_iterator< typename array
< signature_, traits_type_,
rep_ >::const_iterator,
func_type_ > > > 
lite::apply (const array< signature_, traits_type_, rep_ > &a)
template<typename func_type_ , typename signature_ , typename traits_type_ , typename rep_ >
LITE_INLINE array< signature_,
traits_type_, reference_rep
< u_iterator< typename array
< signature_, traits_type_,
rep_ >::iterator, func_type_ > > > 
lite::apply (array< signature_, traits_type_, rep_ > &a)
template<typename func_type_ , typename signature_ , typename traits_type_ , typename rep_ >
LITE_INLINE array< signature_,
traits_type_, reference_rep
< u_iterator< typename array
< signature_, traits_type_,
rep_ >::const_iterator,
func_type_, false > > > 
lite::apply (const array< signature_, traits_type_, rep_ > &a, const func_type_ &func)
template<typename func_type_ , typename signature_ , typename traits_type_ , typename rep_ >
LITE_INLINE array< signature_,
traits_type_, reference_rep
< u_iterator< typename array
< signature_, traits_type_,
rep_ >::iterator, func_type_,
false > > > 
lite::apply (array< signature_, traits_type_, rep_ > &a, const func_type_ &func)
template<typename func_type_ , typename signature_ , typename traits_type_ , typename l_rep_ , typename r_rep_ >
LITE_INLINE array< signature_,
traits_type_, reference_rep
< b_iterator< typename array
< signature_, traits_type_,
l_rep_ >::const_iterator,
typename array< signature_,
traits_type_, r_rep_ >
::const_iterator, func_type_ > > > 
lite::apply (const array< signature_, traits_type_, l_rep_ > &a, const array< signature_, traits_type_, r_rep_ > &b)
template<typename func_type_ , typename signature_ , typename traits_type_ , typename l_rep_ , typename r_rep_ >
LITE_INLINE array< signature_,
traits_type_, reference_rep
< b_iterator< typename array
< signature_, traits_type_,
l_rep_ >::iterator, typename
array< signature_,
traits_type_, r_rep_ >
::const_iterator, func_type_ > > > 
lite::apply (array< signature_, traits_type_, l_rep_ > &a, const array< signature_, traits_type_, r_rep_ > &b)
template<typename func_type_ , typename signature_ , typename traits_type_ , typename l_rep_ , typename r_rep_ >
LITE_INLINE array< signature_,
traits_type_, reference_rep
< b_iterator< typename array
< signature_, traits_type_,
l_rep_ >::const_iterator,
typename array< signature_,
traits_type_, r_rep_ >
::iterator, func_type_ > > > 
lite::apply (const array< signature_, traits_type_, l_rep_ > &a, array< signature_, traits_type_, r_rep_ > &b)
template<typename func_type_ , typename signature_ , typename traits_type_ , typename l_rep_ , typename r_rep_ >
LITE_INLINE array< signature_,
traits_type_, reference_rep
< b_iterator< typename array
< signature_, traits_type_,
l_rep_ >::iterator, typename
array< signature_,
traits_type_, r_rep_ >
::iterator, func_type_ > > > 
lite::apply (array< signature_, traits_type_, l_rep_ > &a, array< signature_, traits_type_, r_rep_ > &b)
template<typename func_type_ , typename signature_ , typename traits_type_ , typename l_rep_ , typename r_rep_ >
LITE_INLINE array< signature_,
traits_type_, reference_rep
< b_iterator< typename array
< signature_, traits_type_,
l_rep_ >::const_iterator,
typename array< signature_,
traits_type_, r_rep_ >
::const_iterator, func_type_ > > > 
lite::apply (const array< signature_, traits_type_, l_rep_ > &a, const array< signature_, traits_type_, r_rep_ > &b, const func_type_ &func)
template<typename func_type_ , typename signature_ , typename traits_type_ , typename l_rep_ , typename r_rep_ >
LITE_INLINE array< signature_,
traits_type_, reference_rep
< b_iterator< typename array
< signature_, traits_type_,
l_rep_ >::iterator, typename
array< signature_,
traits_type_, r_rep_ >
::const_iterator, func_type_ > > > 
lite::apply (array< signature_, traits_type_, l_rep_ > &a, const array< signature_, traits_type_, r_rep_ > &b, const func_type_ &func)
template<typename func_type_ , typename signature_ , typename traits_type_ , typename l_rep_ , typename r_rep_ >
LITE_INLINE array< signature_,
traits_type_, reference_rep
< b_iterator< typename array
< signature_, traits_type_,
l_rep_ >::const_iterator,
typename array< signature_,
traits_type_, r_rep_ >
::iterator, func_type_ > > > 
lite::apply (const array< signature_, traits_type_, l_rep_ > &a, array< signature_, traits_type_, r_rep_ > &b, const func_type_ &func)
template<typename func_type_ , typename signature_ , typename traits_type_ , typename l_rep_ , typename r_rep_ >
LITE_INLINE array< signature_,
traits_type_, reference_rep
< b_iterator< typename array
< signature_, traits_type_,
l_rep_ >::iterator, typename
array< signature_,
traits_type_, r_rep_ >
::iterator, func_type_ > > > 
lite::apply (array< signature_, traits_type_, l_rep_ > &a, array< signature_, traits_type_, r_rep_ > &b, const func_type_ &func)
template<typename signature_ , typename traits_type_ , typename rep_ >
LITE_INLINE array< signature_,
traits_type_, reference_rep
< u_iterator< typename array
< signature_, traits_type_,
rep_ >::const_iterator, uplus
< typename
array_signature_traits
< signature_ >::element_type > > > > 
lite::operator+ (const array< signature_, traits_type_, rep_ > &a)
template<typename signature_ , typename traits_type_ , typename rep_ >
LITE_INLINE array< signature_,
traits_type_, reference_rep
< u_iterator< typename array
< signature_, traits_type_,
rep_ >::const_iterator, negate
< typename
array_signature_traits
< signature_ >::element_type > > > > 
lite::operator- (const array< signature_, traits_type_, rep_ > &a)
template<typename signature_ , typename traits_type_ , typename l_rep_ >
LITE_INLINE array< signature_,
traits_type_, reference_rep
< b_iterator< typename array
< signature_, traits_type_,
l_rep_ >::const_iterator,
c_iterator< typename
array_signature_traits
< signature_ >::element_type >
, plus< typename
array_signature_traits
< signature_ >::element_type > > > > 
lite::operator+ (const array< signature_, traits_type_, l_rep_ > &a, const typename array_signature_traits< signature_ >::element_type &b)
template<typename signature_ , typename traits_type_ , typename r_rep_ >
LITE_INLINE array< signature_,
traits_type_, reference_rep
< b_iterator< c_iterator
< typename
array_signature_traits
< signature_ >::element_type >
, typename array< signature_,
traits_type_, r_rep_ >
::const_iterator, plus
< typename
array_signature_traits
< signature_ >::element_type > > > > 
lite::operator+ (const typename array_signature_traits< signature_ >::element_type &a, const array< signature_, traits_type_, r_rep_ > &b)
template<typename signature_ , typename traits_type_ , typename l_rep_ >
LITE_INLINE array< signature_,
traits_type_, reference_rep
< b_iterator< typename array
< signature_, traits_type_,
l_rep_ >::const_iterator,
c_iterator< typename
array_signature_traits
< signature_ >::element_type >
, minus< typename
array_signature_traits
< signature_ >::element_type > > > > 
lite::operator- (const array< signature_, traits_type_, l_rep_ > &a, const typename array_signature_traits< signature_ >::element_type &b)
template<typename signature_ , typename traits_type_ , typename r_rep_ >
LITE_INLINE array< signature_,
traits_type_, reference_rep
< b_iterator< c_iterator
< typename
array_signature_traits
< signature_ >::element_type >
, typename array< signature_,
traits_type_, r_rep_ >
::const_iterator, minus
< typename
array_signature_traits
< signature_ >::element_type > > > > 
lite::operator- (const typename array_signature_traits< signature_ >::element_type &a, const array< signature_, traits_type_, r_rep_ > &b)
template<typename signature_ , typename traits_type_ , typename l_rep_ >
LITE_INLINE array< signature_,
traits_type_, reference_rep
< b_iterator< typename array
< signature_, traits_type_,
l_rep_ >::const_iterator,
c_iterator< typename
array_signature_traits
< signature_ >::element_type >
, multiplies< typename
array_signature_traits
< signature_ >::element_type > > > > 
lite::operator* (const array< signature_, traits_type_, l_rep_ > &a, const typename array_signature_traits< signature_ >::element_type &b)
template<typename signature_ , typename traits_type_ , typename r_rep_ >
LITE_INLINE array< signature_,
traits_type_, reference_rep
< b_iterator< c_iterator
< typename
array_signature_traits
< signature_ >::element_type >
, typename array< signature_,
traits_type_, r_rep_ >
::const_iterator, multiplies
< typename
array_signature_traits
< signature_ >::element_type > > > > 
lite::operator* (const typename array_signature_traits< signature_ >::element_type &a, const array< signature_, traits_type_, r_rep_ > &b)
template<typename signature_ , typename traits_type_ , typename l_rep_ >
LITE_INLINE array< signature_,
traits_type_, reference_rep
< b_iterator< typename array
< signature_, traits_type_,
l_rep_ >::const_iterator,
c_iterator< typename
array_signature_traits
< signature_ >::element_type >
, divides< typename
array_signature_traits
< signature_ >::element_type > > > > 
lite::operator/ (const array< signature_, traits_type_, l_rep_ > &a, const typename array_signature_traits< signature_ >::element_type &b)
template<typename signature_ , typename traits_type_ , typename l_rep_ , typename r_rep_ >
LITE_INLINE array< signature_,
traits_type_, reference_rep
< b_iterator< typename array
< signature_, traits_type_,
l_rep_ >::const_iterator,
typename array< signature_,
traits_type_, r_rep_ >
::const_iterator, plus
< typename
array_signature_traits
< signature_ >::element_type > > > > 
lite::operator+ (const array< signature_, traits_type_, l_rep_ > &a, const array< signature_, traits_type_, r_rep_ > &b)
template<typename signature_ , typename traits_type_ , typename l_rep_ , typename r_rep_ >
LITE_INLINE array< signature_,
traits_type_, reference_rep
< b_iterator< typename array
< signature_, traits_type_,
l_rep_ >::const_iterator,
typename array< signature_,
traits_type_, r_rep_ >
::const_iterator, minus
< typename
array_signature_traits
< signature_ >::element_type > > > > 
lite::operator- (const array< signature_, traits_type_, l_rep_ > &a, const array< signature_, traits_type_, r_rep_ > &b)
template<typename signature_ , typename traits_type_ , typename l_rep_ , typename r_rep_ >
LITE_INLINE array< signature_,
traits_type_, reference_rep
< b_iterator< typename array
< signature_, traits_type_,
l_rep_ >::const_iterator,
typename array< signature_,
traits_type_, r_rep_ >
::const_iterator, multiplies
< typename
array_signature_traits
< signature_ >::element_type > > > > 
lite::operator| (const array< signature_, traits_type_, l_rep_ > &a, const array< signature_, traits_type_, r_rep_ > &b)
template<typename signature_ , typename traits_type_ , typename l_rep_ >
LITE_INLINE const array
< signature_, traits_type_,
l_rep_ > & 
lite::operator+= (const array< signature_, traits_type_, l_rep_ > &a, const typename array_signature_traits< signature_ >::element_type &b)
template<typename signature_ , typename traits_type_ , typename l_rep_ >
LITE_INLINE array< signature_,
traits_type_, l_rep_ > & 
lite::operator+= (array< signature_, traits_type_, l_rep_ > &a, const typename array_signature_traits< signature_ >::element_type &b)
template<typename signature_ , typename traits_type_ , typename l_rep_ >
LITE_INLINE const array
< signature_, traits_type_,
l_rep_ > & 
lite::operator-= (const array< signature_, traits_type_, l_rep_ > &a, const typename array_signature_traits< signature_ >::element_type &b)
template<typename signature_ , typename traits_type_ , typename l_rep_ >
LITE_INLINE array< signature_,
traits_type_, l_rep_ > & 
lite::operator-= (array< signature_, traits_type_, l_rep_ > &a, const typename array_signature_traits< signature_ >::element_type &b)
template<typename signature_ , typename traits_type_ , typename l_rep_ >
LITE_INLINE const array
< signature_, traits_type_,
l_rep_ > & 
lite::operator*= (const array< signature_, traits_type_, l_rep_ > &a, const typename array_signature_traits< signature_ >::element_type &b)
template<typename signature_ , typename traits_type_ , typename l_rep_ >
LITE_INLINE array< signature_,
traits_type_, l_rep_ > & 
lite::operator*= (array< signature_, traits_type_, l_rep_ > &a, const typename array_signature_traits< signature_ >::element_type &b)
template<typename signature_ , typename traits_type_ , typename l_rep_ >
LITE_INLINE const array
< signature_, traits_type_,
l_rep_ > & 
lite::operator/= (const array< signature_, traits_type_, l_rep_ > &a, const typename array_signature_traits< signature_ >::element_type &b)
template<typename signature_ , typename traits_type_ , typename l_rep_ >
LITE_INLINE array< signature_,
traits_type_, l_rep_ > & 
lite::operator/= (array< signature_, traits_type_, l_rep_ > &a, const typename array_signature_traits< signature_ >::element_type &b)
template<typename signature_ , typename traits_type_ , typename l_rep_ , typename r_rep_ >
LITE_INLINE array< signature_,
traits_type_, l_rep_ > & 
lite::operator+= (array< signature_, traits_type_, l_rep_ > &a, const array< signature_, traits_type_, r_rep_ > &b)
template<typename signature_ , typename traits_type_ , typename l_rep_ , typename r_rep_ >
LITE_INLINE const array
< signature_, traits_type_,
l_rep_ > & 
lite::operator+= (const array< signature_, traits_type_, l_rep_ > &a, const array< signature_, traits_type_, r_rep_ > &b)
template<typename signature_ , typename traits_type_ , typename l_rep_ , typename r_rep_ >
LITE_INLINE array< signature_,
traits_type_, l_rep_ > & 
lite::operator-= (array< signature_, traits_type_, l_rep_ > &a, const array< signature_, traits_type_, r_rep_ > &b)
template<typename signature_ , typename traits_type_ , typename l_rep_ , typename r_rep_ >
LITE_INLINE const array
< signature_, traits_type_,
l_rep_ > & 
lite::operator-= (const array< signature_, traits_type_, l_rep_ > &a, const array< signature_, traits_type_, r_rep_ > &b)
template<typename signature_ , typename traits_type_ , typename l_rep_ , typename r_rep_ >
LITE_INLINE array< signature_,
traits_type_, l_rep_ > & 
lite::operator|= (array< signature_, traits_type_, l_rep_ > &a, const array< signature_, traits_type_, r_rep_ > &b)
template<typename signature_ , typename traits_type_ , typename l_rep_ , typename r_rep_ >
LITE_INLINE const array
< signature_, traits_type_,
l_rep_ > & 
lite::operator|= (const array< signature_, traits_type_, l_rep_ > &a, const array< signature_, traits_type_, r_rep_ > &b)
template<typename signature_ , typename traits_type_ , typename l_rep_ , typename r_rep_ >
LITE_INLINE bool lite::operator< (const array< signature_, traits_type_, l_rep_ > &a, const array< signature_, traits_type_, r_rep_ > &b)
template<typename signature_ , typename traits_type_ , typename l_rep_ , typename r_rep_ >
LITE_INLINE bool lite::operator<= (const array< signature_, traits_type_, l_rep_ > &a, const array< signature_, traits_type_, r_rep_ > &b)
template<typename signature_ , typename traits_type_ , typename l_rep_ , typename r_rep_ >
LITE_INLINE bool lite::operator== (const array< signature_, traits_type_, l_rep_ > &a, const array< signature_, traits_type_, r_rep_ > &b)
template<typename signature_ , typename traits_type_ , typename l_rep_ , typename r_rep_ >
LITE_INLINE bool lite::operator!= (const array< signature_, traits_type_, l_rep_ > &a, const array< signature_, traits_type_, r_rep_ > &b)
template<typename signature_ , typename traits_type_ , typename l_rep_ , typename r_rep_ >
LITE_INLINE bool lite::operator>= (const array< signature_, traits_type_, l_rep_ > &a, const array< signature_, traits_type_, r_rep_ > &b)
template<typename signature_ , typename traits_type_ , typename l_rep_ , typename r_rep_ >
LITE_INLINE bool lite::operator> (const array< signature_, traits_type_, l_rep_ > &a, const array< signature_, traits_type_, r_rep_ > &b)
template<typename signature_ , typename traits_type_ , typename l_rep_ , typename r_rep_ >
LITE_INLINE int lite::compare (const array< signature_, traits_type_, l_rep_ > &a, const array< signature_, traits_type_, r_rep_ > &b)
template<typename signature_ , typename traits_type_ , typename rep_ >
LITE_INLINE
array_signature_traits
< signature_ >::element_type 
lite::norm (const array< signature_, traits_type_, rep_ > &a)
template<typename signature_ , typename traits_type_ , typename rep_ >
LITE_INLINE const array_helper
< signature_, traits_type_ >
::temporary_array 
lite::normalized (const array< signature_, traits_type_, rep_ > &a)
template<typename signature_ , typename traits_type_ , typename rep_ >
LITE_INLINE
array_signature_traits
< signature_ >::element_type 
lite::abs (const array< signature_, traits_type_, rep_ > &a)
template<typename signature_ , typename traits_type_ , typename l_rep_ , typename r_rep_ >
LITE_INLINE array< signature_,
traits_type_, reference_rep
< b_iterator< typename array
< signature_, traits_type_,
l_rep_ >::const_iterator,
typename array< signature_,
traits_type_, r_rep_ >
::const_iterator, minimum
< typename
array_signature_traits
< signature_ >::element_type > > > > 
lite::min (const array< signature_, traits_type_, l_rep_ > &a, const array< signature_, traits_type_, r_rep_ > &b)
template<typename signature_ , typename traits_type_ , typename rep_ >
LITE_INLINE array< signature_,
traits_type_, reference_rep
< b_iterator< typename array
< signature_, traits_type_,
rep_ >::const_iterator,
typename array< signature_,
traits_type_, rep_ >
::const_iterator, minimum
< typename
array_signature_traits
< signature_ >::element_type > > > > 
lite::min (const array< signature_, traits_type_, rep_ > &a, const array< signature_, traits_type_, rep_ > &b)
template<typename signature_ , typename traits_type_ , typename l_rep_ , typename r_rep_ >
LITE_INLINE array< signature_,
traits_type_, reference_rep
< b_iterator< typename array
< signature_, traits_type_,
l_rep_ >::const_iterator,
typename array< signature_,
traits_type_, r_rep_ >
::const_iterator, maximum
< typename
array_signature_traits
< signature_ >::element_type > > > > 
lite::max (const array< signature_, traits_type_, l_rep_ > &a, const array< signature_, traits_type_, r_rep_ > &b)
template<typename signature_ , typename traits_type_ , typename rep_ >
LITE_INLINE array< signature_,
traits_type_, reference_rep
< b_iterator< typename array
< signature_, traits_type_,
rep_ >::const_iterator,
typename array< signature_,
traits_type_, rep_ >
::const_iterator, maximum
< typename
array_signature_traits
< signature_ >::element_type > > > > 
lite::max (const array< signature_, traits_type_, rep_ > &a, const array< signature_, traits_type_, rep_ > &b)
template<typename value_type_ , int n_, typename traits_type_ , typename l_rep_ , typename r_rep_ >
LITE_INLINE detail::enable_if
<(array_signature_traits
< value_type_ >::dimensions==0),
value_type_ >::type 
lite::operator* (const array< value_type_[n_], traits_type_, l_rep_ > &a, const array< value_type_[n_], traits_type_, r_rep_ > &b)
template<typename value_type_ , int m_, int n_, typename traits_type_ , typename l_rep_ , typename r_rep_ >
LITE_INLINE detail::enable_if
< (array_signature_traits
< value_type_ >::dimensions==0),
const typename array_helper
< value_type_[m_],
traits_type_ >
::temporary_array >::type 
lite::operator* (const array< value_type_[m_][n_], traits_type_, l_rep_ > &a, const array< value_type_[n_], traits_type_, r_rep_ > &b)
template<typename value_type_ , int m_, int n_, typename traits_type_ , typename l_rep_ , typename r_rep_ >
LITE_INLINE detail::enable_if
< (array_signature_traits
< value_type_ >::dimensions==0),
const typename array_helper
< value_type_[n_],
traits_type_ >
::temporary_array >::type 
lite::operator* (const array< value_type_[m_], traits_type_, l_rep_ > &a, const array< value_type_[m_][n_], traits_type_, r_rep_ > &b)
template<typename value_type_ , int m_, int n_, int p_, typename traits_type_ , typename l_rep_ , typename r_rep_ >
LITE_INLINE detail::enable_if
< (array_signature_traits
< value_type_ >::dimensions==0),
const typename array_helper
< value_type_[m_][p_],
traits_type_ >
::temporary_array >::type 
lite::operator* (const array< value_type_[m_][n_], traits_type_, l_rep_ > &a, const array< value_type_[n_][p_], traits_type_, r_rep_ > &b)
template<typename value_type_ , typename traits_type_ , typename l_rep_ , typename r_rep_ >
LITE_INLINE detail::enable_if
<(array_signature_traits
< value_type_ >::dimensions==0),
value_type_ >::type 
lite::operator% (const array< value_type_[2], traits_type_, l_rep_ > &a, const array< value_type_[2], traits_type_, r_rep_ > &b)
template<typename value_type_ , typename traits_type_ , typename l_rep_ , typename r_rep_ >
LITE_INLINE detail::enable_if
<(array_signature_traits
< value_type_ >::dimensions==0),
const typename array_helper
< value_type_[3], traits_type_ >
::temporary_array >::type 
lite::operator% (const array< value_type_[3], traits_type_, l_rep_ > &a, const array< value_type_[3], traits_type_, r_rep_ > &b)
template<typename value_type_ , typename traits_type_ , typename rep_ >
LITE_INLINE detail::enable_if
<(array_signature_traits
< value_type_ >::dimensions==0),
value_type_ >::type 
lite::det (const array< value_type_[2][2], traits_type_, rep_ > &a)
template<typename value_type_ , typename traits_type_ , typename rep_ >
LITE_INLINE detail::enable_if
<(array_signature_traits
< value_type_ >::dimensions==0),
value_type_ >::type 
lite::det (const array< value_type_[3][3], traits_type_, rep_ > &a)
template<typename value_type_ , int n_, typename traits_type_ , typename rep_ >
LITE_INLINE detail::enable_if
<(array_signature_traits
< value_type_ >::dimensions==0),
value_type_ >::type 
lite::det (const array< value_type_[n_][n_], traits_type_, rep_ > &a)
template<typename value_type_ , typename traits_type_ , typename rep_ >
LITE_INLINE detail::enable_if
<(array_signature_traits
< value_type_ >::dimensions==0),
const typename array_helper
< value_type_[2][2],
traits_type_ >
::temporary_array >::type 
lite::inverse (const array< value_type_[2][2], traits_type_, rep_ > &a)
template<typename value_type_ , typename traits_type_ , typename rep_ >
LITE_INLINE detail::enable_if
<(array_signature_traits
< value_type_ >::dimensions==0),
const typename array_helper
< value_type_[3][3],
traits_type_ >
::temporary_array >::type 
lite::inverse (const array< value_type_[3][3], traits_type_, rep_ > &a)
template<typename value_type_ , int n_, typename traits_type_ , typename rep_ >
LITE_INLINE detail::enable_if
<(array_signature_traits
< value_type_ >::dimensions==0),
const typename array_helper
< value_type_[n_][n_],
traits_type_ >
::temporary_array >::type 
lite::inverse (const array< value_type_[n_][n_], traits_type_, rep_ > &a)
template<typename value_type_ , typename traits_type_ , typename rep_ >
LITE_INLINE detail::enable_if
<(array_signature_traits
< value_type_ >::dimensions==0),
const typename array_helper
< value_type_[2][2],
traits_type_ >
::temporary_array >::type 
lite::rotation_n (const array< value_type_[2], traits_type_, rep_ > &, const typename array_signature_traits< value_type_ >::element_type &angle)
template<typename value_type_ , typename traits_type_ , typename rep_ >
LITE_INLINE detail::enable_if
<(array_signature_traits
< value_type_ >::dimensions==0),
const typename array_helper
< value_type_[2][2],
traits_type_ >
::temporary_array >::type 
lite::rotation (const array< value_type_[2], traits_type_, rep_ > &dummy, const typename array_signature_traits< value_type_ >::element_type &angle)
template<typename value_type_ , typename traits_type_ , typename rep_ >
LITE_INLINE detail::enable_if
<(array_signature_traits
< value_type_ >::dimensions==0),
const typename array_helper
< value_type_[3][3],
traits_type_ >
::temporary_array >::type 
lite::rotation_n (const array< value_type_[3], traits_type_, rep_ > &axis, const typename array_signature_traits< value_type_ >::element_type &angle)
template<typename value_type_ , typename traits_type_ , typename rep_ >
LITE_INLINE detail::enable_if
<(array_signature_traits
< value_type_ >::dimensions==0),
const typename array_helper
< value_type_[3][3],
traits_type_ >
::temporary_array >::type 
lite::rotation (const array< value_type_[3], traits_type_, rep_ > &axis, const typename array_signature_traits< value_type_ >::element_type &angle)
template<typename value_type_ , int n_, typename traits_type_ , typename rep_ >
LITE_INLINE detail::enable_if
<(array_signature_traits
< value_type_ >::dimensions==0),
const typename array_helper
< value_type_[n_][n_],
traits_type_ >
::temporary_array >::type 
lite::scale (const array< value_type_[n_], traits_type_, rep_ > &factors)
template<typename value_type_ , int n0_..., int nN_>
const array<...> lite::from (value_type_(&a)[n0_]...[nN_])
 constructs a reference array to a C array.
template<typename iterator_type_ >
const array<...> lite::from (iterator_type_ it, int n0..., int nN)
 Constructs a reference array from a pointer (or any other appropriate random access iterator) with the specified dimension sizes.
template<typename iterator_type_ , typename type0_... , typename typeN_ >
const array<...> lite::from (iterator_type_ it, const pack< type0_..., typeN_ > &size)
 Constructs a reference array from a pointer (or any other appropriate random access iterator) with the specified size.
template<typename signature_ , typename traits_type_ , typename rep_ >
LITE_INLINE array< signature_,
traits_type_, rep_ > & 
lite::from (array< signature_, traits_type_, rep_ > &a)
template<typename signature_ , typename traits_type_ , typename rep_ >
LITE_INLINE const array
< signature_, traits_type_,
rep_ > & 
lite::from (const array< signature_, traits_type_, rep_ > &a)
template<typename dst_array_type_ , typename src_signature_ , typename src_traits_type_ , typename src_rep_ >
const array<...> lite::array_cast (const array< src_signature_, src_traits_type_, src_rep_ > &ar)
 Casts the array ar to a compatible array type that has the same signature and traits type as dst_array_type_.
template<typename char_type_ , typename char_traits_type_ , typename value_type_ , typename traits_type_ , typename rep_ >
void lite::print (std::basic_ostream< char_type_, char_traits_type_ > &os, const array< value_type_, traits_type_, rep_ > &ar, int level)
template<typename char_type_ , typename char_traits_type_ , typename value_type_ , int n0_, typename traits_type_ , typename rep_ >
void lite::print (std::basic_ostream< char_type_, char_traits_type_ > &os, const array< value_type_[n0_], traits_type_, rep_ > &ar, int)
template<typename char_type_ , typename char_traits_type_ , typename tail_type_ , int n0_, int n1_, typename traits_type_ , typename rep_ >
void lite::print (std::basic_ostream< char_type_, char_traits_type_ > &os, const array< tail_type_[n0_][n1_], traits_type_, rep_ > &ar, int level=0)
template<typename char_type_ , typename char_traits_type_ , typename signature_ , typename traits_type_ , typename rep_ >
std::basic_ostream< char_type_,
char_traits_type_ > & 
lite::operator<< (std::basic_ostream< char_type_, char_traits_type_ > &os, const array< signature_, traits_type_, rep_ > &ar)
 Prints the array ar to the output stream os.
template<typename char_type_ , typename char_traits_type_ , typename value_type_ , typename traits_type_ , typename rep_ >
void lite::scan (std::basic_istream< char_type_, char_traits_type_ > &is, const array< value_type_, traits_type_, rep_ > &ar, bool fancy)
template<typename char_type_ , typename char_traits_type_ , typename value_type_ , typename traits_type_ , typename rep_ >
void lite::scan (std::basic_istream< char_type_, char_traits_type_ > &is, array< value_type_, traits_type_, rep_ > &ar, bool fancy)
template<typename char_type_ , typename char_traits_type_ , typename value_type_ , int n0_, typename traits_type_ , typename rep_ >
void lite::scan (std::basic_istream< char_type_, char_traits_type_ > &is, const array< value_type_[n0_], traits_type_, rep_ > &ar, bool fancy)
template<typename char_type_ , typename char_traits_type_ , typename value_type_ , int n0_, typename traits_type_ , typename rep_ >
void lite::scan (std::basic_istream< char_type_, char_traits_type_ > &is, array< value_type_[n0_], traits_type_, rep_ > &ar, bool fancy)
template<typename char_type_ , typename char_traits_type_ , typename tail_type_ , int n0_, int n1_, typename traits_type_ , typename rep_ >
void lite::scan (std::basic_istream< char_type_, char_traits_type_ > &is, const array< tail_type_[n0_][n1_], traits_type_, rep_ > &ar, bool fancy)
template<typename char_type_ , typename char_traits_type_ , typename tail_type_ , int n0_, int n1_, typename traits_type_ , typename rep_ >
void lite::scan (std::basic_istream< char_type_, char_traits_type_ > &is, array< tail_type_[n0_][n1_], traits_type_, rep_ > &ar, bool fancy)
template<typename char_type_ , typename char_traits_type_ , typename signature_ , typename traits_type_ , typename rep_ >
std::basic_istream< char_type_,
char_traits_type_ > & 
lite::operator>> (std::basic_istream< char_type_, char_traits_type_ > &is, const array< signature_, traits_type_, rep_ > &ar)
 Scans (reads) the array ar from the input stream is.
template<typename char_type_ , typename char_traits_type_ , typename signature_ , typename traits_type_ , typename rep_ >
std::basic_istream< char_type_,
char_traits_type_ > & 
lite::operator>> (std::basic_istream< char_type_, char_traits_type_ > &is, array< signature_, traits_type_, rep_ > &ar)
 Scans (reads) the array ar from the input stream is.
template<typename signature_ , typename traits_type_ , typename rep_ >
LITE_INLINE void std::swap (const lite::array< signature_, traits_type_, rep_ > &a, const lite::array< signature_, traits_type_, rep_ > &b)
template<typename signature_ , typename traits_type_ , typename rep_ >
LITE_INLINE void std::swap (lite::array< signature_, traits_type_, rep_ > &a, lite::array< signature_, traits_type_, rep_ > &b)
template<typename signature_ , typename traits_type_ , typename l_rep_ , typename r_rep_ >
LITE_INLINE void std::swap (const lite::array< signature_, traits_type_, l_rep_ > &a, const lite::array< signature_, traits_type_, r_rep_ > &b)
template<typename signature_ , typename traits_type_ , typename l_rep_ , typename r_rep_ >
LITE_INLINE void std::swap (const lite::array< signature_, traits_type_, l_rep_ > &a, lite::array< signature_, traits_type_, r_rep_ > &b)
template<typename signature_ , typename traits_type_ , typename l_rep_ , typename r_rep_ >
LITE_INLINE void std::swap (lite::array< signature_, traits_type_, l_rep_ > &a, const lite::array< signature_, traits_type_, r_rep_ > &b)
template<typename signature_ , typename traits_type_ , typename l_rep_ , typename r_rep_ >
LITE_INLINE void std::swap (lite::array< signature_, traits_type_, l_rep_ > &a, lite::array< signature_, traits_type_, r_rep_ > &b)

Detailed Description

 All Classes Namespaces Files Functions Variables Typedefs Defines

Generated on Fri Nov 6 02:03:20 2009 for Lite by  doxygen 1.6.0