Orbiter 2022
Combinatorial Objects
orbiter::layer2_discreta::permutation Class Reference

DISCRETA permutation class. More...

#include <discreta.h>

Inheritance diagram for orbiter::layer2_discreta::permutation:
Collaboration diagram for orbiter::layer2_discreta::permutation:

Public Member Functions

 permutation ()
 
 permutation (const discreta_base &x)
 
permutationoperator= (const discreta_base &x)
 
void * operator new (size_t, void *p)
 
void settype_permutation ()
 
kind s_virtual_kind ()
 
 ~permutation ()
 
void freeself_permutation ()
 
void copyobject_to (discreta_base &x)
 
std::ostream & print (std::ostream &)
 
std::ostream & print_list (std::ostream &ost)
 
std::ostream & print_cycle (std::ostream &ost)
 
void sscan (const char *s, int verbose_level)
 
void scan (std::istream &is, int verbose_level)
 
void m_l (int l)
 
int & s_i (int i)
 
int & operator[] (int i)
 
void mult_to (discreta_base &x, discreta_base &y)
 
int invert_to (discreta_base &x)
 
void one ()
 
int is_one ()
 
int compare_with (discreta_base &a)
 
void write_mem (memory &m, int debug_depth)
 
void read_mem (memory &m, int debug_depth)
 
int csf ()
 
void get_fixpoints (Vector &f)
 
void induce_action_on_blocks (permutation &gg, Vector &B)
 
void induce3 (permutation &b)
 
void induce2 (permutation &b)
 
void induce_on_2tuples (permutation &p, int f_injective)
 
void add_n_fixpoints_in_front (permutation &b, int n)
 
void add_n_fixpoints_at_end (permutation &b, int n)
 
void add_fixpoint_in_front (permutation &b)
 
void embed_at (permutation &b, int n, int at)
 
void remove_fixpoint (permutation &b, int i)
 
void join (permutation &a, permutation &b)
 
void cartesian_product_action (permutation &a, permutation &b)
 
void Add2Cycle (int i0, int i1)
 
void Add3Cycle (int i0, int i1, int i2)
 
void Add4Cycle (int i0, int i1, int i2, int i3)
 
void Add5Cycle (int i0, int i1, int i2, int i3, int i4)
 
void AddNCycle (int first, int len)
 
void set_print_type_integer_from_zero ()
 
void set_print_type_integer_from_one ()
 
void set_print_type_PG_1_q_element (domain *dom)
 
void convert_digit (int i, hollerith &a)
 
void cycle_type (Vector &type, int verbose_level)
 
int nb_of_inversions (int verbose_level)
 
int signum (int verbose_level)
 
int is_even (int verbose_level)
 
void cycles (Vector &cycles)
 
void restrict_to_subset (permutation &q, int first, int len)
 
void induce_on_lines_of_PG_k_q (int k, int q, permutation &per, int verbose_level)
 
void singer_cycle_on_points_of_projective_plane (int p, int f_modified, int verbose_level)
 
void Cn_in_Cnm (int n, int m)
 
int preimage (int i)
 
- Public Member Functions inherited from orbiter::layer2_discreta::Vector
 Vector ()
 
 Vector (const discreta_base &x)
 
Vectoroperator= (const discreta_base &x)
 
void * operator new (size_t, void *p)
 
void settype_vector ()
 
 ~Vector ()
 
void freeself_vector ()
 
kind s_virtual_kind ()
 
void copyobject_to (discreta_base &x)
 
std::ostream & Print (std::ostream &)
 
std::ostream & print (std::ostream &)
 
std::ostream & print_unformatted (std::ostream &ost)
 
std::ostream & print_intvec (std::ostream &ost)
 
discreta_bases_i (int i)
 
int & s_ii (int i)
 
void m_ii (int i, int a)
 
discreta_baseoperator[] (int i)
 
int s_l ()
 
void m_l (int l)
 
void m_l_n (int l)
 
void m_l_e (int l)
 
void m_l_x (int l, discreta_base &x)
 
Vectorrealloc (int l)
 
void mult_to (discreta_base &x, discreta_base &y)
 
void add_to (discreta_base &x, discreta_base &y)
 
void inc ()
 
void dec ()
 
int compare_with (discreta_base &a)
 
void append_vector (Vector &v)
 
Vectorappend_integer (int a)
 
Vectorappend (discreta_base &x)
 
Vectorinsert_element (int i, discreta_base &x)
 
Vectorget_and_delete_element (int i, discreta_base &x)
 
Vectordelete_element (int i)
 
void get_first_and_remove (discreta_base &x)
 
bool insert_sorted (discreta_base &x)
 
