This repository has been archived by the owner on Sep 21, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathComplexNumber.h
110 lines (109 loc) · 4.17 KB
/
ComplexNumber.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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#ifndef COMPLEXNUMBER_H
#define COMPLEXNUMBER_H
#pragma once
#include "stdafx.h"
class ComplexNumber {
public:
double Re;
double Im;
unsigned int complexNumberPrecision;
ComplexNumber();
~ComplexNumber();
ComplexNumber(double a, double b);
ComplexNumber(double a);
ComplexNumber(std::complex<double> z);
double modulus();
double arg();
ComplexNumber cis(double n);
ComplexNumber conjugate();
void randomize();
bool isIntegerComplexNumber();
ComplexNumber add(ComplexNumber a, ComplexNumber b);
ComplexNumber add(ComplexNumber a, double b);
ComplexNumber add(double b, ComplexNumber a);
ComplexNumber subtract(ComplexNumber a, ComplexNumber b);
ComplexNumber subtract(ComplexNumber a, double b);
ComplexNumber subtract(double b, ComplexNumber a);
ComplexNumber multiply(ComplexNumber a, ComplexNumber b);
ComplexNumber multiply(ComplexNumber a, double b);
ComplexNumber multiply(double b, ComplexNumber a);
ComplexNumber divide(ComplexNumber A, double a);
ComplexNumber divide(double a, ComplexNumber A);
ComplexNumber divide(ComplexNumber a, ComplexNumber b);
ComplexNumber inverse();
ComplexNumber exponent(ComplexNumber z, double a);
ComplexNumber exponent(double a);
ComplexNumber exponent(ComplexNumber z);
ComplexNumber& operator*=(ComplexNumber& rhs);
ComplexNumber& operator*=(double x);
ComplexNumber& operator/=(ComplexNumber& rhs);
ComplexNumber& operator/=(double x);
ComplexNumber& operator+=(ComplexNumber& rhs);
ComplexNumber& operator+=(double x);
ComplexNumber& operator-=(ComplexNumber& rhs);
ComplexNumber& operator-=(double x);
ComplexNumber& operator*(ComplexNumber& rhs);
ComplexNumber& operator*(double x);
ComplexNumber& operator/(ComplexNumber& rhs);
ComplexNumber& operator/(double x);
ComplexNumber& operator+(ComplexNumber& rhs);
ComplexNumber& operator+(double x);
ComplexNumber& operator-(ComplexNumber& rhs);
ComplexNumber& operator-(double x);
bool operator<(ComplexNumber& rhs);
bool operator<=(ComplexNumber& rhs);
bool operator>(ComplexNumber& rhs);
bool operator>=(ComplexNumber& rhs);
bool operator==(ComplexNumber& rhs);
bool operator!=(ComplexNumber& rhs);
friend std::wostream& operator<<(std::wostream& os, ComplexNumber& rhs);
double abs(ComplexNumber z);
ComplexNumber polar();
ComplexNumber dotProduct(ComplexNumber z1, ComplexNumber z2);
ComplexNumber crossProduct(ComplexNumber z1, ComplexNumber z2);
double angle(ComplexNumber z1, ComplexNumber z2);
std::complex<double> toComplex();
ComplexNumber toExponentialForm();
std::wstring toString();
std::wstring toStringBothParts();
std::wstring toStringExponentialForm();
void display();
void displayExponentialForm();
void printToFile(std::wstring filename);
void printToFileExponentialForm(std::wstring filename);
};
bool isNan(ComplexNumber z);
ComplexNumber abs(ComplexNumber z);
ComplexNumber ceil(ComplexNumber z);
ComplexNumber floor(ComplexNumber z);
ComplexNumber round(ComplexNumber z);
ComplexNumber sqrt(ComplexNumber z);
ComplexNumber log(ComplexNumber z);
ComplexNumber log2(ComplexNumber z);
ComplexNumber log10(ComplexNumber z);
ComplexNumber logarithm(ComplexNumber z, double b);
ComplexNumber cos(ComplexNumber z);
ComplexNumber cosh(ComplexNumber z);
ComplexNumber sin(ComplexNumber z);
ComplexNumber sinh(ComplexNumber z);
ComplexNumber tan(ComplexNumber z);
ComplexNumber tanh(ComplexNumber z);
ComplexNumber exp(ComplexNumber z);
std::complex<double> pow(std::complex<double> a, double b);
std::complex<double> pow(std::complex<double> a, std::complex<double> b);
ComplexNumber pow(ComplexNumber a, double b);
std::vector<ComplexNumber> roots(ComplexNumber a, double b);
ComplexNumber pow(ComplexNumber a, ComplexNumber b);
ComplexNumber cot(ComplexNumber z);
ComplexNumber csc(ComplexNumber z);
ComplexNumber sec(ComplexNumber z);
ComplexNumber acosh(ComplexNumber z);
ComplexNumber asin(ComplexNumber z);
ComplexNumber acos(ComplexNumber z);
ComplexNumber asinh(ComplexNumber z);
ComplexNumber acsch(ComplexNumber z);
ComplexNumber asech(ComplexNumber z);
ComplexNumber atan(ComplexNumber z);
ComplexNumber atanh(ComplexNumber z);
ComplexNumber acoth(ComplexNumber z);
#endif