%% table des integrales de FresnelC {dup mul 2 div 180 mul cos}
%% 0.00 -- 0.99
/t@ble_FresnelC [
0
.0100000000 .0199999992 .029999994 .0399999747 .0499999229
.0599998081 .0699995853 .0799991915 .0899985430 .0999975326
.1099960263 .1199938605 .129990839 .1399867303 .1499812643
.1599741294 .1699649698 .1799533824 .1899389138 .1999210576
.2098992512 .2198728733 .2298412404 .2398036046 .2497591504
.2597069918 .2696461698 .2795756492 .2894943164 .2994009761
.3092943488 .3191730687 .3290356801 .3388806359 .3487062942
.3585109167 .3682926656 .3780496018 .3877796825 .3974807592
.4071505754 .4167867651 .4263868503 .4359482402 .4454682287
.4549439935 .4643725945 .4737509729 .4830759499 .4923442259
.5015523799 .5106968692 .5197740285 .5287800707 .5377110861
.5465630435 .5553317905 .5640130543 .572602443 .581095447
.5894874405 .5977736837 .6059493251 .6140094041 .621948854
.6297625051 .6374450889 .6449912417 .6523955094 .6596523519
.666756149 .6737012055 .6804817578 .6870919798 .6935259908
.6997778622 .7058416257 .7117112819 .717380809 .7228441719
.7280953327 .7331282604 .7379369424 .7425153951 .7468576764
.7509578978 .7548102372 .7584089521 .7617483938 .7648230213
.7676274161 .7701562977 .7724045387 .7743671813 .7760394535
.7774167862 .7784948298 .7792694724 .7797368571 .7798934004
.7797358102 .7792611047 .7784666308 .7773500828 .7759095215
.7741433931 .7720505476 .7696302583 .7668822396 .7638066661
.7604041902 .7566759605 .7526236386 .7482494165 .7435560327
.7385467881 .733225561 .7275968215 .7216656446 .7154377229
.7089193778 .7021175699 .6950399079 .6876946561 .6800907411
.6722377563 .6641459651 .6558263022 .6472903738 .6385504547
.6296194847 .6205110621 .6112394354 .6018194927 .5922667491
.582597331 .5728279585 .5629759258 .5530590774 .5430957835
.5331049119 .5231057968 .5131182057 .5031623031 .4932586115
.4834279695 .4736914878 .4640705014 .4545865202 .445261176
.436116168 .4271732047 .4184539438 .4099799306 .4017725327
.3938528737 .3862417651 .3789596354 .3720264592 .3654616834
.3592841535 .353512038 .3481627533 .3432528871 .3387981224
.3348131615 .3313116503 .3283061043 .3258078346 .323826876
.3223719177 .321450235 .3210676245 .3212283425 .3219350461
.3231887391 .3249887214 .3273325437 .3302159669 .3336329272
.3375755074 .3420339135 .3469964594 .3524495576 .3583777175
.3647635519 .3715877909 .378829305 .3864651354 .3944705349
.4028190163 .4114824108 .4204309357 .4296332709 .4390566456
.4486669336 .4584287588 .4683056091 .4782599599 .4882534061
.4982468029 .5082004149 .5180740719 .5278273339 .5374196611
.5468105909 .5559599207 .5648278945 .5733753944 .5815641351
.58935686 .5967175399 .6036115702 .610005969 .6158695726
.6211732276 .6258899795 .6299952553 .6334670401 .6362860449
.638435866 .6399031337 .6406776489 .6407525074 .6401242099
.6387927561 .6367617228 .6340383246 .6306334551 .6265617098
.6218413872 .6164944698 .6105465823 .604026928 .5969682018
.5894064804 .5813810885 .5729344425 .5641118697 .5549614059
.5455335691 .5358811128 .5260587568 .516122899 .5061313082
.4961427988 .4862168906 .4764134535 .4667923403 .4574130096
.4483341403 .4396132406 .431306254 .4234671652 .416147608
.4093964788 .4032595578 .3977791418 .3929936918 .3889374962
.3856403566 .3831272953 .3814182897 .3805280364 .3804657464
.3812349759 .382833493 .3852531852 .3884800067 .3924939699
.3972691811 .4027739222 .4089707785 .4158168145 .4232637963
.4312584613 .4397428344 .4486545889 .4579274521 .4674916517
.4772744025 .487200429 .4971925221 .5071721247 .5170599439
.5267765833 .5362431932 .5453821306 .554117626 .5623764502
.5700885756 .5771878252 .5836125044 .5893060082 .5942173986
.5983019444 .6015216196 .6038455526 .6052504213 .6057207893
.6052493769 .6038372641 .6014940202 .5982377573 .594095105
.5891011038 .5832990164 .5767400553 .5694830283 .5615939025
.5531452877 .5442158438 .5348896151 .5252552958 .5154054324
.5054355706 .4954433518 .4855275683 .4757871867 .466320347
.4572233481 .4485896313 .4405087701 .4330654797 .4263386556
.4204004542 .415315425 .4111397066 .4079202962 .4056944037
.4044888988 .4043198608 .4051922386 .4070996271 .4100241677
.4139365746 .4187962921 .4245517841 .4311409553 .4384917034
.4465225988 .4551436878 .464257412 .4737596365 .483540778
.4934870199 .5034816041 .5134061843 .5231422255 .532572435
.5415822062 .5500610587 .5579040561 .5650131825 .5712986599
.5766801876 .5810880863 .5844643285 .5867634405 .5879532597
.5880155343 .5869463534 .5847563972 .5814710001 .5771300207
.5717875157 .5655112175 .558381818 .5504920623 .5419456622
.5328560381 .5233449044 .5135407123 .5035769703 .4935904626
.4837193871 .4741014392 .4648718665 .4561615227 .448094947
.4407885002 .4343485837 .4288699707 .4244342774 .4211085985
.4189443327 .4179762206 .4182216121 .4196799827 .4223327103
.4261431211 .4310568129 .4370022545 .4438916592 .4516221259
.460077035 .4691276832 .4786351374 .488452282 .498426033
.5083996856 .5182153606 .5277165141 .5367504675 .5451709213
.5528404062 .5596326344 .5654347053 .5701491297 .5736956315
.5760126926 .5770588106 .5768134393 .5752775903 .5724740777
.5684473944 .5632632128 .5570075117 .5497853361 .5417192032
.5329471759 .5236206307 .513901752 .5039607935 .4939731495
.4841162855 .474566581 .4654961393 .4570696225 .449441171
.4427514649 .4371249852 .4326675311 .4294640434 .4275767829
.4270439047 .4278784635 .4300678792 .4335738809 .4383329408
.4442572007 .4512358812 .4591371589 .4678104815 .4770892863
.486794076 .496735798 .5067194663 .5165479586 .5260259151
.5349636636 .5431810916 .5505113843 .556804551 .5619306635
.5657827318 .5682791527 .5693656713 .5690168037 .5672366823
.5640592922 .5595480844 .5537949594 .546918632 .5390623992
.530391349 .5210890573 .5113538372 .5013946111 .4914264906
.4816661544 .4723271229 .4636150319 .4557230098 .448827265
.4430829853 .4386206473 .435542828 .4339216003 .4337965816
.4351736947 .4380246802 .4422873887 .4478668581 .4546371675
.4624440374 .471108131 .4804289904 .4901895264 .5001609675
.5101081562 .5197950742 .5289904667 .5374734337 .5450388496
.5515024794 .5567056585 .5605194155 .5628479239 .5636311887
.5628468844 .5605112845 .5566792431 .5514432117 .5449312983
.537304401 .5287524725 .5194899941 .5097507626 .49978211
.4898386955 .4801760235 .4710438504 .4626796497 .4553023094
.4491062288 .4442559795 .4408816811 .4390752267 .4388874742
.4403264956 .4433569489 .4479006105 .453838072 .4610115774
.469228941 .4782684586 .4878846941 .4978149955 .5077865742
.5175239585 .5267566214 .5352265703 .5426956859 .5489525987
.5538188995 .5571544973 .5588619571 .5588896748 .557233781
.5539386947 .54909629 .5428436765 .5353596343 .5268597867
.5175906299 .5078225789 .4978422163 .4879439642 .4784214149
.4695585767 .4616212937 .4548491035 .4494477844 .4455828299
.4433740648 .4428915861 .4441531737 .4471232757 .4517136246
.4577854917 .4651535358 .4735911526 .4828371803 .4926037728
.5025852114 .5124673901 .5219376849 .5306948972 .5384589566
.5449800654 .5500469828 .5534941677 .5552075285 .5551285733
.5532567978 .5496502056 .544423915 .5377468671 .529836716
.5209530409 .5113890816 .5014622501 .4915037182 .4818474165
.4728188096 .4647238215 .4578382938 .4523983415 .4485919532
.4465521414 .4463519048 .4480012022 .4514460766 .4565699901
.4631973584 .4710991935 .4800006888 .4895905067 .4995314679
.5094722816 .5190599154 .5279521716 .5358300215 .5424092512
.5474509862 .5507706983 .5522453438 .5518183451 .5495022013
.5453785968 .5395959674 .5323645749 .5239492373 .5146599501
.5048407175 .4948569845 .485082123 .4758834658 .4676084098
.4605711173 .4550403285 .4512287677 .4492845709 .4492850935
.4512333718 .4550574126 .4606123786 .4676856289 .4760044554
.485246254 .4950507652 .5050339308 .5148028437 .5239712133
.5321747387 .5390857767 .5444267058 .5479814335 .5496045557
.5492277672 .5468632227 .5426036701 .5366193056 .529151432
.5205031363 .5110273277 .5011125936 .4911674273 .4816034599
.4728183813 .4651792583 .4590069544 .4545623219 .4520347718
.4515337378 .4530834366 .456621192 .4619994443 .4689914077
.4773001855 .486570995 .4964060198 .5063812792 .516064812
.5250353986 .5329010116 .5393161824 .5439975061 .5467365749
.5474097354 .5459841929 .5425201417 .537168775 .5301662061
.5218235204 .5125133534 .5026535545 .4926886371 .483069828
.4742346061 .4665866571 .460477169 .4561883442 .4539199185
.4537793469 .4557761625 .4598208227 .4657281569 .4732253144
.4819638984 .4915357718 .501491836 .5113629342 .5206819163
.5290058307 .5359371864 .541143257 .5443724753 .5454670925
.5443714433 .54113536 .5359125094 .5289536655 .5205951835
.5112431768 .5013541175 .4914127704 .4819085134 .4733111967
.4660477317 .4604805833 .4568892632 .4554557877 .4562548788
.4592494634 .4642917619 .4711299831 .4794203561 .4887439537
.4986275091 .5085672124 .5180543025 .5266011609 .5337665692
.5391788122 .5425554028 .543718362 .5426042004 .5392680157
.5338814177 .5267243141 .5181709143 .5086706194 .4987247488
.4888602888 .4796020247 .4714445265 .4648254855 .4601018521
.4575300923 .4572516806 .4592846775 .4635219228 .4697360231
.4775909444 .4866596541 .4964469175 .5064160579 .5160182502
.5247227597 .5320464599 .537580979 .5410159345 .5421569092
.5409370996 .5374219058 .5318061203 .5244037874 .5156312197
.5059840546 .4960095883 .4862759072 .4773395496 .4697135316
.463837585 .4600523456 .4585790346 .4595058726 .4627820968
.4682200177 .4755050896 .4842134985 .4938363221 .5038089159
.5135438516 .5224654992 .5300442212 .5358281396 .5394705527
.5407513138 .5395908201 .5360556847 .5303556572 .5228318755
.5139370625 .5042087773 .494237268 .4846298281 .4759737938
.468800439 .4635519937 .4605538582 .4599937848 .4619093981
.466184922 .4725574212 .4806322762 .4899070262 .4998021804
.5096971386 .5189690141 .5270319394 .53337437 .5375919952
.5394141131 .5387217123 .5355560121 .5301168078 .5227506126
.5139292483 .5042201613 .4942502939 .4846657854 .4760900796
.469083152 .4641045379 .4614826239 .4613922916 .4638424767
.4686745737 .4755719116 .4840797916 .4936348708 .5036020344
.5133163736 .5221275138 .5294433409 .5347701756 .5377466484
.5381689134 .5360053992 .5313999817 .5246632362 .5162522387
.5067401761 .4967777388 .487048865 .4782238248 .470912859
.465623588 .4627251903 .462421913 .4647378645 .4695142697
.4764195153 .4849714143 .4945702513 .5045403912 .5141775986
.5227987716 .5297905829 .534653549 .5370383345 .5367716104
.5338695011 .5285375248 .5211568874 .5122579796 .50248286
.4925393345 .4831498816 .474999097 .4686834797 .4646672643
.4632476031 .4645317583 .4684281094 .4746517854 .4827446537
.4921083309 .5020478926 .5118231308 .5207036059 .5280234049
.5332314916 .5359338123 .5359238957 .5331995166 .5279640162
.5206120237 .511700507 .5019072109 .4919795348 .4826776704
.4747163096 .4687093956 .4651222127 .4642345929 .4661182046
.4706298284 .4774213067 .485965556 .4955967709 .5055618106
.5150788431 .5233987029 .529864149 .533962315 .5353661275
.5339612928 .5298565599 .523376275 .515035646 .5055005287
.4955348096 .4859394974 .4774883535 .4708652321 .4666082201
.4650651819 .4663644364 .4704031066 .4768542684 .4851924964
.4947358906 .5047012898 .5142682473 .5226465715 .5291418733
.5332136638 .5345210975 .5329524314 .5286355795 .521928699
.5133914002 .5037388162 .4937822318 .4843611547 .4762724917
.4702028048 .4666694327 .4659755738 .4681832971 .4731069614
.4803278002 .4892286246 .4990458504 .5089345288 .518040887
.5255761688 .5308853812 .5335049212 .5332039557 .5300057868
.524187145 .5162552606 .5069045199 .4969563288 .487287331
.4787522188 .4721079235 .4679459312 .4666388205 .4683059238
.4728013591 .4797257129 .4884605485 .4982228496 .5081346816
.5173019233 .5248950322 .5302245401 .532804373 .5323971188
.5290369464 .5230278733 .5149173138 .5054471058 .4954863105
.4859518119 .4777239324 .4715648281 .4680472545 .4675004165
.4699780996 .4752522602 .4828329076 .4920126548 .5019319847
.5116592811 .5202782185 .5269743272 .5311125338 .5322982467
.5304160309 .5256419908 .518428439 .5094620664 .4995993795
.4897853942 .4809632523 .4739833858 .4695209943 .4680098912
.4695992778 .4741378487 .4811870206 .4900622558
.4998986942
] def
%% syntaxe : x fresnelC --> int_ 0^x cos (90t^2) dt
%% on note i = Ent (100 * x) et xi = i / 100. Ainsi, si x=4.112 23, on
%% aura i = 411 et xi = 4.11
%% Comme fresnelC (xi) = tablefresnelC (i), on aura
%% fresnelC (x) = tablefresnelC (i) + int_xi^x cos (90t^2) dt
/fresnelC {
dup 0 lt { %% si x < 0
neg fresnelC neg %% on renvoie - fresnelC (-x)
} { %% sinon
2 dict begin %% on ouvre un dictionnaire local
%% pour encapsuler les variables x et i
/x exch def %% on nomme x le nombre sur la pile
/i x 100 mul truncate cvi def
x 10 le { %% si x <= 10
%% on renvoie
%% tablefresnelC (i) + int_xi^x cos (90t^2) dt
i 100 div x {dup mul 90 mul cos} 30 simpson
i t@ble_FresnelC exch get add
} { %% sinon x > 10
%% on renvoie
%% tablefresnelC (1000) + int_10^x cos (90t^2) dt
%% avec un pas de 0.01 pour simpson
10 x {dup mul 90 mul cos} x 10 sub 100 mul simpson
t@ble_FresnelC 1000 get add
} ifelse
end %% on ferme le dictionnaire local
} ifelse
} def
|