-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathalvinfraction.h
63 lines (50 loc) · 1.94 KB
/
alvinfraction.h
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
/*
Copyright (C) 2014, 2015, 2016
Rafael Guglielmetti, [email protected]
*/
/*
This file is part of AlVin.
CoxIter is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
CoxIter is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with AlVin. If not, see <http://www.gnu.org/licenses/>.
*/
/*!
* \file alvinfraction.h
* \author Rafael Guglielmetti
*
* \class AlVinFraction
* \brief This class represents one fraction x0^2 / (e,e)
*/
#ifndef ALVINFRACTION_H
#define ALVINFRACTION_H
#include "algebraicinteger.h"
class AlVinFraction {
public: // For simplicity, variables are public be are meant to be read-only.
// Careful.
AlgebraicInteger *aiX0; ///< x_0
AlgebraicInteger *aiNorm2; ///< (e,e)
AlgebraicInteger
*aiNumerator; ///< When normalized with respect to the biggest possible
///< value for (e,e): x_0^2 / (e,e) = ( x_0^2 * (e_max,
///< e_max)/(e,e) ) / (e_max, e_max)
public:
AlVinFraction(AlgebraicInteger *aiX0, AlgebraicInteger *aiNorm2,
AlgebraicInteger *aiNumerator);
~AlVinFraction();
bool operator==(AlVinFraction const &) const;
bool operator!=(AlVinFraction const &) const;
friend bool operator<(const AlVinFraction &f1, const AlVinFraction &f2);
friend ostream &operator<<(ostream &, AlVinFraction const &);
};
/*! \fn isLessThanPtrAlVinFraction( const AlVinFraction* a, const
* AlVinFraction* b ) \brief Check if *a < *b
*/
bool isLessThanPtrAlVinFraction(const AlVinFraction *a, const AlVinFraction *b);
#endif // ALVINFRACTION_H