Skip to content

Representation

A (1D) irreducible representation of a finite group. Upon creation, the group homomorphism properties are verified.

Sources
representation.hpp
representation.cpp
representation.jl

Constructors

Trivial representation

Creates the trivial representation (all characters equal to 1) of a PermutationGroup

Representation(PermutationGroup const &group);
Representation(group::PermutationGroup)

With characters

Creates a 1D representation of a PermutationGroup with given real or complex characters.

template <typename T>
Representation(PermutationGroup const &group, std::vector<T> const &characters);
template <typename T>
Representation(PermutationGroup const &group, arma::Col<T> const &characters);
template <typename T>
Representation(PermutationGroup const &group, T *characters, int64_t n_characters);
Representation(group::PermutationGroup, characters::Vector{Float64})
Representation(group::PermutationGroup, characters::Vector{ComplexF64})
Name Description
group PermutationGroup of the Representation
characters characters of the representation
n_characters length of the array of characters

The template parameter T in C++ can either be double or complex.


Methods

size

Returns the size of the Representation, i.e. the number of group elements represented.

int64_t size(Representation const &irrep);
size(irrep::Representation)::Int64

isreal

Returns the whether or not the Representation is real, I.E. the characters are real numbers and do not have an imaginary part.

bool isreal(Representation const &irrep) const;
isreal(irrep::Representation)::Bool

* operator

Multiplies two Representations by overloading the * operator.

Representation operator*(Representation const &r1, Representation const &r2);
Base.:*(r1::Representation, r2::Representation)::Representation

to_string (operator<<)

Converts the Representation to a readable string representation.

std::string to_string(Representation const &irrep);
std::ostream &operator<<(std::ostream &out, Representation const &irrep);
to_string(irrep::Representation)::String

Usage Example

Permutation p = {1, 2, 3, 0};
auto C4 = PermutationGroup({pow(p, 0), pow(p, 1), pow(p, 2), pow(p, 3)});
Representation r1(C4, arma::vec{1.0, -1.0, 1.0, -1.0});
Representation r2(C4, arma::cx_vec{1.0, 1.0i, -1.0, -1.0i});
XDIAG_SHOW(r1 * r2);
p = Permutation([2, 3, 4, 1])
C4 = PermutationGroup([p^0, p^1, p^2, p^3])
r1 = Representation(C4, [1.0, -1.0, 1.0, -1.0])
r2 = Representation(C4, [1.0, 1.0im, -1.0, -1.0im])
@show r1 * r2