-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcoset.h
More file actions
34 lines (28 loc) · 750 Bytes
/
Copy pathcoset.h
File metadata and controls
34 lines (28 loc) · 750 Bytes
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
32
33
34
#pragma once
#include <iostream>
#include <cassert>
class Coset;
#include "group.h"
#include "permutation.h"
#include "ext.h"
class Coset {
Group _G;
Group _H;
bool _right;
Permutation _sigma;
public:
Group supergroup() const;
Group subgroup() const;
bool isRightCoset() const;
const Permutation& representative() const;
bool operator==( const Coset& ) const;
Coset( Group G, Group H, Permutation sigma, bool right = true );
};
std::ostream& operator<<( std::ostream& os, const Coset& c );
Coset operator*( const Permutation& sigma, const Coset& tauH );
struct Iso : public Either<Coset,Empty> {
bool isEmpty() const;
const Coset& coset() const;
using Either::Either;
};
Iso operator*( const Permutation& sigma, const Iso& tauH );