bool search (discreta_base &x, int *idx)
 
Vectorsort ()
 
void sort_with_fellow (Vector &fellow)
 
Vectorsort_with_logging (permutation &p)
 
void sum_of_all_entries (discreta_base &x)
 
void n_choose_k_first (int n, int k)
 
int n_choose_k_next (int n, int k)
 
void first_lehmercode (int n)
 
int next_lehmercode ()
 
void lehmercode2perm (permutation &p)
 
void q_adic (int n, int q)
 
int q_adic_as_int (int q)
 
void mult_scalar (discreta_base &a)
 
void first_word (int n, int q)
 
int next_word (int q)
 
void first_regular_word (int n, int q)
 
int next_regular_word (int q)
 
int is_regular_word ()
 
void apply_permutation (permutation &p)
 
void apply_permutation_to_elements (permutation &p)
 
void content (Vector &c, Vector &where)
 
void content_multiplicities_only (Vector &c, Vector &mult)
 
int hip ()
 
int hip1 ()
 
void write_mem (memory &m, int debug_depth)
 
void read_mem (memory &m, int debug_depth)
 
int csf ()
 
void conjugate (discreta_base &a)
 
void conjugate_with_inverse (discreta_base &a)
 
void replace (Vector &v)
 
void vector_of_vectors_replace (Vector &v)
 
void extract_subvector (Vector &v, int first, int len)
 
void PG_element_normalize ()
 
void PG_element_rank (int &a)
 
void PG_element_rank_modified (int &a)
 
void PG_element_unrank (int a)
 
void PG_element_unrank_modified (int a)
 
void AG_element_rank (int &a)
 
void AG_element_unrank (int a)
 
int hamming_weight ()
 
void scalar_product (Vector &w, discreta_base &a)
 
void hadamard_product (Vector &w)
 
void intersect (Vector &b, Vector &c)
 
int vector_of_vectors_overall_length ()
 
void first_divisor (Vector &exponents)
 
int next_divisor (Vector &exponents)
 
int next_non_trivial_divisor (Vector &exponents)
 
void multiply_out (Vector &primes, discreta_base &x)
 
int hash (int hash0)
 
int is_subset_of (Vector &w)
 
void concatenation (Vector &v1, Vector &v2)
 
void print_word_nicely (std::ostream &ost, int f_generator_labels, Vector &generator_labels)
 
void print_word_nicely2 (std::ostream &ost)
 
void print_word_nicely_with_generator_labels (std::ostream &ost, Vector &generator_labels)
 
void vector_of_vectors_lengths (Vector &lengths)
 
void get_element_orders (Vector &vec_of_orders)
 
- Public Member Functions inherited from orbiter::layer2_discreta::discreta_base
 discreta_base ()
 
 discreta_base (const discreta_base &x)
 
discreta_baseoperator= (const discreta_base &x)
 
virtual ~discreta_base ()
 
void freeself_discreta_base ()
 
void freeself ()
 
void freeself_kind (kind k)
 
void clearself ()
 
integeras_integer ()
 
longintegeras_longinteger ()
 
Vectoras_vector ()
 
permutationas_permutation ()
 
number_partitionas_number_partition ()
 
discreta_matrixas_matrix ()
 
unipolyas_unipoly ()
 
memoryas_memory ()
 
hollerithas_hollerith ()
 
bt_keyas_bt_key ()
 
databaseas_database ()
 
btreeas_btree ()
 
design_parameter_sourceas_design_parameter_source ()
 
design_parameteras_design_parameter ()
 
integerchange_to_integer ()
 
longintegerchange_to_longinteger ()
 
Vectorchange_to_vector ()
 
permutationchange_to_permutation ()
 
number_partitionchange_to_number_partition ()
 
discreta_matrixchange_to_matrix ()
 
unipolychange_to_unipoly ()
 
memorychange_to_memory ()
 
hollerithchange_to_hollerith ()
 
bt_keychange_to_bt_key ()
 
databasechange_to_database ()
 
btreechange_to_btree ()
 
design_parameter_sourcechange_to_design_parameter_source ()
 
design_parameterchange_to_design_parameter ()
 
void * operator new (size_t, void *p)
 
void settype_base ()
 
kind s_kind ()
 
virtual kind s_virtual_kind ()
 
void c_kind (kind k)
 
void swap (discreta_base &a)
 
void copyobject (discreta_base &x)
 
virtual void copyobject_to (discreta_base &x)
 
virtual std::ostream & print (std::ostream &)
 
void print_to_hollerith (hollerith &h)
 
std::ostream & println (std::ostream &)
 
