1 
2 #pragma once
3 
4 #include "Algorithm.hh"
5 
6 namespace cadabra {
7 
8 	class sort_sum : public Algorithm {
9 		public:
10 			sort_sum(const Kernel&, Ex&);
11 
12 			virtual bool     can_apply(iterator) override;
13 			virtual result_t apply(iterator&) override;
14 
15 		private:
16 			bool should_swap(iterator obj, int subtree_comparison) const;
17 		};
18 
19 	}
20