DGtal
2.2.0
Toggle main menu visibility
Loading...
Searching...
No Matches
OrderedAlphabet.h
1
16
17
#pragma once
18
34
35
#if defined(OrderedAlphabet_RECURSES)
36
#error Recursive header files inclusion detected in OrderedAlphabet.h
37
#else
// defined(OrderedAlphabet_RECURSES)
39
#define OrderedAlphabet_RECURSES
40
41
#if !defined OrderedAlphabet_h
43
#define OrderedAlphabet_h
44
46
// Inclusions
47
#include <iostream>
48
#include <string>
49
#include "DGtal/base/Common.h"
50
#include "DGtal/kernel/NumberTraits.h"
51
#include "DGtal/arithmetic/ModuloComputer.h"
53
54
namespace
DGtal
55
{
56
58
// class OrderedAlphabet
69
class
OrderedAlphabet
70
{
71
// ----------------------- Standard types ------------------------------
72
public
:
73
77
typedef
int
Integer
;
78
82
typedef
unsigned
int
index_t
;
83
87
typedef
unsigned
int
size_t
;
88
89
// ----------------------- Standard services ------------------------------
90
public
:
91
95
~OrderedAlphabet
();
96
106
OrderedAlphabet
(
char
first,
unsigned
int
nb );
107
111
std::string
orderedAlphabet
()
const
;
112
116
void
shiftLeft
();
117
121
void
shiftRight
();
122
126
void
reverse
();
127
131
void
reverseAround12
();
132
139
unsigned
int
order
(
char
c )
const
;
140
149
char
letter
(
unsigned
int
i )
const
;
150
156
bool
less
(
char
c1,
char
c2 )
const
;
157
163
bool
lessOrEqual
(
char
c1,
char
c2 )
const
;
164
170
bool
equal
(
char
c1,
char
c2 )
const
;
171
172
// ----------------------- word services ------------------------------
173
public
:
174
188
void
firstLyndonFactor
(
size_t
& len,
size_t
& nb,
189
const
std::string & w,
190
index_t
s,
index_t
e )
const
;
191
192
206
void
firstLyndonFactorMod
(
size_t
& len,
size_t
& nb,
207
const
std::string & w,
208
index_t
s,
index_t
e )
const
;
209
210
232
bool
duvalPP
(
size_t
& len,
size_t
& nb,
233
const
std::string & w,
234
index_t
s,
index_t
e
235
)
const
;
236
258
bool
duvalPPMod
(
size_t
& len,
size_t
& nb,
259
const
std::string & w,
260
index_t
s,
index_t
e )
const
;
287
bool
duvalPPtoDSS
(
size_t
& len,
size_t
& nb,
288
unsigned
int
& n1,
unsigned
int
& n2,
289
unsigned
int
& Lf1,
unsigned
int
& Lf2,
290
const
std::string & w,
291
index_t
s,
index_t
e
292
)
const
;
293
294
295
296
// ----------------------- MLP services -----------------------------------
297
public
:
298
319
size_t
nextEdge
(
size_t
& nb_a1,
size_t
& nb_a2,
320
std::string & w,
index_t
& s,
bool
& cvx );
321
322
323
// ----------------------- Interface --------------------------------------
324
public
:
325
330
void
selfDisplay
( std::ostream & out )
const
;
331
336
bool
isValid
()
const
;
337
338
// ------------------------- Protected Data ------------------------------
339
private
:
340
// ------------------------- Private Data --------------------------------
341
private
:
345
char
myFirst
;
346
350
unsigned
int
myNb
;
351
355
unsigned
int
*
myOrder
;
356
357
// ------------------------- Hidden services ------------------------------
358
protected
:
359
364
OrderedAlphabet
();
365
366
private
:
367
373
OrderedAlphabet
(
const
OrderedAlphabet
& other );
374
381
OrderedAlphabet
&
operator=
(
const
OrderedAlphabet
& other );
382
383
// ------------------------- Internals ------------------------------------
384
private
:
385
386
};
// end of class OrderedAlphabet
387
388
395
std::ostream&
396
operator<<
( std::ostream & out,
const
OrderedAlphabet
&
object
);
397
398
399
}
// namespace DGtal
400
401
403
// Includes inline functions/methods if necessary.
404
#include "DGtal/base/OrderedAlphabet.ih"
405
406
// //
408
409
#endif
// !defined OrderedAlphabet_h
410
411
#undef OrderedAlphabet_RECURSES
412
#endif
// else defined(OrderedAlphabet_RECURSES)
DGtal::OrderedAlphabet
Aim: Describes an alphabet over an interval of (ascii) letters, where the lexicographic order can be ...
Definition
OrderedAlphabet.h:70
DGtal::OrderedAlphabet::index_t
unsigned int index_t
Definition
OrderedAlphabet.h:82
DGtal::OrderedAlphabet::letter
char letter(unsigned int i) const
DGtal::OrderedAlphabet::~OrderedAlphabet
~OrderedAlphabet()
DGtal::OrderedAlphabet::less
bool less(char c1, char c2) const
DGtal::OrderedAlphabet::OrderedAlphabet
OrderedAlphabet(char first, unsigned int nb)
DGtal::OrderedAlphabet::shiftLeft
void shiftLeft()
DGtal::OrderedAlphabet::myNb
unsigned int myNb
Definition
OrderedAlphabet.h:350
DGtal::OrderedAlphabet::duvalPP
bool duvalPP(size_t &len, size_t &nb, const std::string &w, index_t s, index_t e) const
DGtal::OrderedAlphabet::size_t
unsigned int size_t
Definition
OrderedAlphabet.h:87
DGtal::OrderedAlphabet::shiftRight
void shiftRight()
DGtal::OrderedAlphabet::reverseAround12
void reverseAround12()
DGtal::OrderedAlphabet::order
unsigned int order(char c) const
DGtal::OrderedAlphabet::firstLyndonFactorMod
void firstLyndonFactorMod(size_t &len, size_t &nb, const std::string &w, index_t s, index_t e) const
DGtal::OrderedAlphabet::reverse
void reverse()
DGtal::OrderedAlphabet::myFirst
char myFirst
Definition
OrderedAlphabet.h:345
DGtal::OrderedAlphabet::firstLyndonFactor
void firstLyndonFactor(size_t &len, size_t &nb, const std::string &w, index_t s, index_t e) const
DGtal::OrderedAlphabet::orderedAlphabet
std::string orderedAlphabet() const
DGtal::OrderedAlphabet::myOrder
unsigned int * myOrder
Definition
OrderedAlphabet.h:355
DGtal::OrderedAlphabet::selfDisplay
void selfDisplay(std::ostream &out) const
DGtal::OrderedAlphabet::lessOrEqual
bool lessOrEqual(char c1, char c2) const
DGtal::OrderedAlphabet::isValid
bool isValid() const
DGtal::OrderedAlphabet::equal
bool equal(char c1, char c2) const
DGtal::OrderedAlphabet::Integer
int Integer
Definition
OrderedAlphabet.h:77
DGtal::OrderedAlphabet::duvalPPMod
bool duvalPPMod(size_t &len, size_t &nb, const std::string &w, index_t s, index_t e) const
DGtal::OrderedAlphabet::duvalPPtoDSS
bool duvalPPtoDSS(size_t &len, size_t &nb, unsigned int &n1, unsigned int &n2, unsigned int &Lf1, unsigned int &Lf2, const std::string &w, index_t s, index_t e) const
DGtal::OrderedAlphabet::OrderedAlphabet
OrderedAlphabet(const OrderedAlphabet &other)
DGtal::OrderedAlphabet::OrderedAlphabet
OrderedAlphabet()
DGtal::OrderedAlphabet::operator=
OrderedAlphabet & operator=(const OrderedAlphabet &other)
DGtal::OrderedAlphabet::nextEdge
size_t nextEdge(size_t &nb_a1, size_t &nb_a2, std::string &w, index_t &s, bool &cvx)
DGtal
DGtal is the top-level namespace which contains all DGtal functions and types.
Definition
ClosedIntegerHalfPlane.h:49
DGtal::operator<<
std::ostream & operator<<(std::ostream &out, const ClosedIntegerHalfPlane< TSpace > &object)
src
DGtal
base
OrderedAlphabet.h
Generated on
for DGtal by
1.18.0