std::ostream & printobjectkind (std::ostream &)
 
std::ostream & printobjectkindln (std::ostream &)
 
int & s_i_i ()
 
void m_i_i (int i)
 
virtual int compare_with (discreta_base &a)
 
int eq (discreta_base &a)
 
int neq (discreta_base &a)
 
int le (discreta_base &a)
 
int lt (discreta_base &a)
 
int ge (discreta_base &a)
 
int gt (discreta_base &a)
 
int is_even ()
 
int is_odd ()
 
void mult (discreta_base &x, discreta_base &y)
 
void mult_mod (discreta_base &x, discreta_base &y, discreta_base &p)
 
virtual void mult_to (discreta_base &x, discreta_base &y)
 
int invert ()
 
int invert_mod (discreta_base &p)
 
virtual int invert_to (discreta_base &x)
 
void mult_apply (discreta_base &x)
 
discreta_baseoperator*= (discreta_base &y)
 
discreta_basepower_int (int l)
 
discreta_basepower_int_mod (int l, discreta_base &p)
 
discreta_basepower_longinteger (longinteger &l)
 
discreta_basepower_longinteger_mod (longinteger &l, discreta_base &p)
 
discreta_basecommutator (discreta_base &x, discreta_base &y)
 
discreta_baseconjugate (discreta_base &x, discreta_base &y)
 
discreta_basedivide_by (discreta_base &x)
 
discreta_basedivide_by_exact (discreta_base &x)
 
int order ()
 
int order_mod (discreta_base &p)
 
void add (discreta_base &x, discreta_base &y)
 
void add_mod (discreta_base &x, discreta_base &y, discreta_base &p)
 
virtual void add_to (discreta_base &x, discreta_base &y)
 
void negate ()
 
virtual void negate_to (discreta_base &x)
 
void add_apply (discreta_base &x)
 
discreta_baseoperator+= (discreta_base &y)
 
virtual void normalize (discreta_base &p)
 
virtual void zero ()
 
virtual void one ()
 
virtual void m_one ()
 
virtual void homo_z (int z)
 
virtual void inc ()
 
virtual void dec ()
 
virtual int is_zero ()
 
virtual int is_one ()
 
virtual int is_m_one ()
 
discreta_basefactorial (int z)
 
discreta_basei_power_j (int i, int j)
 
virtual int compare_with_euclidean (discreta_base &a)
 
virtual void integral_division (discreta_base &x, discreta_base &q, discreta_base &r, int verbose_level)
 
void integral_division_exact (discreta_base &x, discreta_base &q)
 
void integral_division_by_integer (int x, discreta_base &q, discreta_base &r)
 
void integral_division_by_integer_exact (int x, discreta_base &q)
 
void integral_division_by_integer_exact_apply (int x)
 
int is_divisor (discreta_base &y)
 
void modulo (discreta_base &p)
 
void extended_gcd (discreta_base &n, discreta_base &u, discreta_base &v, discreta_base &g, int verbose_level)
 
void write_memory (memory &m, int debug_depth)
 
void read_memory (memory &m, int debug_depth)
 
int calc_size_on_file ()
 
void pack (memory &M, int verbose_level, int debug_depth)
 
void unpack (memory &M, int verbose_level, int debug_depth)
 
void save_ascii (std::ostream &f)
 
void load_ascii (std::istream &f)
 
void save_file (const char *fname)
 
void load_file (const char *fname)
 

Additional Inherited Members

- Public Attributes inherited from orbiter::layer2_discreta::discreta_base
kind k
 
OBJECTSELF self
 

Detailed Description

DISCRETA permutation class.

Definition at line 975 of file discreta.h.

Constructor & Destructor Documentation

◆ permutation() [1/2]

orbiter::layer2_discreta::permutation::permutation ( )

Definition at line 79 of file permutation.cpp.

◆ permutation() [2/2]

orbiter::layer2_discreta::permutation::permutation ( const discreta_base x)

Definition at line 85 of file permutation.cpp.

◆ ~permutation()

orbiter::layer2_discreta::permutation::~permutation ( )

Definition at line 111 of file permutation.cpp.

Member Function Documentation

◆ Add2Cycle()

void orbiter::layer2_discreta::permutation::Add2Cycle ( int  i0,
int  i1 
)

Definition at line 906 of file permutation.cpp.

◆ Add3Cycle()

void orbiter::layer2_discreta::permutation::Add3Cycle ( int  i0,
int  i1,
int  i2 
)

Definition at line 920 of file permutation.cpp.

◆ Add4Cycle()

void orbiter::layer2_discreta::permutation::Add4Cycle ( int  i0,
int  i1,
int  i2,
int  i3 
)

