DPNP C++ backend kernel library 0.20.0dev0
Data Parallel Extension for NumPy*
Loading...
Searching...
No Matches
erfcx.hpp
1//*****************************************************************************
2// Copyright (c) 2025, Intel Corporation
3// All rights reserved.
4//
5// Redistribution and use in source and binary forms, with or without
6// modification, are permitted provided that the following conditions are met:
7// - Redistributions of source code must retain the above copyright notice,
8// this list of conditions and the following disclaimer.
9// - Redistributions in binary form must reproduce the above copyright notice,
10// this list of conditions and the following disclaimer in the documentation
11// and/or other materials provided with the distribution.
12// - Neither the name of the copyright holder nor the names of its contributors
13// may be used to endorse or promote products derived from this software
14// without specific prior written permission.
15//
16// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
20// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
26// THE POSSIBILITY OF SUCH DAMAGE.
27//*****************************************************************************
28
29#pragma once
30
31#include <limits>
32#include <sycl/sycl.hpp>
33
34namespace dpnp::kernels::erfs::impl
35{
48template <typename Tp>
49inline Tp erfcx_y100(Tp y100)
50{
51 switch ((int)y100) {
52 case 0:
53 {
54 Tp t = 2 * y100 - 1;
55 return 0.70878032454106438663e-3 +
56 (0.71234091047026302958e-3 +
57 (0.35779077297597742384e-5 +
58 (0.17403143962587937815e-7 +
59 (0.81710660047307788845e-10 +
60 (0.36885022360434957634e-12 +
61 0.15917038551111111111e-14 * t) *
62 t) *
63 t) *
64 t) *
65 t) *
66 t;
67 }
68 case 1:
69 {
70 Tp t = 2 * y100 - 3;
71 return 0.21479143208285144230e-2 +
72 (0.72686402367379996033e-3 +
73 (0.36843175430938995552e-5 +
74 (0.18071841272149201685e-7 +
75 (0.85496449296040325555e-10 +
76 (0.38852037518534291510e-12 +
77 0.16868473576888888889e-14 * t) *
78 t) *
79 t) *
80 t) *
81 t) *
82 t;
83 }
84 case 2:
85 {
86 Tp t = 2 * y100 - 5;
87 return 0.36165255935630175090e-2 +
88 (0.74182092323555510862e-3 +
89 (0.37948319957528242260e-5 +
90 (0.18771627021793087350e-7 +
91 (0.89484715122415089123e-10 +
92 (0.40935858517772440862e-12 +
93 0.17872061464888888889e-14 * t) *
94 t) *
95 t) *
96 t) *
97 t) *
98 t;
99 }
100 case 3:
101 {
102 Tp t = 2 * y100 - 7;
103 return 0.51154983860031979264e-2 +
104 (0.75722840734791660540e-3 +
105 (0.39096425726735703941e-5 +
106 (0.19504168704300468210e-7 +
107 (0.93687503063178993915e-10 +
108 (0.43143925959079664747e-12 +
109 0.18939926435555555556e-14 * t) *
110 t) *
111 t) *
112 t) *
113 t) *
114 t;
115 }
116 case 4:
117 {
118 Tp t = 2 * y100 - 9;
119 return 0.66457513172673049824e-2 +
120 (0.77310406054447454920e-3 +
121 (0.40289510589399439385e-5 +
122 (0.20271233238288381092e-7 +
123 (0.98117631321709100264e-10 +
124 (0.45484207406017752971e-12 +
125 0.20076352213333333333e-14 * t) *
126 t) *
127 t) *
128 t) *
129 t) *
130 t;
131 }
132 case 5:
133 {
134 Tp t = 2 * y100 - 11;
135 return 0.82082389970241207883e-2 +
136 (0.78946629611881710721e-3 +
137 (0.41529701552622656574e-5 +
138 (0.21074693344544655714e-7 +
139 (0.10278874108587317989e-9 +
140 (0.47965201390613339638e-12 +
141 0.21285907413333333333e-14 * t) *
142 t) *
143 t) *
144 t) *
145 t) *
146 t;
147 }
148 case 6:
149 {
150 Tp t = 2 * y100 - 13;
151 return 0.98039537275352193165e-2 +
152 (0.80633440108342840956e-3 +
153 (0.42819241329736982942e-5 +
154 (0.21916534346907168612e-7 +
155 (0.10771535136565470914e-9 +
156 (0.50595972623692822410e-12 +
157 0.22573462684444444444e-14 * t) *
158 t) *
159 t) *
160 t) *
161 t) *
162 t;
163 }
164 case 7:
165 {
166 Tp t = 2 * y100 - 15;
167 return 0.11433927298290302370e-1 +
168 (0.82372858383196561209e-3 +
169 (0.44160495311765438816e-5 +
170 (0.22798861426211986056e-7 +
171 (0.11291291745879239736e-9 +
172 (0.53386189365816880454e-12 +
173 0.23944209546666666667e-14 * t) *
174 t) *
175 t) *
176 t) *
177 t) *
178 t;
179 }
180 case 8:
181 {
182 Tp t = 2 * y100 - 17;
183 return 0.13099232878814653979e-1 +
184 (0.84167002467906968214e-3 +
185 (0.45555958988457506002e-5 +
186 (0.23723907357214175198e-7 +
187 (0.11839789326602695603e-9 +
188 (0.56346163067550237877e-12 +
189 0.25403679644444444444e-14 * t) *
190 t) *
191 t) *
192 t) *
193 t) *
194 t;
195 }
196 case 9:
197 {
198 Tp t = 2 * y100 - 19;
199 return 0.14800987015587535621e-1 +
200 (0.86018092946345943214e-3 +
201 (0.47008265848816866105e-5 +
202 (0.24694040760197315333e-7 +
203 (0.12418779768752299093e-9 +
204 (0.59486890370320261949e-12 +
205 0.26957764568888888889e-14 * t) *
206 t) *
207 t) *
208 t) *
209 t) *
210 t;
211 }
212 case 10:
213 {
214 Tp t = 2 * y100 - 21;
215 return 0.16540351739394069380e-1 +
216 (0.87928458641241463952e-3 +
217 (0.48520195793001753903e-5 +
218 (0.25711774900881709176e-7 +
219 (0.13030128534230822419e-9 +
220 (0.62820097586874779402e-12 +
221 0.28612737351111111111e-14 * t) *
222 t) *
223 t) *
224 t) *
225 t) *
226 t;
227 }
228 case 11:
229 {
230 Tp t = 2 * y100 - 23;
231 return 0.18318536789842392647e-1 +
232 (0.89900542647891721692e-3 +
233 (0.50094684089553365810e-5 +
234 (0.26779777074218070482e-7 +
235 (0.13675822186304615566e-9 +
236 (0.66358287745352705725e-12 +
237 0.30375273884444444444e-14 * t) *
238 t) *
239 t) *
240 t) *
241 t) *
242 t;
243 }
244 case 12:
245 {
246 Tp t = 2 * y100 - 25;
247 return 0.20136801964214276775e-1 +
248 (0.91936908737673676012e-3 +
249 (0.51734830914104276820e-5 +
250 (0.27900878609710432673e-7 +
251 (0.14357976402809042257e-9 +
252 (0.70114790311043728387e-12 +
253 0.32252476000000000000e-14 * t) *
254 t) *
255 t) *
256 t) *
257 t) *
258 t;
259 }
260 case 13:
261 {
262 Tp t = 2 * y100 - 27;
263 return 0.21996459598282740954e-1 +
264 (0.94040248155366777784e-3 +
265 (0.53443911508041164739e-5 +
266 (0.29078085538049374673e-7 +
267 (0.15078844500329731137e-9 +
268 (0.74103813647499204269e-12 +
269 0.34251892320000000000e-14 * t) *
270 t) *
271 t) *
272 t) *
273 t) *
274 t;
275 }
276 case 14:
277 {
278 Tp t = 2 * y100 - 29;
279 return 0.23898877187226319502e-1 +
280 (0.96213386835900177540e-3 +
281 (0.55225386998049012752e-5 +
282 (0.30314589961047687059e-7 +
283 (0.15840826497296335264e-9 +
284 (0.78340500472414454395e-12 +
285 0.36381553564444444445e-14 * t) *
286 t) *
287 t) *
288 t) *
289 t) *
290 t;
291 }
292 case 15:
293 {
294 Tp t = 2 * y100 - 31;
295 return 0.25845480155298518485e-1 +
296 (0.98459293067820123389e-3 +
297 (0.57082915920051843672e-5 +
298 (0.31613782169164830118e-7 +
299 (0.16646478745529630813e-9 +
300 (0.82840985928785407942e-12 +
301 0.38649975768888888890e-14 * t) *
302 t) *
303 t) *
304 t) *
305 t) *
306 t;
307 }
308 case 16:
309 {
310 Tp t = 2 * y100 - 33;
311 return 0.27837754783474696598e-1 +
312 (0.10078108563256892757e-2 +
313 (0.59020366493792212221e-5 +
314 (0.32979263553246520417e-7 +
315 (0.17498524159268458073e-9 +
316 (0.87622459124842525110e-12 +
317 0.41066206488888888890e-14 * t) *
318 t) *
319 t) *
320 t) *
321 t) *
322 t;
323 }
324 case 17:
325 {
326 Tp t = 2 * y100 - 35;
327 return 0.29877251304899307550e-1 +
328 (0.10318204245057349310e-2 +
329 (0.61041829697162055093e-5 +
330 (0.34414860359542720579e-7 +
331 (0.18399863072934089607e-9 +
332 (0.92703227366365046533e-12 +
333 0.43639844053333333334e-14 * t) *
334 t) *
335 t) *
336 t) *
337 t) *
338 t;
339 }
340 case 18:
341 {
342 Tp t = 2 * y100 - 37;
343 return 0.31965587178596443475e-1 +
344 (0.10566560976716574401e-2 +
345 (0.63151633192414586770e-5 +
346 (0.35924638339521924242e-7 +
347 (0.19353584758781174038e-9 +
348 (0.98102783859889264382e-12 +
349 0.46381060817777777779e-14 * t) *
350 t) *
351 t) *
352 t) *
353 t) *
354 t;
355 }
356 case 19:
357 {
358 Tp t = 2 * y100 - 39;
359 return 0.34104450552588334840e-1 +
360 (0.10823541191350532574e-2 +
361 (0.65354356159553934436e-5 +
362 (0.37512918348533521149e-7 +
363 (0.20362979635817883229e-9 +
364 (0.10384187833037282363e-11 +
365 0.49300625262222222221e-14 * t) *
366 t) *
367 t) *
368 t) *
369 t) *
370 t;
371 }
372 case 20:
373 {
374 Tp t = 2 * y100 - 41;
375 return 0.36295603928292425716e-1 +
376 (0.11089526167995268200e-2 +
377 (0.67654845095518363577e-5 +
378 (0.39184292949913591646e-7 +
379 (0.21431552202133775150e-9 +
380 (0.10994259106646731797e-11 +
381 0.52409949102222222221e-14 * t) *
382 t) *
383 t) *
384 t) *
385 t) *
386 t;
387 }
388 case 21:
389 {
390 Tp t = 2 * y100 - 43;
391 return 0.38540888038840509795e-1 +
392 (0.11364917134175420009e-2 +
393 (0.70058230641246312003e-5 +
394 (0.40943644083718586939e-7 +
395 (0.22563034723692881631e-9 +
396 (0.11642841011361992885e-11 +
397 0.55721092871111111110e-14 * t) *
398 t) *
399 t) *
400 t) *
401 t) *
402 t;
403 }
404 case 22:
405 {
406 Tp t = 2 * y100 - 45;
407 return 0.40842225954785960651e-1 +
408 (0.11650136437945673891e-2 +
409 (0.72569945502343006619e-5 +
410 (0.42796161861855042273e-7 +
411 (0.23761401711005024162e-9 +
412 (0.12332431172381557035e-11 +
413 0.59246802364444444445e-14 * t) *
414 t) *
415 t) *
416 t) *
417 t) *
418 t;
419 }
420 case 23:
421 {
422 Tp t = 2 * y100 - 47;
423 return 0.43201627431540222422e-1 +
424 (0.11945628793917272199e-2 +
425 (0.75195743532849206263e-5 +
426 (0.44747364553960993492e-7 +
427 (0.25030885216472953674e-9 +
428 (0.13065684400300476484e-11 +
429 0.63000532853333333334e-14 * t) *
430 t) *
431 t) *
432 t) *
433 t) *
434 t;
435 }
436 case 24:
437 {
438 Tp t = 2 * y100 - 49;
439 return 0.45621193513810471438e-1 +
440 (0.12251862608067529503e-2 +
441 (0.77941720055551920319e-5 +
442 (0.46803119830954460212e-7 +
443 (0.26375990983978426273e-9 +
444 (0.13845421370977119765e-11 +
445 0.66996477404444444445e-14 * t) *
446 t) *
447 t) *
448 t) *
449 t) *
450 t;
451 }
452 case 25:
453 {
454 Tp t = 2 * y100 - 51;
455 return 0.48103121413299865517e-1 +
456 (0.12569331386432195113e-2 +
457 (0.80814333496367673980e-5 +
458 (0.48969667335682018324e-7 +
459 (0.27801515481905748484e-9 +
460 (0.14674637611609884208e-11 +
461 0.71249589351111111110e-14 * t) *
462 t) *
463 t) *
464 t) *
465 t) *
466 t;
467 }
468 case 26:
469 {
470 Tp t = 2 * y100 - 53;
471 return 0.50649709676983338501e-1 +
472 (0.12898555233099055810e-2 +
473 (0.83820428414568799654e-5 +
474 (0.51253642652551838659e-7 +
475 (0.29312563849675507232e-9 +
476 (0.15556512782814827846e-11 +
477 0.75775607822222222221e-14 * t) *
478 t) *
479 t) *
480 t) *
481 t) *
482 t;
483 }
484 case 27:
485 {
486 Tp t = 2 * y100 - 55;
487 return 0.53263363664388864181e-1 +
488 (0.13240082443256975769e-2 +
489 (0.86967260015007658418e-5 +
490 (0.53662102750396795566e-7 +
491 (0.30914568786634796807e-9 +
492 (0.16494420240828493176e-11 +
493 0.80591079644444444445e-14 * t) *
494 t) *
495 t) *
496 t) *
497 t) *
498 t;
499 }
500 case 28:
501 {
502 Tp t = 2 * y100 - 57;
503 return 0.55946601353500013794e-1 +
504 (0.13594491197408190706e-2 +
505 (0.90262520233016380987e-5 +
506 (0.56202552975056695376e-7 +
507 (0.32613310410503135996e-9 +
508 (0.17491936862246367398e-11 +
509 0.85713381688888888890e-14 * t) *
510 t) *
511 t) *
512 t) *
513 t) *
514 t;
515 }
516 case 29:
517 {
518 Tp t = 2 * y100 - 59;
519 return 0.58702059496154081813e-1 +
520 (0.13962391363223647892e-2 +
521 (0.93714365487312784270e-5 +
522 (0.58882975670265286526e-7 +
523 (0.34414937110591753387e-9 +
524 (0.18552853109751857859e-11 +
525 0.91160736711111111110e-14 * t) *
526 t) *
527 t) *
528 t) *
529 t) *
530 t;
531 }
532 case 30:
533 {
534 Tp t = 2 * y100 - 61;
535 return 0.61532500145144778048e-1 +
536 (0.14344426411912015247e-2 +
537 (0.97331446201016809696e-5 +
538 (0.61711860507347175097e-7 +
539 (0.36325987418295300221e-9 +
540 (0.19681183310134518232e-11 +
541 0.96952238400000000000e-14 * t) *
542 t) *
543 t) *
544 t) *
545 t) *
546 t;
547 }
548 case 31:
549 {
550 Tp t = 2 * y100 - 63;
551 return 0.64440817576653297993e-1 +
552 (0.14741275456383131151e-2 +
553 (0.10112293819576437838e-4 +
554 (0.64698236605933246196e-7 +
555 (0.38353412915303665586e-9 +
556 (0.20881176114385120186e-11 +
557 0.10310784480000000000e-13 * t) *
558 t) *
559 t) *
560 t) *
561 t) *
562 t;
563 }
564 case 32:
565 {
566 Tp t = 2 * y100 - 65;
567 return 0.67430045633130393282e-1 +
568 (0.15153655418916540370e-2 +
569 (0.10509857606888328667e-4 +
570 (0.67851706529363332855e-7 +
571 (0.40504602194811140006e-9 +
572 (0.22157325110542534469e-11 +
573 0.10964842115555555556e-13 * t) *
574 t) *
575 t) *
576 t) *
577 t) *
578 t;
579 }
580 case 33:
581 {
582 Tp t = 2 * y100 - 67;
583 return 0.70503365513338850709e-1 +
584 (0.15582323336495709827e-2 +
585 (0.10926868866865231089e-4 +
586 (0.71182482239613507542e-7 +
587 (0.42787405890153386710e-9 +
588 (0.23514379522274416437e-11 +
589 0.11659571751111111111e-13 * t) *
590 t) *
591 t) *
592 t) *
593 t) *
594 t;
595 }
596 case 34:
597 {
598 Tp t = 2 * y100 - 69;
599 return 0.73664114037944596353e-1 +
600 (0.16028078812438820413e-2 +
601 (0.11364423678778207991e-4 +
602 (0.74701423097423182009e-7 +
603 (0.45210162777476488324e-9 +
604 (0.24957355004088569134e-11 +
605 0.12397238257777777778e-13 * t) *
606 t) *
607 t) *
608 t) *
609 t) *
610 t;
611 }
612 case 35:
613 {
614 Tp t = 2 * y100 - 71;
615 return 0.76915792420819562379e-1 +
616 (0.16491766623447889354e-2 +
617 (0.11823685320041302169e-4 +
618 (0.78420075993781544386e-7 +
619 (0.47781726956916478925e-9 +
620 (0.26491544403815724749e-11 +
621 0.13180196462222222222e-13 * t) *
622 t) *
623 t) *
624 t) *
625 t) *
626 t;
627 }
628 case 36:
629 {
630 Tp t = 2 * y100 - 73;
631 return 0.80262075578094612819e-1 +
632 (0.16974279491709504117e-2 +
633 (0.12305888517309891674e-4 +
634 (0.82350717698979042290e-7 +
635 (0.50511496109857113929e-9 +
636 (0.28122528497626897696e-11 +
637 0.14010889635555555556e-13 * t) *
638 t) *
639 t) *
640 t) *
641 t) *
642 t;
643 }
644 case 37:
645 {
646 Tp t = 2 * y100 - 75;
647 return 0.83706822008980357446e-1 +
648 (0.17476561032212656962e-2 +
649 (0.12812343958540763368e-4 +
650 (0.86506399515036435592e-7 +
651 (0.53409440823869467453e-9 +
652 (0.29856186620887555043e-11 +
653 0.14891851591111111111e-13 * t) *
654 t) *
655 t) *
656 t) *
657 t) *
658 t;
659 }
660 case 38:
661 {
662 Tp t = 2 * y100 - 77;
663 return 0.87254084284461718231e-1 +
664 (0.17999608886001962327e-2 +
665 (0.13344443080089492218e-4 +
666 (0.90900994316429008631e-7 +
667 (0.56486134972616465316e-9 +
668 (0.31698707080033956934e-11 +
669 0.15825697795555555556e-13 * t) *
670 t) *
671 t) *
672 t) *
673 t) *
674 t;
675 }
676 case 39:
677 {
678 Tp t = 2 * y100 - 79;
679 return 0.90908120182172748487e-1 +
680 (0.18544478050657699758e-2 +
681 (0.13903663143426120077e-4 +
682 (0.95549246062549906177e-7 +
683 (0.59752787125242054315e-9 +
684 (0.33656597366099099413e-11 +
685 0.16815130613333333333e-13 * t) *
686 t) *
687 t) *
688 t) *
689 t) *
690 t;
691 }
692 case 40:
693 {
694 Tp t = 2 * y100 - 81;
695 return 0.94673404508075481121e-1 +
696 (0.19112284419887303347e-2 +
697 (0.14491572616545004930e-4 +
698 (0.10046682186333613697e-6 +
699 (0.63221272959791000515e-9 +
700 (0.35736693975589130818e-11 +
701 0.17862931591111111111e-13 * t) *
702 t) *
703 t) *
704 t) *
705 t) *
706 t;
707 }
708 case 41:
709 {
710 Tp t = 2 * y100 - 83;
711 return 0.98554641648004456555e-1 +
712 (0.19704208544725622126e-2 +
713 (0.15109836875625443935e-4 +
714 (0.10567036667675984067e-6 +
715 (0.66904168640019354565e-9 +
716 (0.37946171850824333014e-11 +
717 0.18971959040000000000e-13 * t) *
718 t) *
719 t) *
720 t) *
721 t) *
722 t;
723 }
724 case 42:
725 {
726 Tp t = 2 * y100 - 85;
727 return 0.10255677889470089531e0 + (0.20321499629472857418e-2 +
728 (0.15760224242962179564e-4 +
729 (0.11117756071353507391e-6 +
730 (0.70814785110097658502e-9 +
731 (0.40292553276632563925e-11 +
732 0.20145143075555555556e-13 * t) *
733 t) *
734 t) *
735 t) *
736 t) *
737 t;
738 }
739 case 43:
740 {
741 Tp t = 2 * y100 - 87;
742 return 0.10668502059865093318e0 + (0.20965479776148731610e-2 +
743 (0.16444612377624983565e-4 +
744 (0.11700717962026152749e-6 +
745 (0.74967203250938418991e-9 +
746 (0.42783716186085922176e-11 +
747 0.21385479360000000000e-13 * t) *
748 t) *
749 t) *
750 t) *
751 t) *
752 t;
753 }
754 case 44:
755 {
756 Tp t = 2 * y100 - 89;
757 return 0.11094484319386444474e0 + (0.21637548491908170841e-2 +
758 (0.17164995035719657111e-4 +
759 (0.12317915750735938089e-6 +
760 (0.79376309831499633734e-9 +
761 (0.45427901763106353914e-11 +
762 0.22696025653333333333e-13 * t) *
763 t) *
764 t) *
765 t) *
766 t) *
767 t;
768 }
769 case 45:
770 {
771 Tp t = 2 * y100 - 91;
772 return 0.11534201115268804714e0 + (0.22339187474546420375e-2 +
773 (0.17923489217504226813e-4 +
774 (0.12971465288245997681e-6 +
775 (0.84057834180389073587e-9 +
776 (0.48233721206418027227e-11 +
777 0.24079890062222222222e-13 * t) *
778 t) *
779 t) *
780 t) *
781 t) *
782 t;
783 }
784 case 46:
785 {
786 Tp t = 2 * y100 - 93;
787 return 0.11988259392684094740e0 + (0.23071965691918689601e-2 +
788 (0.18722342718958935446e-4 +
789 (0.13663611754337957520e-6 +
790 (0.89028385488493287005e-9 +
791 (0.51210161569225846701e-11 +
792 0.25540227111111111111e-13 * t) *
793 t) *
794 t) *
795 t) *
796 t) *
797 t;
798 }
799 case 47:
800 {
801 Tp t = 2 * y100 - 95;
802 return 0.12457298393509812907e0 + (0.23837544771809575380e-2 +
803 (0.19563942105711612475e-4 +
804 (0.14396736847739470782e-6 +
805 (0.94305490646459247016e-9 +
806 (0.54366590583134218096e-11 +
807 0.27080225920000000000e-13 * t) *
808 t) *
809 t) *
810 t) *
811 t) *
812 t;
813 }
814 case 48:
815 {
816 Tp t = 2 * y100 - 97;
817 return 0.12941991566142438816e0 + (0.24637684719508859484e-2 +
818 (0.20450821127475879816e-4 +
819 (0.15173366280523906622e-6 +
820 (0.99907632506389027739e-9 +
821 (0.57712760311351625221e-11 +
822 0.28703099555555555556e-13 * t) *
823 t) *
824 t) *
825 t) *
826 t) *
827 t;
828 }
829 case 49:
830 {
831 Tp t = 2 * y100 - 99;
832 return 0.13443048593088696613e0 + (0.25474249981080823877e-2 +
833 (0.21385669591362915223e-4 +
834 (0.15996177579900443030e-6 +
835 (0.10585428844575134013e-8 +
836 (0.61258809536787882989e-11 +
837 0.30412080142222222222e-13 * t) *
838 t) *
839 t) *
840 t) *
841 t) *
842 t;
843 }
844 case 50:
845 {
846 Tp t = 2 * y100 - 101;
847 return 0.13961217543434561353e0 + (0.26349215871051761416e-2 +
848 (0.22371342712572567744e-4 +
849 (0.16868008199296822247e-6 +
850 (0.11216596910444996246e-8 +
851 (0.65015264753090890662e-11 +
852 0.32210394506666666666e-13 * t) *
853 t) *
854 t) *
855 t) *
856 t) *
857 t;
858 }
859 case 51:
860 {
861 Tp t = 2 * y100 - 103;
862 return 0.14497287157673800690e0 + (0.27264675383982439814e-2 +
863 (0.23410870961050950197e-4 +
864 (0.17791863939526376477e-6 +
865 (0.11886425714330958106e-8 +
866 (0.68993039665054288034e-11 +
867 0.34101266222222222221e-13 * t) *
868 t) *
869 t) *
870 t) *
871 t) *
872 t;
873 }
874 case 52:
875 {
876 Tp t = 2 * y100 - 105;
877 return 0.15052089272774618151e0 + (0.28222846410136238008e-2 +
878 (0.24507470422713397006e-4 +
879 (0.18770927679626136909e-6 +
880 (0.12597184587583370712e-8 +
881 (0.73203433049229821618e-11 +
882 0.36087889048888888890e-13 * t) *
883 t) *
884 t) *
885 t) *
886 t) *
887 t;
888 }
889 case 53:
890 {
891 Tp t = 2 * y100 - 107;
892 return 0.15626501395774612325e0 + (0.29226079376196624949e-2 +
893 (0.25664553693768450545e-4 +
894 (0.19808568415654461964e-6 +
895 (0.13351257759815557897e-8 +
896 (0.77658124891046760667e-11 +
897 0.38173420035555555555e-13 * t) *
898 t) *
899 t) *
900 t) *
901 t) *
902 t;
903 }
904 case 54:
905 {
906 Tp t = 2 * y100 - 109;
907 return 0.16221449434620737567e0 + (0.30276865332726475672e-2 +
908 (0.26885741326534564336e-4 +
909 (0.20908350604346384143e-6 +
910 (0.14151148144240728728e-8 +
911 (0.82369170665974313027e-11 +
912 0.40360957457777777779e-13 * t) *
913 t) *
914 t) *
915 t) *
916 t) *
917 t;
918 }
919 case 55:
920 {
921 Tp t = 2 * y100 - 111;
922 return 0.16837910595412130659e0 + (0.31377844510793082301e-2 +
923 (0.28174873844911175026e-4 +
924 (0.22074043807045782387e-6 +
925 (0.14999481055996090039e-8 +
926 (0.87348993661930809254e-11 +
927 0.42653528977777777779e-13 * t) *
928 t) *
929 t) *
930 t) *
931 t) *
932 t;
933 }
934 case 56:
935 {
936 Tp t = 2 * y100 - 113;
937 return 0.17476916455659369953e0 + (0.32531815370903068316e-2 +
938 (0.29536024347344364074e-4 +
939 (0.23309632627767074202e-6 +
940 (0.15899007843582444846e-8 +
941 (0.92610375235427359475e-11 +
942 0.45054073102222222221e-13 * t) *
943 t) *
944 t) *
945 t) *
946 t) *
947 t;
948 }
949 case 57:
950 {
951 Tp t = 2 * y100 - 115;
952 return 0.18139556223643701364e0 + (0.33741744168096996041e-2 +
953 (0.30973511714709500836e-4 +
954 (0.24619326937592290996e-6 +
955 (0.16852609412267750744e-8 +
956 (0.98166442942854895573e-11 +
957 0.47565418097777777779e-13 * t) *
958 t) *
959 t) *
960 t) *
961 t) *
962 t;
963 }
964 case 58:
965 {
966 Tp t = 2 * y100 - 117;
967 return 0.18826980194443664549e0 + (0.35010775057740317997e-2 +
968 (0.32491914440014267480e-4 +
969 (0.26007572375886319028e-6 +
970 (0.17863299617388376116e-8 +
971 (0.10403065638343878679e-10 +
972 0.50190265831111111110e-13 * t) *
973 t) *
974 t) *
975 t) *
976 t) *
977 t;
978 }
979 case 59:
980 {
981 Tp t = 2 * y100 - 119;
982 return 0.19540403413693967350e0 + (0.36342240767211326315e-2 +
983 (0.34096085096200907289e-4 +
984 (0.27479061117017637474e-6 +
985 (0.18934228504790032826e-8 +
986 (0.11021679075323598664e-10 +
987 0.52931171733333333334e-13 * t) *
988 t) *
989 t) *
990 t) *
991 t) *
992 t;
993 }
994 case 60:
995 {
996 Tp t = 2 * y100 - 121;
997 return 0.20281109560651886959e0 + (0.37739673859323597060e-2 +
998 (0.35791165457592409054e-4 +
999 (0.29038742889416172404e-6 +
1000 (0.20068685374849001770e-8 +
1001 (0.11673891799578381999e-10 +
1002 0.55790523093333333334e-13 * t) *
1003 t) *
1004 t) *
1005 t) *
1006 t) *
1007 t;
1008 }
1009 case 61:
1010 {
1011 Tp t = 2 * y100 - 123;
1012 return 0.21050455062669334978e0 + (0.39206818613925652425e-2 +
1013 (0.37582602289680101704e-4 +
1014 (0.30691836231886877385e-6 +
1015 (0.21270101645763677824e-8 +
1016 (0.12361138551062899455e-10 +
1017 0.58770520160000000000e-13 * t) *
1018 t) *
1019 t) *
1020 t) *
1021 t) *
1022 t;
1023 }
1024 case 62:
1025 {
1026 Tp t = 2 * y100 - 125;
1027 return 0.21849873453703332479e0 + (0.40747643554689586041e-2 +
1028 (0.39476163820986711501e-4 +
1029 (0.32443839970139918836e-6 +
1030 (0.22542053491518680200e-8 +
1031 (0.13084879235290858490e-10 +
1032 0.61873153262222222221e-13 * t) *
1033 t) *
1034 t) *
1035 t) *
1036 t) *
1037 t;
1038 }
1039 case 63:
1040 {
1041 Tp t = 2 * y100 - 127;
1042 return 0.22680879990043229327e0 + (0.42366354648628516935e-2 +
1043 (0.41477956909656896779e-4 +
1044 (0.34300544894502810002e-6 +
1045 (0.23888264229264067658e-8 +
1046 (0.13846596292818514601e-10 +
1047 0.65100183751111111110e-13 * t) *
1048 t) *
1049 t) *
1050 t) *
1051 t) *
1052 t;
1053 }
1054 case 64:
1055 {
1056 Tp t = 2 * y100 - 129;
1057 return 0.23545076536988703937e0 + (0.44067409206365170888e-2 +
1058 (0.43594444916224700881e-4 +
1059 (0.36268045617760415178e-6 +
1060 (0.25312606430853202748e-8 +
1061 (0.14647791812837903061e-10 +
1062 0.68453122631111111110e-13 * t) *
1063 t) *
1064 t) *
1065 t) *
1066 t) *
1067 t;
1068 }
1069 case 65:
1070 {
1071 Tp t = 2 * y100 - 131;
1072 return 0.24444156740777432838e0 + (0.45855530511605787178e-2 +
1073 (0.45832466292683085475e-4 +
1074 (0.38352752590033030472e-6 +
1075 (0.26819103733055603460e-8 +
1076 (0.15489984390884756993e-10 +
1077 0.71933206364444444445e-13 * t) *
1078 t) *
1079 t) *
1080 t) *
1081 t) *
1082 t;
1083 }
1084 case 66:
1085 {
1086 Tp t = 2 * y100 - 133;
1087 return 0.25379911500634264643e0 + (0.47735723208650032167e-2 +
1088 (0.48199253896534185372e-4 +
1089 (0.40561404245564732314e-6 +
1090 (0.28411932320871165585e-8 +
1091 (0.16374705736458320149e-10 +
1092 0.75541379822222222221e-13 * t) *
1093 t) *
1094 t) *
1095 t) *
1096 t) *
1097 t;
1098 }
1099 case 67:
1100 {
1101 Tp t = 2 * y100 - 135;
1102 return 0.26354234756393613032e0 + (0.49713289477083781266e-2 +
1103 (0.50702455036930367504e-4 +
1104 (0.42901079254268185722e-6 +
1105 (0.30095422058900481753e-8 +
1106 (0.17303497025347342498e-10 +
1107 0.79278273368888888890e-13 * t) *
1108 t) *
1109 t) *
1110 t) *
1111 t) *
1112 t;
1113 }
1114 case 68:
1115 {
1116 Tp t = 2 * y100 - 137;
1117 return 0.27369129607732343398e0 + (0.51793846023052643767e-2 +
1118 (0.53350152258326602629e-4 +
1119 (0.45379208848865015485e-6 +
1120 (0.31874057245814381257e-8 +
1121 (0.18277905010245111046e-10 +
1122 0.83144182364444444445e-13 * t) *
1123 t) *
1124 t) *
1125 t) *
1126 t) *
1127 t;
1128 }
1129 case 69:
1130 {
1131 Tp t = 2 * y100 - 139;
1132 return 0.28426714781640316172e0 + (0.53983341916695141966e-2 +
1133 (0.56150884865255810638e-4 +
1134 (0.48003589196494734238e-6 +
1135 (0.33752476967570796349e-8 +
1136 (0.19299477888083469086e-10 +
1137 0.87139049137777777779e-13 * t) *
1138 t) *
1139 t) *
1140 t) *
1141 t) *
1142 t;
1143 }
1144 case 70:
1145 {
1146 Tp t = 2 * y100 - 141;
1147 return 0.29529231465348519920e0 + (0.56288077305420795663e-2 +
1148 (0.59113671189913307427e-4 +
1149 (0.50782393781744840482e-6 +
1150 (0.35735475025851713168e-8 +
1151 (0.20369760937017070382e-10 +
1152 0.91262442613333333334e-13 * t) *
1153 t) *
1154 t) *
1155 t) *
1156 t) *
1157 t;
1158 }
1159 case 71:
1160 {
1161 Tp t = 2 * y100 - 143;
1162 return 0.30679050522528838613e0 + (0.58714723032745403331e-2 +
1163 (0.62248031602197686791e-4 +
1164 (0.53724185766200945789e-6 +
1165 (0.37827999418960232678e-8 +
1166 (0.21490291930444538307e-10 +
1167 0.95513539182222222221e-13 * t) *
1168 t) *
1169 t) *
1170 t) *
1171 t) *
1172 t;
1173 }
1174 case 72:
1175 {
1176 Tp t = 2 * y100 - 145;
1177 return 0.31878680111173319425e0 + (0.61270341192339103514e-2 +
1178 (0.65564012259707640976e-4 +
1179 (0.56837930287837738996e-6 +
1180 (0.40035151353392378882e-8 +
1181 (0.22662596341239294792e-10 +
1182 0.99891109760000000000e-13 * t) *
1183 t) *
1184 t) *
1185 t) *
1186 t) *
1187 t;
1188 }
1189 case 73:
1190 {
1191 Tp t = 2 * y100 - 147;
1192 return 0.33130773722152622027e0 + (0.63962406646798080903e-2 +
1193 (0.69072209592942396666e-4 +
1194 (0.60133006661885941812e-6 +
1195 (0.42362183765883466691e-8 +
1196 (0.23888182347073698382e-10 +
1197 0.10439349811555555556e-12 * t) *
1198 t) *
1199 t) *
1200 t) *
1201 t) *
1202 t;
1203 }
1204 case 74:
1205 {
1206 Tp t = 2 * y100 - 149;
1207 return 0.34438138658041336523e0 + (0.66798829540414007258e-2 +
1208 (0.72783795518603561144e-4 +
1209 (0.63619220443228800680e-6 +
1210 (0.44814499336514453364e-8 +
1211 (0.25168535651285475274e-10 +
1212 0.10901861383111111111e-12 * t) *
1213 t) *
1214 t) *
1215 t) *
1216 t) *
1217 t;
1218 }
1219 case 75:
1220 {
1221 Tp t = 2 * y100 - 151;
1222 return 0.35803744972380175583e0 + (0.69787978834882685031e-2 +
1223 (0.76710543371454822497e-4 +
1224 (0.67306815308917386747e-6 +
1225 (0.47397647975845228205e-8 +
1226 (0.26505114141143050509e-10 +
1227 0.11376390933333333333e-12 * t) *
1228 t) *
1229 t) *
1230 t) *
1231 t) *
1232 t;
1233 }
1234 case 76:
1235 {
1236 Tp t = 2 * y100 - 153;
1237 return 0.37230734890119724188e0 + (0.72938706896461381003e-2 +
1238 (0.80864854542670714092e-4 +
1239 (0.71206484718062688779e-6 +
1240 (0.50117323769745883805e-8 +
1241 (0.27899342394100074165e-10 +
1242 0.11862637614222222222e-12 * t) *
1243 t) *
1244 t) *
1245 t) *
1246 t) *
1247 t;
1248 }
1249 case 77:
1250 {
1251 Tp t = 2 * y100 - 155;
1252 return 0.38722432730555448223e0 + (0.76260375162549802745e-2 +
1253 (0.85259785810004603848e-4 +
1254 (0.75329383305171327677e-6 +
1255 (0.52979361368388119355e-8 +
1256 (0.29352606054164086709e-10 +
1257 0.12360253370666666667e-12 * t) *
1258 t) *
1259 t) *
1260 t) *
1261 t) *
1262 t;
1263 }
1264 case 78:
1265 {
1266 Tp t = 2 * y100 - 157;
1267 return 0.40282355354616940667e0 + (0.79762880915029728079e-2 +
1268 (0.89909077342438246452e-4 +
1269 (0.79687137961956194579e-6 +
1270 (0.55989731807360403195e-8 +
1271 (0.30866246101464869050e-10 +
1272 0.12868841946666666667e-12 * t) *
1273 t) *
1274 t) *
1275 t) *
1276 t) *
1277 t;
1278 }
1279 case 79:
1280 {
1281 Tp t = 2 * y100 - 159;
1282 return 0.41914223158913787649e0 + (0.83456685186950463538e-2 +
1283 (0.94827181359250161335e-4 +
1284 (0.84291858561783141014e-6 +
1285 (0.59154537751083485684e-8 +
1286 (0.32441553034347469291e-10 +
1287 0.13387957943111111111e-12 * t) *
1288 t) *
1289 t) *
1290 t) *
1291 t) *
1292 t;
1293 }
1294 case 80:
1295 {
1296 Tp t = 2 * y100 - 161;
1297 return 0.43621971639463786896e0 + (0.87352841828289495773e-2 +
1298 (0.10002929142066799966e-3 +
1299 (0.89156148280219880024e-6 +
1300 (0.62480008150788597147e-8 +
1301 (0.34079760983458878910e-10 +
1302 0.13917107176888888889e-12 * t) *
1303 t) *
1304 t) *
1305 t) *
1306 t) *
1307 t;
1308 }
1309 case 81:
1310 {
1311 Tp t = 2 * y100 - 163;
1312 return 0.45409763548534330981e0 + (0.91463027755548240654e-2 +
1313 (0.10553137232446167258e-3 +
1314 (0.94293113464638623798e-6 +
1315 (0.65972492312219959885e-8 +
1316 (0.35782041795476563662e-10 +
1317 0.14455745872000000000e-12 * t) *
1318 t) *
1319 t) *
1320 t) *
1321 t) *
1322 t;
1323 }
1324 case 82:
1325 {
1326 Tp t = 2 * y100 - 165;
1327 return 0.47282001668512331468e0 + (0.95799574408860463394e-2 +
1328 (0.11135019058000067469e-3 +
1329 (0.99716373005509038080e-6 +
1330 (0.69638453369956970347e-8 +
1331 (0.37549499088161345850e-10 +
1332 0.15003280712888888889e-12 * t) *
1333 t) *
1334 t) *
1335 t) *
1336 t) *
1337 t;
1338 }
1339 case 83:
1340 {
1341 Tp t = 2 * y100 - 167;
1342 return 0.49243342227179841649e0 + (0.10037550043909497071e-1 +
1343 (0.11750334542845234952e-3 +
1344 (0.10544006716188967172e-5 +
1345 (0.73484461168242224872e-8 +
1346 (0.39383162326435752965e-10 +
1347 0.15559069118222222222e-12 * t) *
1348 t) *
1349 t) *
1350 t) *
1351 t) *
1352 t;
1353 }
1354 case 84:
1355 {
1356 Tp t = 2 * y100 - 169;
1357 return 0.51298708979209258326e0 + (0.10520454564612427224e-1 +
1358 (0.12400930037494996655e-3 +
1359 (0.11147886579371265246e-5 +
1360 (0.77517184550568711454e-8 +
1361 (0.41283980931872622611e-10 +
1362 0.16122419680000000000e-12 * t) *
1363 t) *
1364 t) *
1365 t) *
1366 t) *
1367 t;
1368 }
1369 case 85:
1370 {
1371 Tp t = 2 * y100 - 171;
1372 return 0.53453307979101369843e0 + (0.11030120618800726938e-1 +
1373 (0.13088741519572269581e-3 +
1374 (0.11784797595374515432e-5 +
1375 (0.81743383063044825400e-8 +
1376 (0.43252818449517081051e-10 +
1377 0.16692592640000000000e-12 * t) *
1378 t) *
1379 t) *
1380 t) *
1381 t) *
1382 t;
1383 }
1384 case 86:
1385 {
1386 Tp t = 2 * y100 - 173;
1387 return 0.55712643071169299478e0 + (0.11568077107929735233e-1 +
1388 (0.13815797838036651289e-3 +
1389 (0.12456314879260904558e-5 +
1390 (0.86169898078969313597e-8 +
1391 (0.45290446811539652525e-10 +
1392 0.17268801084444444444e-12 * t) *
1393 t) *
1394 t) *
1395 t) *
1396 t) *
1397 t;
1398 }
1399 case 87:
1400 {
1401 Tp t = 2 * y100 - 175;
1402 return 0.58082532122519320968e0 + (0.12135935999503877077e-1 +
1403 (0.14584223996665838559e-3 +
1404 (0.13164068573095710742e-5 +
1405 (0.90803643355106020163e-8 +
1406 (0.47397540713124619155e-10 +
1407 0.17850211608888888889e-12 * t) *
1408 t) *
1409 t) *
1410 t) *
1411 t) *
1412 t;
1413 }
1414 case 88:
1415 {
1416 Tp t = 2 * y100 - 177;
1417 return 0.60569124025293375554e0 + (0.12735396239525550361e-1 +
1418 (0.15396244472258863344e-3 +
1419 (0.13909744385382818253e-5 +
1420 (0.95651595032306228245e-8 +
1421 (0.49574672127669041550e-10 +
1422 0.18435945564444444444e-12 * t) *
1423 t) *
1424 t) *
1425 t) *
1426 t) *
1427 t;
1428 }
1429 case 89:
1430 {
1431 Tp t = 2 * y100 - 179;
1432 return 0.63178916494715716894e0 + (0.13368247798287030927e-1 +
1433 (0.16254186562762076141e-3 +
1434 (0.14695084048334056083e-5 +
1435 (0.10072078109604152350e-7 +
1436 (0.51822304995680707483e-10 +
1437 0.19025081422222222222e-12 * t) *
1438 t) *
1439 t) *
1440 t) *
1441 t) *
1442 t;
1443 }
1444 case 90:
1445 {
1446 Tp t = 2 * y100 - 181;
1447 return 0.65918774689725319200e0 + (0.14036375850601992063e-1 +
1448 (0.17160483760259706354e-3 +
1449 (0.15521885688723188371e-5 +
1450 (0.10601827031535280590e-7 +
1451 (0.54140790105837520499e-10 +
1452 0.19616655146666666667e-12 * t) *
1453 t) *
1454 t) *
1455 t) *
1456 t) *
1457 t;
1458 }
1459 case 91:
1460 {
1461 Tp t = 2 * y100 - 183;
1462 return 0.68795950683174433822e0 + (0.14741765091365869084e-1 +
1463 (0.18117679143520433835e-3 +
1464 (0.16392004108230585213e-5 +
1465 (0.11155116068018043001e-7 +
1466 (0.56530360194925690374e-10 +
1467 0.20209663662222222222e-12 * t) *
1468 t) *
1469 t) *
1470 t) *
1471 t) *
1472 t;
1473 }
1474 case 92:
1475 {
1476 Tp t = 2 * y100 - 185;
1477 return 0.71818103808729967036e0 + (0.15486504187117112279e-1 +
1478 (0.19128428784550923217e-3 +
1479 (0.17307350969359975848e-5 +
1480 (0.11732656736113607751e-7 +
1481 (0.58991125287563833603e-10 +
1482 0.20803065333333333333e-12 * t) *
1483 t) *
1484 t) *
1485 t) *
1486 t) *
1487 t;
1488 }
1489 case 93:
1490 {
1491 Tp t = 2 * y100 - 187;
1492 return 0.74993321911726254661e0 + (0.16272790364044783382e-1 +
1493 (0.20195505163377912645e-3 +
1494 (0.18269894883203346953e-5 +
1495 (0.12335161021630225535e-7 +
1496 (0.61523068312169087227e-10 +
1497 0.21395783431111111111e-12 * t) *
1498 t) *
1499 t) *
1500 t) *
1501 t) *
1502 t;
1503 }
1504 case 94:
1505 {
1506 Tp t = 2 * y100 - 189;
1507 return 0.78330143531283492729e0 + (0.17102934132652429240e-1 +
1508 (0.21321800585063327041e-3 +
1509 (0.19281661395543913713e-5 +
1510 (0.12963340087354341574e-7 +
1511 (0.64126040998066348872e-10 +
1512 0.21986708942222222222e-12 * t) *
1513 t) *
1514 t) *
1515 t) *
1516 t) *
1517 t;
1518 }
1519 case 95:
1520 {
1521 Tp t = 2 * y100 - 191;
1522 return 0.81837581041023811832e0 + (0.17979364149044223802e-1 +
1523 (0.22510330592753129006e-3 +
1524 (0.20344732868018175389e-5 +
1525 (0.13617902941839949718e-7 +
1526 (0.66799760083972474642e-10 +
1527 0.22574701262222222222e-12 * t) *
1528 t) *
1529 t) *
1530 t) *
1531 t) *
1532 t;
1533 }
1534 case 96:
1535 {
1536 Tp t = 2 * y100 - 193;
1537 return 0.85525144775685126237e0 + (0.18904632212547561026e-1 +
1538 (0.23764237370371255638e-3 +
1539 (0.21461248251306387979e-5 +
1540 (0.14299555071870523786e-7 +
1541 (0.69543803864694171934e-10 +
1542 0.23158593688888888889e-12 * t) *
1543 t) *
1544 t) *
1545 t) *
1546 t) *
1547 t;
1548 }
1549 case 97:
1550 {
1551 Tp t = 2 * y100 - 195;
1552 return 0.89402868170849933734e0 + (0.19881418399127202569e-1 +
1553 (0.25086793128395995798e-3 +
1554 (0.22633402747585233180e-5 +
1555 (0.15008997042116532283e-7 +
1556 (0.72357609075043941261e-10 +
1557 0.23737194737777777778e-12 * t) *
1558 t) *
1559 t) *
1560 t) *
1561 t) *
1562 t;
1563 }
1564 case 98:
1565 {
1566 Tp t = 2 * y100 - 197;
1567 return 0.93481333942870796363e0 + (0.20912536329780368893e-1 +
1568 (0.26481403465998477969e-3 +
1569 (0.23863447359754921676e-5 +
1570 (0.15746923065472184451e-7 +
1571 (0.75240468141720143653e-10 +
1572 0.24309291271111111111e-12 * t) *
1573 t) *
1574 t) *
1575 t) *
1576 t) *
1577 t;
1578 }
1579 case 99:
1580 {
1581 Tp t = 2 * y100 - 199;
1582 return 0.97771701335885035464e0 + (0.22000938572830479551e-1 +
1583 (0.27951610702682383001e-3 +
1584 (0.25153688325245314530e-5 +
1585 (0.16514019547822821453e-7 +
1586 (0.78191526829368231251e-10 +
1587 0.24873652355555555556e-12 * t) *
1588 t) *
1589 t) *
1590 t) *
1591 t) *
1592 t;
1593 }
1594 }
1595 // we only get here if y = 1, i.e. |x| < 4*eps, in which case
1596 // erfcx is within 1e-15 of 1..
1597 return Tp(1.0);
1598}
1599
1624template <typename Tp>
1625Tp erfcx(Tp x)
1626{
1627 static_assert(std::is_floating_point_v<Tp>,
1628 "erfcx requires a floating-point type");
1629
1630 if (x >= 0) {
1631 if (x > 50) // continued-fraction expansion is faster
1632 {
1633 // 1/sqrt(pi)
1634 constexpr Tp inv_sqrtpi = 0.564189583547756286948079451560772586L;
1635
1636 if (x > 5e7) // 1-term expansion, important to avoid overflow
1637 {
1638 return inv_sqrtpi / x;
1639 }
1640
1641 // 5-term expansion (rely on compiler for CSE)
1642 return inv_sqrtpi * ((x * x) * (x * x + 4.5) + 2) /
1643 (x * ((x * x) * (x * x + 5) + 3.75));
1644 }
1645 return erfcx_y100(400 / (4 + x));
1646 }
1647
1648 return x < -26.7
1649 ? std::numeric_limits<Tp>::infinity()
1650 : (x < -6.1 ? 2 * sycl::exp(x * x)
1651 : 2 * sycl::exp(x * x) - erfcx_y100(400 / (4 - x)));
1652}
1653} // namespace dpnp::kernels::erfs::impl