DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ B T ┃
Length: 22625 (0x5861) Types: TextFile Names: »B«
└─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS └─ ⟦91c658230⟧ »DATA« └─⟦458657fb6⟧ └─⟦1472c4407⟧ └─⟦this⟧ └─⟦d10a02448⟧ Bits:30000409 8mm tape, Rational 1000, ENVIRONMENT, D_12_7_3 └─ ⟦fc9b38f02⟧ »DATA« └─⟦9b46a407a⟧ └─⟦2e03b931c⟧ └─⟦this⟧
separate (Generic_Elementary_Functions) procedure Kp_Atn (Y, X : in Common_Float; Z1, Z2 : out Common_Float) is -- On input, Y and X are floating-point values in Common_Float such that -- 0 < Y < X. -- On output, the values Z1, and Z2 are returned such that -- atan(Y/X) = Z1 + Z2 , where -- atan is the inverse tangent. Whenever Z1 is non-zero, |Z| >= 1/32 and -- has at most 4 hex digits. -- Two methods are used to calculate atan(Y/X). If Y/X <= 1/16, then -- simple polynomial approximations are used. These calculations are -- performed in the kernel function KF_AtnSm which returns atan(Y)-Y -- for an input argument |Y| <= 1/16. -- -- For Y/X > 1/16, a table driven technique is used. First, a break point -- C = j/256, j = 16, 17, ..., 256 is found such that -- | Y/X - C | < 1/512. This C can be obtained by Round( 256*Y/X ). -- Second, atan( (Y-CX)/(X+CY) ) is calculated via polynomial approximations. -- Because the argument's magnitude in question is small, the polynomials -- required are short. Finally, the value atan(Y/X) is reconstructed as -- atan(Y/X) = atan(C) + atan( (Y-CX)/(X+CY) ). -- V, U, V_By_U, C, U_Lead, U_Trail, Q, R : Common_Float; Index : Common_Int; Zero : constant := 0.0; One : constant := 1.0; One_16 : constant := 16#1.0#E-1; Two_Neg80 : constant := 2#1.0#E-80; Two_80 : constant := 2#1.0#E80; Atan_Jby256 : constant array (Common_Int range 16 .. 256, Position) of Common_Float := ((16#0.0FFA#, 16#0.0000ADDB967EF4E36CB2792DC0E2E0D51319C12CF#), (16#0.10F9#, 16#0.00009EA71D52A6F6FCB0089E4ED8919D8CFB4CED4#), (16#0.11F8#, 16#0.00006DBF082D58DED447119A20FDB0FE529D558C1#), (16#0.12F7#, 16#0.000019318A4A9A027FA2EF373003E5CAA22519EC5#), (16#0.13F5#, 16#0.00009F0E7C559D6B1338A177E11CD9BEC9EB30FB4#), (16#0.14F3#, 16#0.0000FD677292FB2011A6C4C92F3B2F1BE4D45EA9E#), (16#0.15F2#, 16#0.0000324FD2D7B262A3691004C637EACE735FA0C51#), (16#0.16F0#, 16#0.00003BDCEA4B0CEC0FF1AED05E835FD94922F357B#), (16#0.17EE#, 16#0.0000182602F10E8C126ACFCF099F06CECFC1508F3#), (16#0.18EB#, 16#0.0000C54478FB282E6510195A499750DEC78B76238#), (16#0.19E9#, 16#0.00004153CFDCF168CCB875A711F8151E9FA90CA27#), (16#0.1AE6#, 16#0.00008A71C722B838029CD22173B6E5BFBBFE48A9D#), (16#0.1BE3#, 16#0.00009EBE6F07C37DEE3CA681661CBB3DD21AFCA1D#), (16#0.1CE0#, 16#0.00007C5C3CCA322271CC84B2314D28C1967B9DD82#), (16#0.1DDD#, 16#0.000021701EBA6E653BFF35DBF95FAB59910B169AF#), (16#0.1ED9#, 16#0.00008C2190043AF62D33D369C276A948E9E36D846#), (16#0.1FD5#, 16#0.0000BA9AAC2F6DC65912F313E7D111DEF1672AFB2#), (16#0.20D1#, 16#0.0000AB0842567B30E96BE7F320176B74FCB8FBED6#), (16#0.21CD#, 16#0.00005B99E811031472E72233979639684D87AF78F#), (16#0.22C8#, 16#0.0000CA820C10A0B5E774573F548D5E3062929DB77#), (16#0.23C3#, 16#0.0000F5F6086E4DC96F4DD64A60E82BE678A856B0A#), (16#0.24BE#, 16#0.0000DC2E34A6B8BE36BDEF0D1883CE1CAD71A1221#), (16#0.25B9#, 16#0.00007B65F743FE63CA1C155854D14FCAB40FD271A#), (16#0.26B3#, 16#0.0000D1DBD733472D01458DCFD9CE2BD30B5BD245B#), (16#0.27AD#, 16#0.0000DDD18CC4D8B0D1D8674940D83FA15DD4BD3E2#), (16#0.28A7#, 16#0.00009D8C12553C8FB29D9D2D3C5B858FD95008299#), (16#0.29A1#, 16#0.00000F53B49E2E8F991F8D6F8ABCC1F785F820A0A#), (16#0.2A9A#, 16#0.0000317422AE148C14179442039BACA952F68C3D1#), (16#0.2B93#, 16#0.0000023C7D84D3BEAD534FFBC30B7A650B4F9B754#), (16#0.2C8B#, 16#0.00007FFF6754E7E0AC949883D34C6F1118FDDF54C#), (16#0.2D83#, 16#0.0000A9131267B1B5AAD627F0EF6549A0B4FFB8C87#), (16#0.2E7B#, 16#0.00007BD14FA403A94BC24AD6668D5F078B6224297#), (16#0.2F72#, 16#0.0000F6979CB6044D1EC2D3E207271D21E4EB4035A#), (16#0.306A#, 16#0.000017C731D78FA95BB33518DBCC20FB83AA95920#), (16#0.3160#, 16#0.0000DDC50F38517739967E7B9D85F2C5A797D90C3#), (16#0.3257#, 16#0.000046FA0A04E37961097805C4E1EC71BFD3E8E91#), (16#0.334D#, 16#0.000051D2D90C4C39EC03CF68691BBACEAAFC49930#), (16#0.3442#, 16#0.0000FCC021034B79083ACFA86463CF3B8D8A7AD78#), (16#0.3538#, 16#0.000046368064F28745DF44E6542A87586909C1451#), (16#0.362D#, 16#0.00002CAE9AF0179E951C0FA96633F48AC9F4E6AC1#), (16#0.3721#, 16#0.0000AEA524C14408BD88697072D54BC0A19144A34#), (16#0.3815#, 16#0.0000CA9AED08CD7D99205506C9213BED92F30BC53#), (16#0.3909#, 16#0.00007F14E85CDB9A908BE5F45766D521969F79C2C#), (16#0.39FC#, 16#0.0000CA9C3AA72AA3DCD1FB8F57DAC766CC23F3B11#), (16#0.3AEF#, 16#0.0000ABBE40AE6CE32468A9A2CBEF5E39EC4B3B0A8#), (16#0.3BE2#, 16#0.0000210C993B3BEA7E74AC40B87F65091C68ABE98#), (16#0.3CD4#, 16#0.0000291D2DD89AC33591014FBB281A0733BF6DAF4#), (16#0.3DC5#, 16#0.0000C28A3B301999623DCEE515BD423C91D7DACDB#), (16#0.3EB6#, 16#0.0000EBF25901BAC55B71E7BD7DE885F96A9FEA40E#), (16#0.3FA7#, 16#0.0000A3F881B7C826E28DE7438BD4F2B7344F7EA1B#), (16#0.4097#, 16#0.0000E9441996D698D2097CD05B85A52F129D011DA#), (16#0.4187#, 16#0.0000BA80F58A43D4113E49D579FE16A0FF1FDDAF1#), (16#0.4277#, 16#0.0000165F618D8962E47390CB8655E9D1571285505#), (16#0.4365#, 16#0.0000FB9426B2CD47C317BD5A3EAE0BB79AF3FD40A#), (16#0.4454#, 16#0.000068D890C726B237236F884613C81A979D9A18B#), (16#0.4542#, 16#0.00005CEA73951A8694580635CD86108B4BF1726D0#), (16#0.462F#, 16#0.0000D68C2FC5E0986523A458DFC414C687E9714DE#), (16#0.471C#, 16#0.0000D484B7620F41329C39A686926C0D1131740EF#), (16#0.4809#, 16#0.0000559F91F25773E6E6B85EB78CCC11F2ADF0AEA#), (16#0.48F5#, 16#0.000058ACE041078EB3A3A77FFDDEBE99A0D090CF4#), (16#0.49E0#, 16#0.0000DC815FBD16F88322C92037F0A23D223E10CF9#), (16#0.4ACB#, 16#0.0000DFF66D7F880A11E7E0E16A2148AAF4CF1A52A#), (16#0.4BB6#, 16#0.000061EA08F3F8DC892C7500964D0DE34F9E3EF24#), (16#0.4CA0#, 16#0.0000613ED6254656A0F566C60D0DD218A1F7C145D#), (16#0.4D89#, 16#0.0000DCDC1FAF2F34E2D5DA4C693D7994045247C28#), (16#0.4E72#, 16#0.0000D3ADD855EED0B25A5DEB8EC8B08A1AA6B1C0E#), (16#0.4F5B#, 16#0.000044A49C44D1137CA41CC9589E8CE198E65EDF2#), (16#0.5043#, 16#0.00002EB5B1F4CA4F37451EC4AEDBD671CD697057E#), (16#0.512A#, 16#0.000090DB0ABC26A2A1BC3AA4C45C6CF1A7413C521#), (16#0.5211#, 16#0.00006A1343086D1E28A7563C6A594645CB14D6EA6#), (16#0.52F7#, 16#0.0000B961A2439B0D91C41EEAC549D5FA0148A6DA0#), (16#0.53DD#, 16#0.00007DCE1A65E39A978C2003BBDE5D5D587C4CF43#), (16#0.54C2#, 16#0.0000B6654735276D4CDBFBBDFBECF46090961CE98#), (16#0.55A7#, 16#0.000062386D335F009CF0C76180EC7A655DBB882D3#), (16#0.568B#, 16#0.0000805D783D3913B7A8F82E45741DEB4EDA313C6#), (16#0.576F#, 16#0.00000FEEF9DA34F50760DBB7BECE25FB2CB9C490E#), (16#0.5852#, 16#0.0000100C273F8658DA8EA8EE100507E15A042E6F4#), (16#0.5934#, 16#0.00007FD8D7071605BFC183F0242309F5848AF9637#), (16#0.5A16#, 16#0.00005E7D7E9BF7DB50FD65CA4AC7B49AB58574B2D#), (16#0.5AF7#, 16#0.0000AB272F5DB3968EA706485F6062FA576944ACA#), (16#0.5BD8#, 16#0.00006507937BC239C55190916E7F22419EC21CBBD#), (16#0.5CB8#, 16#0.00008B54EA8AA62636CB1860D84315183DF5116DB#), (16#0.5D98#, 16#0.00001D4A05D407C45DD0DC6713FFFA13E3D8A9869#), (16#0.5E77#, 16#0.00001A264463440DBA09D077B0366780E2AD83C47#), (16#0.5F55#, 16#0.0000812D8ECFDD69C885C2B249A0881312E09E0EA#), (16#0.6033#, 16#0.000051A852C74218606697B05E6CC5EC618C28F83#), (16#0.6110#, 16#0.00008AE37E575DD76A0299B41B5C3A3B8175A01C8#), (16#0.61ED#, 16#0.00002C307AFB6E923055D05B8F0B9465D580574F7#), (16#0.62C9#, 16#0.000034E5286C95B6D0BA3748FA85146EE25BE4F28#), (16#0.63A4#, 16#0.0000A45BD737A14C0A7E12BFAFAF4343EE0DD669E#), (16#0.647F#, 16#0.000079F34319891074188054B536BEC637D321248#), (16#0.6559#, 16#0.0000B50E8D241CCD80A9BF05795AF8A9973E149E6#), (16#0.6633#, 16#0.0000551535AC619E6C988FD0A76CDBE1C93D002A4#), (16#0.670C#, 16#0.0000597316041C36CD2C044A19F5325F29C10727E#), (16#0.67E4#, 16#0.0000C1985A000637D8FB836BC6581A7B995F498A0#), (16#0.68BC#, 16#0.00008CF9794C2C605357DE5C21AC153C672881904#), (16#0.6993#, 16#0.0000BB0F308FF2DB213E4AF4800F389B3700206E9#), (16#0.6A6A#, 16#0.00004B567A633C25C85BFEEBB02D4A70C3F91D5AC#), (16#0.6B40#, 16#0.00003D5088162DFC4C33891D2E7EEF7E0A43580C0#), (16#0.6C15#, 16#0.00009082BA4D0E6CEC6B9C9CBAAA6BAEFF35AAF24#), (16#0.6CEA#, 16#0.000044769971B1AE187B1CA504031A2EAAA4088C5#), (16#0.6DBE#, 16#0.000058B9CDFBEF8D6B2E6D9F863D50C8CD7949F86#), (16#0.6E91#, 16#0.0000CCDE189295519A1B46E4AFE929CEC1897CA0D#), (16#0.6F64#, 16#0.0000A0794A0646B4EABC6509499B66209B4BDED17#), (16#0.7036#, 16#0.0000D3253B27BE33E318F6CB3CC65C01DB0A5F97A#), (16#0.7108#, 16#0.0000647FC47ADA4E820BCB4C1123A70868DB9C1EF#), (16#0.71D9#, 16#0.0000542AB5C7E28B474008FBC1B87EA7BF8B16E66#), (16#0.72A9#, 16#0.0000A1CBCD8C6C0CA833C0B1B7A3F6A7561939859#), (16#0.7379#, 16#0.00004D0CB04D425D305BBE70E536E164325927439#), (16#0.7448#, 16#0.0000559ADFCAB5BE67835886C302BBADCEBB3F7CE#), (16#0.7516#, 16#0.0000BB27B218ACC4A108B1F7C969A4A369AE94166#), (16#0.75E4#, 16#0.00007D68489BD35FF40AD24DAC4FDE79CB45B4D2D#), (16#0.76B1#, 16#0.00009C1586ED3DA2B7F222F65E1D4681B70A0AC39#), (16#0.777E#, 16#0.000016EC09A5D0A1DDD86050912E14CB66EFB5308#), (16#0.7849#, 16#0.0000EDAC1D12BFB53D9E719CAD55185BC787457EF#), (16#0.7915#, 16#0.00002019B3D468274754259D31E3BA15B11E90DA1#), (16#0.79DF#, 16#0.0000ADFC5D68D10E53DC1BF34356F9FD1790505C4#), (16#0.7AA9#, 16#0.0000971F3CA31097D967651DF82B549A759EDD0F0#), (16#0.7B72#, 16#0.0000DB50FE10D380DA2733DDEC71326E2C085D461#), (16#0.7C3B#, 16#0.00007A63CE4F3ED0BF57834E76BBE5183EFAC40FF#), (16#0.7D03#, 16#0.0000742D50505F2E33691E3EAEE476610806496FC#), (16#0.7DCA#, 16#0.0000C8869392545227083DFADD004A57B9B4C8A2F#), (16#0.7E91#, 16#0.0000774C0A496235A9C23D7274B5310EE6B4F66CB#), (16#0.7F57#, 16#0.0000805D7F7E0C9D43D8F624D8A9D6729F93B5A82#), (16#0.801C#, 16#0.0000E39E0D205C99A6D6C6C54D938596692486326#), (16#0.80E1#, 16#0.0000A0F412116A7B689F99521DBB92B1AD73C7082#), (16#0.81A5#, 16#0.0000B8492824418F9B38D85540FF5431C9474F206#), (16#0.8269#, 16#0.0000298A1A172DC6F39377A7131D6A27BBFF43FF8#), (16#0.832B#, 16#0.0000F4A6D9867E2A4B6A09CB61A515C0F1155CD87#), (16#0.83EE#, 16#0.0000199274D9C1B70C9E04450AC73920C96BA6DC7#), (16#0.84AF#, 16#0.000098430D2C7EEDE4DF5EA560D2AAEAAEA472105#), (16#0.8570#, 16#0.000070B1CC3361075ABF2DE445A53E2C75D49076C#), (16#0.8630#, 16#0.0000A2DADA1ED065D3E84ED5013CA37D92A950DA9#), (16#0.86F0#, 16#0.00002EBD537BE67C97B4E3AD655622BA7C75090D3#), (16#0.87AF#, 16#0.0000145B3F14A800988D8BF64C8681429BDD6BF9F#), (16#0.886D#, 16#0.000053B983D06AD3867A898F60AF9F5DBCE1325F9#), (16#0.892A#, 16#0.0000ECDFDE9547B5094478FC472B4AFB8FBE7B9FB#), (16#0.89E7#, 16#0.0000DFD8D82B726221CDF87DA6F989C0B2E59EEFA#), (16#0.8AA4#, 16#0.00002CB1BB234D68B0756E81879E8439FE76F7ECC#), (16#0.8B5F#, 16#0.0000D37A89BF099606FE141BD348634D99492CF6B#), (16#0.8C1A#, 16#0.0000D445F3E09B8C439D801860205920F8E244490#), (16#0.8CD5#, 16#0.00002F294CFCCCB3F27A74E0F9602B3B8709D0F21#), (16#0.8D8E#, 16#0.0000E43C8214276F0B9BA88386B8A2CCDFC2B8615#), (16#0.8E47#, 16#0.0000F39A0FB27928BBC9D5E7929F8ECDEF9CEC1A8#), (16#0.8F00#, 16#0.00005D5EF7F59F9B5C835E1665C43747918A67E06#), (16#0.8FB8#, 16#0.000021AAB89C516C659F6D7DD47136A9B668D8770#), (16#0.906F#, 16#0.0000409F411D8D0DC515828917850AB599F0A4844#), (16#0.9125#, 16#0.0000BA60E8C953ADA7BF114C1880F6A2B0B51D132#), (16#0.91DB#, 16#0.00008F1664F350E210E4F9C1126E021FD995E8D1F#), (16#0.9290#, 16#0.0000BEE8BF280AAD5511836CF3797D76EA50B3E72#), (16#0.9345#, 16#0.00004A034B6D30744D228131CF31C981C4DB4F92C#), (16#0.93F9#, 16#0.000030939E8D9A877E6C2A3BB3E2ECDA573DC02FF#), (16#0.94AC#, 16#0.000072C9847186F618C4F393F78A32F8F38AE0F47#), (16#0.955F#, 16#0.000010D6F6839B85180035A045C3B111748DBE470#), (16#0.9611#, 16#0.00000AF012232FD68FDE4B8B683E268649AF3B919#), (16#0.96C2#, 16#0.0000614B0F245E0DABDF5C91AFA42AA81FD293F46#), (16#0.9773#, 16#0.00001420365E538BABD3FE19F1AEB6B29798DB274#), (16#0.9823#, 16#0.000023A9D84856C18ED9E25E70CDBA0ED14FC5826#), (16#0.98D2#, 16#0.0000902443A5F2819570F4F584892A42FDCC108F9#), (16#0.9981#, 16#0.000059CDBC42B2BBA5DB0F7505678AD6593E8D1B4#), (16#0.9A2F#, 16#0.000080E671BDDA204226F8E2204FF3BCDAE46F061#), (16#0.9ADD#, 16#0.000005B0766673C77433726D172B70996C03D1D89#), (16#0.9B89#, 16#0.0000E86FB6281FAC21D87F3A7E4B6DD3C5DAAC0ED#), (16#0.9C36#, 16#0.00002969ED88F490E3C682832BFBDA16E92930016#), (16#0.9CE1#, 16#0.0000C8E6A0B8CDB9F799C4E8174CF11C5A2AC6A3B#), (16#0.9D8C#, 16#0.0000C72F12B256D06DDE0F8AD5420D93FEEBFB012#), (16#0.9E37#, 16#0.0000248E3C6E243D75ED605E8B128B9C394F7AC85#), (16#0.9EE0#, 16#0.0000E150C4282259CC6E1E9D2E1DFDF5925A09FFF#), (16#0.9F89#, 16#0.0000FDC4F4B7A1ECF8B492644F0701DF9D743D1BC#), (16#0.A032#, 16#0.00007A3AB4FA44AA4EE0DC81A9BE5A70912C563A9#), (16#0.A0DA#, 16#0.000057037F52089EB052993BB28EC56839662ECBF#), (16#0.A181#, 16#0.000094725936ADD9D4DDF1E8CC2EF763F0F535930#), (16#0.A228#, 16#0.000032DBCADAAE0892FE9C08637AF0E5D084146D4#), (16#0.A2CE#, 16#0.00003295D6E3FA332D31D1C26B7A893D3F56D575E#), (16#0.A373#, 16#0.000093F7F238AF63232723DD99B9EFD38377A1EC5#), (16#0.A418#, 16#0.0000575AFBDFEF9766A66626D63334D8D43B4E063#), (16#0.A4BC#, 16#0.00007D1934F7092419A87F2A457DAC9EE3F08689E#), (16#0.A560#, 16#0.0000058E38BB13641CE470572003EB4629EF1ECA0#), (16#0.A602#, 16#0.0000F116F4A7247EA7C1EC1A242451D4464264C5C#), (16#0.A6A5#, 16#0.00004011A0A740F1D448ED544580EE24A1872A95C#), (16#0.A746#, 16#0.0000F2DDB760229467B7D66F2D74E01921B81774D#), (16#0.A7E8#, 16#0.000009DBEE8BF1D513F3E7C24B4D1412B0D212CAE#), (16#0.A888#, 16#0.0000856E2F6C0923DCD6832A63DE1EE8E17AB4A5A#), (16#0.A928#, 16#0.000065F78F4FD7AB19217375DE41B9DF73CA99A35#), (16#0.A9C7#, 16#0.0000ABDC4830F5C8916A84B5BE7933F5F9971655E#), (16#0.AA66#, 16#0.00005781B1647B14648FF1E8782ACC5172CDE5487#), (16#0.AB04#, 16#0.0000694E3861A332739E1BD011000FD4FA1DB9E78#), (16#0.ABA1#, 16#0.0000E1A9599DCC2BFE5966F02B469FB603728B70E#), (16#0.AC3E#, 16#0.0000C0FB997DD6A1A36273A56AFA8EF4183DB5406#), (16#0.ACDB#, 16#0.000007AE7D5CEDC9F677DFB28769F24D1951BB831#), (16#0.AD76#, 16#0.0000B62C84A8BAE625EE295286CDB591529F4F435#), (16#0.AE11#, 16#0.0000CCE12213059C8562C352995154ABC1476866C#), (16#0.AEAC#, 16#0.00004C38B4D8C08014725E2F3E52070A03742B464#), (16#0.AF46#, 16#0.000034A0821E7EF408A41BAE1904F9164736FC44B#), (16#0.AFDF#, 16#0.00008686AE624F92CC0BFFD23AA0AE627E411319F#), (16#0.B078#, 16#0.0000425A3702F4488F2CCD75CD9CDAF2A5B0F42A1#), (16#0.B110#, 16#0.0000688AEBDC6F6A43D65788B9F6A7B509E2828D4#), (16#0.B1A7#, 16#0.0000F98968F9DB3A5E62BE56B2F9E94A3AE3C1F67#), (16#0.B23E#, 16#0.0000F5C7105C7F84D7EFF716B8C33242B2A3BDCA5#), (16#0.B2D5#, 16#0.00005DB603D8174363262866C6B9DC4BA2D0847E9#), (16#0.B36B#, 16#0.000031C91F043691590141744462F939E469FF280#), (16#0.B400#, 16#0.00007273F142BF9C56579305BC3F157669A530952#), (16#0.B495#, 16#0.0000202AB7DB53B2972B51D45971CA787426F3BB8#), (16#0.B529#, 16#0.00003B62582BAC12934C772B2C3F989BC0998AF1F#), (16#0.B5BC#, 16#0.0000C49059ECC4AFF8F3CEE75E3907D575216F47B#), (16#0.B64F#, 16#0.0000BC2AE18CC1C09DE29BD280C8A0B6EE7E3ADE5#), (16#0.B6E2#, 16#0.000022A8AA9D77901DE72A31F5C864980AD7A1EC7#), (16#0.B773#, 16#0.0000F88102577AD25DD460CC4E3EF828F91A49550#), (16#0.B805#, 16#0.00003E2BC2319E73CB2DA55210A4443D3D7AECC11#), (16#0.B895#, 16#0.0000F4214A8CC2B9B2066FB1102F77175A4D5A41A#), (16#0.B926#, 16#0.00001ADA7D73D86522CCB6CD266BC46005FDE833F#), (16#0.B9B5#, 16#0.0000B2D0B96FF9775FD06A892D100E70F01F06D4D#), (16#0.BA44#, 16#0.0000BC7DD470782F654C2CB10942E38623228454D#), (16#0.BAD3#, 16#0.0000385C16C6C3DC95898E5210DA150B48CCA7310#), (16#0.BB61#, 16#0.000026E636360232A4AA35B907915AE61342DEFF6#), (16#0.BBEE#, 16#0.0000889751163AE64C11F821A7AE3E62740E9AAFA#), (16#0.BC7B#, 16#0.00005DEAE98AF280D4113006E80FB29013FAB81F5#), (16#0.BD07#, 16#0.0000A75CE0CD1089E33E6C0AFABB5D7415D7D6A58#), (16#0.BD93#, 16#0.000065697287EC62FE419F7DC09B179189FB1E26C#), (16#0.BE1E#, 16#0.0000988D30495B767965A6065109B7436BBB76D27#), (16#0.BEA9#, 16#0.00004144FD049AAC1043C5E755282E7D01438341F#), (16#0.BF33#, 16#0.0000600E08A7EC6FA8EE913E8E50ADA66F6BFD26A#), (16#0.BFBC#, 16#0.0000F565CBC4C3FAB9501D5A441A24B5CE2085DF5#), (16#0.C046#, 16#0.000001CA034A55FE19B11D412B630D4D59538BABA#), (16#0.C0CE#, 16#0.000085B8AC52664089DD62C46E92FA24D58EE867A#), (16#0.C156#, 16#0.000081B00000294592FCE924D2425EA8695BF27C7#), (16#0.C1DD#, 16#0.0000F62E6F711098838827FE361448E71812B904E#), (16#0.C264#, 16#0.0000E3B29FBF57E7C9EE01F5C1713E2F8039A8EC1#), (16#0.C2EB#, 16#0.00004ABB661628B5B373FE45C61BB9FAE970EC0E0#), (16#0.C371#, 16#0.00002BC7C3D72A045626EB9FC678FDE093A72F30D#), (16#0.C3F6#, 16#0.00008756E2D1510AF5AD957F4BC61565CE4AA623C#), (16#0.C47B#, 16#0.00005DE81188C7B34B8B6951667E250297192BB86#), (16#0.C4FF#, 16#0.0000AFFABF8FBD548CB43D10BC9E02214DA621B60#), (16#0.C583#, 16#0.00007E0E79EFF5E099DB35249263D1D46837D6DA1#), (16#0.C606#, 16#0.0000C8A2E7A4EB7D480EDB88665164556F74B5DA8#), (16#0.C689#, 16#0.00009037C626564FE7345576574CA266DD13C472E#), (16#0.C70B#, 16#0.0000D54CE602EE13E7D54FBD09F2BE380E9C986EA#), (16#0.C78D#, 16#0.00009862278B38EE8E55C9C99FE946B23C9C7639E#), (16#0.C80E#, 16#0.0000D9F7778C3AD0CCBCAC0791EF71D43B7D29BEC#), (16#0.C88F#, 16#0.00009A8CCC19D89D745076DFA90D530C167B4C95E#), (16#0.C90F#, 16#0.0000DAA22168C234C4C6628B80DC1CD129024E088#)); begin U := X; V := Y; if U = One then V_By_U := V; else V_By_U := V / U; end if; if V_By_U <= One_16 then Z1 := Zero; Z2 := V_By_U + Kf_Atnsm (V_By_U); return; end if; Index := Common_Int (16#1.0#E2 * V_By_U); C := Common_Float (Index) * 16#1.0#E-2; if V < Two_Neg80 then V := Two_80 * V; U := Two_80 * U; end if; if U = One then R := (V - C) / (U + C * V); else U_Lead := Leading_Part (U, Common_Float'Machine_Mantissa / 2); U_Trail := U - U_Lead; R := ((V - C * U_Lead) - C * U_Trail) / (U + C * V); end if; --Polynomial approximation of atan(R) case Float_Type'Base'Digits is when 1 .. 6 => declare type Working_Float is digits 6; S, P : Working_Float; begin S := Working_Float (R); S := S * S; P := S * 0.33333_26634; Q := R - R * Common_Float (P); end; when 7 .. 15 => declare type Working_Float is digits (15 + System.Max_Digits - abs (15 - System.Max_Digits)) / 2; -- this is min( 15, System.Max_Digits ) S, P : Working_Float; begin S := Working_Float (R); S := S * S; P := S * (0.33333_33333_32240_95522 - S * (0.19999_91803_89891_43496)); Q := R - R * Common_Float (P); end; when 16 => declare type Working_Float is digits (16 + System.Max_Digits - abs (16 - System.Max_Digits)) / 2; S, P : Working_Float; begin S := Working_Float (R); S := S * S; P := S * (0.33333_33333_32240_95522 - S * (0.19999_91803_89891_43496)); Q := R - R * Common_Float (P); end; when 17 .. 18 => declare type Working_Float is digits (18 + System.Max_Digits - abs (18 - System.Max_Digits)) / 2; S, P : Working_Float; begin S := Working_Float (R); S := S * S; P := S * (0.33333_33333_33333_33174_03042 - S * (0.19999_99999_97844_27116_94195 - S * (0.14285_62650_27453_42297_36256))); Q := R - R * Common_Float (P); end; when 19 .. 27 => declare type Working_Float is digits (27 + System.Max_Digits - abs (27 - System.Max_Digits)) / 2; S, P : Working_Float; begin S := Working_Float (R); S := S * S; P := S * (0.33333_33333_33333_33333_33311_72058_56 - S * (0.19999_99999_99999_99544_27301_91257_38 - S * (0.14285_71428_53959_54585_25767_15009_50 - S * (0.11111_02043_07258_54991_41929_62303_48)))); Q := R - R * Common_Float (P); end; when 28 .. 33 => declare type Working_Float is digits (33 + System.Max_Digits - abs (33 - System.Max_Digits)) / 2; S, P : Working_Float; begin S := Working_Float (R); S := S * S; P := S * (0.33333_33333_33333_33333_33333_33330_5509 - S * (0.19999_99999_99999_99999_99916_05331_9450 - S * (0.14285_71428_57142_84833_81100_15518_0603 - S * (0.11111_11111_06928_08149_95978_85354_6911 - S * (0.09090_81679_15943_49047_00774_95327_5560))))); Q := R - R * Common_Float (P); end; when others => raise Program_Error; -- assumption (1) is violated. end case; -- This completes the core approximation. Z1 := Atan_Jby256 (Index, Lead); Z2 := Atan_Jby256 (Index, Trail) + Q; return; end Kp_Atn;