-
Notifications
You must be signed in to change notification settings - Fork 0
/
simple_complex.cpp
48 lines (34 loc) · 997 Bytes
/
simple_complex.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
#include "simple_complex.h"
#define _PI_ (3.141592653589793)
//2 db sajat fuggveny:
namespace scomplex
{
// komplex szam abszoluterteket meghatarozo fuggveny:
double COMPLEX::AbszolutErtek(const COMPLEX& z)
{
return sqrt( z.re * z.re + z.im * z.im );
}
//komplex szam 2db negyzetgyoke kozul az egyiket szolgaltato fuggveny:
//a Laguerre modszer kepleteiben szukseg van komplex szam negyzetgyokenek meghatarozasara,
//az ott szereplo keplet viszont kezeli a +- elojelet, (origo koroli 180 fokos forgatas azaz origora valo tukrozes)
//igy itt elegendo az egyik negyzetgyok meghatarozasa
COMPLEX COMPLEX::NegyzetGyok(const COMPLEX& z)
{
double x;
double y;
double Fi;
double hossz;
hossz = AbszolutErtek(z);
Fi = acos(z.re / hossz);
if(z.im < 0)
{
Fi = 2*_PI_ - Fi;
}
Fi = Fi / 2;
hossz = sqrt(hossz);
x = hossz * cos(Fi);
y = hossz * sin(Fi);
COMPLEX gyok(x,y);
return gyok;
}
}