%% table des integrales de FresnelS {dup mul 2 div 180 mul sin}
%% 0.00 -- 0.99
/t@bleFresnelS [
0
5.2359877470e-07 4.1887900870e-06 1.4137164920e-05 3.3510306520e-05 6.5449774860e-05
.0001130971 .0001795936 .0002680806 .0003816991 .0005235895
.0006968920 .0009047456 .0011502886 .0014366578 .0017669882
.0021444129 .0025720621 .0030530631 .0035905392 .0041876092
.0048473865 .0055729784 .006367485 .0072339982 .0081756002
.0091953629 .0102963459 .0114815950 .0127541411 .0141169980
.0155731607 .0171256034 .0187772773 .0205311082 .0223899947
.0243568049 .0264343739 .0286255013 .0309329480 .0333594327
.0359076291 .0385801621 .0413796043 .0443084722 .0473692222
.0505642463 .0538958682 .0573663383 .0609778297 .0647324329
.0686321510 .0726788947 .0768744770 .0812206076 .0857188873
.0903708027 .0951777197 .1001408779 .1052613844 .1105402074
.1159781697 .1215759428 .1273340392 .1332528068 .1393324215
.1455728804 .1519739951 .1585353844 .1652564678 .1721364579
.1791743538 .186368934 .1937187496 .2012221169 .2088771112
.2166815597 .224633035 .2327288484 .2409660443 .2493413931
.2578513861 .2664922295 .2752598392 .2841498356 .293157539
.3022779651 .3115058212 .3208355025 .3302610894 .3397763444
.3493747106 .3590493099 .3687929425 .3785980862 .3884568976
.3983612125 .4083025486 .4182721077 .4282607799 .4382591474
.4482574902 .4582457924 .4682137496 .4781507768 .4880460182
.4978883572 .5076664281 .5173686286 .5269831338 .5364979111
.545900736 .5551792099 .5643207786 .5733127521 .5821423254
.5907966017 .5992626149 .6075273555 .615577796 .6234009185
.6309837436 .6383133594 .6453769533 .6521618432 .6586555116
.664845639 .6707201393 .6762671963 .6814753001 .6863332855
.69083037 .694956193 .6987008558 .7020549612 .7050096544
.707556663 .7096883382 .7113976952 .7126784536 .7135250774
.7139328146 .7138977365 .713416775 .7124877606 .7111094575
.7092815985 .7070049182 .7042811839 .701113225 .6975049601
.6934614219 .6889887795 .6840943577 .6787866537 .6730753502
.6669713256 .6604866604 .6536346397 .646429752 .6388876835
.6310253087 .6228606756 .6144129873 .6057025781 .5967508845
.5875804123 .5782146971 .5686782607 .5589965615 .5491959403
.53930356 .5293473402 .5193558869 .5093584165 .4993846746
.4894648498 .4796294827 .4699093702 .4603354647 .4509387693
.4417502292 .4328006189 .4241204261 .4157397323 .4076880911
.399994404 .3926867944 .3857924806 .3793376473 .3733473178
.367845226 .3628536894 .3583934844 .3544837229 .3511417325
.3483829406 .3462207622 .3446664936 .3437292113 .3434156784
.3437302573 .3446748315 .3462487358 .348448696 .351268779
.3547003542 .3587320657 .3633498177 .3685367721 .3742733594
.3805373037 .3873036622 .3945448784 .4022308513 .4103290188
.4188044571 .4276199949 .4367363433 .4461122406 .4557046121
.4654687448 .4753584758 .4853263952 .4953240608 .5053022268
.5152110822 .5250005008 .5346203002 .5440205092 .5531516416
.561964976 .5704128399 .5784488951 .586028425 .5931086202
.5996488621 .6056110002 .610959625 .61566233 .6196899649
.6230168752 .6256211271 .6274847164 .6285937583 .6289386567
.6285142509 .6273199388 .6253597732 .6226425315 .6191817558
.6149957634 .6101076251 .6045451125 .5983406105 .591530998
.5841574931 .5762654655 .5679042144 .5591267136 .5499893232
.5405514701 .5308752987 .5210252916 .5110678644 .5010709352
.491103472 .4812350201 .4715352133 .4620732715 .4529174876
.4441347095 .4357898179 .4279452075 .4206602721 .4139909015
.4079889917 .4027019745 .3981723706 .3944373696 .3915284435
.3894709957 .3882840501 .3879799859 .3885643192 .3900355363
.3923849822 .395596805 .3996479604 .4045082776 .4101405871
.416500912 .4235387233 .4311972578 .4394138985 .4481206161
.4572444688 .4667081577 .4764306349 .4863277599 .496312999
.5062981641 .5161941833 .5259118975 .5353628771 .5444602502
.5531195351 .56125947 .5688028303 .5756772254 .5818158681
.5871583055 .5916511056 .5952484887 .5979128991 .5996155053
.6003366255 .6000660695 .5988033915 .5965580492 .5933494646
.5892069827 .5841697264 .5782863455 .5716146603 .5642211996
.5561806365 .5475751248 .5384935395 .529030629 .519286085
.5093635373 .4993694853 .4894121733 .479600424 .4700424393
.4608445847 .4521101671 .4439382235 .4364223325 .4296494644
.4236988848 .4186411241 .41453703 .4114369136 .4093798042
.4083928226 .4084906856 .4096753499 .4119358035 .415248012
.4195750229 .4248672326 .4310628147 .4380883102 .4458593756
.4542816828 .4632519639 .4726591907 .4823858769 .4923094891
.5023039516 .5122412257 .5219929466 .5314320959 .5404346884
.548881452 .5566594758 .5636638053 .5697989598 .5749803499
.5791355738 .58220557 .5841456076 .5849260967 .5845332022
.5829692476 .5802528999 .576419124 .571518906 .5656187398
.5587998825 .551157381 .5427988808 .5338432278 .5244188803
.51466215 .5047152933 .4947244803 .4848376669 .4752024024
.465963603 .4572613254 .4492285748 .4419891815 .435655782
.4303279374 .4260904226 .423011717 .4211427253 .4205157542
.4211437675 .4230199364 .4261175016 .4303899539 .435771539
.4421780853 .449508147 .4576444528 .4664556406 .475798257
.4855189931 .495457124 .5054471151 .5153213553 .5249129709
.5340586754 .5426016062 .5503940978 .5573003424 .5631988884
.5679849299 .571572341 .5738954139 .5749102635 .5745958657
.5729547034 .5700129989 .5658205217 .5604499639 .5539958877
.5465732536 .5383155491 .5293725435 .5199077032 .5100953094
.5001173262 .4901600724 .480410758 .4710539473 .4622680164
.4542216722 .4470706021 .440954323 .4359932942 .4322863569
.4299085578 .4289094069 .4293116141 .4311103381 .434272975
.4387394996 .4444233652 .4512129541 .4589735608 .4675498764
.476768935 .4864434688 .496375611 .5063608756 .5161923369
.5256649238 .5345797404 .5427483233 .5499967406 .5561694448
.5611327898 .5647781309 .5670244309 .5678203082 .567145469
.5650114821 .5614618651 .5565714681 .5504451541 .5432157929
.5350416 .5261028677 .5165981509 .5067399843 .496750219
.4868550781 .4772800405 .4682446663 .4599574835 .4526110562
.446377352 .4414035236 .4378082114 .4356784642 .4350673618
.4359924109 .438434765 .4423393033 .447615583 .4541396558
.4617567235 .4702845804 .4795177736 .4892323931 .4991913819
.5091502477 .5188630378 .528088435 .5365958226 .5441711658
.5506225571 .555785279 .5595262471 .561747707 .5623900797
.561433864 .5589005318 .5548523749 .5493912884 .5426565038
.5348213131 .5260888528 .5166870422 .5068627965 .4968756559
.4869909913 .4774729625 .4685774129 .4605448943 .4535940121
.4479152783 .4436656501 .4409639157 .4398870686 .4404677886
.4426931184 .4465043926 .4517984429 .458430067 .4662157135
.4749382985 .4843530358 .4941941328 .5041821736 .5140319887
.5234607936 .5321963636 .5399850092 .5465991153 .5518440159
.5555639932 .557647207 .5580293929 .556696198 .5536840628
.5490795978 .5430174502 .5356766989 .5272758637 .5180666565
.5083266453 .498351037 .4884438158 .4789085019 .4700388065
.4621094742 .4553675987 .4500246913 .4462497628 .4441636521
.4438348007 .4452766307 .4484466334 .4532472271 .4595283826
.4670919624 .4756976586 .4850703657 .4949087689 .5048948895
.5147042907 .5240166181 .5325261357 .5399519074 .5460472838
.5506083657 .5534811485 .5545670862 .5538268648 .5512822299
.5470157766 .5411686769 .5339363917 .52556248 .5163306915
.5065555848 .4965719744 .4867235522 .4773510676 .4687804688
.4613114216 .455206612 .4506822224 .4478999337 .4469607612
.4479009698 .4506902458 .4552322251 .4613673932 .4688782887
.4774968576 .4869137223 .4967890578 .5067647035 .5164770828
.5255704716 .5337101294 .5405948072 .5459681594 .5496286181
.5514373401 .5513238993 .5492894794 .5454074088 .5398209788
.5327385888 .5244263634 .5151984872 .5054055933 .4954216237
.4856296456 .4764071563 .4681114394 .4610655421 .4555454305
.4517688408 .4498862902 .4499746316 .4520334423 .4559844322
.4616739356 .4688784335 .4773129262 .4866418627 .4964922215
.5064682466 .5161672633 .5251959483 .5331863968 .5398113265
.5447977834 .5479387647 .5491022505 .5482372334 .5453764552
.5406356903 .5342095571 .5263639861 .5174256143 .5077685098
.4977987523 .4879374917 .4786031876 .470193772 .4630695011
.4575372396 .4538368733 .4521304671 .452494674 .4549167703
.4592945374 .4654400486 .4730872484 .4819030407 .4915014463
.5014602437 .5113393893 .5207004222 .5291259997 .5362386931
.5417181882 .5453160978 .5468676834 .5462999153 .5436354568
.5389923366 .5325792663 .5246867616 .5156744179 .5059548768
.4959751799 .4861963398 .4770720544 .4690275448 .4624395078
.4576181366 .4547920835 .4540971098 .4555690088 .459141193
.4646471205 .4718275073 .480342044 .4897851107 .4997047895
.5096242964 .5190648304 .527568747 .5347219354 .5401742961
.5436572939 .5449976868 .544126708 .5410841887 .5360173545
.5291742869 .5208923069 .5115817974 .5017062142 .4917592407
.482240201 .4736289463 .4663614821 .4608075787 .4572515306
.4558770846 .4567573601 .4598503401 .4650002362 .4719447272
.4803277737 .489717411 .4996276576 .5095434486 .5189473279
.5273465206 .5342989696 .5394369488 .5424869771 .5432849319
.5417854994 .5380653906 .5323200727 .5248541139 .5160655804
.5064252551 .4964517354 .4866837104 .4776508855 .4698451241
.463693381 .4595339322 .4575972442 .4579925921 .4607012329
.465576591 .4723515292 .4806523868 .4900190824 .49993023
.5098319217 .5191686024 .5274143229 .5341026096 .5388532434
.5413943906 .5415787703 .5393928655 .5349585688 .528527078
.5204653026 .5112354772 .501369079 .4914364977 .4820141681
.473651053 .4668364258 .4619708565 .4593421401 .4591076451
.461284196 .4657461774 .4722320677 .4803591099 .4896453404
.4995377427 .5094449092 .5187723005 .5269580085 .5335068675
.5380208304 .5402237233 .5399788061 .5372979877 .5323420347
.5254116608 .5169299374 .507417015 .4974586251 .4876702474
.4786591152 .4709864 .4651319389 .461463737 .4602142144
.4614647644 .4651396909 .4710100131 .4787070064 .4877447302
.4975502074 .5074994163 .5169568576 .525316199 .5320393956
.5366917511 .5389706063 .5387257295 .5359699922 .530879528
.5237832482 .5151422826 .5055205824 .495548519 .4858817999
.4771583624 .4699560774 .4647540768 .4619003168 .4615876081
.4638398067 .4685092006 .4752853908 .4837151923 .4932323333
.5031950487 .5129291049 .5217733919 .5291250025 .5344807166
.5374720122 .53789113 .5357063049 .5310649968 .5242847698
.5158323182 .5062919703 .4963257477 .4866276779 .4778754919
.4706830648 .4655569491 .4628601027 .46278545 .465341249
.4703494281 .4774571467 .4861608962 .4958415519 .5058079835
.5153461836 .5237704419 .5304728958 .534967863 .5369276903
.5362074286 .5328564224 .5271158329 .5194021294 .5102776105
.5004099879 .4905238894 .4813477778 .4735601585 .4677390575
.4643185519 .4635556635 .4655101905 .4700391188 .4768061817
.4853060052 .4949011704 .5048695303 .514458306 .5229409328
.5296723657 .534138618 .5359966942 .5351017651 .5315193743
.5255215839 .5175671957 .5082674122 .4983394449 .4885515466
.479663648 .4723681799 .4672356972 .4646696085 .464873648
.4678347758 .4733230042 .4809083359 .4899936437 .4998610456
.5097282275 .518810327 .5263824994 .5318381678 .5347382489
.5348473106 .5321536233 .5268713272 .519424364 .5104132952
.5005675318 .4906867185 .4815759456 .4739800218 .4685221828
.4656523081 .4656089991 .4683987807 .4737943103 .4813519293
.4904472891 .5003262646 .5101670633 .5191484503 .5265184411
.5316577044 .5341322964 .5337311806 .5304852207 .52466586
.516763404 .5074465554 .4975064638 .4877899164 .4791272761
.4722612899 .4677828893 .466079571 .4673009311 .4713444922
.477863245 .4862944568 .4959074449 .5058663307 .51530244
.5233901038 .5294192464 .5328583525 .5334021778 .5309998492
.5258606852 .5184370114 .5093852792 .4995087445 .4896866427
.4807960624 .4736334431 .468842736 .4668567504 .4678570908
.4717564757 .4782052469 .4866217025 .4962437225 .5061971828
.5155750767 .523520208 .5293039194 .5323935907 .5325025986
.5296179711 .5240029777 .5161741849 .506854869 .4969088976
.4872610547 .4788111185 .4723496652 .4684834996 .4675778019
.4697205802 .4747129851 .4820866351 .4911465591 .5010359197
.5108165651 .5195578859 .5264255787 .5307618308 .5321491702
.5304517078 .5258296003 .5187251011 .5098212882 .4999772157
.4901455616 .4812806128 .4742454518 .4697273899 .4681699786
] def
%% syntaxe : x fresnelS --> int_ 0^x sin (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 fresnelS (xi) = tablefresnelS (i), on aura
%% fresnelS (x) = tablefresnelS (i) + int_xi^x sin (90t^2) dt
/fresnelS {
dup 0 lt { %% si x < 0
neg fresnelS neg %% on renvoie - fresnelS (-x)
} { %% sinon
2 dict begin %% on ouvre un dictionnaire local
/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
%% tablefresnelS (i) + int_xi^x sin (90t^2) dt
i 100 div x {dup mul 90 mul sin} 30 simpson
i t@bleFresnelS exch get add
} { %% si x > 10
%% on renvoie
%% tablefresnelS (10) + int_10^x sin (90t^2) dt
%% avec un pas de 0.01 pour simpson
10 x {dup mul 90 mul sin} x 10 sub 100 mul simpson
t@bleFresnelS 1000 get add
} ifelse
end %% on ferme le dictionnaire local
} ifelse
} def
%% %% syntaxe : x fresnelS --> int_ 0^x sin (90t^2) dt
%% %% on note X = Ent (100 * x). Ainsi, si x=4.112 23, on aura
%% %% X = 411 et
%% %% fresnelS (x) = tablefresnelS (X) + int_X^x sin (90t^2) dt
%% /fresnelS {
%% dup 0 lt { %% si x < 0
%% neg fresnelS neg %% on renvoie - fresnelS (-x)
%% } { %% sinon
%% 1 dict begin %% on ouvre un dictionnaire local
%% /@x exch def %% on nomme @x le nombre sur la pile
%% @x 10 le { %% si x <= 10
%% %% on renvoie
%% %% tablefresnelS (X) + int_X^x sin (90t^2) dt
%% @x 100 mul truncate cvi 100 div @x {dup mul 90 mul sin} 30 simpson
%% @x 100 mul truncate cvi t@bleFresnelS exch get add
%% } { %% si x > 10
%% %% on renvoie
%% %% tablefresnelS (10) + int_10^x sin (90t^2) dt
%% 10 @x {dup mul 90 mul sin} @x 10 sub 100 mul simpson
%% t@bleFresnelS 1000 get add
%% } ifelse
%% end %% on ferme le dictionnaire local
%% } ifelse
%% } def
|