-
Notifications
You must be signed in to change notification settings - Fork 0
/
ClassLN.cpp
79 lines (66 loc) · 1.34 KB
/
ClassLN.cpp
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include "ClassLN.h"
void ClassLN::ReadText(const char* filename)
{
ClassLN res;
res.num = ReadTextFile(filename);
*this = res;
}
void ClassLN::ReadBin(const char* filename)
{
ClassLN res;
res.num = ReadBinFile(filename);
*this = res;
}
void ClassLN::WriteText(const char* filename)
{
WriteTextFile(filename, this->num);
}
void ClassLN::WriteBin(const char* filename)
{
WriteBinFile(filename, this->num);
}
void ClassLN::ClearMemory()
{
free((*this).num.pointer);
}
ClassLN& ClassLN::operator=(const ClassLN& rhv)
{
this->num = copy(rhv.num);
return *this;
}
ClassLN ClassLN::operator+(ClassLN &right)
{
ClassLN res;
res.num = ADD(this->num, right.num);
return res;
}
ClassLN ClassLN::operator-(ClassLN &right)
{
ClassLN res;
res.num = SUB(this->num, right.num);
return res;;
}
ClassLN ClassLN::operator*(ClassLN &right)
{
ClassLN res;
res.num = MUL(this->num, right.num);
return res;
}
ClassLN ClassLN::operator/(ClassLN &right)
{
ClassLN res;
res.num = DIV(this->num, right.num, 1);
return res;
}
ClassLN ClassLN::operator%(ClassLN &right)
{
ClassLN res;
res.num = DIV(this->num, right.num, 2);
return res;
}
ClassLN PowMod(ClassLN &base, ClassLN &exp, ClassLN &mod)
{
ClassLN res;
res.num = DEGREE(base.num, exp.num, mod.num);
return res;
}