00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef MLN_CORE_MACROS_HH
00027 # define MLN_CORE_MACROS_HH
00028
00032
00033
00034 # define mln_deduce(T, A1, A2) typename T::A1::A2
00035
00036
00037
00038
00041 # define mln_argument(T) typename T::argument
00042 # define mln_argument_(T) T::argument
00044
00045
00046
00047
00051 # define mln_bkd_eiter(T) typename T::bkd_eiter
00052 # define mln_bkd_eiter_(T) T::bkd_eiter
00054
00057 # define mln_bkd_niter(T) typename T::bkd_niter
00058 # define mln_bkd_niter_(T) T::bkd_niter
00060
00063 # define mln_bkd_piter(T) typename T::bkd_piter
00064 # define mln_bkd_piter_(T) T::bkd_piter
00066
00069 # define mln_bkd_qiter(T) typename T::bkd_qiter
00070 # define mln_bkd_qiter_(T) T::bkd_qiter
00072
00075 # define mln_bkd_viter(T) typename T::bkd_viter
00076 # define mln_bkd_viter_(T) T::bkd_viter
00078
00081 # define mln_box(T) typename mln::box<mln_psite(T)>
00082 # define mln_box_(T) mln::box<mln_psite(T)>
00084
00085
00086
00087
00090 # define mln_coord(T) typename T::coord
00091 # define mln_coord_(T) T::coord
00093
00094
00095
00096
00099 # define mln_delta(T) typename T::delta
00100 # define mln_delta_(T) T::delta
00102
00105 # define mln_dpoint(T) typename T::dpoint
00106 # define mln_dpoint_(T) T::dpoint
00108
00111 # define mln_dpsite(T) typename T::dpsite
00112 # define mln_dpsite_(T) T::dpsite
00114
00115
00116
00117
00120 # define mln_eiter(T) typename T::eiter
00121 # define mln_eiter_(T) T::eiter
00123
00126 # define mln_graph(T) typename T::graph_t
00127 # define mln_graph_(T) T::graph_t
00129
00132 # define mln_element(T) typename T::element
00133 # define mln_element_(T) T::element
00135
00138 # define mln_graph_element(T) typename T::graph_element
00139 # define mln_graph_element_(T) T::graph_element
00141
00144 # define mln_enc(T) typename T::enc
00145 # define mln_enc_(T) T::enc
00147
00150 # define mln_equiv(T) typename T::equiv
00151 # define mln_equiv_(T) T::equiv
00153
00154
00155
00156
00160 # define mln_fwd_eiter(T) typename T::fwd_eiter
00161 # define mln_fwd_eiter_(T) T::fwd_eiter
00163
00166 # define mln_fwd_niter(T) typename T::fwd_niter
00167 # define mln_fwd_niter_(T) T::fwd_niter
00169
00172 # define mln_fwd_piter(T) typename T::fwd_piter
00173 # define mln_fwd_piter_(T) T::fwd_piter
00175
00178 # define mln_fwd_qiter(T) typename T::fwd_qiter
00179 # define mln_fwd_qiter_(T) T::fwd_qiter
00181
00184 # define mln_fwd_viter(T) typename T::fwd_viter
00185 # define mln_fwd_viter_(T) T::fwd_viter
00187
00188
00189
00190
00193 # define mln_geom(T) typename T::geom
00194 # define mln_geom_(T) T::geom
00196
00199 # define mln_grid(T) typename T::grid
00200 # define mln_grid_(T) T::grid
00202
00203
00204
00205
00208 # define mln_i_element(T) typename T::i_element
00209 # define mln_i_element_(T) T::i_element
00211
00214 # define mln_image(T) typename T::image
00215 # define mln_image_(T) T::image
00217
00220 # define mln_invert(T) typename T::invert
00221 # define mln_invert_(T) T::invert
00223
00224
00225
00226
00229 # define mln_lvalue(T) typename T::lvalue
00230 # define mln_lvalue_(T) T::lvalue
00232
00233
00234
00235
00238 # define mln_mesh(T) typename T::mesh
00239 # define mln_mesh_(T) T::mesh
00241
00242
00243
00244
00247 # define mln_piter(T) typename T::piter
00248 # define mln_piter_(T) T::piter
00250
00254 # define mln_line_piter(T) typename T::line_piter
00255 # define mln_line_piter_(T) T::line_piter
00257
00260 # define mln_domain(T) typename T::domain_t
00261 # define mln_domain_(T) T::domain_t
00263
00266 # define mln_pset(T) typename T::pset
00267 # define mln_pset_(T) T::pset
00269
00272 # define mln_psite(T) typename T::psite
00273 # define mln_psite_(T) T::psite
00275
00278 # define mln_point(T) typename T::point
00279 # define mln_point_(T) T::point
00281
00282
00283
00284
00288 # define mln_qlf_value(T) typename mln::trait::qlf_value< T >::ret
00289 # define mln_qlf_value_(T) mln::trait::qlf_value< T >::ret
00291
00294 # define mln_qiter(T) typename T::fwd_qiter
00295 # define mln_qiter_(T) T::fwd_qiter
00297
00300 # define mln_q_result(T) typename T::q_result
00301 # define mln_q_result_(T) T::q_result
00303
00306 # define mln_q_subject(T) typename T::q_subject
00307 # define mln_q_subject_(T) T::q_subject
00309
00310
00311
00312
00315 # define mln_niter(T) typename T::fwd_niter
00316 # define mln_niter_(T) T::fwd_niter
00318
00319
00320
00321
00324 # define mln_r_element(T) typename T::r_element
00325 # define mln_r_element_(T) T::r_element
00327
00330 # define mln_regular(T) typename T::regular
00331 # define mln_regular_(T) T::regular
00333
00336 # define mln_result(T) typename T::result
00337 # define mln_result_(T) T::result
00339
00342 # define mln_rvalue(T) typename T::rvalue
00343 # define mln_rvalue_(T) T::rvalue
00345
00346
00347
00348
00351 # define mln_site(T) typename T::site
00352 # define mln_site_(T) T::site
00354
00355
00356
00357
00358
00359
00360
00361
00362
00363
00366 # define mln_target(T) typename T::target
00367 # define mln_target_(T) T::target
00369
00370
00371
00372
00373
00376 # define mln_unmorph(T) typename T::unmorph
00377 # define mln_unmorph_(T) T::unmorph
00379
00380
00381
00382
00383
00386 # define mln_value(T) typename T::value
00387 # define mln_value_(T) T::value
00389
00392 # define mln_vec(T) typename T::vec
00393 # define mln_vec_(T) T::vec
00395
00398 # define mln_vset(T) typename T::t_eligible_values_set
00399 # define mln_vset_(T) T::t_eligible_values_set
00401
00404 # define mln_viter(T) typename T::fwd_viter
00405 # define mln_viter_(T) T::fwd_viter
00407
00408
00409
00410
00413 # define mln_weight(T) typename T::weight
00414 # define mln_weight_(T) T::weight
00416
00419 # define mln_window(T) typename T::window
00420 # define mln_window_(T) T::window
00422
00423
00424
00425
00426
00427
00428 # define mln_fwd_pixter(I) typename mln::trait::fwd_pixter< I >::ret
00429 # define mln_fwd_pixter_(I) mln::trait::fwd_pixter< I >::ret
00430
00431 # define mln_bkd_pixter(I) typename mln::trait::bkd_pixter< I >::ret
00432 # define mln_bkd_pixter_(I) mln::trait::bkd_pixter< I >::ret
00433
00434 # define mln_pixter(I) mln_fwd_pixter(I)
00435 # define mln_pixter_(I) mln_fwd_pixter_(I)
00436
00437
00438 # define mln_fwd_qixter(I, W) typename mln::trait::fwd_qixter< I, W >::ret
00439 # define mln_fwd_qixter_(I, W) mln::trait::fwd_qixter< I, W >::ret
00440
00441 # define mln_bkd_qixter(I, W) typename mln::trait::bkd_qixter< I, W >::ret
00442 # define mln_bkd_qixter_(I, W) mln::trait::bkd_qixter< I, W >::ret
00443
00444 # define mln_qixter(I, W) mln_fwd_qixter(I, W)
00445 # define mln_qixter_(I, W) mln_fwd_qixter_(I, W)
00446
00447
00448 # define mln_fwd_nixter(I, N) typename mln::trait::fwd_nixter< I, N >::ret
00449 # define mln_fwd_nixter_(I, N) mln::trait::fwd_nixter< I, N >::ret
00450
00451 # define mln_bkd_nixter(I, N) typename mln::trait::bkd_nixter< I, N >::ret
00452 # define mln_bkd_nixter_(I, N) mln::trait::bkd_nixter< I, N >::ret
00453
00454 # define mln_nixter(I, N) mln_fwd_nixter(I, N)
00455 # define mln_nixter_(I, N) mln_fwd_nixter_(I, N)
00456
00459 # define mln_vertex_iter(G) typename G::vertex_iter
00460 # define mln_vertex_iter_(G) G::vertex_iter
00461 # define mln_vertex_fwd_iter(G) typename G::vertex_fwd_iter
00462 # define mln_vertex_fwd_iter_(G) G::vertex_fwd_iter
00463 # define mln_vertex_bkd_iter(G) typename G::vertex_bkd_iter
00464 # define mln_vertex_bkd_iter_(G) G::vertex_bkd_iter
00466
00469 # define mln_edge_iter(G) typename G::edge_iter
00470 # define mln_edge_iter_(G) G::edge_iter
00471 # define mln_edge_fwd_iter(G) typename G::edge_fwd_iter
00472 # define mln_edge_fwd_iter_(G) G::edge_fwd_iter
00473 # define mln_edge_bkd_iter(G) typename G::edge_bkd_iter
00474 # define mln_edge_bkd_iter_(G) G::edge_bkd_iter
00476
00480 # define mln_vertex_nbh_vertex_iter(G) typename G::vertex_nbh_vertex_iter
00481 # define mln_vertex_nbh_vertex_iter_(G) G::vertex_nbh_vertex_iter
00482 # define mln_vertex_nbh_vertex_fwd_iter(G) typename G::vertex_nbh_vertex_fwd_iter
00483 # define mln_vertex_nbh_vertex_fwd_iter_(G) G::vertex_nbh_vertex_fwd_iter
00484 # define mln_vertex_nbh_vertex_bkd_iter(G) typename G::vertex_nbh_vertex_bkd_iter
00485 # define mln_vertex_nbh_vertex_bkd_iter_(G) G::vertex_nbh_vertex_bkd_iter
00487
00491 # define mln_vertex_nbh_edge_iter(G) typename G::vertex_nbh_edge_iter
00492 # define mln_vertex_nbh_edge_iter_(G) G::vertex_nbh_edge_iter
00493 # define mln_vertex_nbh_edge_fwd_iter(G) typename G::vertex_nbh_edge_fwd_iter
00494 # define mln_vertex_nbh_edge_fwd_iter_(G) G::vertex_nbh_edge_fwd_iter
00495 # define mln_vertex_nbh_edge_bkd_iter(G) typename G::vertex_nbh_edge_bkd_iter
00496 # define mln_vertex_nbh_edge_bkd_iter_(G) G::vertex_nbh_edge_bkd_iter
00498
00502 # define mln_edge_nbh_edge_iter(G) typename G::edge_nbh_edge_iter
00503 # define mln_edge_nbh_edge_iter_(G) G::edge_nbh_edge_iter
00504 # define mln_edge_nbh_edge_fwd_iter(G) typename G::edge_nbh_edge_fwd_iter
00505 # define mln_edge_nbh_edge_fwd_iter_(G) G::edge_nbh_edge_fwd_iter
00506 # define mln_edge_nbh_edge_bkd_iter(G) typename G::edge_nbh_edge_bkd_iter
00507 # define mln_edge_nbh_edge_bkd_iter_(G) G::edge_nbh_edge_bkd_iter
00509
00510 #endif // ! MLN_CORE_MACROS_HH