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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
2a3
> # stałe dla CORDIC'A
11a13
> # stałe dla obliczania szeregiem Taylora
31c33,34
< # generyczna funkcja stosująca wzory redukcyjne, licząca sinusa
---
> # generyczna funkcja stosująca wzory redukcyjne, licząca sin(x)
> # za pomocą podanych funkcji sin_fun, cos_fun
32a36
> # sin(-x) = sin(x)
36a41
> # sin(π + x) = -sin(x)
39a45
> # sin(π/2 + x) = cos(x)
42a49
> # sin(π/2 - x) = cos(x)
49c56,57
< # generyczna funkcja stosująca wzory redukcyjne, licząca cosinusa
---
> # generyczna funkcja stosująca wzory redukcyjne, licząca cos(x)
> # za pomocą podanych funkcji sin_fun, cos_fun
50a59
> # cos(-x) = cos(x)
54a64
> # cos(π + x) = -cos(x)
57a68
> # cos(π/2 + x) = -sin(x)
60a72
> # cos(π/2 - x) = sin(x)
67c79
< # sin dla liczb rzeczywistych [taylor]
---
> # sin dla liczb rzeczywistych [Taylor]
72c84
< # cos dla liczb rzeczywistych [taylor]
---
> # cos dla liczb rzeczywistych [Taylor]
77c89
< # sinh [taylor]
---
> # sinh [Taylor]
78a91
> # sinh(1000) jest za duży by reprezentować go we Float64
87a101,102
> # dla dużych liczb korzystamy ze wzoru:
> # sinh(2r) = 2 * cosh(r) * sinh(r)
94c109
< # cosh [taylor]
---
> # cosh [Taylor]
95a111
> # cosh(1000) jest za duży by reprezentować go we Float64
101a118,119
> # dla dużych liczb korzystamy ze wzoru:
> # cosh(2r) = cosh(r)^2 + sinh(r)^2
110c128
< # sin dla liczb zespolonych [taylor]
---
> # sin dla liczb zespolonych [Taylor]
111a130
> # sin(a + bi) = sin(a) * cosh(b) + i(cos(a) * sinh(b))
116c135
< # cos dla liczb zespolonych [taylor]
---
> # cos dla liczb zespolonych [Taylor]
117a137
> # cos(a + bi) = cos(a) * cosh(b) - i(sin(a) * sinh(b))
122c142
< # funkcja dla użytkownika [taylor]
---
> # funkcja sin dla użytkownika [Taylor]
127c147
< # funkcja dla użytkownika [taylor]
---
> # funkcja cos dla użytkownika [Taylor]
132c152
< # funkcja dla użytkownika [taylor]
---
> # funkcja sinh dla użytkownika [Taylor]
137c157
< # funkcja dla użytkownika [taylor]
---
> # funkcja cosh dla użytkownika [Taylor]
142c162
< # preprocesing [cordic]
---
> # preprocesing [CORDIC]
158c178
< # preprocesing [cordic]
---
> # preprocesing [CORDIC]
168c188
< # funkcja licząca zarówno sin oraz cos [cordic]
---
> # funkcja licząca zarówno cosx oraz sinx algorytmem CORDIC
175a196
> # Proces iteracyjny algorytmu CORDIC
195c216
< # wyciąganie sin z approx_trig [cordic]
---
> # wyciąganie sin z approx_trig [CORDIC]
201c222
< # wyciąganie cos z approx_trig [cordic]
---
> # wyciąganie cos z approx_trig [CORDIC]
206c227
< # funkcja dla użytkownika [cordic]
---
> # funkcja sin dla użytkownika [CORDIC]
211c232
< # funkcja dla użytkownika [cordic]
---
> # funkcja cos dla użytkownika [CORDIC]
216c237,239
< # uruchamianie preprocesingu [cordic]
---
> # uruchamianie preprocesingu [CORDIC]
> # funkcja wypisuje kod w języku Julia na ekran, który potem po prostu wkleiliśmy do pliku źródłowego
> # oblicza stałe potrzebne do obliczania funkcji trygonometrycznych metodą CORDIC
223c246
< # sinh bez stosowania wzorów redukcyjnych [taylor]
---
> # sinh bez stosowania wzorów redukcyjnych [Taylor]
228c251
< # cosh bez stosowania wzorów redukcyjnych [taylor]
---
> # cosh bez stosowania wzorów redukcyjnych [Taylor]
233c256
< # sin bez stosowania wzorów redukcyjnych [taylor]
---
> # sin bez stosowania wzorów redukcyjnych [Taylor]
234a258,260
> # sin(a + bi) = sin(a) * cosh(b) + i(cos(a) * sinh(b))
> # wykonujemy odpowiednio (10a + 10), (10b + 10) iteracji - szereg Tylora
> # powinien dobrze przybliżać funkcje trygonometryczne dla takiej liczby wyrazów
236c262
< real_cos(x, 10*round(x)+10) * sinh_no_reduction(y, 10*round(x)+10))
---
> real_cos(x, 10*round(x)+10) * sinh_no_reduction(y, 10*round(y)+10))
239c265
< # zmiana liczby iteracji [taylor]
---
> # zmiana liczby iteracji [Taylor]
244c270
< # zmiana liczby iteracji [cordic]
---
> # zmiana liczby iteracji [CORDIC]
|