Definition at line 936 of file permutation.cpp.

◆ Add5Cycle()

void orbiter::layer2_discreta::permutation::Add5Cycle ( int  i0,
int  i1,
int  i2,
int  i3,
int  i4 
)

Definition at line 953 of file permutation.cpp.

◆ add_fixpoint_in_front()

void orbiter::layer2_discreta::permutation::add_fixpoint_in_front ( permutation b)

Definition at line 812 of file permutation.cpp.

◆ add_n_fixpoints_at_end()

void orbiter::layer2_discreta::permutation::add_n_fixpoints_at_end ( permutation b,
int  n 
)

Definition at line 798 of file permutation.cpp.

◆ add_n_fixpoints_in_front()

void orbiter::layer2_discreta::permutation::add_n_fixpoints_in_front ( permutation b,
int  n 
)

Definition at line 784 of file permutation.cpp.

◆ AddNCycle()

void orbiter::layer2_discreta::permutation::AddNCycle ( int  first,
int  len 
)

Definition at line 972 of file permutation.cpp.

◆ cartesian_product_action()

void orbiter::layer2_discreta::permutation::cartesian_product_action ( permutation a,
permutation b 
)

Definition at line 886 of file permutation.cpp.

◆ Cn_in_Cnm()

void orbiter::layer2_discreta::permutation::Cn_in_Cnm ( int  n,
int  m 
)

Definition at line 1243 of file permutation.cpp.

◆ compare_with()

int orbiter::layer2_discreta::permutation::compare_with ( discreta_base a)
virtual

Reimplemented from orbiter::layer2_discreta::Vector.

Definition at line 528 of file permutation.cpp.

◆ convert_digit()

void orbiter::layer2_discreta::permutation::convert_digit ( int  i,
hollerith a 
)

Definition at line 47 of file permutation.cpp.

◆ copyobject_to()

void orbiter::layer2_discreta::permutation::copyobject_to ( discreta_base x)
virtual

Reimplemented from orbiter::layer2_discreta::Vector.

Definition at line 133 of file permutation.cpp.

◆ csf()

int orbiter::layer2_discreta::permutation::csf ( )

Definition at line 623 of file permutation.cpp.

◆ cycle_type()

void orbiter::layer2_discreta::permutation::cycle_type ( Vector type,
int  verbose_level 
)

Definition at line 991 of file permutation.cpp.

◆ cycles()

void orbiter::layer2_discreta::permutation::cycles ( Vector cycles)

Definition at line 1073 of file permutation.cpp.

◆ embed_at()

void orbiter::layer2_discreta::permutation::embed_at ( permutation b,
int  n,
int  at 
)

Definition at line 820 of file permutation.cpp.

◆ freeself_permutation()

void orbiter::layer2_discreta::permutation::freeself_permutation ( )

Definition at line 116 of file permutation.cpp.

◆ get_fixpoints()

void orbiter::layer2_discreta::permutation::get_fixpoints ( Vector f)

Definition at line 637 of file permutation.cpp.

◆ induce2()

void orbiter::layer2_discreta::permutation::induce2 ( permutation b)

Definition at line 739 of file permutation.cpp.

◆ induce3()

void orbiter::layer2_discreta::permutation::induce3 ( permutation b)

Definition at line 694 of file permutation.cpp.

◆ induce_action_on_blocks()

void orbiter::layer2_discreta::permutation::induce_action_on_blocks ( permutation gg,
Vector B 
)

Definition at line 650 of file permutation.cpp.

◆ induce_on_2tuples()

void orbiter::layer2_discreta::permutation::induce_on_2tuples ( permutation p,
int  f_injective 
)

Definition at line 763 of file permutation.cpp.

◆ induce_on_lines_of_PG_k_q()

void orbiter::layer2_discreta::permutation::induce_on_lines_of_PG_k_q ( int  k,
int  q,
permutation per,
int  verbose_level 
)

Definition at line 1142 of file permutation.cpp.

◆ invert_to()

int orbiter::layer2_discreta::permutation::invert_to ( discreta_base x)
virtual

Reimplemented from orbiter::layer2_discreta::discreta_base.

Definition at line 489 of file permutation.cpp.

◆ is_even()

int orbiter::layer2_discreta::permutation::is_even ( int  verbose_level)

Definition at line 1063 of file permutation.cpp.

◆ is_one()

int orbiter::layer2_discreta::permutation::is_one ( )
virtual

Reimplemented from orbiter::layer2_discreta::discreta_base.

Definition at line 517 of file permutation.cpp.

◆ join()

