30 template<
typename Type>
33 std::function<
void(GExpr &)> f
36 const size_t sz = expr->size();
37 for (
size_t i = 0; i != sz; ++i)
38 sgl::for_each<Type>(expr->argument(i), f);
39 if (IsType<Type>(expr))
43 template<
typename Type>
46 std::function<
bool(GExpr &)> f
49 const size_t sz = expr->size();
50 bool transformed =
false;
51 for (
size_t i = 0; i != sz; ++i)
52 if (sgl::transform<Type>(expr->argument(i), f))
54 if (IsType<Type>(expr)) {
55 transformed = f(expr) || transformed;
58 expr = expr->refresh();
Definition: abstractgammasym.h:32
Contains the base class for the Symbolic Gamma Library (SGL) and the GExpr definition.
RTTI utilities for SGL (run-time type information).