File: meld.hh

package info (click to toggle)
cadabra2 2.3.6.8-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 77,508 kB
  • sloc: ansic: 132,438; cpp: 86,549; python: 1,365; javascript: 191; xml: 182; sh: 180; objc: 53; makefile: 38
file content (31 lines) | stat: -rw-r--r-- 662 bytes parent folder | download
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
27
28
29
30
31
#pragma once

#include <memory>
#include <array>
#include "Algorithm.hh"
#include "Adjform.hh"

namespace cadabra {

    class meld : public Algorithm
    {
        public:
            meld(const Kernel& kernel, Ex& ex);
            virtual ~meld();

            virtual bool can_apply(iterator it) override;
            virtual result_t apply(iterator& it) override;

        private:
            AdjformEx symmetrize(Ex::iterator it);

				bool can_apply_traces(iterator it);
				bool can_apply_tableaux(iterator it);

            result_t apply_traces(iterator it);
            result_t apply_tableaux(iterator it);

            IndexMap index_map;
    };

}