From 43f02f94050c0217721d3f8c33bb3e51582a7026 Mon Sep 17 00:00:00 2001 From: Edward Diener Date: Wed, 10 Jun 2020 11:05:43 -0400 Subject: [PATCH] Simplified multiplication --- .../arithmetic/detail/Is_1_number.hpp | 27 + .../detail/limits/Is_1_number_256.hpp | 284 +++++++++ .../detail/limits/Is_1_number_512.hpp | 540 ++++++++++++++++++ include/boost/preprocessor/arithmetic/mul.hpp | 15 +- 4 files changed, 855 insertions(+), 11 deletions(-) create mode 100644 include/boost/preprocessor/arithmetic/detail/Is_1_number.hpp create mode 100644 include/boost/preprocessor/arithmetic/detail/limits/Is_1_number_256.hpp create mode 100644 include/boost/preprocessor/arithmetic/detail/limits/Is_1_number_512.hpp diff --git a/include/boost/preprocessor/arithmetic/detail/Is_1_number.hpp b/include/boost/preprocessor/arithmetic/detail/Is_1_number.hpp new file mode 100644 index 0000000..65c79ff --- /dev/null +++ b/include/boost/preprocessor/arithmetic/detail/Is_1_number.hpp @@ -0,0 +1,27 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2020. * +# * 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) * +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_ARITHMETIC_DETAIL_IS_1_NUMBER_HPP +# define BOOST_PREPROCESSOR_ARITHMETIC_DETAIL_IS_1_NUMBER_HPP +# +# /* BOOST_PP_DETAIL_IS_1_NUMBER */ +# +# include +# +# if BOOST_PP_LIMIT_MAG == 256 +# include +# elif BOOST_PP_LIMIT_MAG == 512 +# include +# else +# error Incorrect value for the BOOST_PP_LIMIT_MAG limit +# endif +# +# endif diff --git a/include/boost/preprocessor/arithmetic/detail/limits/Is_1_number_256.hpp b/include/boost/preprocessor/arithmetic/detail/limits/Is_1_number_256.hpp new file mode 100644 index 0000000..41d0c21 --- /dev/null +++ b/include/boost/preprocessor/arithmetic/detail/limits/Is_1_number_256.hpp @@ -0,0 +1,284 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2020. * +# * 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) * +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_ARITHMETIC_DETAIL_IS_1_NUMBER_256_HPP +# define BOOST_PREPROCESSOR_ARITHMETIC_DETAIL_IS_1_NUMBER_256_HPP +# +# include +# +# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() +# define BOOST_PP_DETAIL_IS_1_NUMBER(x) BOOST_PP_DETAIL_IS_1_NUMBER_I(x) +# else +# define BOOST_PP_DETAIL_IS_1_NUMBER(x) BOOST_PP_DETAIL_IS_1_NUMBER_OO((x)) +# define BOOST_PP_DETAIL_IS_1_NUMBER_OO(par) BOOST_PP_DETAIL_IS_1_NUMBER_I ## par +# endif +# +# define BOOST_PP_DETAIL_IS_1_NUMBER_I(x) BOOST_PP_DETAIL_IS_1_NUMBER_ ## x +# +# define BOOST_PP_DETAIL_IS_1_NUMBER_0 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_1 1 +# define BOOST_PP_DETAIL_IS_1_NUMBER_2 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_3 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_4 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_5 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_6 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_7 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_8 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_9 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_10 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_11 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_12 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_13 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_14 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_15 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_16 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_17 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_18 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_19 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_20 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_21 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_22 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_23 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_24 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_25 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_26 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_27 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_28 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_29 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_30 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_31 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_32 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_33 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_34 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_35 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_36 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_37 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_38 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_39 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_40 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_41 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_42 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_43 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_44 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_45 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_46 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_47 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_48 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_49 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_50 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_51 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_52 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_53 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_54 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_55 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_56 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_57 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_58 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_59 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_60 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_61 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_62 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_63 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_64 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_65 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_66 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_67 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_68 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_69 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_70 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_71 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_72 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_73 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_74 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_75 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_76 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_77 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_78 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_79 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_80 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_81 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_82 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_83 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_84 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_85 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_86 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_87 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_88 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_89 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_90 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_91 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_92 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_93 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_94 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_95 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_96 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_97 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_98 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_99 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_100 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_101 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_102 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_103 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_104 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_105 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_106 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_107 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_108 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_109 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_110 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_111 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_112 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_113 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_114 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_115 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_116 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_117 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_118 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_119 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_120 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_121 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_122 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_123 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_124 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_125 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_126 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_127 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_128 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_129 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_130 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_131 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_132 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_133 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_134 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_135 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_136 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_137 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_138 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_139 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_140 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_141 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_142 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_143 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_144 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_145 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_146 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_147 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_148 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_149 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_150 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_151 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_152 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_153 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_154 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_155 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_156 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_157 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_158 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_159 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_160 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_161 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_162 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_163 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_164 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_165 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_166 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_167 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_168 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_169 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_170 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_171 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_172 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_173 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_174 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_175 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_176 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_177 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_178 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_179 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_180 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_181 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_182 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_183 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_184 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_185 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_186 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_187 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_188 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_189 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_190 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_191 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_192 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_193 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_194 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_195 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_196 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_197 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_198 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_199 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_200 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_201 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_202 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_203 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_204 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_205 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_206 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_207 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_208 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_209 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_210 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_211 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_212 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_213 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_214 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_215 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_216 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_217 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_218 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_219 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_220 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_221 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_222 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_223 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_224 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_225 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_226 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_227 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_228 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_229 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_230 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_231 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_232 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_233 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_234 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_235 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_236 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_237 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_238 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_239 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_240 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_241 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_242 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_243 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_244 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_245 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_246 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_247 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_248 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_249 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_250 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_251 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_252 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_253 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_254 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_255 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_256 0 +# +# endif diff --git a/include/boost/preprocessor/arithmetic/detail/limits/Is_1_number_512.hpp b/include/boost/preprocessor/arithmetic/detail/limits/Is_1_number_512.hpp new file mode 100644 index 0000000..4962368 --- /dev/null +++ b/include/boost/preprocessor/arithmetic/detail/limits/Is_1_number_512.hpp @@ -0,0 +1,540 @@ +# /* ************************************************************************** +# * * +# * (C) Copyright Edward Diener 2020. * +# * 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) * +# * * +# ************************************************************************** */ +# +# /* See http://www.boost.org for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_ARITHMETIC_DETAIL_IS_1_NUMBER_512_HPP +# define BOOST_PREPROCESSOR_ARITHMETIC_DETAIL_IS_1_NUMBER_512_HPP +# +# include +# +# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() +# define BOOST_PP_DETAIL_IS_1_NUMBER(x) BOOST_PP_DETAIL_IS_1_NUMBER_I(x) +# else +# define BOOST_PP_DETAIL_IS_1_NUMBER(x) BOOST_PP_DETAIL_IS_1_NUMBER_OO((x)) +# define BOOST_PP_DETAIL_IS_1_NUMBER_OO(par) BOOST_PP_DETAIL_IS_1_NUMBER_I ## par +# endif +# +# define BOOST_PP_DETAIL_IS_1_NUMBER_I(x) BOOST_PP_DETAIL_IS_1_NUMBER_ ## x +# +# define BOOST_PP_DETAIL_IS_1_NUMBER_0 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_1 1 +# define BOOST_PP_DETAIL_IS_1_NUMBER_2 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_3 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_4 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_5 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_6 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_7 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_8 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_9 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_10 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_11 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_12 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_13 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_14 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_15 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_16 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_17 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_18 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_19 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_20 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_21 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_22 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_23 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_24 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_25 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_26 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_27 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_28 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_29 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_30 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_31 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_32 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_33 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_34 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_35 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_36 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_37 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_38 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_39 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_40 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_41 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_42 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_43 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_44 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_45 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_46 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_47 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_48 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_49 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_50 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_51 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_52 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_53 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_54 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_55 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_56 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_57 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_58 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_59 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_60 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_61 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_62 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_63 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_64 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_65 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_66 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_67 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_68 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_69 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_70 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_71 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_72 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_73 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_74 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_75 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_76 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_77 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_78 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_79 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_80 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_81 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_82 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_83 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_84 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_85 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_86 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_87 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_88 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_89 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_90 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_91 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_92 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_93 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_94 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_95 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_96 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_97 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_98 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_99 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_100 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_101 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_102 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_103 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_104 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_105 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_106 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_107 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_108 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_109 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_110 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_111 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_112 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_113 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_114 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_115 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_116 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_117 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_118 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_119 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_120 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_121 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_122 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_123 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_124 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_125 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_126 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_127 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_128 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_129 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_130 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_131 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_132 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_133 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_134 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_135 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_136 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_137 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_138 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_139 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_140 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_141 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_142 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_143 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_144 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_145 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_146 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_147 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_148 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_149 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_150 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_151 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_152 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_153 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_154 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_155 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_156 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_157 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_158 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_159 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_160 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_161 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_162 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_163 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_164 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_165 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_166 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_167 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_168 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_169 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_170 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_171 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_172 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_173 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_174 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_175 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_176 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_177 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_178 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_179 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_180 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_181 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_182 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_183 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_184 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_185 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_186 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_187 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_188 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_189 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_190 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_191 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_192 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_193 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_194 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_195 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_196 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_197 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_198 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_199 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_200 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_201 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_202 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_203 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_204 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_205 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_206 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_207 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_208 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_209 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_210 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_211 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_212 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_213 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_214 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_215 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_216 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_217 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_218 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_219 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_220 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_221 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_222 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_223 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_224 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_225 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_226 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_227 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_228 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_229 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_230 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_231 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_232 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_233 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_234 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_235 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_236 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_237 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_238 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_239 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_240 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_241 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_242 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_243 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_244 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_245 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_246 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_247 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_248 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_249 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_250 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_251 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_252 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_253 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_254 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_255 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_256 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_257 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_258 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_259 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_260 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_261 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_262 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_263 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_264 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_265 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_266 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_267 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_268 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_269 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_270 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_271 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_272 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_273 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_274 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_275 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_276 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_277 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_278 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_279 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_280 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_281 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_282 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_283 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_284 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_285 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_286 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_287 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_288 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_289 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_290 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_291 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_292 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_293 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_294 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_295 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_296 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_297 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_298 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_299 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_300 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_301 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_302 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_303 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_304 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_305 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_306 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_307 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_308 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_309 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_310 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_311 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_312 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_313 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_314 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_315 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_316 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_317 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_318 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_319 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_320 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_321 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_322 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_323 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_324 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_325 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_326 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_327 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_328 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_329 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_330 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_331 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_332 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_333 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_334 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_335 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_336 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_337 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_338 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_339 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_340 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_341 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_342 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_343 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_344 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_345 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_346 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_347 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_348 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_349 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_350 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_351 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_352 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_353 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_354 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_355 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_356 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_357 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_358 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_359 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_360 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_361 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_362 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_363 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_364 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_365 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_366 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_367 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_368 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_369 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_370 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_371 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_372 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_373 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_374 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_375 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_376 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_377 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_378 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_379 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_380 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_381 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_382 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_383 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_384 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_385 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_386 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_387 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_388 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_389 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_390 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_391 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_392 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_393 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_394 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_395 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_396 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_397 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_398 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_399 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_400 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_401 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_402 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_403 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_404 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_405 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_406 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_407 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_408 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_409 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_410 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_411 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_412 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_413 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_414 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_415 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_416 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_417 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_418 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_419 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_420 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_421 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_422 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_423 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_424 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_425 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_426 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_427 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_428 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_429 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_430 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_431 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_432 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_433 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_434 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_435 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_436 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_437 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_438 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_439 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_440 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_441 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_442 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_443 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_444 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_445 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_446 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_447 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_448 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_449 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_450 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_451 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_452 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_453 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_454 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_455 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_456 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_457 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_458 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_459 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_460 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_461 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_462 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_463 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_464 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_465 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_466 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_467 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_468 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_469 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_470 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_471 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_472 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_473 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_474 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_475 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_476 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_477 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_478 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_479 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_480 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_481 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_482 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_483 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_484 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_485 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_486 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_487 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_488 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_489 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_490 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_491 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_492 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_493 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_494 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_495 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_496 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_497 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_498 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_499 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_500 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_501 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_502 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_503 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_504 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_505 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_506 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_507 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_508 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_509 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_510 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_511 0 +# define BOOST_PP_DETAIL_IS_1_NUMBER_512 0 +# +# endif diff --git a/include/boost/preprocessor/arithmetic/mul.hpp b/include/boost/preprocessor/arithmetic/mul.hpp index 5cb4b07..38299a9 100644 --- a/include/boost/preprocessor/arithmetic/mul.hpp +++ b/include/boost/preprocessor/arithmetic/mul.hpp @@ -21,7 +21,6 @@ # include # include # include -# include # include # include # include @@ -32,12 +31,9 @@ # # /* BOOST_PP_MUL */ # -# define BOOST_PP_MUL(x, y) \ - BOOST_PP_IIF(BOOST_PP_BITOR(BOOST_PP_DETAIL_IS_MINIMUM_NUMBER(x),BOOST_PP_DETAIL_IS_MINIMUM_NUMBER(y)),BOOST_PP_IDENTITY_N(0,2),BOOST_PP_MUL_CHECK_1X)(x,y) +# define BOOST_PP_MUL(x, y) BOOST_PP_IIF(BOOST_PP_DETAIL_IS_MINIMUM_NUMBER(x),BOOST_PP_IDENTITY_N(x,2),BOOST_PP_MUL_CHECK_1X)(x,y) # -# define BOOST_PP_MUL_CHECK_1X(x, y) BOOST_PP_IIF(BOOST_PP_DETAIL_IS_1_NUMBER(x),BOOST_PP_IDENTITY_N(y,2),BOOST_PP_MUL_CHECK_1Y)(x,y) -# -# define BOOST_PP_MUL_CHECK_1Y(x, y) BOOST_PP_IIF(BOOST_PP_DETAIL_IS_1_NUMBER(y),BOOST_PP_IDENTITY_N(x,2),BOOST_PP_MUL_DO)(x,y) +# define BOOST_PP_MUL_CHECK_1X(x, y) BOOST_PP_IIF(BOOST_PP_DETAIL_IS_1_NUMBER(x),BOOST_PP_IDENTITY_N(y,2),BOOST_PP_MUL_DO)(x,y) # # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() # define BOOST_PP_MUL_DO(x, y) BOOST_PP_TUPLE_ELEM(3, 0, BOOST_PP_WHILE(BOOST_PP_MUL_P, BOOST_PP_MUL_O, (0, x, y))) @@ -59,12 +55,9 @@ # # /* BOOST_PP_MUL_D */ # -# define BOOST_PP_MUL_D(d, x, y) \ - BOOST_PP_IIF(BOOST_PP_BITOR(BOOST_PP_DETAIL_IS_MINIMUM_NUMBER(x),BOOST_PP_DETAIL_IS_MINIMUM_NUMBER(y)),BOOST_PP_IDENTITY_N(0,3),BOOST_PP_MUL_CHECK_1X_D)(d,x,y) +# define BOOST_PP_MUL_D(d, x, y) BOOST_PP_IIF(BOOST_PP_DETAIL_IS_MINIMUM_NUMBER(x),BOOST_PP_IDENTITY_N(x,3),BOOST_PP_MUL_CHECK_1X_D)(d,x,y) # -# define BOOST_PP_MUL_CHECK_1X_D(d, x, y) BOOST_PP_IIF(BOOST_PP_DETAIL_IS_1_NUMBER(x),BOOST_PP_IDENTITY_N(y,3),BOOST_PP_MUL_CHECK_1Y)(d,x,y) -# -# define BOOST_PP_MUL_CHECK_1Y_D(d, x, y) BOOST_PP_IIF(BOOST_PP_DETAIL_IS_1_NUMBER(y),BOOST_PP_IDENTITY_N(x,3),BOOST_PP_MUL_DO_D)(d,x,y) +# define BOOST_PP_MUL_CHECK_1X_D(d, x, y) BOOST_PP_IIF(BOOST_PP_DETAIL_IS_1_NUMBER(x),BOOST_PP_IDENTITY_N(y,3),BOOST_PP_MUL_DO_D)(d,x,y) # # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() # define BOOST_PP_MUL_DO_D(d, x, y) BOOST_PP_TUPLE_ELEM(3, 0, BOOST_PP_WHILE_ ## d(BOOST_PP_MUL_P, BOOST_PP_MUL_O, (0, x, y)))