DGtal
0.6.devel
Main Page
Related Pages
Modules
Namespaces
Data Structures
Examples
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Groups
Pages
examples
arithmetic
pattern.cpp
1
14
15
16
#include <cstdlib>
17
#include <cmath>
18
#include <iostream>
19
#include <iomanip>
20
#include <string>
21
#include "DGtal/arithmetic/LighterSternBrocot.h"
22
#include "DGtal/arithmetic/Pattern.h"
24
26
27
using namespace
DGtal;
28
30
31
void
usage(
int
,
char
** argv )
32
{
33
std::cerr <<
"Usage: "
<< argv[ 0 ] <<
" <p> <q> [SUB]"
<< std::endl;
34
std::cerr <<
"\t - computes the pattern of slope p / q and displays it."
<< std::endl;
35
std::cerr <<
"\t - the optional [SUB] parameter displays the pattern with its recursive Berstel decomposition."
<< std::endl;
36
}
37
41
int
main(
int
argc,
char
** argv )
42
{
43
if
( argc < 3 )
44
{
45
usage( argc, argv );
46
return
1;
47
}
48
50
typedef
DGtal::int32_t
Integer
;
51
typedef
DGtal::int32_t
Quotient;
52
typedef
LighterSternBrocot<Integer, Quotient, StdMapRebinder>
SB;
// the type of the Stern-Brocot tree
53
typedef
SB::Fraction Fraction;
// the type for fractions
54
typedef
Pattern<Fraction>
MyPattern;
// the type for patterns
56
58
DGtal::int32_t
p = atoi( argv[ 1 ] );
59
DGtal::int32_t
q = atoi( argv[ 2 ] );
60
MyPattern pattern( p, q );
62
64
bool
sub = ( argc > 3 ) && ( std::string( argv[ 3 ] ) ==
"SUB"
);
65
std::cout << ( ! sub ? pattern.rE() : pattern.rEs(
"(|)"
) ) << std::endl;
67
return
0;
68
}
69
Generated on Wed Dec 19 2012 19:10:32 for DGtal by
1.8.1.1