19 #include <gtest/gtest.h>
26 #define EPS_FRESNEL 1e-14
31 double fresnel_s, fresnel_c;
33 fresnel(-40.0, fresnel_s, fresnel_c);
34 EXPECT_LE(fabs(fresnel_s - -0.4920422537902731),
EPS_FRESNEL);
35 EXPECT_LE(fabs(fresnel_c - -0.4999984168574456),
EPS_FRESNEL);
37 fresnel(-39.5, fresnel_s, fresnel_c);
38 EXPECT_LE(fabs(fresnel_s - -0.49255430877943795),
EPS_FRESNEL);
39 EXPECT_LE(fabs(fresnel_c - -0.5030823268038184),
EPS_FRESNEL);
41 fresnel(-39.0, fresnel_s, fresnel_c);
42 EXPECT_LE(fabs(fresnel_s - -0.49999829192809686),
EPS_FRESNEL);
43 EXPECT_LE(fabs(fresnel_c - -0.5081617908810524),
EPS_FRESNEL);
45 fresnel(-38.5, fresnel_s, fresnel_c);
46 EXPECT_LE(fabs(fresnel_s - -0.5076391196617077),
EPS_FRESNEL);
47 EXPECT_LE(fabs(fresnel_c - -0.496837694806001),
EPS_FRESNEL);
49 fresnel(-38.0, fresnel_s, fresnel_c);
50 EXPECT_LE(fabs(fresnel_s - -0.49162342526889974),
EPS_FRESNEL);
51 EXPECT_LE(fabs(fresnel_c - -0.499998153500694),
EPS_FRESNEL);
53 fresnel(-37.5, fresnel_s, fresnel_c);
54 EXPECT_LE(fabs(fresnel_s - -0.5078428670985601),
EPS_FRESNEL);
55 EXPECT_LE(fabs(fresnel_c - -0.49675345773238233),
EPS_FRESNEL);
57 fresnel(-37.0, fresnel_s, fresnel_c);
58 EXPECT_LE(fabs(fresnel_s - -0.49999799970186465),
EPS_FRESNEL);
59 EXPECT_LE(fabs(fresnel_c - -0.5086029685015766),
EPS_FRESNEL);
61 fresnel(-36.5, fresnel_s, fresnel_c);
62 EXPECT_LE(fabs(fresnel_s - -0.49194221801222643),
EPS_FRESNEL);
63 EXPECT_LE(fabs(fresnel_c - -0.5033353872735516),
EPS_FRESNEL);
65 fresnel(-36.0, fresnel_s, fresnel_c);
66 EXPECT_LE(fabs(fresnel_s - -0.4911580603172578),
EPS_FRESNEL);
67 EXPECT_LE(fabs(fresnel_c - -0.4999978283373622),
EPS_FRESNEL);
69 fresnel(-35.5, fresnel_s, fresnel_c);
70 EXPECT_LE(fabs(fresnel_s - -0.491715191566429),
EPS_FRESNEL);
71 EXPECT_LE(fabs(fresnel_c - -0.5034292286980901),
EPS_FRESNEL);
73 fresnel(-35.0, fresnel_s, fresnel_c);
74 EXPECT_LE(fabs(fresnel_s - -0.49999763682609794),
EPS_FRESNEL);
75 EXPECT_LE(fabs(fresnel_c - -0.5090945663345068),
EPS_FRESNEL);
77 fresnel(-34.5, fresnel_s, fresnel_c);
78 EXPECT_LE(fabs(fresnel_s - -0.5085250000581694),
EPS_FRESNEL);
79 EXPECT_LE(fabs(fresnel_c - -0.4964715000692896),
EPS_FRESNEL);
81 fresnel(-34.0, fresnel_s, fresnel_c);
82 EXPECT_LE(fabs(fresnel_s - -0.4906379466534976),
EPS_FRESNEL);
83 EXPECT_LE(fabs(fresnel_c - -0.49999742211814463),
EPS_FRESNEL);
85 fresnel(-33.5, fresnel_s, fresnel_c);
86 EXPECT_LE(fabs(fresnel_s - -0.5087795363583066),
EPS_FRESNEL);
87 EXPECT_LE(fabs(fresnel_c - -0.4963663140599485),
EPS_FRESNEL);
89 fresnel(-33.0, fresnel_s, fresnel_c);
90 EXPECT_LE(fabs(fresnel_s - -0.4999971805923199),
EPS_FRESNEL);
91 EXPECT_LE(fabs(fresnel_c - -0.5096457516544846),
EPS_FRESNEL);
93 fresnel(-32.5, fresnel_s, fresnel_c);
94 EXPECT_LE(fabs(fresnel_s - -0.4909502579162105),
EPS_FRESNEL);
95 EXPECT_LE(fabs(fresnel_c - -0.5037453311765392),
EPS_FRESNEL);
97 fresnel(-32.0, fresnel_s, fresnel_c);
98 EXPECT_LE(fabs(fresnel_s - -0.49005281894025865),
EPS_FRESNEL);
99 EXPECT_LE(fabs(fresnel_c - -0.4999969079273435),
EPS_FRESNEL);
101 fresnel(-31.5, fresnel_s, fresnel_c);
102 EXPECT_LE(fabs(fresnel_s - -0.49066288968973953),
EPS_FRESNEL);
103 EXPECT_LE(fabs(fresnel_c - -0.5038640489726605),
EPS_FRESNEL);
105 fresnel(-31.0, fresnel_s, fresnel_c);
106 EXPECT_LE(fabs(fresnel_s - -0.49999659893870957),
EPS_FRESNEL);
107 EXPECT_LE(fabs(fresnel_c - -0.510268057465068),
EPS_FRESNEL);
109 fresnel(-30.5, fresnel_s, fresnel_c);
110 EXPECT_LE(fabs(fresnel_s - -0.5096433300548732),
EPS_FRESNEL);
111 EXPECT_LE(fabs(fresnel_c - -0.4960094672174812),
EPS_FRESNEL);
113 fresnel(-30.0, fresnel_s, fresnel_c);
114 EXPECT_LE(fabs(fresnel_s - -0.4893896744421938),
EPS_FRESNEL);
115 EXPECT_LE(fabs(fresnel_c - -0.4999962473706091),
EPS_FRESNEL);
117 fresnel(-29.5, fresnel_s, fresnel_c);
118 EXPECT_LE(fabs(fresnel_s - -0.5099703195139875),
EPS_FRESNEL);
119 EXPECT_LE(fabs(fresnel_c - -0.49587443030573236),
EPS_FRESNEL);
121 fresnel(-29.0, fresnel_s, fresnel_c);
122 EXPECT_LE(fabs(fresnel_s - -0.4999958456285237),
EPS_FRESNEL);
123 EXPECT_LE(fabs(fresnel_c - -0.5109761982547072),
EPS_FRESNEL);
125 fresnel(-28.5, fresnel_s, fresnel_c);
126 EXPECT_LE(fabs(fresnel_s - -0.4896797336947276),
EPS_FRESNEL);
127 EXPECT_LE(fabs(fresnel_c - -0.5042700567697976),
EPS_FRESNEL);
129 fresnel(-28.0, fresnel_s, fresnel_c);
130 EXPECT_LE(fabs(fresnel_s - -0.4886317954009967),
EPS_FRESNEL);
131 EXPECT_LE(fabs(fresnel_c - -0.4999953844327101),
EPS_FRESNEL);
133 fresnel(-27.5, fresnel_s, fresnel_c);
134 EXPECT_LE(fabs(fresnel_s - -0.4893043235007156),
EPS_FRESNEL);
135 EXPECT_LE(fabs(fresnel_c - -0.5044250209259784),
EPS_FRESNEL);
137 fresnel(-27.0, fresnel_s, fresnel_c);
138 EXPECT_LE(fabs(fresnel_s - -0.4999948523652942),
EPS_FRESNEL);
139 EXPECT_LE(fabs(fresnel_c - -0.5117892483008945),
EPS_FRESNEL);
141 fresnel(-26.5, fresnel_s, fresnel_c);
142 EXPECT_LE(fabs(fresnel_s - -0.5110994347652468),
EPS_FRESNEL);
143 EXPECT_LE(fabs(fresnel_c - -0.49540835671456757),
EPS_FRESNEL);
145 fresnel(-26.0, fresnel_s, fresnel_c);
146 EXPECT_LE(fabs(fresnel_s - -0.4877573202131747),
EPS_FRESNEL);
147 EXPECT_LE(fabs(fresnel_c - -0.49999423527272),
EPS_FRESNEL);
149 fresnel(-25.5, fresnel_s, fresnel_c);
150 EXPECT_LE(fabs(fresnel_s - -0.5115348786861477),
EPS_FRESNEL);
151 EXPECT_LE(fabs(fresnel_c - -0.49522871078678943),
EPS_FRESNEL);
153 fresnel(-25.0, fresnel_s, fresnel_c);
154 EXPECT_LE(fabs(fresnel_s - -0.49999351546947596),
EPS_FRESNEL);
155 EXPECT_LE(fabs(fresnel_c - -0.5127323855397702),
EPS_FRESNEL);
157 fresnel(-24.5, fresnel_s, fresnel_c);
158 EXPECT_LE(fabs(fresnel_s - -0.4879941087024924),
EPS_FRESNEL);
159 EXPECT_LE(fabs(fresnel_c - -0.5049655456487026),
EPS_FRESNEL);
161 fresnel(-24.0, fresnel_s, fresnel_c);
162 EXPECT_LE(fabs(fresnel_s - -0.48673710022664085),
EPS_FRESNEL);
163 EXPECT_LE(fabs(fresnel_c - -0.499992670665544),
EPS_FRESNEL);
165 fresnel(-23.5, fresnel_s, fresnel_c);
166 EXPECT_LE(fabs(fresnel_s - -0.4874829827132583),
EPS_FRESNEL);
167 EXPECT_LE(fabs(fresnel_c - -0.5051762678838345),
EPS_FRESNEL);
169 fresnel(-23.0, fresnel_s, fresnel_c);
170 EXPECT_LE(fabs(fresnel_s - -0.4999916725048582),
EPS_FRESNEL);
171 EXPECT_LE(fabs(fresnel_c - -0.5138395452365079),
EPS_FRESNEL);
173 fresnel(-22.5, fresnel_s, fresnel_c);
174 EXPECT_LE(fabs(fresnel_s - -0.5130736102268015),
EPS_FRESNEL);
175 EXPECT_LE(fabs(fresnel_c - -0.4945943613060027),
EPS_FRESNEL);
177 fresnel(-22.0, fresnel_s, fresnel_c);
178 EXPECT_LE(fabs(fresnel_s - -0.4855313875836048),
EPS_FRESNEL);
179 EXPECT_LE(fabs(fresnel_c - -0.4999904845486192),
EPS_FRESNEL);
181 fresnel(-21.5, fresnel_s, fresnel_c);
182 EXPECT_LE(fabs(fresnel_s - -0.5136820209670363),
EPS_FRESNEL);
183 EXPECT_LE(fabs(fresnel_c - -0.49434375620493276),
EPS_FRESNEL);
185 fresnel(-21.0, fresnel_s, fresnel_c);
186 EXPECT_LE(fabs(fresnel_s - -0.4999890594544999),
EPS_FRESNEL);
187 EXPECT_LE(fabs(fresnel_c - -0.5151575899376805),
EPS_FRESNEL);
189 fresnel(-20.5, fresnel_s, fresnel_c);
190 EXPECT_LE(fabs(fresnel_s - -0.48565015873667594),
EPS_FRESNEL);
191 EXPECT_LE(fabs(fresnel_c - -0.5059311691275604),
EPS_FRESNEL);
193 fresnel(-20.0, fresnel_s, fresnel_c);
194 EXPECT_LE(fabs(fresnel_s - -0.4840845359259539),
EPS_FRESNEL);
195 EXPECT_LE(fabs(fresnel_c - -0.49998733497234443),
EPS_FRESNEL);
197 fresnel(-19.5, fresnel_s, fresnel_c);
198 EXPECT_LE(fabs(fresnel_s - -0.4849137774794187),
EPS_FRESNEL);
199 EXPECT_LE(fabs(fresnel_c - -0.5062341276891209),
EPS_FRESNEL);
201 fresnel(-19.0, fresnel_s, fresnel_c);
202 EXPECT_LE(fabs(fresnel_s - -0.4999852281670667),
EPS_FRESNEL);
203 EXPECT_LE(fabs(fresnel_c - -0.5167531128300553),
EPS_FRESNEL);
205 fresnel(-18.5, fresnel_s, fresnel_c);
206 EXPECT_LE(fabs(fresnel_s - -0.5159022981370349),
EPS_FRESNEL);
207 EXPECT_LE(fabs(fresnel_c - -0.4934303730848653),
EPS_FRESNEL);
209 fresnel(-18.0, fresnel_s, fresnel_c);
210 EXPECT_LE(fabs(fresnel_s - -0.48231616863711996),
EPS_FRESNEL);
211 EXPECT_LE(fabs(fresnel_c - -0.49998262693469964),
EPS_FRESNEL);
213 fresnel(-17.5, fresnel_s, fresnel_c);
214 EXPECT_LE(fabs(fresnel_s - -0.5168117510006868),
EPS_FRESNEL);
215 EXPECT_LE(fabs(fresnel_c - -0.4930568074654182),
EPS_FRESNEL);
217 fresnel(-17.0, fresnel_s, fresnel_c);
218 EXPECT_LE(fabs(fresnel_s - -0.4999793772969549),
EPS_FRESNEL);
219 EXPECT_LE(fabs(fresnel_c - -0.5187240428109737),
EPS_FRESNEL);
221 fresnel(-16.5, fresnel_s, fresnel_c);
222 EXPECT_LE(fabs(fresnel_s - -0.4821684121023745),
EPS_FRESNEL);
223 EXPECT_LE(fabs(fresnel_c - -0.5073616723760539),
EPS_FRESNEL);
225 fresnel(-16.0, fresnel_s, fresnel_c);
226 EXPECT_LE(fabs(fresnel_s - -0.48010572438090104),
EPS_FRESNEL);
227 EXPECT_LE(fabs(fresnel_c - -0.4999752639565001),
EPS_FRESNEL);
229 fresnel(-15.5, fresnel_s, fresnel_c);
230 EXPECT_LE(fabs(fresnel_s - -0.4810167854210039),
EPS_FRESNEL);
231 EXPECT_LE(fabs(fresnel_c - -0.5078336554052517),
EPS_FRESNEL);
233 fresnel(-15.0, fresnel_s, fresnel_c);
234 EXPECT_LE(fabs(fresnel_s - -0.4999699798097023),
EPS_FRESNEL);
235 EXPECT_LE(fabs(fresnel_c - -0.5212205316743734),
EPS_FRESNEL);
237 fresnel(-14.5, fresnel_s, fresnel_c);
238 EXPECT_LE(fabs(fresnel_s - -0.5202939571560238),
EPS_FRESNEL);
239 EXPECT_LE(fabs(fresnel_c - -0.49162993982669234),
EPS_FRESNEL);
241 fresnel(-14.0, fresnel_s, fresnel_c);
242 EXPECT_LE(fabs(fresnel_s - -0.4772637594418203),
EPS_FRESNEL);
243 EXPECT_LE(fabs(fresnel_c - -0.49996307683096536),
EPS_FRESNEL);
245 fresnel(-13.5, fresnel_s, fresnel_c);
246 EXPECT_LE(fabs(fresnel_s - -0.521799262187777),
EPS_FRESNEL);
247 EXPECT_LE(fabs(fresnel_c - -0.4910150221176157),
EPS_FRESNEL);
249 fresnel(-13.0, fresnel_s, fresnel_c);
250 EXPECT_LE(fabs(fresnel_s - -0.4999538844819125),
EPS_FRESNEL);
251 EXPECT_LE(fabs(fresnel_c - -0.5244851153043584),
EPS_FRESNEL);
253 fresnel(-12.5, fresnel_s, fresnel_c);
254 EXPECT_LE(fabs(fresnel_s - -0.4764540427410991),
EPS_FRESNEL);
255 EXPECT_LE(fabs(fresnel_c - -0.5096969076697003),
EPS_FRESNEL);
257 fresnel(-12.0, fresnel_s, fresnel_c);
258 EXPECT_LE(fabs(fresnel_s - -0.47347456491993545),
EPS_FRESNEL);
259 EXPECT_LE(fabs(fresnel_c - -0.49994136935201117),
EPS_FRESNEL);
261 fresnel(-11.5, fresnel_s, fresnel_c);
262 EXPECT_LE(fabs(fresnel_s - -0.47440277911222917),
EPS_FRESNEL);
263 EXPECT_LE(fabs(fresnel_c - -0.5105306129965809),
EPS_FRESNEL);
265 fresnel(-11.0, fresnel_s, fresnel_c);
266 EXPECT_LE(fabs(fresnel_s - -0.4999238837937511),
EPS_FRESNEL);
267 EXPECT_LE(fabs(fresnel_c - -0.5289366617557965),
EPS_FRESNEL);
269 fresnel(-10.5, fresnel_s, fresnel_c);
270 EXPECT_LE(fabs(fresnel_s - -0.5280404079981299),
EPS_FRESNEL);
271 EXPECT_LE(fabs(fresnel_c - -0.4884800073027095),
EPS_FRESNEL);
273 fresnel(-10.0, fresnel_s, fresnel_c);
274 EXPECT_LE(fabs(fresnel_s - -0.46816997858488224),
EPS_FRESNEL);
275 EXPECT_LE(fabs(fresnel_c - -0.49989869420551575),
EPS_FRESNEL);
277 fresnel(-9.5, fresnel_s, fresnel_c);
278 EXPECT_LE(fabs(fresnel_s - -0.5309998491513985),
EPS_FRESNEL);
279 EXPECT_LE(fabs(fresnel_c - -0.4872873310265677),
EPS_FRESNEL);
281 fresnel(-9.0, fresnel_s, fresnel_c);
282 EXPECT_LE(fabs(fresnel_s - -0.4998610456296846),
EPS_FRESNEL);
283 EXPECT_LE(fabs(fresnel_c - -0.5353661274681198),
EPS_FRESNEL);
285 fresnel(-8.5, fresnel_s, fresnel_c);
286 EXPECT_LE(fabs(fresnel_s - -0.46534124898107443),
EPS_FRESNEL);
287 EXPECT_LE(fabs(fresnel_c - -0.5141775985837332),
EPS_FRESNEL);
289 fresnel(-8.0, fresnel_s, fresnel_c);
290 EXPECT_LE(fabs(fresnel_s - -0.46021421439301446),
EPS_FRESNEL);
291 EXPECT_LE(fabs(fresnel_c - -0.499802180377197),
EPS_FRESNEL);
293 fresnel(-7.5, fresnel_s, fresnel_c);
294 EXPECT_LE(fabs(fresnel_s - -0.4607012329468305),
EPS_FRESNEL);
295 EXPECT_LE(fabs(fresnel_c - -0.5160182501523362),
EPS_FRESNEL);
297 fresnel(-7.0, fresnel_s, fresnel_c);
298 EXPECT_LE(fabs(fresnel_s - -0.4997047894534464),
EPS_FRESNEL);
299 EXPECT_LE(fabs(fresnel_c - -0.5454670925469698),
EPS_FRESNEL);
301 fresnel(-6.5, fresnel_s, fresnel_c);
302 EXPECT_LE(fabs(fresnel_s - -0.5453764552432336),
EPS_FRESNEL);
303 EXPECT_LE(fabs(fresnel_c - -0.48160345989096404),
EPS_FRESNEL);
305 fresnel(-6.0, fresnel_s, fresnel_c);
306 EXPECT_LE(fabs(fresnel_s - -0.4469607612369303),
EPS_FRESNEL);
307 EXPECT_LE(fabs(fresnel_c - -0.499531467855501),
EPS_FRESNEL);
309 fresnel(-5.5, fresnel_s, fresnel_c);
310 EXPECT_LE(fabs(fresnel_s - -0.5536840627790217),
EPS_FRESNEL);
311 EXPECT_LE(fabs(fresnel_c - -0.4784214149253144),
EPS_FRESNEL);
313 fresnel(-5.0, fresnel_s, fresnel_c);
314 EXPECT_LE(fabs(fresnel_s - -0.4991913819171169),
EPS_FRESNEL);
315 EXPECT_LE(fabs(fresnel_c - -0.5636311887040122),
EPS_FRESNEL);
317 fresnel(-4.5, fresnel_s, fresnel_c);
318 EXPECT_LE(fabs(fresnel_s - -0.43427297504870355),
EPS_FRESNEL);
319 EXPECT_LE(fabs(fresnel_c - -0.5260259150535386),
EPS_FRESNEL);
321 fresnel(-4.0, fresnel_s, fresnel_c);
322 EXPECT_LE(fabs(fresnel_s - -0.42051575424692844),
EPS_FRESNEL);
323 EXPECT_LE(fabs(fresnel_c - -0.49842603303817756),
EPS_FRESNEL);
325 fresnel(-3.5, fresnel_s, fresnel_c);
326 EXPECT_LE(fabs(fresnel_s - -0.41524801197243744),
EPS_FRESNEL);
327 EXPECT_LE(fabs(fresnel_c - -0.5325724350280007),
EPS_FRESNEL);
329 fresnel(-3.0, fresnel_s, fresnel_c);
330 EXPECT_LE(fabs(fresnel_s - -0.49631299896737496),
EPS_FRESNEL);
331 EXPECT_LE(fabs(fresnel_c - -0.6057207892976857),
EPS_FRESNEL);
333 fresnel(-2.5, fresnel_s, fresnel_c);
334 EXPECT_LE(fabs(fresnel_s - -0.6191817558195929),
EPS_FRESNEL);
335 EXPECT_LE(fabs(fresnel_c - -0.45741300964177706),
EPS_FRESNEL);
337 fresnel(-2.0, fresnel_s, fresnel_c);
338 EXPECT_LE(fabs(fresnel_s - -0.34341567836369824),
EPS_FRESNEL);
339 EXPECT_LE(fabs(fresnel_c - -0.48825340607534073),
EPS_FRESNEL);
341 fresnel(-1.5, fresnel_s, fresnel_c);
342 EXPECT_LE(fabs(fresnel_s - -0.697504960082093),
EPS_FRESNEL);
343 EXPECT_LE(fabs(fresnel_c - -0.44526117603982157),
EPS_FRESNEL);
345 fresnel(-1.0, fresnel_s, fresnel_c);
346 EXPECT_LE(fabs(fresnel_s - -0.4382591473903547),
EPS_FRESNEL);
347 EXPECT_LE(fabs(fresnel_c - -0.779893400376823),
EPS_FRESNEL);
349 fresnel(-0.5, fresnel_s, fresnel_c);
350 EXPECT_LE(fabs(fresnel_s - -0.06473243285999929),
EPS_FRESNEL);
351 EXPECT_LE(fabs(fresnel_c - -0.4923442258714464),
EPS_FRESNEL);
353 fresnel(0.0, fresnel_s, fresnel_c);
357 fresnel(0.5, fresnel_s, fresnel_c);
358 EXPECT_LE(fabs(fresnel_s - 0.06473243285999929),
EPS_FRESNEL);
359 EXPECT_LE(fabs(fresnel_c - 0.4923442258714464),
EPS_FRESNEL);
361 fresnel(1.0, fresnel_s, fresnel_c);
362 EXPECT_LE(fabs(fresnel_s - 0.4382591473903547),
EPS_FRESNEL);
363 EXPECT_LE(fabs(fresnel_c - 0.779893400376823),
EPS_FRESNEL);
365 fresnel(1.5, fresnel_s, fresnel_c);
366 EXPECT_LE(fabs(fresnel_s - 0.697504960082093),
EPS_FRESNEL);
367 EXPECT_LE(fabs(fresnel_c - 0.44526117603982157),
EPS_FRESNEL);
369 fresnel(2.0, fresnel_s, fresnel_c);
370 EXPECT_LE(fabs(fresnel_s - 0.34341567836369824),
EPS_FRESNEL);
371 EXPECT_LE(fabs(fresnel_c - 0.48825340607534073),
EPS_FRESNEL);
373 fresnel(2.5, fresnel_s, fresnel_c);
374 EXPECT_LE(fabs(fresnel_s - 0.6191817558195929),
EPS_FRESNEL);
375 EXPECT_LE(fabs(fresnel_c - 0.45741300964177706),
EPS_FRESNEL);
377 fresnel(3.0, fresnel_s, fresnel_c);
378 EXPECT_LE(fabs(fresnel_s - 0.49631299896737496),
EPS_FRESNEL);
379 EXPECT_LE(fabs(fresnel_c - 0.6057207892976857),
EPS_FRESNEL);
381 fresnel(3.5, fresnel_s, fresnel_c);
382 EXPECT_LE(fabs(fresnel_s - 0.41524801197243744),
EPS_FRESNEL);
383 EXPECT_LE(fabs(fresnel_c - 0.5325724350280007),
EPS_FRESNEL);
385 fresnel(4.0, fresnel_s, fresnel_c);
386 EXPECT_LE(fabs(fresnel_s - 0.42051575424692844),
EPS_FRESNEL);
387 EXPECT_LE(fabs(fresnel_c - 0.49842603303817756),
EPS_FRESNEL);
389 fresnel(4.5, fresnel_s, fresnel_c);
390 EXPECT_LE(fabs(fresnel_s - 0.43427297504870355),
EPS_FRESNEL);
391 EXPECT_LE(fabs(fresnel_c - 0.5260259150535386),
EPS_FRESNEL);
393 fresnel(5.0, fresnel_s, fresnel_c);
394 EXPECT_LE(fabs(fresnel_s - 0.4991913819171169),
EPS_FRESNEL);
395 EXPECT_LE(fabs(fresnel_c - 0.5636311887040122),
EPS_FRESNEL);
397 fresnel(5.5, fresnel_s, fresnel_c);
398 EXPECT_LE(fabs(fresnel_s - 0.5536840627790217),
EPS_FRESNEL);
399 EXPECT_LE(fabs(fresnel_c - 0.4784214149253144),
EPS_FRESNEL);
401 fresnel(6.0, fresnel_s, fresnel_c);
402 EXPECT_LE(fabs(fresnel_s - 0.4469607612369303),
EPS_FRESNEL);
403 EXPECT_LE(fabs(fresnel_c - 0.499531467855501),
EPS_FRESNEL);
405 fresnel(6.5, fresnel_s, fresnel_c);
406 EXPECT_LE(fabs(fresnel_s - 0.5453764552432336),
EPS_FRESNEL);
407 EXPECT_LE(fabs(fresnel_c - 0.48160345989096404),
EPS_FRESNEL);
409 fresnel(7.0, fresnel_s, fresnel_c);
410 EXPECT_LE(fabs(fresnel_s - 0.4997047894534464),
EPS_FRESNEL);
411 EXPECT_LE(fabs(fresnel_c - 0.5454670925469698),
EPS_FRESNEL);
413 fresnel(7.5, fresnel_s, fresnel_c);
414 EXPECT_LE(fabs(fresnel_s - 0.4607012329468305),
EPS_FRESNEL);
415 EXPECT_LE(fabs(fresnel_c - 0.5160182501523362),
EPS_FRESNEL);
417 fresnel(8.0, fresnel_s, fresnel_c);
418 EXPECT_LE(fabs(fresnel_s - 0.46021421439301446),
EPS_FRESNEL);
419 EXPECT_LE(fabs(fresnel_c - 0.499802180377197),
EPS_FRESNEL);
421 fresnel(8.5, fresnel_s, fresnel_c);
422 EXPECT_LE(fabs(fresnel_s - 0.46534124898107443),
EPS_FRESNEL);
423 EXPECT_LE(fabs(fresnel_c - 0.5141775985837332),
EPS_FRESNEL);
425 fresnel(9.0, fresnel_s, fresnel_c);
426 EXPECT_LE(fabs(fresnel_s - 0.4998610456296846),
EPS_FRESNEL);
427 EXPECT_LE(fabs(fresnel_c - 0.5353661274681198),
EPS_FRESNEL);
429 fresnel(9.5, fresnel_s, fresnel_c);
430 EXPECT_LE(fabs(fresnel_s - 0.5309998491513985),
EPS_FRESNEL);
431 EXPECT_LE(fabs(fresnel_c - 0.4872873310265677),
EPS_FRESNEL);
433 fresnel(10.0, fresnel_s, fresnel_c);
434 EXPECT_LE(fabs(fresnel_s - 0.46816997858488224),
EPS_FRESNEL);
435 EXPECT_LE(fabs(fresnel_c - 0.49989869420551575),
EPS_FRESNEL);
437 fresnel(10.5, fresnel_s, fresnel_c);
438 EXPECT_LE(fabs(fresnel_s - 0.5280404079981299),
EPS_FRESNEL);
439 EXPECT_LE(fabs(fresnel_c - 0.4884800073027095),
EPS_FRESNEL);
441 fresnel(11.0, fresnel_s, fresnel_c);
442 EXPECT_LE(fabs(fresnel_s - 0.4999238837937511),
EPS_FRESNEL);
443 EXPECT_LE(fabs(fresnel_c - 0.5289366617557965),
EPS_FRESNEL);
445 fresnel(11.5, fresnel_s, fresnel_c);
446 EXPECT_LE(fabs(fresnel_s - 0.47440277911222917),
EPS_FRESNEL);
447 EXPECT_LE(fabs(fresnel_c - 0.5105306129965809),
EPS_FRESNEL);
449 fresnel(12.0, fresnel_s, fresnel_c);
450 EXPECT_LE(fabs(fresnel_s - 0.47347456491993545),
EPS_FRESNEL);
451 EXPECT_LE(fabs(fresnel_c - 0.49994136935201117),
EPS_FRESNEL);
453 fresnel(12.5, fresnel_s, fresnel_c);
454 EXPECT_LE(fabs(fresnel_s - 0.4764540427410991),
EPS_FRESNEL);
455 EXPECT_LE(fabs(fresnel_c - 0.5096969076697003),
EPS_FRESNEL);
457 fresnel(13.0, fresnel_s, fresnel_c);
458 EXPECT_LE(fabs(fresnel_s - 0.4999538844819125),
EPS_FRESNEL);
459 EXPECT_LE(fabs(fresnel_c - 0.5244851153043584),
EPS_FRESNEL);
461 fresnel(13.5, fresnel_s, fresnel_c);
462 EXPECT_LE(fabs(fresnel_s - 0.521799262187777),
EPS_FRESNEL);
463 EXPECT_LE(fabs(fresnel_c - 0.4910150221176157),
EPS_FRESNEL);
465 fresnel(14.0, fresnel_s, fresnel_c);
466 EXPECT_LE(fabs(fresnel_s - 0.4772637594418203),
EPS_FRESNEL);
467 EXPECT_LE(fabs(fresnel_c - 0.49996307683096536),
EPS_FRESNEL);
469 fresnel(14.5, fresnel_s, fresnel_c);
470 EXPECT_LE(fabs(fresnel_s - 0.5202939571560238),
EPS_FRESNEL);
471 EXPECT_LE(fabs(fresnel_c - 0.49162993982669234),
EPS_FRESNEL);
473 fresnel(15.0, fresnel_s, fresnel_c);
474 EXPECT_LE(fabs(fresnel_s - 0.4999699798097023),
EPS_FRESNEL);
475 EXPECT_LE(fabs(fresnel_c - 0.5212205316743734),
EPS_FRESNEL);
477 fresnel(15.5, fresnel_s, fresnel_c);
478 EXPECT_LE(fabs(fresnel_s - 0.4810167854210039),
EPS_FRESNEL);
479 EXPECT_LE(fabs(fresnel_c - 0.5078336554052517),
EPS_FRESNEL);
481 fresnel(16.0, fresnel_s, fresnel_c);
482 EXPECT_LE(fabs(fresnel_s - 0.48010572438090104),
EPS_FRESNEL);
483 EXPECT_LE(fabs(fresnel_c - 0.4999752639565001),
EPS_FRESNEL);
485 fresnel(16.5, fresnel_s, fresnel_c);
486 EXPECT_LE(fabs(fresnel_s - 0.4821684121023745),
EPS_FRESNEL);
487 EXPECT_LE(fabs(fresnel_c - 0.5073616723760539),
EPS_FRESNEL);
489 fresnel(17.0, fresnel_s, fresnel_c);
490 EXPECT_LE(fabs(fresnel_s - 0.4999793772969549),
EPS_FRESNEL);
491 EXPECT_LE(fabs(fresnel_c - 0.5187240428109737),
EPS_FRESNEL);
493 fresnel(17.5, fresnel_s, fresnel_c);
494 EXPECT_LE(fabs(fresnel_s - 0.5168117510006868),
EPS_FRESNEL);
495 EXPECT_LE(fabs(fresnel_c - 0.4930568074654182),
EPS_FRESNEL);
497 fresnel(18.0, fresnel_s, fresnel_c);
498 EXPECT_LE(fabs(fresnel_s - 0.48231616863711996),
EPS_FRESNEL);
499 EXPECT_LE(fabs(fresnel_c - 0.49998262693469964),
EPS_FRESNEL);
501 fresnel(18.5, fresnel_s, fresnel_c);
502 EXPECT_LE(fabs(fresnel_s - 0.5159022981370349),
EPS_FRESNEL);
503 EXPECT_LE(fabs(fresnel_c - 0.4934303730848653),
EPS_FRESNEL);
505 fresnel(19.0, fresnel_s, fresnel_c);
506 EXPECT_LE(fabs(fresnel_s - 0.4999852281670667),
EPS_FRESNEL);
507 EXPECT_LE(fabs(fresnel_c - 0.5167531128300553),
EPS_FRESNEL);
509 fresnel(19.5, fresnel_s, fresnel_c);
510 EXPECT_LE(fabs(fresnel_s - 0.4849137774794187),
EPS_FRESNEL);
511 EXPECT_LE(fabs(fresnel_c - 0.5062341276891209),
EPS_FRESNEL);
513 fresnel(20.0, fresnel_s, fresnel_c);
514 EXPECT_LE(fabs(fresnel_s - 0.4840845359259539),
EPS_FRESNEL);
515 EXPECT_LE(fabs(fresnel_c - 0.49998733497234443),
EPS_FRESNEL);
517 fresnel(20.5, fresnel_s, fresnel_c);
518 EXPECT_LE(fabs(fresnel_s - 0.48565015873667594),
EPS_FRESNEL);
519 EXPECT_LE(fabs(fresnel_c - 0.5059311691275604),
EPS_FRESNEL);
521 fresnel(21.0, fresnel_s, fresnel_c);
522 EXPECT_LE(fabs(fresnel_s - 0.4999890594544999),
EPS_FRESNEL);
523 EXPECT_LE(fabs(fresnel_c - 0.5151575899376805),
EPS_FRESNEL);
525 fresnel(21.5, fresnel_s, fresnel_c);
526 EXPECT_LE(fabs(fresnel_s - 0.5136820209670363),
EPS_FRESNEL);
527 EXPECT_LE(fabs(fresnel_c - 0.49434375620493276),
EPS_FRESNEL);
529 fresnel(22.0, fresnel_s, fresnel_c);
530 EXPECT_LE(fabs(fresnel_s - 0.4855313875836048),
EPS_FRESNEL);
531 EXPECT_LE(fabs(fresnel_c - 0.4999904845486192),
EPS_FRESNEL);
533 fresnel(22.5, fresnel_s, fresnel_c);
534 EXPECT_LE(fabs(fresnel_s - 0.5130736102268015),
EPS_FRESNEL);
535 EXPECT_LE(fabs(fresnel_c - 0.4945943613060027),
EPS_FRESNEL);
537 fresnel(23.0, fresnel_s, fresnel_c);
538 EXPECT_LE(fabs(fresnel_s - 0.4999916725048582),
EPS_FRESNEL);
539 EXPECT_LE(fabs(fresnel_c - 0.5138395452365079),
EPS_FRESNEL);
541 fresnel(23.5, fresnel_s, fresnel_c);
542 EXPECT_LE(fabs(fresnel_s - 0.4874829827132583),
EPS_FRESNEL);
543 EXPECT_LE(fabs(fresnel_c - 0.5051762678838345),
EPS_FRESNEL);
545 fresnel(24.0, fresnel_s, fresnel_c);
546 EXPECT_LE(fabs(fresnel_s - 0.48673710022664085),
EPS_FRESNEL);
547 EXPECT_LE(fabs(fresnel_c - 0.499992670665544),
EPS_FRESNEL);
549 fresnel(24.5, fresnel_s, fresnel_c);
550 EXPECT_LE(fabs(fresnel_s - 0.4879941087024924),
EPS_FRESNEL);
551 EXPECT_LE(fabs(fresnel_c - 0.5049655456487026),
EPS_FRESNEL);
553 fresnel(25.0, fresnel_s, fresnel_c);
554 EXPECT_LE(fabs(fresnel_s - 0.49999351546947596),
EPS_FRESNEL);
555 EXPECT_LE(fabs(fresnel_c - 0.5127323855397702),
EPS_FRESNEL);
557 fresnel(25.5, fresnel_s, fresnel_c);
558 EXPECT_LE(fabs(fresnel_s - 0.5115348786861477),
EPS_FRESNEL);
559 EXPECT_LE(fabs(fresnel_c - 0.49522871078678943),
EPS_FRESNEL);
561 fresnel(26.0, fresnel_s, fresnel_c);
562 EXPECT_LE(fabs(fresnel_s - 0.4877573202131747),
EPS_FRESNEL);
563 EXPECT_LE(fabs(fresnel_c - 0.49999423527272),
EPS_FRESNEL);
565 fresnel(26.5, fresnel_s, fresnel_c);
566 EXPECT_LE(fabs(fresnel_s - 0.5110994347652468),
EPS_FRESNEL);
567 EXPECT_LE(fabs(fresnel_c - 0.49540835671456757),
EPS_FRESNEL);
569 fresnel(27.0, fresnel_s, fresnel_c);
570 EXPECT_LE(fabs(fresnel_s - 0.4999948523652942),
EPS_FRESNEL);
571 EXPECT_LE(fabs(fresnel_c - 0.5117892483008945),
EPS_FRESNEL);
573 fresnel(27.5, fresnel_s, fresnel_c);
574 EXPECT_LE(fabs(fresnel_s - 0.4893043235007156),
EPS_FRESNEL);
575 EXPECT_LE(fabs(fresnel_c - 0.5044250209259784),
EPS_FRESNEL);
577 fresnel(28.0, fresnel_s, fresnel_c);
578 EXPECT_LE(fabs(fresnel_s - 0.4886317954009967),
EPS_FRESNEL);
579 EXPECT_LE(fabs(fresnel_c - 0.4999953844327101),
EPS_FRESNEL);
581 fresnel(28.5, fresnel_s, fresnel_c);
582 EXPECT_LE(fabs(fresnel_s - 0.4896797336947276),
EPS_FRESNEL);
583 EXPECT_LE(fabs(fresnel_c - 0.5042700567697976),
EPS_FRESNEL);
585 fresnel(29.0, fresnel_s, fresnel_c);
586 EXPECT_LE(fabs(fresnel_s - 0.4999958456285237),
EPS_FRESNEL);
587 EXPECT_LE(fabs(fresnel_c - 0.5109761982547072),
EPS_FRESNEL);
589 fresnel(29.5, fresnel_s, fresnel_c);
590 EXPECT_LE(fabs(fresnel_s - 0.5099703195139875),
EPS_FRESNEL);
591 EXPECT_LE(fabs(fresnel_c - 0.49587443030573236),
EPS_FRESNEL);
593 fresnel(30.0, fresnel_s, fresnel_c);
594 EXPECT_LE(fabs(fresnel_s - 0.4893896744421938),
EPS_FRESNEL);
595 EXPECT_LE(fabs(fresnel_c - 0.4999962473706091),
EPS_FRESNEL);
597 fresnel(30.5, fresnel_s, fresnel_c);
598 EXPECT_LE(fabs(fresnel_s - 0.5096433300548732),
EPS_FRESNEL);
599 EXPECT_LE(fabs(fresnel_c - 0.4960094672174812),
EPS_FRESNEL);
601 fresnel(31.0, fresnel_s, fresnel_c);
602 EXPECT_LE(fabs(fresnel_s - 0.49999659893870957),
EPS_FRESNEL);
603 EXPECT_LE(fabs(fresnel_c - 0.510268057465068),
EPS_FRESNEL);
605 fresnel(31.5, fresnel_s, fresnel_c);
606 EXPECT_LE(fabs(fresnel_s - 0.49066288968973953),
EPS_FRESNEL);
607 EXPECT_LE(fabs(fresnel_c - 0.5038640489726605),
EPS_FRESNEL);
609 fresnel(32.0, fresnel_s, fresnel_c);
610 EXPECT_LE(fabs(fresnel_s - 0.49005281894025865),
EPS_FRESNEL);
611 EXPECT_LE(fabs(fresnel_c - 0.4999969079273435),
EPS_FRESNEL);
613 fresnel(32.5, fresnel_s, fresnel_c);
614 EXPECT_LE(fabs(fresnel_s - 0.4909502579162105),
EPS_FRESNEL);
615 EXPECT_LE(fabs(fresnel_c - 0.5037453311765392),
EPS_FRESNEL);
617 fresnel(33.0, fresnel_s, fresnel_c);
618 EXPECT_LE(fabs(fresnel_s - 0.4999971805923199),
EPS_FRESNEL);
619 EXPECT_LE(fabs(fresnel_c - 0.5096457516544846),
EPS_FRESNEL);
621 fresnel(33.5, fresnel_s, fresnel_c);
622 EXPECT_LE(fabs(fresnel_s - 0.5087795363583066),
EPS_FRESNEL);
623 EXPECT_LE(fabs(fresnel_c - 0.4963663140599485),
EPS_FRESNEL);
625 fresnel(34.0, fresnel_s, fresnel_c);
626 EXPECT_LE(fabs(fresnel_s - 0.4906379466534976),
EPS_FRESNEL);
627 EXPECT_LE(fabs(fresnel_c - 0.49999742211814463),
EPS_FRESNEL);
629 fresnel(34.5, fresnel_s, fresnel_c);
630 EXPECT_LE(fabs(fresnel_s - 0.5085250000581694),
EPS_FRESNEL);
631 EXPECT_LE(fabs(fresnel_c - 0.4964715000692896),
EPS_FRESNEL);
633 fresnel(35.0, fresnel_s, fresnel_c);
634 EXPECT_LE(fabs(fresnel_s - 0.49999763682609794),
EPS_FRESNEL);
635 EXPECT_LE(fabs(fresnel_c - 0.5090945663345068),
EPS_FRESNEL);
637 fresnel(35.5, fresnel_s, fresnel_c);
638 EXPECT_LE(fabs(fresnel_s - 0.491715191566429),
EPS_FRESNEL);
639 EXPECT_LE(fabs(fresnel_c - 0.5034292286980901),
EPS_FRESNEL);
641 fresnel(36.0, fresnel_s, fresnel_c);
642 EXPECT_LE(fabs(fresnel_s - 0.4911580603172578),
EPS_FRESNEL);
643 EXPECT_LE(fabs(fresnel_c - 0.4999978283373622),
EPS_FRESNEL);
645 fresnel(36.5, fresnel_s, fresnel_c);
646 EXPECT_LE(fabs(fresnel_s - 0.49194221801222643),
EPS_FRESNEL);
647 EXPECT_LE(fabs(fresnel_c - 0.5033353872735516),
EPS_FRESNEL);
649 fresnel(37.0, fresnel_s, fresnel_c);
650 EXPECT_LE(fabs(fresnel_s - 0.49999799970186465),
EPS_FRESNEL);
651 EXPECT_LE(fabs(fresnel_c - 0.5086029685015766),
EPS_FRESNEL);
653 fresnel(37.5, fresnel_s, fresnel_c);
654 EXPECT_LE(fabs(fresnel_s - 0.5078428670985601),
EPS_FRESNEL);
655 EXPECT_LE(fabs(fresnel_c - 0.49675345773238233),
EPS_FRESNEL);
657 fresnel(38.0, fresnel_s, fresnel_c);
658 EXPECT_LE(fabs(fresnel_s - 0.49162342526889974),
EPS_FRESNEL);
659 EXPECT_LE(fabs(fresnel_c - 0.499998153500694),
EPS_FRESNEL);
661 fresnel(38.5, fresnel_s, fresnel_c);
662 EXPECT_LE(fabs(fresnel_s - 0.5076391196617077),
EPS_FRESNEL);
663 EXPECT_LE(fabs(fresnel_c - 0.496837694806001),
EPS_FRESNEL);
665 fresnel(39.0, fresnel_s, fresnel_c);
666 EXPECT_LE(fabs(fresnel_s - 0.49999829192809686),
EPS_FRESNEL);
667 EXPECT_LE(fabs(fresnel_c - 0.5081617908810524),
EPS_FRESNEL);
669 fresnel(39.5, fresnel_s, fresnel_c);
670 EXPECT_LE(fabs(fresnel_s - 0.49255430877943795),
EPS_FRESNEL);
671 EXPECT_LE(fabs(fresnel_c - 0.5030823268038184),
EPS_FRESNEL);
673 fresnel(40.0, fresnel_s, fresnel_c);
674 EXPECT_LE(fabs(fresnel_s - 0.4920422537902731),
EPS_FRESNEL);
675 EXPECT_LE(fabs(fresnel_c - 0.4999984168574456),
EPS_FRESNEL);
677 fresnel(40.5, fresnel_s, fresnel_c);
678 EXPECT_LE(fabs(fresnel_s - 0.4927381828482828),
EPS_FRESNEL);
679 EXPECT_LE(fabs(fresnel_c - 0.5030062922561774),
EPS_FRESNEL);
682 int main(
int argc,
char** argv)
684 testing::InitGoogleTest(&argc, argv);
685 return RUN_ALL_TESTS();