void orbiter::layer2_discreta::permutation::join ( permutation a,
permutation b 
)

Definition at line 867 of file permutation.cpp.

◆ m_l()

void orbiter::layer2_discreta::permutation::m_l ( int  l)

Definition at line 1277 of file permutation.cpp.

◆ mult_to()

void orbiter::layer2_discreta::permutation::mult_to ( discreta_base x,
discreta_base y 
)
virtual

Reimplemented from orbiter::layer2_discreta::Vector.

Definition at line 463 of file permutation.cpp.

◆ nb_of_inversions()

int orbiter::layer2_discreta::permutation::nb_of_inversions ( int  verbose_level)

Definition at line 1040 of file permutation.cpp.

◆ one()

void orbiter::layer2_discreta::permutation::one ( )
virtual

Reimplemented from orbiter::layer2_discreta::discreta_base.

Definition at line 508 of file permutation.cpp.

◆ operator new()

void * orbiter::layer2_discreta::permutation::operator new ( size_t  ,
void *  p 
)
inline

Definition at line 984 of file discreta.h.

◆ operator=()

permutation & orbiter::layer2_discreta::permutation::operator= ( const discreta_base x)

Definition at line 93 of file permutation.cpp.

◆ operator[]()

int & orbiter::layer2_discreta::permutation::operator[] ( int  i)
inline

Definition at line 998 of file discreta.h.

◆ preimage()

int orbiter::layer2_discreta::permutation::preimage ( int  i)

Definition at line 1264 of file permutation.cpp.

◆ print()

ostream & orbiter::layer2_discreta::permutation::print ( std::ostream &  )
virtual

Reimplemented from orbiter::layer2_discreta::Vector.

Definition at line 163 of file permutation.cpp.

◆ print_cycle()

ostream & orbiter::layer2_discreta::permutation::print_cycle ( std::ostream &  ost)

Definition at line 173 of file permutation.cpp.

◆ print_list()

ostream & orbiter::layer2_discreta::permutation::print_list ( std::ostream &  ost)

Definition at line 168 of file permutation.cpp.

◆ read_mem()

void orbiter::layer2_discreta::permutation::read_mem ( memory m,
int  debug_depth 
)

Definition at line 599 of file permutation.cpp.

◆ remove_fixpoint()

void orbiter::layer2_discreta::permutation::remove_fixpoint ( permutation b,
int  i 
)

Definition at line 843 of file permutation.cpp.

◆ restrict_to_subset()

void orbiter::layer2_discreta::permutation::restrict_to_subset ( permutation q,
int  first,
int  len 
)

Definition at line 1122 of file permutation.cpp.

◆ s_i()

int & orbiter::layer2_discreta::permutation::s_i ( int  i)

Definition at line 447 of file permutation.cpp.

◆ s_virtual_kind()

kind orbiter::layer2_discreta::permutation::s_virtual_kind ( )
virtual

Reimplemented from orbiter::layer2_discreta::Vector.

Definition at line 128 of file permutation.cpp.

◆ scan()

void orbiter::layer2_discreta::permutation::scan ( std::istream &  is,
int  verbose_level 
)

Definition at line 325 of file permutation.cpp.

◆ set_print_type_integer_from_one()

void orbiter::layer2_discreta::permutation::set_print_type_integer_from_one ( )

Definition at line 36 of file permutation.cpp.

◆ set_print_type_integer_from_zero()

void orbiter::layer2_discreta::permutation::set_print_type_integer_from_zero ( )

Definition at line 31 of file permutation.cpp.

◆ set_print_type_PG_1_q_element()

void orbiter::layer2_discreta::permutation::set_print_type_PG_1_q_element ( domain dom)

Definition at line 41 of file permutation.cpp.

◆ settype_permutation()

void orbiter::layer2_discreta::permutation::settype_permutation ( )

Definition at line 101 of file permutation.cpp.

◆ signum()

int orbiter::layer2_discreta::permutation::signum ( int  verbose_level)

Definition at line 1054 of file permutation.cpp.

◆ singer_cycle_on_points_of_projective_plane()

void orbiter::layer2_discreta::permutation::singer_cycle_on_points_of_projective_plane ( int  p,
int  f_modified,
int  verbose_level 
)

Definition at line 1206 of file permutation.cpp.

◆ sscan()

void orbiter::layer2_discreta::permutation::sscan ( const char *  s,
int  verbose_level 
)

Definition at line 319 of file permutation.cpp.

◆ write_mem()

void orbiter::layer2_discreta::permutation::write_mem ( memory m,
int  debug_depth 
)

Definition at line 579 of file permutation.cpp.


The documentation for this class was generated from the following files: