1[/
2 / Distributed under the Boost Software License, Version 1.0. (See accompanying
3 / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
4 /]
5
6[library Boost.YAP
7    [quickbook 1.5]
8    [authors [Laine, Zach]]
9    [copyright 2018 T. Zachary Laine]
10    [category template]
11    [id yap]
12    [dirname yap]
13    [purpose
14        An expression template library for newer standards of C++.
15    ]
16    [license
17        Distributed under the Boost Software License, Version 1.0.
18        (See accompanying file LICENSE_1_0.txt or copy at
19        [@http://www.boost.org/LICENSE_1_0.txt])
20    ]
21]
22
23[/ Imports ]
24
25[import other_snippets.cpp]
26[import ../example/hello_world.cpp]
27[import ../example/hello_world_redux.cpp]
28[import ../example/minimal.cpp]
29[import ../example/calc1.cpp]
30[import ../example/calc2a.cpp]
31[import ../example/calc2b.cpp]
32[import ../example/calc3.cpp]
33[import ../example/lazy_vector.cpp]
34[import ../example/self_evaluation.cpp]
35[import ../example/tarray.cpp]
36[import ../example/vec3.cpp]
37[import ../example/vector.cpp]
38[import ../example/mixed.cpp]
39[import ../example/map_assign.cpp]
40[import ../example/future_group.cpp]
41[import ../example/autodiff_example.cpp]
42[import ../example/transform_terminals.cpp]
43[import ../example/pipable_algorithms.cpp]
44[import ../example/let.cpp]
45[import ../test/user_expression_transform_2.cpp]
46[import ../perf/arithmetic_perf.cpp]
47[import ../include/boost/yap/detail/transform.hpp]
48
49
50[/ Images ]
51
52[def __note__              [$images/note.png]]
53[def __tip__               [$images/tip.png]]
54[def __important__         [$images/important.png]]
55[def __caution__           [$images/caution.png]]
56[def __warning__           [$images/warning.png]]
57
58[/ Links ]
59
60[def _yap_                 Boost.YAP]
61
62[def _operators_           [link boost_yap.manual.operators Operators]]
63[def _operator_macros_     [link boost_yap.manual.operator_macros Operator Macros]]
64
65[def _Expr_                [link boost_yap.concepts.expression Expression]]
66[def _Exprs_               [link boost_yap.concepts.expression Expressions]]
67[def _ExprTmpl_            [link boost_yap.concepts.expressiontemplate ExpressionTemplate]]
68[def _ExprTmpls_           [link boost_yap.concepts.expressiontemplate ExpressionTemplates]]
69[def _XForm_               [link boost_yap.concepts.transform Transform]]
70[def _XForms_              [link boost_yap.concepts.transform Transforms]]
71[def _ExprXForm_           [link boost_yap.concepts.expressiontransform ExpressionTransform]]
72[def _ExprXForms_          [link boost_yap.concepts.expressiontransform ExpressionTransforms]]
73[def _TagXForm_            [link boost_yap.concepts.tagtransform TagTransform]]
74[def _TagXForms_           [link boost_yap.concepts.tagtransform TagTransforms]]
75[def _Callable_            [@http://en.cppreference.com/w/cpp/concept/Callable Callable]]
76[def _Callables_           [@http://en.cppreference.com/w/cpp/concept/Callable Callables]]
77[def _range_v3_            [@https://github.com/ericniebler/range-v3 Range-v3]]
78[def _ast_                 [@https://en.wikipedia.org/wiki/Abstract_syntax_tree abstract syntax tree]]
79[def _let_                 [@http://www.boost.org/doc/libs/1_66_0/libs/phoenix/doc/html/phoenix/modules/scope/let.html `let()`]]
80
81[def _expr_                [classref boost::yap::expression `expression<>`]]
82[def _exprs_               [classref boost::yap::expression `expression<>`s]]
83[def _kind_                [enumref boost::yap::expr_kind `expr_kind`]]
84[def _terminal_            [link boost.yap.expr_kind.terminal `expr_kind::terminal`]]
85[def _placeholder_         [classref boost::yap::placeholder `placeholder<>`]]
86[def _if_else_             [link boost.yap.expr_kind.if_else `expr_kind::if_else`]]
87[def _expr_ref_            [link boost.yap.expr_kind.expr_ref `expr_kind::expr_ref`]]
88[def _xform_               [funcref boost::yap::transform `transform()`]]
89[def _xform_strict_        [funcref boost::yap::transform_strict `transform_strict()`]]
90[def _evaluation_          [funcref boost::yap::evaluation `evaluation()`]]
91[def _eval_                [funcref boost::yap::evaluate `evaluate()`]]
92[def _replacements_        [funcref boost::yap::replacements `replacements()`]]
93[def _replace_placeholders_ [funcref boost::yap::replace_placeholders `replace_placeholders()`]]
94[def _tuple_               `boost::hana::tuple<>`]
95
96[def _eval_xform_          `evaluate(transform())`]
97[def _xform_as_eval_       `transform()`-as-evaluate]
98
99[def _alg_header_          `<boost/yap/algorithm.hpp>` header]
100[def _yap_header_          `<boost/yap/yap.hpp>` header]
101[def _expr_header_         `<boost/yap/expression.hpp>` header]
102[def _print_header_        `<boost/yap/print.hpp>` header]
103
104[def _make_term_           [funcref boost::yap::make_terminal `make_terminal()`]]
105[def _make_expr_           [funcref boost::yap::make_expression `make_expression()`]]
106[def _make_expr_fn_        [funcref boost::yap::make_expression_function `make_expression_function()`]]
107[def _as_expr_             [funcref boost::yap::as_expr `as_expr()`]]
108[def _left_                [funcref boost::yap::left `left()`]]
109[def _right_               [funcref boost::yap::right `right()`]]
110[def _value_               [funcref boost::yap::value `value()`]]
111[def _print_               [funcref boost::yap::print `print()`]]
112
113[def _unary_m_             [macroref BOOST_YAP_USER_UNARY_OPERATOR]]
114[def _binary_m_            [macroref BOOST_YAP_USER_BINARY_OPERATOR]]
115[def _member_call_m_       [macroref BOOST_YAP_USER_CALL_OPERATOR]]
116[def _member_call_n_m_     [macroref BOOST_YAP_USER_CALL_OPERATOR_N]]
117[def _member_assign_m_     [macroref BOOST_YAP_USER_ASSIGN_OPERATOR]]
118[def _member_subscript_m_  [macroref BOOST_YAP_USER_SUBSCRIPT_OPERATOR]]
119[def _expr_if_else_m_      [macroref BOOST_YAP_USER_EXPR_IF_ELSE]]
120[def _udt_any_if_else_m_   [macroref BOOST_YAP_USER_UDT_ANY_IF_ELSE]]
121[def _udt_unary_m_         [macroref BOOST_YAP_USER_UDT_UNARY_OPERATOR]]
122[def _udt_udt_binary_m_    [macroref BOOST_YAP_USER_UDT_UDT_BINARY_OPERATOR]]
123[def _udt_any_binary_m_    [macroref BOOST_YAP_USER_UDT_ANY_BINARY_OPERATOR]]
124[def _no_constexpr_if_m_   [macroref BOOST_NO_CONSTEXPR_IF]]
125[def _literal_op_m_        [macroref BOOST_YAP_USER_LITERAL_PLACEHOLDER_OPERATOR]]
126
127[def _spirit_              [@http://boost-spirit.com Boost.Spirit]]
128[def _eigen_               [@http://eigen.tuxfamily.org Eigen]]
129[def _nt2_                 [@https://www.lri.fr/~falcou/nt2 NT2]]
130[def _range_v3_            [@https://github.com/ericniebler/range-v3 Range-v3]]
131
132[def _Ets_                 Expression templates]
133[def _et_                  expression template]
134[def _ets_                 expression templates]
135
136[def _emdash_              \u2014]
137
138[def _how_treated_         [link boost_yap.manual.how_expression_operands_are_treated How Expression Operands Are Treated]]
139
140[def _examples_            [link boost_yap.manual.examples Examples]]
141[def _calc3_               [link boost_yap.manual.examples.calc3 Calc3]]
142[def _mixed_               [link boost_yap.manual.examples.mixed Mixed]]
143[def _vector_              [link boost_yap.manual.examples.vector Vector]]
144[def _lazy_vector_         [link boost_yap.manual.examples.lazy_vector Lazy Vector]]
145[def _self_eval_           [link boost_yap.manual.examples.self_evaluation Self-Evaluating Expressions]]
146[def _tarray_              [link boost_yap.manual.examples.tarray TArray]]
147
148[def _future_group_        [link boost_yap.manual.examples.future_group Future Group]]
149[def _pipable_algorithms_  [link boost_yap.manual.examples.pipable_algorithms Pipable Algorithms]]
150
151[include intro.qbk]
152[include manual.qbk]
153[include concepts.qbk]
154[include compiler_support.qbk]
155[include dependencies.qbk]
156
157[section Reference]
158[xinclude yap_reference.xml]
159[endsect]
160
161[/ [template named_index[type title]
162 / '''<index type="'''[type]'''"><title>'''[title]'''</title></index>'''
163 / ]
164 / [named_index class_name Class Index]
165 / [named_index function_name Function Index]
166 / [named_index macro_name Macro Index]
167 /]
168[include rationale.qbk]
169