1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
#pragma once
#include <set>
#include "Algorithm.hh"
namespace cadabra {
class expand_dummies : public Algorithm {
public:
expand_dummies(const Kernel& kernel, Ex& ex, const Ex* components = nullptr, bool zero_missing_components = true);
virtual bool can_apply(iterator) override;
virtual result_t apply(iterator&) override;
private:
void enumerate_patterns();
void fill_components(Ex::iterator it);
Ex_comparator comp;
const Ex* components;
std::vector<Ex> component_patterns;
bool zero_missing_components;
};
}
|