00001 /**** 00002 ***** Copyright 2010 Intel Corporation All Rights Reserved. 00003 ***** 00004 ***** The source code, information and material contained herein are owned by Intel Corporation or its suppliers ***** 00005 ***** or licensors, and title to such Material remains with Intel Corporation or its suppliers or licensors. ***** 00006 ***** The Material contains proprietary information of Intel or its suppliers and licensors. The Material is ***** 00007 ***** protected by worldwide copyright laws and treaty provisions. No part of the Material may be used, copied, ***** 00008 ***** reproduced, modified, published, uploaded, posted, transmitted, distributed or disclosed in any way without ***** 00009 ***** Intel's prior express written permission. 00010 ***** 00011 ***** No license under any patent, copyright or other intellectual property rights in the material is granted to ***** 00012 ***** or conferred upon you, either expressly, by implication, inducement, estoppel or otherwise. Any license ***** 00013 ***** under such intellectual property rights must be express and approved by Intel in writing. 00014 ****/ 00015 00016 /**** Copyright Ends ****/ 00017 00018 #ifndef ARBB_CPP_MAP_HPP 00019 #define ARBB_CPP_MAP_HPP 00020 00021 #include "namespace.hpp" 00022 00023 #include "array.hpp" 00024 #include "array_funcs.hpp" 00025 #include "detail/function.hpp" 00026 00027 namespace ARBB_CPP_NS { 00028 00031 00032 #ifdef ARBB_CPP_DOXYGEN_ONLY 00033 00043 template<typename FunctionType> 00044 unspecified_type<FunctionType> map(FunctionType function); 00045 00046 #endif 00047 00053 template <typename T, std::size_t D> 00054 typename detail::disable_if<detail::is_container<T>::value, T>::type 00055 neighbor(const T& source, const array<isize, D>& offset); 00056 00062 template <typename T> 00063 typename detail::disable_if<detail::is_container<T>::value, T>::type 00064 neighbor(const T& source, const isize& col); 00065 00071 template <typename T> 00072 typename detail::disable_if<detail::is_container<T>::value, T>::type 00073 neighbor(const T& source, const isize& col, const isize& row); 00074 00080 template <typename T> 00081 typename detail::disable_if<detail::is_container<T>::value, T>::type 00082 neighbor(const T& source, const isize& col, const isize& row, const isize& page); 00083 00088 void position(usize& col); 00089 00094 void position(usize& col, usize& row); 00095 00100 void position(usize& col, usize& row, usize& page); 00101 00106 template <std::size_t D> 00107 void position(array<usize, D>& pos); 00108 00113 template <std::size_t D> 00114 array<usize, D> position(); 00115 00117 00118 } // namespace ARBB_CPP_NS 00119 00121 00122 #include "detail/map_impl.hpp" 00123 00124 #define ARBB_CPP_MAP_CLOSURE_N 1 00125 #include "detail/map_closure_template.hpp" 00126 #define ARBB_CPP_MAP_CLOSURE_N 2 00127 #include "detail/map_closure_template.hpp" 00128 #define ARBB_CPP_MAP_CLOSURE_N 3 00129 #include "detail/map_closure_template.hpp" 00130 #define ARBB_CPP_MAP_CLOSURE_N 4 00131 #include "detail/map_closure_template.hpp" 00132 #define ARBB_CPP_MAP_CLOSURE_N 5 00133 #include "detail/map_closure_template.hpp" 00134 #define ARBB_CPP_MAP_CLOSURE_N 6 00135 #include "detail/map_closure_template.hpp" 00136 #define ARBB_CPP_MAP_CLOSURE_N 7 00137 #include "detail/map_closure_template.hpp" 00138 #define ARBB_CPP_MAP_CLOSURE_N 8 00139 #include "detail/map_closure_template.hpp" 00140 #define ARBB_CPP_MAP_CLOSURE_N 9 00141 #include "detail/map_closure_template.hpp" 00142 #define ARBB_CPP_MAP_CLOSURE_N 10 00143 #include "detail/map_closure_template.hpp" 00144 #define ARBB_CPP_MAP_CLOSURE_N 11 00145 #include "detail/map_closure_template.hpp" 00146 #define ARBB_CPP_MAP_CLOSURE_N 12 00147 #include "detail/map_closure_template.hpp" 00148 #define ARBB_CPP_MAP_CLOSURE_N 13 00149 #include "detail/map_closure_template.hpp" 00150 #define ARBB_CPP_MAP_CLOSURE_N 14 00151 #include "detail/map_closure_template.hpp" 00152 #define ARBB_CPP_MAP_CLOSURE_N 15 00153 #include "detail/map_closure_template.hpp" 00154 #define ARBB_CPP_MAP_CLOSURE_N 16 00155 #include "detail/map_closure_template.hpp" 00156 #define ARBB_CPP_MAP_CLOSURE_N 17 00157 #include "detail/map_closure_template.hpp" 00158 #define ARBB_CPP_MAP_CLOSURE_N 18 00159 #include "detail/map_closure_template.hpp" 00160 #define ARBB_CPP_MAP_CLOSURE_N 19 00161 #include "detail/map_closure_template.hpp" 00162 #define ARBB_CPP_MAP_CLOSURE_N 20 00163 #include "detail/map_closure_template.hpp" 00164 #define ARBB_CPP_MAP_CLOSURE_N 21 00165 #include "detail/map_closure_template.hpp" 00166 #define ARBB_CPP_MAP_CLOSURE_N 22 00167 #include "detail/map_closure_template.hpp" 00168 #define ARBB_CPP_MAP_CLOSURE_N 23 00169 #include "detail/map_closure_template.hpp" 00170 #define ARBB_CPP_MAP_CLOSURE_N 24 00171 #include "detail/map_closure_template.hpp" 00172 #define ARBB_CPP_MAP_CLOSURE_N 25 00173 #include "detail/map_closure_template.hpp" 00174 #define ARBB_CPP_MAP_CLOSURE_N 26 00175 #include "detail/map_closure_template.hpp" 00176 #define ARBB_CPP_MAP_CLOSURE_N 27 00177 #include "detail/map_closure_template.hpp" 00178 #define ARBB_CPP_MAP_CLOSURE_N 28 00179 #include "detail/map_closure_template.hpp" 00180 #define ARBB_CPP_MAP_CLOSURE_N 29 00181 #include "detail/map_closure_template.hpp" 00182 #define ARBB_CPP_MAP_CLOSURE_N 30 00183 #include "detail/map_closure_template.hpp" 00184 #define ARBB_CPP_MAP_CLOSURE_N 31 00185 #include "detail/map_closure_template.hpp" 00186 #define ARBB_CPP_MAP_CLOSURE_N 32 00187 #include "detail/map_closure_template.hpp" 00188 #define ARBB_CPP_MAP_CLOSURE_N 33 00189 #include "detail/map_closure_template.hpp" 00190 #define ARBB_CPP_MAP_CLOSURE_N 34 00191 #include "detail/map_closure_template.hpp" 00192 #define ARBB_CPP_MAP_CLOSURE_N 35 00193 #include "detail/map_closure_template.hpp" 00194 00196 00197 #endif // ARBB_CPP_MAP_HPP
Copyright © 2010, Intel Corporation. All rights reserved.