/*Translated by FOR_C, v3.4.2 (-), on 07/09/115 at 08:30:04 */ /*FOR_C Options SET: ftn=u io=c no=p op=aimnv s=dbov str=l x=f - prototypes */ #include #include "fcrt.h" #include "dgr29.h" #include /* PARAMETER translations */ #define D01 (-1.0e0/3.0e0) #define D02 (1.0e0/12.0e0) #define D03 (-2.0e0/135.0e0) #define D04 (1.0e0/864.0e0) #define D05 (1.0e0/2835.0e0) /* end of PARAMETER translations */ void /*FUNCTION*/ dgr29( double z, double u, double *t) { double c0, c1, c10, c11, c12, c13, c14, c15, c16, c2, c3, c4, c5, c6, c7, c8, c9; static double d0[7]={D01,D02,D03,D04,D05,-.178755144032921810699588477366e-03, .391926317852243778169704095630e-04}; static double a0[7]={-.234443848930188413698825870e-08,-.408902435641223939887180303e-07, -.327874000161065050049103731e-06,-.145717031728609218851588740e-05, -.372722892959910688597417881e-05,-.490033281596113358850307112e-05, -.218544851067999216147364227e-05}; static double b0[9]={-.129786815987713980865910767e-09,.319268409139858531586963150e-08, .597739416777031660496708557e-04,.131659965062389880196860991e-02, .138263099503103838517015533e-01,.866750030433403450681521877e-01, .349373447613102956696810725e00,.902581259032419042347458484e00, .139388806936391316154237713e01}; static double a1[7]={-.162671127226300802902860047e-05,-.359791514993122440319624428e-04, -.334816794629374699945489443e-03,-.167787748352827199882047653e-02, -.462960105006279850867332060e-02,-.627269388216833251971110268e-02, -.185185185185185185185185200e-02}; static double b1[9]={.361538770500640888027927000e-09,.974094440943696092434381137e-05, .275463718595762102271929980e-03,.356903970692700621824901511e-02, .276755209895072417713430394e-01,.140741499324744724262767201e00, .482173396010404307346794795e00,.109307843990990308990473663e01, .151225469637089956064399494e01}; static double a2[7]={.100841467329617467204527243e-06,.261809837060522545971782889e-05, .351658023234640143803014403e-04,.287368655528567495658887760e-03, .138385867950361368914038461e-02,.365985331203490698463644329e-02, .413359788359788359788359644e-02}; static double b2[8]={.144996224602847932479320241e-04,.378705615967233119938297206e-03, .457258679387716305283282667e-02,.333036784835643463383606186e-01, .160392471625881407829191009e00,.524238095721639512312120765e00, .114320896084982707537755002e01,.153405837991415136438992306e01}; static double a3[7]={.352304123782956092061364635e-06,.695396758348887902366951353e-05, .620467118988901865955998784e-04,.331552280167649130371474456e-03, .987931909328964685388525477e-03,.141844584435355290321010006e-02, .649434156378600823045102236e-03}; static double b3[8]={.656342109234806261144233394e-04,.130398975231883219976260776e-02, .126418031281256648240652355e-01,.760733201461716525855765749e-01, .308149284260387354956024487e00,.856743428738899911100227393e00, .159678625605457556492814589e01,.183078413578083710405050462e01}; static double a4[7]={-.260879135093022176005540138e-07,-.470448694272734954500324169e-06, -.487392507564453824976295590e-05,-.337525643163070607393381432e-04, -.173138093150706317400323103e-03,-.619343030286408407629007048e-03, -.861888290916711698604710684e-03}; static double b4[8]={.561738585657138771286755470e-04,.104553622856827932853059322e-02, .990129468337836044520381371e-02,.590964360473404599955095091e-01, .241580582651643837306299024e00,.686949677014349678482109368e00, .133507902144433100426436242e01,.162826466816694512158165085e01}; static double a5[7]={-.116166342948098688243985652e-07,.506465072067030007394288471e-08, -.556701576804390213081214801e-05,-.332229941748769925615918550e-04, -.171902547619915856635305717e-03,-.548868487607991087508092013e-03, -.336798553366358151161633777e-03}; static double b5[7]={.106576106868815233442641444e-03,.280714123386276098548285440e-02, .254669201041872409738119341e-01,.136071713023783507468096673e00, .462890328922621047510807887e00,.103913867517817784825064299e01, .142263185288429590449288300e01}; static double a6[4]={.118384620224413424936260301e-04,.694345283181981060040314140e-05, .209213745619758030399432459e-03,.531307936463992224884286210e-03}; static double b6[9]={-.633002360430352916354621750e-05,-.248639208901374031411609873e-04, .151734058829700925162000373e-03,.477475914272399601740818883e-02, .384410125775084107229541456e-01,.184699876959596092801262547e00, .571784440733980642101712125e00,.118432122801495778365352945e01, .150831585220968267709550582e01}; static double a7[5]={.972342656522493967167788395e-05,.462793722775687016808279009e-04, .208913588225005764102252127e-03,.605983804794748515383615779e-03, .344367606892381545765962366e-03}; static double b7[7]={.215964480325937088444595990e-03,.621296161441756044580440529e-02, .497403555098433701440032746e-01,.230812334251394761909158355e00, .682159830165959997577293001e00,.133753662990343866552766613e01, .160951809815647533045690195e01}; static double a8[5]={-.231069438570167401077137510e-05,-.192877995065652524742879002e-04, -.282551884312564905942488077e-04,-.353272052089782073130912603e-03, -.652623918595320914510590273e-03}; static double b8[7]={.156052480203446255774109882e-02,.189231675289329563916597032e-01, .110127834209242088316741250e00,.407929996207245634766606879e00, .101702505946784412105505734e01,.172269407630659768618234623e01, .182765408802230546887514255e01}; static double a9[5]={-.203007139532451428594124139e-04,-.120148495117517992204095691e-03, -.377126645910917006921076652e-03,-.109151697941931403194363814e-02, -.596761290192642722092337263e-03}; static double b9[6]={.108808775028021530146610124e-01,.803149717787956717154553908e-01, .335555306170768573903990019e00,.881575022436158946373557744e00, .156222230858412078350692234e01,.170833470935668756293234818e01}; static double a10[4]={.475862254251166503473724173e-04,-.352503880413640910997936559e-04, .580375987713106460207815603e-03,.133244544950730832649306319e-02}; static double b10[6]={.161103572271541189817119144e-01,.114651544043625219459951640e00, .448280675300097555552484502e00,.110810715319704031415255670e01, .183146436130501918547134176e01,.187235769169449339141968881e01}; static double a11[4]={.121185049262809526794966703e-03,.717725173388339108430635016e-05, .246371734409638623215800502e-02,.157972766214718575927904484e-02}; static double b11[5]={.794610889405176143379963912e-02,.131627017265860324219513170e00, .505939635317477779328000706e00,.116082103318559904744144217e01, .145670749780693850410866175e01}; static double a12[4]={-.246294151509758620837749269e-03,.650624975008642297405944869e-03, -.214376520139497301154749750e-03,-.407251199495291398243480255e-02}; static double b12[4]={.168390445944818504703640731e00,.653453590771198550320727688e00, .140298208333879535577602171e01,.162497775209192630951344224e01}; static double a13[3]={-.159520095187034545391135461e-02,-.109727312966041723997078734e-01, -.594758070915055362667114240e-02}; static double b13[4]={.207815761771742289849225339e00,.790935125477975506817064616e00, .158706682625067673596619095e01,.175409273929961597148916309e01}; static double a14[3]={.245543970647383469794050102e-02,-.119636668153843644820445054e-01, .175722793448246103440764372e-01}; static double b14[2]={.676925518749829493412063599e00,.100158659226079685399214158e01}; static double a15[2]={.588261033368548917447688791e-01,.400765463491067514929787780e-01}; static double b15[2]={.124266359850901469771032599e01,.149189509890654955611528542e01}; static double a16[2]={.119522261141925960204472459e00,-.100326700196947262548667584e00}; static double b16[1]={.536462039767059451769400255e00}; static double a17[1]={-.259949826752497731336860753e00}; static double a18[1]={.724036968309299822373280436e00}; /* OFFSET Vectors w/subscript range: 1 to dimension */ double *const A0 = &a0[0] - 1; double *const A1 = &a1[0] - 1; double *const A10 = &a10[0] - 1; double *const A11 = &a11[0] - 1; double *const A12 = &a12[0] - 1; double *const A13 = &a13[0] - 1; double *const A14 = &a14[0] - 1; double *const A15 = &a15[0] - 1; double *const A16 = &a16[0] - 1; double *const A17 = &a17[0] - 1; double *const A18 = &a18[0] - 1; double *const A2 = &a2[0] - 1; double *const A3 = &a3[0] - 1; double *const A4 = &a4[0] - 1; double *const A5 = &a5[0] - 1; double *const A6 = &a6[0] - 1; double *const A7 = &a7[0] - 1; double *const A8 = &a8[0] - 1; double *const A9 = &a9[0] - 1; double *const B0 = &b0[0] - 1; double *const B1 = &b1[0] - 1; double *const B10 = &b10[0] - 1; double *const B11 = &b11[0] - 1; double *const B12 = &b12[0] - 1; double *const B13 = &b13[0] - 1; double *const B14 = &b14[0] - 1; double *const B15 = &b15[0] - 1; double *const B16 = &b16[0] - 1; double *const B2 = &b2[0] - 1; double *const B3 = &b3[0] - 1; double *const B4 = &b4[0] - 1; double *const B5 = &b5[0] - 1; double *const B6 = &b6[0] - 1; double *const B7 = &b7[0] - 1; double *const B8 = &b8[0] - 1; double *const B9 = &b9[0] - 1; double *const D0 = &d0[0] - 1; /* end of OFFSET VECTORS */ /* Copyright (c) 1996 California Institute of Technology, Pasadena, CA. * ALL RIGHTS RESERVED. * Based on Government Sponsored Research NAS7-03001. *>> 1994-10-20 DGR29 Krogh Changes to use M77CON *>> 1994-05-10 DGR29 WVS produce SP and DP versions from same source. *>> 1993-08-03 DGR29 CLL Edited DATA stmts for conversion to C. *>> 1993-07-21 DGR29 WVS JPL Conversion from NSWC to Math 77 *--D replaces "?": ?GR29 * ---------------------------------------------------------------------- * * ALGORITHM USING MINIMAX APPROXIMATIONS * * ---------------------------------------------------------------------- */ /* -------------------------- */ /* -------------------------- */ /* -------------------------- */ /* -------------------------- */ /* -------------------------- */ /* -------------------------- */ /* -------------------------- */ /* -------------------------- */ /* -------------------------- */ /* -------------------------- */ /* -------------------------- */ /* -------------------------- */ /* -------------------------- */ /* -------------------------- */ /* -------------------------- */ /* -------------------------- */ /* -------------------------- */ /* -------------------------- */ /* -------------------------- */ /* -------------------------- */ /* -------------------------- * */ *t = ((((((A0[1]*z + A0[2])*z + A0[3])*z + A0[4])*z + A0[5])*z + A0[6])*z + A0[7])/(((((((((B0[1]*z + B0[2])*z + B0[3])*z + B0[4])* z + B0[5])*z + B0[6])*z + B0[7])*z + B0[8])*z + B0[9])*z + 1.0e0); c0 = ((((((*t*z + D0[7])*z + D0[6])*z + D0[5])*z + D0[4])*z + D0[3])*z + D0[2])*z + D0[1]; c1 = ((((((A1[1]*z + A1[2])*z + A1[3])*z + A1[4])*z + A1[5])*z + A1[6])*z + A1[7])/(((((((((B1[1]*z + B1[2])*z + B1[3])*z + B1[4])* z + B1[5])*z + B1[6])*z + B1[7])*z + B1[8])*z + B1[9])*z + 1.0e0); c2 = ((((((A2[1]*z + A2[2])*z + A2[3])*z + A2[4])*z + A2[5])*z + A2[6])*z + A2[7])/((((((((B2[1]*z + B2[2])*z + B2[3])*z + B2[4])* z + B2[5])*z + B2[6])*z + B2[7])*z + B2[8])*z + 1.0e0); c3 = ((((((A3[1]*z + A3[2])*z + A3[3])*z + A3[4])*z + A3[5])*z + A3[6])*z + A3[7])/((((((((B3[1]*z + B3[2])*z + B3[3])*z + B3[4])* z + B3[5])*z + B3[6])*z + B3[7])*z + B3[8])*z + 1.0e0); c4 = ((((((A4[1]*z + A4[2])*z + A4[3])*z + A4[4])*z + A4[5])*z + A4[6])*z + A4[7])/((((((((B4[1]*z + B4[2])*z + B4[3])*z + B4[4])* z + B4[5])*z + B4[6])*z + B4[7])*z + B4[8])*z + 1.0e0); c5 = ((((((A5[1]*z + A5[2])*z + A5[3])*z + A5[4])*z + A5[5])*z + A5[6])*z + A5[7])/(((((((B5[1]*z + B5[2])*z + B5[3])*z + B5[4])* z + B5[5])*z + B5[6])*z + B5[7])*z + 1.0e0); c6 = (((A6[1]*z + A6[2])*z + A6[3])*z + A6[4])/(((((((((B6[1]* z + B6[2])*z + B6[3])*z + B6[4])*z + B6[5])*z + B6[6])*z + B6[7])* z + B6[8])*z + B6[9])*z + 1.0e0); c7 = ((((A7[1]*z + A7[2])*z + A7[3])*z + A7[4])*z + A7[5])/(((((((B7[1]* z + B7[2])*z + B7[3])*z + B7[4])*z + B7[5])*z + B7[6])*z + B7[7])* z + 1.0e0); c8 = ((((A8[1]*z + A8[2])*z + A8[3])*z + A8[4])*z + A8[5])/(((((((B8[1]* z + B8[2])*z + B8[3])*z + B8[4])*z + B8[5])*z + B8[6])*z + B8[7])* z + 1.0e0); c9 = ((((A9[1]*z + A9[2])*z + A9[3])*z + A9[4])*z + A9[5])/((((((B9[1]* z + B9[2])*z + B9[3])*z + B9[4])*z + B9[5])*z + B9[6])*z + 1.0e0); c10 = (((A10[1]*z + A10[2])*z + A10[3])*z + A10[4])/((((((B10[1]* z + B10[2])*z + B10[3])*z + B10[4])*z + B10[5])*z + B10[6])*z + 1.0e0); c11 = (((A11[1]*z + A11[2])*z + A11[3])*z + A11[4])/(((((B11[1]* z + B11[2])*z + B11[3])*z + B11[4])*z + B11[5])*z + 1.0e0); c12 = (((A12[1]*z + A12[2])*z + A12[3])*z + A12[4])/((((B12[1]* z + B12[2])*z + B12[3])*z + B12[4])*z + 1.0e0); c13 = ((A13[1]*z + A13[2])*z + A13[3])/((((B13[1]*z + B13[2])* z + B13[3])*z + B13[4])*z + 1.0e0); c14 = ((A14[1]*z + A14[2])*z + A14[3])/((B14[1]*z + B14[2])*z + 1.0e0); c15 = (A15[1]*z + A15[2])/((B15[1]*z + B15[2])*z + 1.0e0); c16 = (A16[1]*z + A16[2])/(B16[1]*z + 1.0e0); *t = (A18[1]*u + A17[1])*u + c16; *t = (((((((((((((((*t*u + c15)*u + c14)*u + c13)*u + c12)*u + c11)*u + c10)*u + c9)*u + c8)*u + c7)*u + c6)*u + c5)*u + c4)* u + c3)*u + c2)*u + c1)*u + c0; return; } /* end of function */