You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1106 lines
85 KiB

module chenreftest
contains
function test(z,ref,test_id)
use globals, only: prec
use maths_functions, only: clearcache
use ttools
implicit none
complex(kind=prec) :: z(:), ref
character(len=*) :: test_id
logical test
call clearcache
call test_one_flat(z,ref,test_id, test)
end function
function do_chen_test() result(success)
use globals, only: prec
complex(kind=prec) :: ref,xchen,z
complex(kind=prec), parameter :: one = (1._prec,0._prec)
complex(kind=prec), parameter ::zero = (0._prec,0._prec)
logical success
xchen = 0.3_prec
z = 0.1_prec
ref = (-1.20397280432593599262274621776183850295_prec, 0._prec)
success = test([zero,xchen],ref,'5.1')
ref = (-2.302585092994045684017991454684364208_prec, 0._prec)
success = success .and. test([zero,z],ref,'5.2')
ref = (-0.105360515657826301227500980839312798307_prec, 0._prec)
success = success .and. test([1/z,one],ref,'5.3')
ref = (-0.030459207484708545919261287664766701393_prec, 0._prec)
success = success .and. test([1/z,xchen],ref,'5.4')
ref = (2.197224577336219382790490473845051409_prec, 3.141592653589793238462643383279502884_prec)
success = success .and. test([z,one],ref,'5.5')
ref = (0.69314718055994530941723212145817656807_prec, 3.141592653589793238462643383279502884_prec)
success = success .and. test([z,xchen],ref,'5.6')
ref = (0.095310179804324860043952123280765092219_prec, 0._prec)
success = success .and. test([-(1/z),one],ref,'5.7')
ref = (2.650949055239199005280833194297008846_prec, 0._prec)
success = success .and. test([zero,zero,z],ref,'5.8')
ref = (1.3862943611198906188344642429163531362_prec, 0._prec)
success = success .and. test([-z,xchen],ref,'5.9')
ref = (2.3978952727983705440619435779651292998_prec, 0._prec)
success = success .and. test([-z,one],ref,'5.10')
ref = (0.029558802241544402732619405684712405426_prec, 0._prec)
success = success .and. test([-(1/z),xchen],ref,'5.11')
ref = (0.097605235229321583841103341850796823983_prec, 0._prec)
success = success .and. test([zero,-(1/z),one],ref,'5.12')
ref = (0.029777950327186312206016122220477534066_prec, 0._prec)
success = success .and. test([zero,-(1/z),xchen],ref,'5.13')
ref = (4.198277886858103857912145019092237211_prec, 0._prec)
success = success .and. test([zero,-z,one],ref,'5.14')
ref = (1.9393754207667089530772717191778914412_prec, 0._prec)
success = success .and. test([zero,-z,xchen],ref,'5.15')
ref = (0.102617791099391131113837369057232213707_prec, 0._prec)
success = success .and. test([1/z,zero,one],ref,'5.16')
ref = (0.005137258776755967644870282345693975875_prec, 0._prec)
success = success .and. test([1/z,one,xchen],ref,'5.17')
ref = (0.5363012873578627365501597699378093189_prec, -7.233784412415464812490046550261791128_prec)
success = success .and. test([z,zero,one],ref,'5.18')
ref = (0.014779401120772201366309702842356202714_prec, -0.29853160365284141748546048727919251369_prec)
success = success .and. test([z - Sqrt(-one + z**2),xchen],ref,'5.19')
ref = (-0.31706503445734215658076182612033542954_prec, 0._prec)
success = success .and. test([-one,zero,z],ref,'5.20')
ref = (0.34521934384326771130135467245307179017_prec, 0._prec)
success = success .and. test([one,zero,z],ref,'5.21')
ref = (0.014779401120772201366309702842356202714_prec, 0.29853160365284141748546048727919251369_prec)
success = success .and. test([z + Sqrt(-one + z**2),xchen],ref,'5.22')
ref = (1.6064258429679416872533244359932612998_prec, 3.141592653589793238462643383279502884_prec)
success = success .and. test([(one - Sqrt(one - z**2))/z,xchen],ref,'5.23')
ref = (-0.0151519011615124765551170203469050621418_prec, 0._prec)
success = success .and. test([(one + Sqrt(one - z**2))/z,xchen],ref,'5.24')
ref = (2.9417973020112727950601951545387054451_prec, 3.141592653589793238462643383279502884_prec)
success = success .and. test([(one - Sqrt(one - z**2))/z,one],ref,'5.25')
ref = (-0.051425544115108102852472559235477467857_prec, 0._prec)
success = success .and. test([(one + Sqrt(one - z**2))/z,one],ref,'5.26')
ref = (0.29389333245105950409486557030943188488_prec, -0.83548187397822820778842243554622238033_prec)
success = success .and. test([z - Sqrt(-one + z**2),one],ref,'5.27')
ref = (0.29389333245105950409486557030943188488_prec, 0.83548187397822820778842243554622238033_prec)
success = success .and. test([z + Sqrt(-one + z**2),one],ref,'5.28')
ref = (0.108168210229232661708079725854794771607_prec, 0._prec)
success = success .and. test([1/z,one,one],ref,'5.29')
ref = (0.0162342417876529139833732668727547675_prec, -0.064116361184657380251853686713533295449_prec)
success = success .and. test([1/z,z,xchen],ref,'5.30')
ref = (0.33328751750378366536418980469460135731_prec, 0.29942576068558925754458283723747181648_prec)
success = success .and. test([z,-one,xchen],ref,'5.31')
ref = (-0.041329658313062464281095790901974931667_prec, 0._prec)
success = success .and. test([1/z,-one,one],ref,'5.32')
ref = (-0.102617791099391131113837369057232213707_prec, 0._prec)
success = success .and. test([zero,1/z,one],ref,'5.33')
ref = (-1.6449340668482264364724151666460251892_prec, 0._prec)
success = success .and. test([zero,z,z],ref,'5.34')
ref = (0.03316686525599510199332687353917175036_prec, 0._prec)
success = success .and. test([1/z,zero,z],ref,'5.35')
ref = (0.005726777345270670644409223846225882641_prec, 0._prec)
success = success .and. test([one,1/z,xchen],ref,'5.36')
ref = (-0.003800950050070771447955709977329118681_prec, 0._prec)
success = success .and. test([-one,1/z,xchen],ref,'5.37')
ref = (0.5274154023686161934362091841888668925_prec, 1.8781603296180128729561060610001421309_prec)
success = success .and. test([-one,z,one],ref,'5.38')
ref = (-0.01055363991543133585086848650335648193_prec, -0.079903391826392496290764959407607305864_prec)
success = success .and. test([1/z,(one - Sqrt(one - z**2))/z,xchen],ref,'5.39')
ref = (0.00023134615630308331394153862589181823961_prec, 0._prec)
success = success .and. test([1/z,(one + Sqrt(one - z**2))/z,xchen],ref,'5.40')
ref = (-1.5145225618428382549791051132414665386_prec, 5.621094786755508183163002650222245913_prec)
success = success .and. test([zero,(one - Sqrt(one - z**2))/z,xchen],ref,'5.41')
ref = (-0.0150946027611751720605721999409215123131_prec, 0._prec)
success = success .and. test([zero,(one + Sqrt(one - z**2))/z,xchen],ref,'5.42')
ref = (-0.53630128735786273655015976993780931894_prec, 7.233784412415464812490046550261791128_prec)
success = success .and. test([zero,z,one],ref,'5.43')
ref = (-0.32612951007547606953003569417499604571_prec, 0._prec)
success = success .and. test([zero,one,xchen],ref,'5.44')
ref = (0.2800743337595829042302169723054253637_prec, 0._prec)
success = success .and. test([zero,-one,xchen],ref,'5.45')
ref = (0.0055504191298415305942423567975625579009_prec, 0._prec)
success = success .and. test([1/z,1/z,one],ref,'5.46')
ref = (-2.3201804233130983964061944737031046578_prec, 3.4513922952232026614338205838180856452_prec)
success = success .and. test([zero,z,xchen],ref,'5.47')
ref = (0.00046388166029826255229497209164998970578_prec, 0._prec)
success = success .and. test([1/z,1/z,xchen],ref,'5.48')
ref = (-0.192288163143566807696142013116173958498_prec, -0.31521279132732437358349410993154582689_prec)
success = success .and. test([1/z,(one - Sqrt(one - z**2))/z,one],ref,'5.49')
ref = (0.002733460180579634176655457160675040232_prec, 0._prec)
success = success .and. test([1/z,(one + Sqrt(one - z**2))/z,one],ref,'5.50')
ref = (1.2405915447167765990825028060196087891_prec, 9.4034869039477703342192286166659513954_prec)
success = success .and. test([zero,(one - Sqrt(one - z**2))/z,one],ref,'5.51')
ref = (-0.050768175126773423089156359957579918129_prec, 0._prec)
success = success .and. test([zero,(one + Sqrt(one - z**2))/z,one],ref,'5.52')
ref = (0.16993564728812322256340236036631827271_prec, -0.7895275616284135043668592676222441024_prec)
success = success .and. test([one,z,xchen],ref,'5.53')
ref = (-0.03170068605750180788495773038903118102_prec, 0._prec)
success = success .and. test([-one,1/z,one],ref,'5.54')
ref = (-0.15143046730845840172327870524141455637_prec, 0.5248158851299702580705230346396388949_prec)
success = success .and. test([-one,z,xchen],ref,'5.55')
ref = (-0.030228051617706827148202131166508086279_prec, 0._prec)
success = success .and. test([zero,1/z,xchen],ref,'5.56')
ref = (0.99558461846900177942203624948414087877_prec, 0.29942576068558925754458283723747181648_prec)
success = success .and. test([z,-one,one],ref,'5.57')
ref = (-0.004190457517917484407855332858996924624_prec, 0._prec)
success = success .and. test([1/z,-one,xchen],ref,'5.58')
ref = (-0.106279033128718363758844731208308444218_prec, -0.29942576068558925754458283723747181648_prec)
success = success .and. test([1/z,z,one],ref,'5.59')
ref = (-0.105360515657826301227500980839312798307_prec, 0._prec)
success = success .and. test([one,z],ref,'5.60')
ref = (0.095310179804324860043952123280765092219_prec, 0._prec)
success = success .and. test([-one,z],ref,'5.61')
ref = (-0.0100503358535014411835488575585477060856_prec, 0._prec)
success = success .and. test([1/z,z],ref,'5.62')
ref = (-1.984602991561652617179527482301534422_prec, -0.3309998219690594896224053826256198373_prec)
success = success .and. test([z,one,one],ref,'5.63')
ref = (-0.12522168135547515524018785859240601644_prec, -0.031574061283470232077822545388148020826_prec)
success = success .and. test([z,1/z,one],ref,'5.64')
ref = (-0.037346955577769026068838535377237759545_prec, -0.031574061283470232077822545388148020826_prec)
success = success .and. test([z,1/z,xchen],ref,'5.65')
ref = (-2.5209042789195153537296872522393437404_prec, 6.90278459044640532286764116763617129_prec)
success = success .and. test([z,z,one],ref,'5.66')
ref = (-4.6945756935855785970836942367747430818_prec, 2.1775860903036021305006888982376139473_prec)
success = success .and. test([z,z,xchen],ref,'5.67')
ref = (0.75555644256218769787140889183866339568_prec, 0._prec)
success = success .and. test([one,zero,xchen],ref,'5.68')
ref = (0.06690010907061691432740856228710517282_prec, 0._prec)
success = success .and. test([1/z,zero,xchen],ref,'5.69')
ref = (1.48565006852372513781101823557559466_prec, -7.233784412415464812490046550261791128_prec)
success = success .and. test([z,zero,xchen],ref,'5.70')
ref = (-1.6385845158315656748995449978803493579_prec, 9.072487081978710844596823234040331558_prec)
success = success .and. test([z,(one - Sqrt(one - z**2))/z,one],ref,'5.71')
ref = (-5.031701548310146865436222051917232801_prec, 4.3472885818359076522298709646417742151_prec)
success = success .and. test([z,(one - Sqrt(one - z**2))/z,xchen],ref,'5.72')
ref = (-0.06193780939846579428348544642935926109_prec, -0.01578703064173511603891127269407401041_prec)
success = success .and. test([z,(one + Sqrt(one - z**2))/z,one],ref,'5.73')
ref = (-0.018615789910669344236764255095371300135_prec, -0.01578703064173511603891127269407401041_prec)
success = success .and. test([z,(one + Sqrt(one - z**2))/z,xchen],ref,'5.74')
ref = (-0.09615617680065741470453561084128547498_prec, 0._prec)
success = success .and. test([-one,-one,zero,xchen],ref,'5.75')
ref = (-0.017417131848226315975417915572087076778_prec, 0._prec)
success = success .and. test([-one,-one,zero,z],ref,'5.76')
ref = (0.81699704232693125973188535221842665829_prec, 0._prec)
success = success .and. test([-one,zero,zero,xchen],ref,'5.77')
ref = (0.57619234092486638150710164244499729847_prec, 0._prec)
success = success .and. test([-one,zero,zero,z],ref,'5.78')
ref = (-0.060337428630309309823167360669730971172_prec, 0._prec)
success = success .and. test([-one,zero,z,z],ref,'5.79')
ref = (0.111615483379892439647800177264686105411_prec, 0._prec)
success = success .and. test([-one,one,zero,xchen],ref,'5.80')
ref = (0.018394227580100086743468906744563723875_prec, 0._prec)
success = success .and. test([-one,one,zero,z],ref,'5.81')
ref = (0.049313594759062605615804670261544881254_prec, 0._prec)
success = success .and. test([-one,1/z,zero,one],ref,'5.82')
ref = (0.010363991156027796730357566133078330322_prec, 0._prec)
success = success .and. test([-one,1/z,zero,xchen],ref,'5.83')
ref = (0.0017932246366417332785426452913729284131_prec, 0._prec)
success = success .and. test([-one,1/z,zero,z],ref,'5.84')
ref = (1.18121140530124483312529240709912774041_prec, -4.324623977231219665483413687908520454_prec)
success = success .and. test([-one,z,zero,one],ref,'5.85')
ref = (0.8461208776617351702755551567991459238_prec, -1.2084332336667449641541079395021520532_prec)
success = success .and. test([-one,z,zero,xchen],ref,'5.86')
ref = (0.30845679510313247752867740834629854629_prec, 0._prec)
success = success .and. test([-one,z,zero,z],ref,'5.87')
ref = (-0.91648194931990515581968426452348371584_prec, 0._prec)
success = success .and. test([zero,-one,zero,xchen],ref,'5.88')
ref = (-0.42231545999861327427287469600281990073_prec, 0._prec)
success = success .and. test([zero,-one,zero,z],ref,'5.89')
ref = (-0.29086989946977835131926209119273789894_prec, 0._prec)
success = success .and. test([zero,zero,zero,xchen],ref,'5.90')
ref = (-2.0346785922934761968309911917138105302_prec, 0._prec)
success = success .and. test([zero,zero,zero,z],ref,'5.91')
ref = (-1.2020569031595942853997381615114499908_prec, 0._prec)
success = success .and. test([zero,zero,z,z],ref,'5.92')
ref = (1.017451416604799762171559560072380914_prec, 0._prec)
success = success .and. test([zero,one,zero,xchen],ref,'5.93')
ref = (0.4388635650198810603637429740131846169_prec, 0._prec)
success = success .and. test([zero,one,zero,z],ref,'5.94')
ref = (0.09662077778365977470537593785964235614_prec, 0._prec)
success = success .and. test([zero,1/z,zero,xchen],ref,'5.95')
ref = (0.0431087472366272681996164909519689336_prec, 0._prec)
success = success .and. test([zero,1/z,zero,z],ref,'5.96')
ref = (10.2776793192798716263425468196760034486_prec, -7.9471244490554508756318126112353350732_prec)
success = success .and. test([zero,z,zero,xchen],ref,'5.97')
ref = (6.1917144676019857997057862839293044949_prec, 0._prec)
success = success .and. test([zero,z,zero,z],ref,'5.98')
ref = (1.2020569031595942853997381615114499908_prec, 0._prec)
success = success .and. test([zero,z,z,z],ref,'5.99')
ref = (0.14063389809070676720471610356551621143_prec, 0._prec)
success = success .and. test([one,-one,zero,xchen],ref,'5.100')
ref = (0.019781967644159612877028014000472655736_prec, 0._prec)
success = success .and. test([one,-one,zero,z],ref,'5.101')
ref = (-0.96356041279146243412056107045850765445_prec, 0._prec)
success = success .and. test([one,zero,zero,xchen],ref,'5.102')
ref = (-0.6168802399832875378790627006323812615_prec, 0._prec)
success = success .and. test([one,zero,zero,z],ref,'5.103')
ref = (0.0693433898259904703405439701581781021_prec, 0._prec)
success = success .and. test([one,zero,z,z],ref,'5.104')
ref = (-0.16471379717406949909059981362104166982_prec, 0._prec)
success = success .and. test([one,one,zero,xchen],ref,'5.105')
ref = (-0.020913148533100041387322415689317714159_prec, 0._prec)
success = success .and. test([one,one,zero,z],ref,'5.106')
ref = (-0.0152231788080054064395578968704411754148_prec, 0._prec)
success = success .and. test([one,1/z,zero,xchen],ref,'5.107')
ref = (-0.0020378021158274044691012436160541651492_prec, 0._prec)
success = success .and. test([one,1/z,zero,z],ref,'5.108')
ref = (-1.11708036096582680691150721070470447933_prec, 1.8179543939135226438165802536193033361_prec)
success = success .and. test([one,z,zero,xchen],ref,'5.109')
ref = (-0.35580900187271711495038127587001279867_prec, 0._prec)
success = success .and. test([one,z,zero,z],ref,'5.110')
ref = (0.098785550180700065614627056696958739276_prec, 0._prec)
success = success .and. test([-(1/z),zero,zero,one],ref,'5.111')
ref = (0.087163818382010677128314476161801919109_prec, 0._prec)
success = success .and. test([-(1/z),zero,zero,xchen],ref,'5.112')
ref = (0.0115704569023498350269491099085696356788_prec, 0._prec)
success = success .and. test([1/z,-one,zero,xchen],ref,'5.113')
ref = (0.00186314550035144547788961360478124878423_prec, 0._prec)
success = success .and. test([1/z,-one,zero,z],ref,'5.114')
ref = (-0.088583344855560704257237655282460547413_prec, 0._prec)
success = success .and. test([1/z,zero,zero,xchen],ref,'5.115')
ref = (-0.059739138378211866467299319930558554509_prec, 0._prec)
success = success .and. test([1/z,zero,zero,z],ref,'5.116')
ref = (0.0693433898259904703405439701581781021_prec, 0._prec)
success = success .and. test([1/z,zero,one,one],ref,'5.117')
ref = (0.006494434813701707186963740827645746484_prec, 0._prec)
success = success .and. test([1/z,zero,z,z],ref,'5.118')
ref = (-0.013487454741047334186896473083303557818_prec, 0._prec)
success = success .and. test([1/z,one,zero,xchen],ref,'5.119')
ref = (-0.0019687241218211995283816809950648851186_prec, 0._prec)
success = success .and. test([1/z,one,zero,z],ref,'5.120')
ref = (-0.00124962851464862400846701926392342103946_prec, 0._prec)
success = success .and. test([1/z,1/z,zero,xchen],ref,'5.121')
ref = (-0.000191879116596665152531302387779401928624_prec, 0._prec)
success = success .and. test([1/z,1/z,zero,z],ref,'5.122')
ref = (-0.09716313378106433305193892612980611248_prec, 0.1476333774808141350062408468567023225_prec)
success = success .and. test([1/z,z,zero,xchen],ref,'5.123')
ref = (-0.033262921338234973989830182930891696365_prec, 0._prec)
success = success .and. test([1/z,z,zero,z],ref,'5.124')
ref = (5.9210648037569734913519282093171737829_prec, 0._prec)
success = success .and. test([-z,zero,zero,one],ref,'5.125')
ref = (5.6884976701162432498455097039581380297_prec, 0._prec)
success = success .and. test([-z,zero,zero,xchen],ref,'5.126')
ref = (-0.8068771100768979861038519678591258064_prec, -0.99608918296138077449716239774715674137_prec)
success = success .and. test([z,-one,zero,xchen],ref,'5.127')
ref = (-6.0331807992636999754062480781378108351_prec, 8.3282020769802705808841858505904310077_prec)
success = success .and. test([z,zero,zero,xchen],ref,'5.128')
ref = (-1.46493033947217989144066597813124605538_prec, -0.32238329864545924961698410237405451832_prec)
success = success .and. test([z,zero,one,one],ref,'5.129')
ref = (0.9791696700513899910259549502194970368_prec, 1.0845385544950986601217305810842463874_prec)
success = success .and. test([z,one,zero,xchen],ref,'5.130')
ref = (0.089049644681041819900466126476438297449_prec, 0.104196780230836769495208841809715559303_prec)
success = success .and. test([z,1/z,zero,xchen],ref,'5.131')
ref = (-0.35667494393873237891263871124118447796_prec, 0._prec)
success = success .and. test([one,xchen],ref,'5.132')
ref = (0.202577368958445979238194080859537229189_prec, 0._prec)
success = success .and. test([zero,1/z,zero,one],ref,'5.133')
ref = (11.28362282950268250120145154105753422_prec, -16.656404153960541161768371701180862015_prec)
success = success .and. test([zero,z,zero,one],ref,'5.134')
ref = (-0.101288684479222989619097040429768614594_prec, 0._prec)
success = success .and. test([1/z,zero,zero,one],ref,'5.135')
ref = (-0.0081328361848579505380481946868909642592_prec, 0._prec)
success = success .and. test([1/z,1/z,zero,one],ref,'5.136')
ref = (-0.152915704818115098911953214609849875_prec, 0.6894532930130404087508189538457281364_prec)
success = success .and. test([1/z,z,zero,one],ref,'5.137')
ref = (-5.64181141475134125060072577052876711_prec, 8.3282020769802705808841858505904310077_prec)
success = success .and. test([z,zero,zero,one],ref,'5.138')
ref = (0.219983755769994213564747410127977912144_prec, 0.104196780230836769495208841809715559303_prec)
success = success .and. test([z,1/z,zero,one],ref,'5.139')
ref = (16.11280770208082952927841141680014107_prec, -10.7265361180609317220175727112871042793_prec)
success = success .and. test([z,z,zero,one],ref,'5.140')
ref = (0.26236426446749105203549598688095439721_prec, 0._prec)
success = success .and. test([-one,xchen],ref,'5.141')
ref = (14.820181687751354265264365497202443544_prec, 0.15363550980570995501181986942931727699_prec)
success = success .and. test([z,z,zero,xchen],ref,'5.142')
ref = (-5.4281812752430739134510233004824116119_prec, 14.07336591707334743678849080901079954_prec)
success = success .and. test([(one - Sqrt(one - z**2))/z,zero,zero,one],ref,'5.143')
ref = (-5.7616153210956073072343023650453664454_prec, 14.07336591707334743678849080901079954_prec)
success = success .and. test([(one - Sqrt(one - z**2))/z,zero,zero,xchen],ref,'5.144')
ref = (0.22396031876793726184320420490079813172_prec, 0.063021309384923281944775623730917227623_prec)
success = success .and. test([(one - Sqrt(one - z**2))/z,1/z,zero,one],ref,'5.145')
ref = (0.106997118917417222557992043979214108516_prec, 0.063021309384923281944775623730917227623_prec)
success = success .and. test([(one - Sqrt(one - z**2))/z,1/z,zero,xchen],ref,'5.146')
ref = (14.76312779502783340039607795544913838_prec, -12.940384318387447889925446186842274821_prec)
success = success .and. test([(one - Sqrt(one - z**2))/z,z,zero,one],ref,'5.147')
ref = (13.633530270830107055477166876154554017_prec, -3.280595073175303036881415841148029264_prec)
success = success .and. test([(one - Sqrt(one - z**2))/z,z,zero,xchen],ref,'5.148')
ref = (-0.050444467131442843777303562506343183448_prec, 0._prec)
success = success .and. test([(one + Sqrt(one - z**2))/z,zero,zero,one],ref,'5.149')
ref = (-0.044221296211604606572008564792508926535_prec, 0._prec)
success = success .and. test([(one + Sqrt(one - z**2))/z,zero,zero,xchen],ref,'5.150')
ref = (-0.0039499061019035595577257619069856335002_prec, 0._prec)
success = success .and. test([(one + Sqrt(one - z**2))/z,1/z,zero,one],ref,'5.151')
ref = (-0.00062043149781997317819406073653252587623_prec, 0._prec)
success = success .and. test([(one + Sqrt(one - z**2))/z,1/z,zero,xchen],ref,'5.152')
ref = (-0.075456170463655590565970735681528222772_prec, 0.33565031800155333127512697702333513343_prec)
success = success .and. test([(one + Sqrt(one - z**2))/z,z,zero,one],ref,'5.153')
ref = (-0.048368023868601775305269955431529876046_prec, 0.073254605022309228145892697790829720334_prec)
success = success .and. test([(one + Sqrt(one - z**2))/z,z,zero,xchen],ref,'5.154')
ref = (0.019290141425222173917331309192695287236_prec, -0.9855183430525558460099983723568861595_prec)
success = success .and. test([z - Sqrt(-one + z**2),zero,zero,one],ref,'5.155')
ref = (-0.0171873870873855443746833136313772715288_prec, -0.87731307320948547739664450528084353409_prec)
success = success .and. test([z - Sqrt(-one + z**2),zero,zero,xchen],ref,'5.156')
ref = (0.02730378681005887353994396976120161719_prec, -0.06053535416686736335854047459216291701_prec)
success = success .and. test([z - Sqrt(-one + z**2),1/z,zero,one],ref,'5.157')
ref = (0.00106428160859472712712296832653884600995_prec, -0.0121605579592532443057160482414527266305_prec)
success = success .and. test([z - Sqrt(-one + z**2),1/z,zero,xchen],ref,'5.158')
ref = (-5.0904509074544429539617699769602079511_prec, -3.5409607437065213532088679155947101319_prec)
success = success .and. test([z - Sqrt(-one + z**2),z,zero,one],ref,'5.159')
ref = (-1.4002761158519076934540349946117187848_prec, -1.100773651452373152439089701606797792_prec)
success = success .and. test([z - Sqrt(-one + z**2),z,zero,xchen],ref,'5.160')
ref = (0.019290141425222173917331309192695287236_prec, 0.9855183430525558460099983723568861595_prec)
success = success .and. test([z + Sqrt(-one + z**2),zero,zero,one],ref,'5.161')
ref = (-0.0171873870873855443746833136313772715288_prec, 0.8773130732094854773966445052808435341_prec)
success = success .and. test([z + Sqrt(-one + z**2),zero,zero,xchen],ref,'5.162')
ref = (0.02730378681005887353994396976120161719_prec, 0.06053535416686736335854047459216291701_prec)
success = success .and. test([z + Sqrt(-one + z**2),1/z,zero,one],ref,'5.163')
ref = (0.0010642816085947271271229683265388460099_prec, 0.01216055795925324430571604824145272663_prec)
success = success .and. test([z + Sqrt(-one + z**2),1/z,zero,xchen],ref,'5.164')
ref = (5.547761546563602505496520802645140582_prec, -0.7836632335246983122745457723138103218_prec)
success = success .and. test([z + Sqrt(-one + z**2),z,zero,one],ref,'5.165')
ref = (1.4695713467220316161212647287960566232_prec, 0.81424968571121894916137610303225793314_prec)
success = success .and. test([z + Sqrt(-one + z**2),z,zero,xchen],ref,'5.166')
ref = (0.156867713529413809719168815294871403571_prec, 0._prec)
success = success .and. test([-one,-one,zero,zero,xchen],ref,'5.167')
ref = (-0.1361549772791300060140553843290175582_prec, 0._prec)
success = success .and. test([-one,zero,-one,zero,xchen],ref,'5.168')
ref = (-0.92270363433527097196573008319186789229_prec, 0._prec)
success = success .and. test([-one,zero,zero,zero,xchen],ref,'5.169')
ref = (0.1456528537307877867551483870122028915_prec, 0._prec)
success = success .and. test([-one,zero,one,zero,xchen],ref,'5.170')
ref = (0.07980308827314582233711905794547271608_prec, 0._prec)
success = success .and. test([-one,zero,1/z,zero,one],ref,'5.171')
ref = (0.0140983583677682819717933099780803058_prec, 0._prec)
success = success .and. test([-one,zero,1/z,zero,xchen],ref,'5.172')
ref = (6.5072394734343413262234141679845055437_prec, -6.3018456006477822797780711130588189396_prec)
success = success .and. test([-one,zero,z,zero,one],ref,'5.173')
ref = (1.7971105678252792103993510422017353468_prec, -0.76509934001234249399582940957120959875_prec)
success = success .and. test([-one,zero,z,zero,xchen],ref,'5.174')
ref = (-0.17404491276535897834110844172561795521_prec, 0._prec)
success = success .and. test([-one,one,zero,zero,xchen],ref,'5.175')
ref = (-0.058853079185471593679839495141256757241_prec, 0._prec)
success = success .and. test([-one,1/z,zero,zero,one],ref,'5.176')
ref = (-0.016535503127896906123763459052288961103_prec, 0._prec)
success = success .and. test([-one,1/z,zero,zero,xchen],ref,'5.177')
ref = (-0.0019185540771129222185110465984655862942_prec, 0._prec)
success = success .and. test([-one,1/z,1/z,zero,one],ref,'5.178')
ref = (-0.000114631037100313689885191075106534968831_prec, 0._prec)
success = success .and. test([-one,1/z,1/z,zero,xchen],ref,'5.179')
ref = (-0.068118350017587987739765239629538506581_prec, 0.18244821539696155393709836719332314175_prec)
success = success .and. test([-one,1/z,z,zero,one],ref,'5.180')
ref = (-0.0131882037882985178040522698695640009301_prec, 0.0119463035122958032877583493840239086066_prec)
success = success .and. test([-one,1/z,z,zero,xchen],ref,'5.181')
ref = (-4.2762432878605327938313348722674751381_prec, 4.978907351388613819143374892944940702_prec)
success = success .and. test([-one,z,zero,zero,one],ref,'5.182')
ref = (-1.8150288452769919518477274958080383856_prec, 1.391260174859818645488828064882606937_prec)
success = success .and. test([-one,z,zero,zero,xchen],ref,'5.183')
ref = (0.07354381381810565009391015760984063032_prec, 0.062292690581595979665980945707333022641_prec)
success = success .and. test([-one,z,1/z,zero,one],ref,'5.184')
ref = (0.0041379833614894792622971445026894225737_prec, 0.01740649774631152704500505467088929069_prec)
success = success .and. test([-one,z,1/z,zero,xchen],ref,'5.185')
ref = (8.3782343656656580370078842613168450575_prec, -1.3989586778404957360979003204765844947_prec)
success = success .and. test([-one,z,z,zero,one],ref,'5.186')
ref = (1.61771842200225865070932692263713120321_prec, 1.285503611743976753730195316525016156_prec)
success = success .and. test([-one,z,z,zero,xchen],ref,'5.187')
ref = (-0.061811027943749597866741119227363729577_prec, 0._prec)
success = success .and. test([zero,-one,-one,zero,xchen],ref,'5.188')
ref = (1.7844686828294620604418638073704300835_prec, 0._prec)
success = success .and. test([zero,-one,zero,zero,xchen],ref,'5.189')
ref = (0.0680549652688461687784128692975785936_prec, 0._prec)
success = success .and. test([zero,-one,one,zero,xchen],ref,'5.190')
ref = (0.0379030700977973650225599323370407984_prec, 0._prec)
success = success .and. test([zero,-one,1/z,zero,one],ref,'5.191')
ref = (0.0064946843918935445993696943064229573976_prec, 0._prec)
success = success .and. test([zero,-one,1/z,zero,xchen],ref,'5.192')
ref = (2.0452471022867242614392555765504447324_prec, -3.6559691021294453585086786728310624644_prec)
success = success .and. test([zero,-one,z,zero,one],ref,'5.193')
ref = (0.81424059685158318869451948512798921267_prec, -0.56250026052888477540284035316668886025_prec)
success = success .and. test([zero,-one,z,zero,xchen],ref,'5.194')
ref = (-1.2327590115110687817725163762469362475_prec, 0._prec)
success = success .and. test([zero,zero,-one,zero,xchen],ref,'5.195')
ref = (0.087549862139658031076027422464290803477_prec, 0._prec)
success = success .and. test([zero,zero,zero,zero,xchen],ref,'5.196')
ref = (1.17125514891226696317825761603265234076_prec, 0._prec)
success = success .and. test([zero,zero,zero,zero,z],ref,'5.197')
ref = (1.2941049241728956868728872939899452182_prec, 0._prec)
success = success .and. test([zero,zero,one,zero,xchen],ref,'5.198')
ref = (0.30191325935961346139697425243827276116_prec, 0._prec)
success = success .and. test([zero,zero,1/z,zero,one],ref,'5.199')
ref = (0.12642561012958675796565432325296678_prec, 0._prec)
success = success .and. test([zero,zero,1/z,zero,xchen],ref,'5.200')
ref = (28.842079158822890554575582224357591581_prec, -19.176393953896820747922016712477182097_prec)
success = success .and. test([zero,zero,z,zero,one],ref,'5.201')
ref = (15.750943507129759267061384697247347194_prec, -4.3654042896535495942437573552601369828_prec)
success = success .and. test([zero,zero,z,zero,xchen],ref,'5.202')
ref = (0.078520352196002090064025867515318859404_prec, 0._prec)
success = success .and. test([zero,one,-one,zero,xchen],ref,'5.203')
ref = (-1.9065968418304341703412524922325281839_prec, 0._prec)
success = success .and. test([zero,one,zero,zero,xchen],ref,'5.204')
ref = (-0.087121836653776333006343238950177551758_prec, 0._prec)
success = success .and. test([zero,one,one,zero,xchen],ref,'5.205')
ref = (-0.106723657180381852819860683993830940187_prec, 0._prec)
success = success .and. test([zero,one,1/z,zero,one],ref,'5.206')
ref = (-0.0082817617040078116472442319762338477305_prec, 0._prec)
success = success .and. test([zero,one,1/z,zero,xchen],ref,'5.207')
ref = (-3.0352804935056459674265678185642179823_prec, 9.401856103860153958529617404555996574_prec)
success = success .and. test([zero,one,z,zero,one],ref,'5.208')
ref = (-0.9912316953521121888090039235307687713_prec, 0.77952245877198803318624499328028440278_prec)
success = success .and. test([zero,one,z,zero,xchen],ref,'5.209')
ref = (0.2981609109652751033444307345307071448_prec, 0._prec)
success = success .and. test([zero,-(1/z),zero,zero,one],ref,'5.210')
ref = (0.18338441452626585745637747578673488353_prec, 0._prec)
success = success .and. test([zero,-(1/z),zero,zero,xchen],ref,'5.211')
ref = (0.04649668012425422832260550473486940933_prec, 0._prec)
success = success .and. test([zero,1/z,-one,zero,one],ref,'5.212')
ref = (0.0069662090830282036690008486166686462988_prec, 0._prec)
success = success .and. test([zero,1/z,-one,zero,xchen],ref,'5.213')
ref = (-0.30191325935961346139697425243827276116_prec, 0._prec)
success = success .and. test([zero,1/z,zero,zero,one],ref,'5.214')
ref = (-0.1845900045217597346901236611330056689_prec, 0._prec)
success = success .and. test([zero,1/z,zero,zero,xchen],ref,'5.215')
ref = (0.030420536003533773158854837031419142031_prec, 0._prec)
success = success .and. test([zero,1/z,zero,one,one],ref,'5.216')
ref = (-0.062075843263721333870470190149989475266_prec, 0._prec)
success = success .and. test([zero,1/z,one,zero,one],ref,'5.217')
ref = (-0.0076982247243825206721922792699465938503_prec, 0._prec)
success = success .and. test([zero,1/z,one,zero,xchen],ref,'5.218')
ref = (-0.0052652055250591388248326588179489277117_prec, 0._prec)
success = success .and. test([zero,1/z,1/z,zero,one],ref,'5.219')
ref = (-0.00073329354968306193569322464565551929964_prec, 0._prec)
success = success .and. test([zero,1/z,1/z,zero,xchen],ref,'5.220')
ref = (-0.23943592352381735147046538061064468849_prec, 0.50239302479378056447743355126308476311_prec)
success = success .and. test([zero,1/z,z,zero,one],ref,'5.221')
ref = (-0.09005423703279570067642905891466084338_prec, 0.066272441788736377793836236880548139203_prec)
success = success .and. test([zero,1/z,z,zero,xchen],ref,'5.222')
ref = (21.979710744081239169855015093231788341_prec, 0._prec)
success = success .and. test([zero,-z,zero,zero,one],ref,'5.223')
ref = (14.9232753258585906192348286151118944463_prec, 0._prec)
success = success .and. test([zero,-z,zero,zero,xchen],ref,'5.224')
ref = (-1.60415697345197002236202070107333634547_prec, -2.2935801039794939363123479243218941_prec)
success = success .and. test([zero,z,-one,zero,one],ref,'5.225')
ref = (0.023889737939459331971003630888191839345_prec, -1.0943158170107499849400097105947457616_prec)
success = success .and. test([zero,z,-one,zero,xchen],ref,'5.226')
ref = (-28.842079158822890554575582224357591581_prec, 19.176393953896820747922016712477182097_prec)
success = success .and. test([zero,z,zero,zero,one],ref,'5.227')
ref = (-21.9379667031277912238191006805482565_prec, 9.149465144281799713252793474280041178_prec)
success = success .and. test([zero,z,zero,zero,xchen],ref,'5.228')
ref = (-1.0577097162422482726005610705811996621_prec, -0.7423149776912819882795762619157170747_prec)
success = success .and. test([zero,z,zero,one,one],ref,'5.229')
ref = (2.1531002358361374892720980676100012085_prec, 2.4972423083577246311124357897499165556_prec)
success = success .and. test([zero,z,one,zero,one],ref,'5.230')
ref = (0.034779935972837914471743222110656936138_prec, 1.1914873835026637427320345169560057102_prec)
success = success .and. test([zero,z,one,zero,xchen],ref,'5.231')
ref = (0.18440187005139365939616791761925730575_prec, 0.23992195289750142380214271065263231155_prec)
success = success .and. test([zero,z,1/z,zero,one],ref,'5.232')
ref = (0.00043250563241101600693861256477966259722_prec, 0.114471863201247630174062534566185298058_prec)
success = success .and. test([zero,z,1/z,zero,xchen],ref,'5.233')
ref = (26.020008927241625325666081651867958372_prec, 3.8794878928476544430825134142189270862_prec)
success = success .and. test([zero,z,z,zero,one],ref,'5.234')
ref = (7.2171446923783200788775325994966383456_prec, 10.5618993324060646290780094318148547729_prec)
success = success .and. test([zero,z,z,zero,xchen],ref,'5.235')
ref = (-40.522051660861789077431629984750524714_prec, 42.124720384880289626744115519888967192_prec)
success = success .and. test([zero,(one - Sqrt(one - z**2))/z,zero,zero,one],ref,'5.236')
ref = (-33.888642893129272283699657335791713827_prec, 25.180770555396443549883236856029897507_prec)
success = success .and. test([zero,(one - Sqrt(one - z**2))/z,zero,zero,xchen],ref,'5.237')
ref = (0.25421882137784448316439758045768237051_prec, 0.188636823043751265142100344299039239341_prec)
success = success .and. test([zero,(one - Sqrt(one - z**2))/z,1/z,zero,one],ref,'5.238')
ref = (0.058660149555752000222630638565201522867_prec, 0.11276088045129275302340610164245212051_prec)
success = success .and. test([zero,(one - Sqrt(one - z**2))/z,1/z,zero,xchen],ref,'5.239')
ref = (29.05215844593807648507437230593416692_prec, -1.83436007544945488676746898609125647318_prec)
success = success .and. test([zero,(one - Sqrt(one - z**2))/z,z,zero,one],ref,'5.240')
ref = (11.81773857800371620494736866854110857_prec, 8.05447666152041966605012308970765446_prec)
success = success .and. test([zero,(one - Sqrt(one - z**2))/z,z,zero,xchen],ref,'5.241')
ref = (-0.1508527354552174685436443005195681251_prec, 0._prec)
success = success .and. test([zero,(one + Sqrt(one - z**2))/z,zero,zero,one],ref,'5.242')
ref = (-0.09237409279241689653547408557592617445_prec, 0._prec)
success = success .and. test([zero,(one + Sqrt(one - z**2))/z,zero,zero,xchen],ref,'5.243')
ref = (-0.0025882562876569326546982590189300459946_prec, 0._prec)
success = success .and. test([zero,(one + Sqrt(one - z**2))/z,1/z,zero,one],ref,'5.244')
ref = (-0.0003653480240873660813051240472749340643_prec, 0._prec)
success = success .and. test([zero,(one + Sqrt(one - z**2))/z,1/z,zero,xchen],ref,'5.245')
ref = (-0.11900252960964041358465682740525288399_prec, 0.24723946647903163826068813072255510577_prec)
success = success .and. test([zero,(one + Sqrt(one - z**2))/z,z,zero,one],ref,'5.246')
ref = (-0.04491896583925201385118586235949727974_prec, 0.032950127803781971055952654883081558393_prec)
success = success .and. test([zero,(one + Sqrt(one - z**2))/z,z,zero,xchen],ref,'5.247')
ref = (-0.22438647000656359124995615100113606903_prec, 0._prec)
success = success .and. test([one,-one,zero,zero,xchen],ref,'5.248')
ref = (0.20093319914956897041204850097815063706_prec, 0._prec)
success = success .and. test([one,zero,-one,zero,xchen],ref,'5.249')
ref = (1.0222324580521425613350726928441459978_prec, 0._prec)
success = success .and. test([one,zero,zero,zero,xchen],ref,'5.250')
ref = (-0.215771528108617112683317149640240898624_prec, 0._prec)
success = success .and. test([one,zero,one,zero,xchen],ref,'5.251')
ref = (-0.020845484576028609860483948095836157256_prec, 0._prec)
success = success .and. test([one,zero,1/z,zero,xchen],ref,'5.252')
ref = (-2.633295224745441853354238333993038166_prec, 1.21770457861959330176509100090253408939_prec)
success = success .and. test([one,zero,z,zero,xchen],ref,'5.253')
ref = (0.25060214852861566579061866465200075741_prec, 0._prec)
success = success .and. test([one,one,zero,zero,xchen],ref,'5.254')
ref = (0.023727769780132925120791577200877961377_prec, 0._prec)
success = success .and. test([one,1/z,zero,zero,xchen],ref,'5.255')
ref = (0.00017954927183351276969374220744788719543_prec, 0._prec)
success = success .and. test([one,1/z,1/z,zero,xchen],ref,'5.256')
ref = (0.02003013577518310326317187008104424436_prec, -0.019264433603863892008822204902243642197_prec)
success = success .and. test([one,1/z,z,zero,xchen],ref,'5.257')
ref = (2.484730647473504693674814291000280652_prec, -2.0929973435841512479338821859119318674_prec)
success = success .and. test([one,z,zero,zero,xchen],ref,'5.258')
ref = (-0.008005551881757988497031889468926590398_prec, -0.02618615425242395952912091568874165202_prec)
success = success .and. test([one,z,1/z,zero,xchen],ref,'5.259')
ref = (-2.6352193045812556609867028998150752909_prec, -1.74553310622964581874914388848511325215_prec)
success = success .and. test([one,z,z,zero,xchen],ref,'5.260')
ref = (-0.08500492328976610784167833332150292698_prec, 0._prec)
success = success .and. test([1/z,-one,zero,zero,one],ref,'5.261')
ref = (-0.018675097583786679816217887618015015449_prec, 0._prec)
success = success .and. test([1/z,-one,zero,zero,xchen],ref,'5.262')
ref = (-0.0023867581104962220466863475613821361694_prec, 0._prec)
success = success .and. test([1/z,-one,1/z,zero,one],ref,'5.263')
ref = (-0.00012393328901448324827052337690029241144_prec, 0._prec)
success = success .and. test([1/z,-one,1/z,zero,xchen],ref,'5.264')
ref = (-0.093580855298614940386249735685738164334_prec, 0.22973247345904049199766626419170084112_prec)
success = success .and. test([1/z,-one,z,zero,one],ref,'5.265')
ref = (-0.0144577257366958076784493371935892078199_prec, 0.012716455228493294364763204565726910806_prec)
success = success .and. test([1/z,-one,z,zero,xchen],ref,'5.266')
ref = (0.123513166455277987360751161908136444622_prec, 0._prec)
success = success .and. test([1/z,zero,-one,zero,one],ref,'5.267')
ref = (0.016453470640490642541535492313176894092_prec, 0._prec)
success = success .and. test([1/z,zero,-one,zero,xchen],ref,'5.268')
ref = (0.1006377531198711537989914174794242537_prec, 0._prec)
success = success .and. test([1/z,zero,zero,zero,one],ref,'5.269')
ref = (0.09708064754802687707408834536053650912_prec, 0._prec)
success = success .and. test([1/z,zero,zero,zero,xchen],ref,'5.270')
ref = (0.059796185988218263112770608767666173976_prec, 0._prec)
success = success .and. test([1/z,zero,zero,one,one],ref,'5.271')
ref = (-0.150012907979970299384396054566751489983_prec, 0._prec)
success = success .and. test([1/z,zero,one,zero,one],ref,'5.272')
ref = (-0.017632872884849829171412447089834955178_prec, 0._prec)
success = success .and. test([1/z,zero,one,zero,xchen],ref,'5.273')
ref = (-0.0134612542379971276159632166731610141513_prec, 0._prec)
success = success .and. test([1/z,zero,1/z,zero,one],ref,'5.274')
ref = (-0.00170522553879993732810723535200072247389_prec, 0._prec)
success = success .and. test([1/z,zero,1/z,zero,xchen],ref,'5.275')
ref = (-1.0382990101123271317084431629243672352_prec, 1.0851318500137021125573929563677021186_prec)
success = success .and. test([1/z,zero,z,zero,one],ref,'5.276')
ref = (-0.21655612836752634806940004204954233079_prec, 0.09591940092926380543645539359128011657_prec)
success = success .and. test([1/z,zero,z,zero,xchen],ref,'5.277')
ref = (0.106044375621845816627433122358370482624_prec, 0._prec)
success = success .and. test([1/z,one,zero,zero,one],ref,'5.278')
ref = (0.020784813158515124815152580264989939392_prec, 0._prec)
success = success .and. test([1/z,one,zero,zero,xchen],ref,'5.279')
ref = (0.008309460201014733706653946550628166541_prec, 0._prec)
success = success .and. test([1/z,one,1/z,zero,one],ref,'5.280')
ref = (0.000164099291421729434523843492475349856411_prec, 0._prec)
success = success .and. test([1/z,one,1/z,zero,xchen],ref,'5.281')
ref = (0.15866252353641178189894128824912148532_prec, -0.70605522917201125927752141669110721848_prec)
success = success .and. test([1/z,one,z,zero,one],ref,'5.282')
ref = (0.018007936416226765494502938455036896037_prec, -0.017837964252906106308130828565303375144_prec)
success = success .and. test([1/z,one,z,zero,xchen],ref,'5.283')
ref = (-0.0030377634294108553474408355607657278321_prec, 0._prec)
success = success .and. test([1/z,1/z,-one,zero,one],ref,'5.284')
ref = (-0.00013440172637886054364058924890345406457_prec, 0._prec)
success = success .and. test([1/z,1/z,-one,zero,xchen],ref,'5.285')
ref = (0.009363229881528133220397937745554970932_prec, 0._prec)
success = success .and. test([1/z,1/z,zero,zero,one],ref,'5.286')
ref = (0.0019715189178150785481739520755518140846_prec, 0._prec)
success = success .and. test([1/z,1/z,zero,zero,xchen],ref,'5.287')
ref = (-0.0022574812215881550511769182929567996377_prec, 0._prec)
success = success .and. test([1/z,1/z,zero,one,one],ref,'5.288')
ref = (0.0042439154429705903233529051149470340374_prec, 0._prec)
success = success .and. test([1/z,1/z,one,zero,one],ref,'5.289')
ref = (0.00015072503352783147168468776396046194745_prec, 0._prec)
success = success .and. test([1/z,1/z,one,zero,xchen],ref,'5.290')
ref = (0.00034975408565166281675916947843215277991_prec, 0._prec)
success = success .and. test([1/z,1/z,1/z,zero,one],ref,'5.291')
ref = (0.0000142515403388545181416141961904418858682_prec, 0._prec)
success = success .and. test([1/z,1/z,1/z,zero,xchen],ref,'5.292')
ref = (0.0113348643938066932132484833350280306489_prec, -0.032855958661878377050914680980656463522_prec)
success = success .and. test([1/z,1/z,z,zero,one],ref,'5.293')
ref = (0.0016170616892862192864840451131244464155_prec, -0.00150651532474373870916908513459100736494_prec)
success = success .and. test([1/z,1/z,z,zero,xchen],ref,'5.294')
ref = (0.114809521023120168732160081779688710047_prec, 0.09493743912919224438119039454362760509_prec)
success = success .and. test([1/z,z,-one,zero,one],ref,'5.295')
ref = (0.0049477324704203265427498952429897621118_prec, 0.020329056268292787444207173152338983864_prec)
success = success .and. test([1/z,z,-one,zero,xchen],ref,'5.296')
ref = (0.63886746681807224158945427176750596184_prec, -0.7937624374037413385174132538153934408_prec)
success = success .and. test([1/z,z,zero,zero,one],ref,'5.297')
ref = (0.21179606802790307918501488788530107241_prec, -0.169969207107842732495023861931845278873_prec)
success = success .and. test([1/z,z,zero,zero,xchen],ref,'5.298')
ref = (0.072429034009311307217538662664115937586_prec, 0.030726410159810080181717067307036187766_prec)
success = success .and. test([1/z,z,zero,one,one],ref,'5.299')
ref = (-0.15160333253253726579211133439421259279_prec, -0.103367564633650428975402676211423416325_prec)
success = success .and. test([1/z,z,one,zero,one],ref,'5.300')
ref = (-0.00655840259209224253746765109584746611_prec, -0.022134208137785379643803146647296326166_prec)
success = success .and. test([1/z,z,one,zero,xchen],ref,'5.301')
ref = (-0.01304420149850449595265812833085403113_prec, -0.0099310138588327744965683163925173209519_prec)
success = success .and. test([1/z,z,1/z,zero,one],ref,'5.302')
ref = (-0.00057338576089195845924562355839795605897_prec, -0.0021265387121162458229742475332127642395_prec)
success = success .and. test([1/z,z,1/z,zero,xchen],ref,'5.303')
ref = (-1.3844035752018854380769984516055733738_prec, 0.34914881557983931502142277716577505775_prec)
success = success .and. test([1/z,z,z,zero,one],ref,'5.304')
ref = (-0.20548251687537997072008921613666448518_prec, -0.150017355335495895194146660080800425138_prec)
success = success .and. test([1/z,z,z,zero,xchen],ref,'5.305')
ref = (0.6455298224453471388688880778971775715_prec, -1.412056063036221698845175561160375697_prec)
success = success .and. test([1/z,(one - Sqrt(one - z**2))/z,zero,zero,one],ref,'5.306')
ref = (0.23498428383318291964443094139037970306_prec, -0.35794254544845892669604620941585752317_prec)
success = success .and. test([1/z,(one - Sqrt(one - z**2))/z,zero,zero,xchen],ref,'5.307')
ref = (-0.014568707752059913292866862111159879474_prec, -0.0063232649916039744133144483690496335108_prec)
success = success .and. test([1/z,(one - Sqrt(one - z**2))/z,1/z,zero,one],ref,'5.308')
ref = (-0.001480479692105259445560060300598905943_prec, -0.00160288647589043749869395189930960833225_prec)
success = success .and. test([1/z,(one - Sqrt(one - z**2))/z,1/z,zero,xchen],ref,'5.309')
ref = (-1.330333715791885853629542627516533939_prec, 0.62688203512233786473649942035819158_prec)
success = success .and. test([1/z,(one - Sqrt(one - z**2))/z,z,zero,one],ref,'5.310')
ref = (-0.25001869907601438929572931760229905482_prec, -0.063073674224544343677846289550224854434_prec)
success = success .and. test([1/z,(one - Sqrt(one - z**2))/z,z,zero,xchen],ref,'5.311')
ref = (0.004669014059138493209128736150614447598_prec, 0._prec)
success = success .and. test([1/z,(one + Sqrt(one - z**2))/z,zero,zero,one],ref,'5.312')
ref = (0.0009856004924885025023678524167819138992_prec, 0._prec)
success = success .and. test([1/z,(one + Sqrt(one - z**2))/z,zero,zero,xchen],ref,'5.313')
ref = (0.000171346246840598088849420207412615095047_prec, 0._prec)
success = success .and. test([1/z,(one + Sqrt(one - z**2))/z,1/z,zero,one],ref,'5.314')
ref = (7.093882959392448081625285914112796705e-6_prec, 0._prec)
success = success .and. test([1/z,(one + Sqrt(one - z**2))/z,1/z,zero,xchen],ref,'5.315')
ref = (0.005621308586251403245964774586214658036_prec, -0.016125820294399300891807006607167627628_prec)
success = success .and. test([1/z,(one + Sqrt(one - z**2))/z,z,zero,one],ref,'5.316')
ref = (0.00080612956304704221292090608162685189556_prec, -0.00074880292910878540787641145185681993572_prec)
success = success .and. test([1/z,(one + Sqrt(one - z**2))/z,z,zero,xchen],ref,'5.317')
ref = (2.3918748530756479698925428192476948474_prec, 1.8101616253042657958808540191210702199_prec)
success = success .and. test([z,-one,zero,zero,one],ref,'5.318')
ref = (1.0750881710182347699833469532152094711_prec, 1.81016162530426579588085401912107021988_prec)
success = success .and. test([z,-one,zero,zero,xchen],ref,'5.319')
ref = (0.049045407624930646341462492153634776096_prec, 0.005633581344709895626791101823722347574_prec)
success = success .and. test([z,-one,1/z,zero,one],ref,'5.320')
ref = (0.0111690173633320669063422297546703412677_prec, 0.005633581344709895626791101823722347574_prec)
success = success .and. test([z,-one,1/z,zero,xchen],ref,'5.321')
ref = (3.187771242883777968178417504903352224_prec, -4.0447159020320344427463738302556696184_prec)
success = success .and. test([z,-one,z,zero,one],ref,'5.322')
ref = (1.66203864770694966004538555223774849572_prec, -0.2907925708357718824340172851551147086_prec)
success = success .and. test([z,-one,z,zero,xchen],ref,'5.323')
ref = (-3.1795927326993259174230649374220533494_prec, -1.32674314662903765544936011392024633959_prec)
success = success .and. test([z,zero,-one,zero,one],ref,'5.324')
ref = (-1.2026079830102390561888032384917891518_prec, -1.32674314662903765544936011392024633957_prec)
success = success .and. test([z,zero,-one,zero,xchen],ref,'5.325')
ref = (9.61402638627429685152519407478586386_prec, -6.392131317965606915974005570825727366_prec)
success = success .and. test([z,zero,zero,zero,one],ref,'5.326')
ref = (9.7339174363408999970347332210642245858_prec, -6.392131317965606915974005570825727366_prec)
success = success .and. test([z,zero,zero,zero,xchen],ref,'5.327')
ref = (-1.32070487428503438950557234447975141942_prec, -0.31820778705170145657467234115509046879_prec)
success = success .and. test([z,zero,zero,one,one],ref,'5.328')
ref = (3.6991194648123170516117057595407025009_prec, 1.3787305517946849014289209442258980122_prec)
success = success .and. test([z,zero,one,zero,one],ref,'5.329')
ref = (1.3085000778313004380635769464142437448_prec, 1.3787305517946849014289209442258980122_prec)
success = success .and. test([z,zero,one,zero,xchen],ref,'5.330')
ref = (0.34104492028266409809663304977203459612_prec, 0.13543012362404752591413363077338697829_prec)
success = success .and. test([z,zero,1/z,zero,one],ref,'5.331')
ref = (0.12565458922030830443978794953628522388_prec, 0.13543012362404752591413363077338697828_prec)
success = success .and. test([z,zero,1/z,zero,xchen],ref,'5.332')
ref = (36.277557336616876738424528545593448261_prec, -9.1264053732129382624026293362221798983_prec)
success = success .and. test([z,zero,z,zero,one],ref,'5.333')
ref = (19.959697363355278774250246775750284726_prec, 9.058731211186314637154551894345189234_prec)
success = success .and. test([z,zero,z,zero,xchen],ref,'5.334')
ref = (-2.9261098503242272704419019135753518548_prec, -1.9379864300762047662706783669879072839_prec)
success = success .and. test([z,one,zero,zero,one],ref,'5.335')
ref = (-1.26108683368340591124133034149693756815_prec, -1.93798643007620476627067836698790728388_prec)
success = success .and. test([z,one,zero,zero,xchen],ref,'5.336')
ref = (-0.12999579244933473601665709499732979364_prec, -0.006401944156553110805427704053646331322_prec)
success = success .and. test([z,one,1/z,zero,one],ref,'5.337')
ref = (-0.014589609872484984605663965986339713477_prec, -0.0064019441565531108054277040536463313215_prec)
success = success .and. test([z,one,1/z,zero,xchen],ref,'5.338')
ref = (-4.567431030376805348824284754474944122_prec, 10.7812914658534335166779083469716143318_prec)
success = success .and. test([z,one,z,zero,one],ref,'5.339')
ref = (-2.0682032085339735909365520975013326215_prec, 0.58911533955473320885461929726651546902_prec)
success = success .and. test([z,one,z,zero,xchen],ref,'5.340')
ref = (0.0595398011409606737915842949496993003_prec, 0.0058532442164729806496474651499991644331_prec)
success = success .and. test([z,1/z,-one,zero,one],ref,'5.341')
ref = (0.0120752428362792662985597130829737458512_prec, 0.005853244216472980649647465149999164433_prec)
success = success .and. test([z,1/z,-one,zero,xchen],ref,'5.342')
ref = (-0.26272339516702887874640048369564595094_prec, -0.18767603826077447485813817071300964492_prec)
success = success .and. test([z,1/z,zero,zero,one],ref,'5.343')
ref = (-0.1166502226417907051626859919414095623_prec, -0.187676038260774474858138170713009644915_prec)
success = success .and. test([z,1/z,zero,zero,xchen],ref,'5.344')
ref = (0.037474879174238726461810604104532779686_prec, 0.00160864689960544494486946544262182071245_prec)
success = success .and. test([z,1/z,zero,one,one],ref,'5.345')
ref = (-0.07840890750939878274956411740314838213_prec, -0.0061849292380584975934594029092372048219_prec)
success = success .and. test([z,1/z,one,zero,one],ref,'5.346')
ref = (-0.0134789737525540735017551823547759789291_prec, -0.0061849292380584975934594029092372048219_prec)
success = success .and. test([z,1/z,one,zero,xchen],ref,'5.347')
ref = (-0.0067093103928940187768337621807830022829_prec, -0.00060280602307738261306436221796529019453_prec)
success = success .and. test([z,1/z,1/z,zero,one],ref,'5.348')
ref = (-0.0012779734627751517804757621003465609385_prec, -0.00060280602307738261306436221796529019454_prec)
success = success .and. test([z,1/z,1/z,zero,xchen],ref,'5.349')
ref = (-0.37069268392729433966039983856266077444_prec, 0.5687007211969987138557043673171266742_prec)
success = success .and. test([z,1/z,z,zero,one],ref,'5.350')
ref = (-0.1860475258437789027250081366163753526_prec, 0.042383278624741931958934918860308750517_prec)
success = success .and. test([z,1/z,z,zero,xchen],ref,'5.351')
ref = (-1.2782400292507244387044138351453992798_prec, -2.9681216129458748823891424528324795053_prec)
success = success .and. test([z,z,-one,zero,one],ref,'5.352')
ref = (0.7155302252554970730342472452366588397_prec, -1.4699263876803155110185153614544596338_prec)
success = success .and. test([z,z,-one,zero,xchen],ref,'5.353')
ref = (-31.148783131929251032045305098730703316_prec, 2.6234587401826419096600579610016264061_prec)
success = success .and. test([z,z,zero,zero,one],ref,'5.354')
ref = (-22.50996888147773996596108064928869571_prec, -9.9028017595886023591847408407981218076_prec)
success = success .and. test([z,z,zero,zero,xchen],ref,'5.355')
ref = (-1.099126294400824893582509936609665043_prec, -1.034972706331784465803925457616457321_prec)
success = success .and. test([z,z,zero,one,one],ref,'5.356')
ref = (1.9119259019970119175317162256858287985_prec, 3.282933029317427685906898100037468563_prec)
success = success .and. test([z,z,one,zero,one],ref,'5.357')
ref = (-0.67385913507436089761724873814086371184_prec, 1.6517031035689364369996607552462865274_prec)
success = success .and. test([z,z,one,zero,xchen],ref,'5.358')
ref = (0.15524487037282250494876173895671651059_prec, 0.3130394070156863479461471880215402985_prec)
success = success .and. test([z,z,1/z,zero,one],ref,'5.359')
ref = (-0.069816860573805665667392292879451557009_prec, 0.156319385053619841760571380989020045998_prec)
success = success .and. test([z,z,1/z,zero,xchen],ref,'5.360')
ref = (27.198106756709854804229782580481171113_prec, 9.5684799187070337775902655008714647422_prec)
success = success .and. test([z,z,z,zero,one],ref,'5.361')
ref = (3.7546753397146883284802158720712191219_prec, 17.519710330326433118220972169361666625_prec)
success = success .and. test([z,z,z,zero,xchen],ref,'5.362')
ref = (-47.2407235421365947714231660943208369_prec, 14.164358854931753299924869245540304763_prec)
success = success .and. test([z,(one - Sqrt(one - z**2))/z,zero,zero,one],ref,'5.363')
ref = (-38.941938857391927431082831152466122272_prec, -7.0030727174998681403221476424909012767_prec)
success = success .and. test([z,(one - Sqrt(one - z**2))/z,zero,zero,xchen],ref,'5.364')
ref = (0.2364775902611208489903325480711464105_prec, 0.27883013655988520933792990277609372958_prec)
success = success .and. test([z,(one - Sqrt(one - z**2))/z,1/z,zero,one],ref,'5.365')
ref = (-0.0035773726994001321530536273739975347416_prec, 0.18404120959877762922510721585654164973_prec)
success = success .and. test([z,(one - Sqrt(one - z**2))/z,1/z,zero,xchen],ref,'5.366')
ref = (31.276621337738913146284104896829068278_prec, 4.8280859560213062925674192093963790392_prec)
success = success .and. test([z,(one - Sqrt(one - z**2))/z,z,zero,one],ref,'5.367')
ref = (9.787026787778073284036169573800498422_prec, 16.82924307367331330515183873212490505_prec)
success = success .and. test([z,(one - Sqrt(one - z**2))/z,z,zero,xchen],ref,'5.368')
ref = (-0.13105228724391316423894970264426458939_prec, -0.093913265755334598065757617962800986956_prec)
success = success .and. test([z,(one + Sqrt(one - z**2))/z,zero,zero,one],ref,'5.369')
ref = (-0.05823894527599733561198883696244595532_prec, -0.093913265755334598065757617962800986956_prec)
success = success .and. test([z,(one + Sqrt(one - z**2))/z,zero,zero,xchen],ref,'5.370')
ref = (-0.0033015460054701831652055269018245295187_prec, -0.0003011948181841056312546129312901686425_prec)
success = success .and. test([z,(one + Sqrt(one - z**2))/z,1/z,zero,one],ref,'5.371')
ref = (-0.0006363368868342464868989619639354484491_prec, -0.0003011948181841056312546129312901686425_prec)
success = success .and. test([z,(one + Sqrt(one - z**2))/z,1/z,zero,xchen],ref,'5.372')
ref = (-0.18433869885588968021601075742038133347_prec, 0.27958319630401226282445388494896784082_prec)
success = success .and. test([z,(one + Sqrt(one - z**2))/z,z,zero,one],ref,'5.373')
ref = (-0.092749087624321596053622806232165608805_prec, 0.0208757365207299279881803146507011325112_prec)
success = success .and. test([z,(one + Sqrt(one - z**2))/z,z,zero,xchen],ref,'5.374')
ref = (0.72477525677822927901564821362260274504_prec, 0._prec)
success = success .and. test([zero,zero,xchen],ref,'5.375')
ref = (0.06852640680945379985378404411152400388_prec, 0._prec)
success = success .and. test([1/z,-one,zero,one],ref,'5.376')
ref = (-0.106742493463039942975558161713938661064_prec, 0._prec)
success = success .and. test([1/z,one,zero,one],ref,'5.377')
ref = (-1.9054448004139887701625216870003015221_prec, -0.9960891829613807744971623977471567414_prec)
success = success .and. test([z,-one,zero,one],ref,'5.378')
ref = (2.6798256522737841477525439769581160205_prec, 1.0845385544950986601217305810842463874_prec)
success = success .and. test([z,one,zero,one],ref,'5.379')
ref = (-0.59595377300541962996225138433054501779_prec, 0._prec)
success = success .and. test([-one,zero,xchen],ref,'5.380')
ref = (-0.41716387905563212562653677193105566687_prec, -0.3309998219690594896224053826256198373_prec)
success = success .and. test([z,one,xchen],ref,'5.381')
ref = (-0.00047054068290318006432576222675401612202_prec, 0._prec)
success = success .and. test([-one,1/z,z],ref,'5.382')
ref = (-0.093063220042155216632695076871115450381_prec, 0._prec)
success = success .and. test([-one,z,z],ref,'5.383')
ref = (-0.01002511174013909454546805441287077945_prec, 0._prec)
success = success .and. test([zero,1/z,z],ref,'5.384')
ref = (0.00053786325977198332150832959112716817691_prec, 0._prec)
success = success .and. test([one,1/z,z],ref,'5.385')
ref = (0.108168210229232661708079725854794771607_prec, 0._prec)
success = success .and. test([one,z,z],ref,'5.386')
ref = (-0.097605235229321583841103341850796823983_prec, 0._prec)
success = success .and. test([-(1/z),zero,one],ref,'5.387')
ref = (0.00005050462538408827110981755852814149661_prec, 0._prec)
success = success .and. test([1/z,1/z,z],ref,'5.388')
ref = (0.010075616365523182816577871971398920945_prec, 0._prec)
success = success .and. test([1/z,z,z],ref,'5.389')
ref = (-4.198277886858103857912145019092237211_prec, 0._prec)
success = success .and. test([-z,zero,one],ref,'5.390')
ref = (-1.2405915447167765990825028060196087891_prec, -9.4034869039477703342192286166659513954_prec)
success = success .and. test([(one - Sqrt(one - z**2))/z,zero,one],ref,'5.391')
ref = (-0.11766111755714306794000681908091654301_prec, -0.01578703064173511603891127269407401041_prec)
success = success .and. test([(one - Sqrt(one - z**2))/z,1/z,one],ref,'5.392')
ref = (-1.7672305517372435544002407746155087689_prec, 7.0722263008165833720645972748657080486_prec)
success = success .and. test([(one - Sqrt(one - z**2))/z,z,one],ref,'5.393')
ref = (0.050768175126773423089156359957579918129_prec, 0._prec)
success = success .and. test([(one + Sqrt(one - z**2))/z,zero,one],ref,'5.394')
ref = (0.0026847616653724502944072639446948879392_prec, 0._prec)
success = success .and. test([(one + Sqrt(one - z**2))/z,1/z,one],ref,'5.395')
ref = (-0.05105566003413771101785785188046232184_prec, -0.145771080957146324386538002702009068583_prec)
success = success .and. test([(one + Sqrt(one - z**2))/z,z,one],ref,'5.396')
ref = (-0.065365944354454289603850401161710016_prec, 0._prec)
success = success .and. test([-(1/z),zero,xchen],ref,'5.397')
ref = (-3.6084361303454554702676241954329114379_prec, 0._prec)
success = success .and. test([-z,zero,xchen],ref,'5.398')
ref = (-0.41957046525693018203435888213928364634_prec, -9.4034869039477703342192286166659513954_prec)
success = success .and. test([(one - Sqrt(one - z**2))/z,zero,xchen],ref,'5.399')
ref = (-0.038376818144327028837224369748792832219_prec, -0.01578703064173511603891127269407401041_prec)
success = success .and. test([(one - Sqrt(one - z**2))/z,1/z,xchen],ref,'5.400')
ref = (-3.7244133089473495267776631219353007278_prec, 2.877033135272570897752429876436275694_prec)
success = success .and. test([(one - Sqrt(one - z**2))/z,z,xchen],ref,'5.401')
ref = (0.03333707969347075528482000988271176388_prec, 0._prec)
success = success .and. test([(one + Sqrt(one - z**2))/z,zero,xchen],ref,'5.402')
ref = (0.000230168744963221622442496288756391514192_prec, 0._prec)
success = success .and. test([(one + Sqrt(one - z**2))/z,1/z,xchen],ref,'5.403')
ref = (0.0081132923404440105936263554141587188598_prec, -0.031814070735191135529393439324334758626_prec)
success = success .and. test([(one + Sqrt(one - z**2))/z,z,xchen],ref,'5.404')
ref = (-0.12443707167794121775026842847930430922_prec, 0.94808666127600363416646433195180587474_prec)
success = success .and. test([z - Sqrt(-one + z**2),zero,one],ref,'5.405')
ref = (-0.0102378902448595848706358640952403803717_prec, 0.6594273445691841720236758306387786486_prec)
success = success .and. test([z - Sqrt(-one + z**2),zero,xchen],ref,'5.406')
ref = (-0.02057880947101239889078678316209400481_prec, 0.038829982715927951026632479853089050571_prec)
success = success .and. test([z - Sqrt(-one + z**2),1/z,one],ref,'5.407')
ref = (-0.0004499150874145081615929965836698992871_prec, 0.00450090540060082809810104874744794143_prec)
success = success .and. test([z - Sqrt(-one + z**2),1/z,xchen],ref,'5.408')
ref = (2.7960925805666230803752253526086316036_prec, 0.26349765171681489723123427856358051794_prec)
success = success .and. test([z - Sqrt(-one + z**2),z,one],ref,'5.409')
ref = (0.62942507244044027464164563367720315109_prec, 0.22523173929913891624011688706912744821_prec)
success = success .and. test([z - Sqrt(-one + z**2),z,xchen],ref,'5.410')
ref = (-0.12443707167794121775026842847930430922_prec, -0.94808666127600363416646433195180587474_prec)
success = success .and. test([z + Sqrt(-one + z**2),zero,one],ref,'5.411')
ref = (-0.0102378902448595848706358640952403803717_prec, -0.6594273445691841720236758306387786486_prec)
success = success .and. test([z + Sqrt(-one + z**2),zero,xchen],ref,'5.412')
ref = (-0.02057880947101239889078678316209400481_prec, -0.038829982715927951026632479853089050571_prec)
success = success .and. test([z + Sqrt(-one + z**2),1/z,one],ref,'5.413')
ref = (-0.0004499150874145081615929965836698992871_prec, -0.00450090540060082809810104874744794143_prec)
success = success .and. test([z + Sqrt(-one + z**2),1/z,xchen],ref,'5.414')
ref = (-1.82402438552786517910742040928184849376_prec, 1.6146626779011979757248717824365616129_prec)
success = success .and. test([z + Sqrt(-one + z**2),z,one],ref,'5.415')
ref = (-0.6169338444594705875857229698419596576_prec, -0.10079596204471927546510677765349499647_prec)
success = success .and. test([z + Sqrt(-one + z**2),z,xchen],ref,'5.416')
ref = (-0.031184450815389176898974672377735067891_prec, 0._prec)
success = success .and. test([-one,zero,1/z,one],ref,'5.417')
ref = (-0.0037821684351106563778686002252079345802_prec, 0._prec)
success = success .and. test([-one,zero,1/z,xchen],ref,'5.418')
ref = (-1.0829113847755274488453116585566946578_prec, 2.7368567701676154253575498300638942615_prec)
success = success .and. test([-one,zero,z,one],ref,'5.419')
ref = (-0.45232744508760544522056785281576792528_prec, 0.33227842147518019422498521597177896809_prec)
success = success .and. test([-one,zero,z,xchen],ref,'5.420')
ref = (0.001041269525077672747112037076678281302_prec, 0._prec)
success = success .and. test([-one,1/z,1/z,one],ref,'5.421')
ref = (0.00003765744411324892875989801998528782588_prec, 0._prec)
success = success .and. test([-one,1/z,1/z,xchen],ref,'5.422')
ref = (-0.0101468019833748434392490980232794369807_prec, -0.079236253179996311053058005118302322349_prec)
success = success .and. test([-one,1/z,z,one],ref,'5.423')
ref = (0.0032723734484308671990627603446537561821_prec, -0.0051882136945315034884913909742624775002_prec)
success = success .and. test([-one,1/z,z,xchen],ref,'5.424')
ref = (-0.036642976810948425958066899017089870005_prec, -0.01887614209938399951026445564633996949_prec)
success = success .and. test([-one,z,1/z,one],ref,'5.425')
ref = (-0.0022793107086777941622899660189208257601_prec, -0.005274575906808833948094653817862310932_prec)
success = success .and. test([-one,z,1/z,xchen],ref,'5.426')
ref = (-2.1882256594051780400598750530830455396_prec, 1.9492910818751947060434084154535238334_prec)
success = success .and. test([-one,z,z,one],ref,'5.427')
ref = (-0.63510275557077096425136963063470824023_prec, -0.18336611522207702853641949094249649767_prec)
success = success .and. test([-one,z,z,xchen],ref,'5.428')
ref = (-0.018129143943673428716829997883809813363_prec, 0._prec)
success = success .and. test([zero,-one,1/z,one],ref,'5.429')
ref = (-0.0020055822300306268263712958689767159911_prec, 0._prec)
success = success .and. test([zero,-one,1/z,xchen],ref,'5.430')
ref = (-0.09830002052571738427998074854243308265_prec, 1.58776720706360424012586385784462619218_prec)
success = success .and. test([zero,-one,z,one],ref,'5.431')
ref = (-0.21147526818837809053934429923372106163_prec, 0.24429075921683618741932946328796550419_prec)
success = success .and. test([zero,-one,z,xchen],ref,'5.432')
ref = (-0.101288684479222989619097040429768614594_prec, 0._prec)
success = success .and. test([zero,zero,1/z,one],ref,'5.433')
ref = (-0.030113512854090069982371405076683740778_prec, 0._prec)
success = success .and. test([zero,zero,1/z,xchen],ref,'5.434')
ref = (-5.641811414751341250600725770528767111_prec, 8.3282020769802705808841858505904310077_prec)
success = success .and. test([zero,zero,z,one],ref,'5.435')
ref = (-3.7421225942407316353785295503164083131_prec, 1.8958709942733213939055000318844424257_prec)
success = success .and. test([zero,zero,z,xchen],ref,'5.436')
ref = (0.06656860804321451416566992227672897342_prec, 0._prec)
success = success .and. test([zero,one,1/z,one],ref,'5.437')
ref = (0.0026313115292268475763999774458015741041_prec, 0._prec)
success = success .and. test([zero,one,1/z,xchen],ref,'5.438')
ref = (-0.9344639075027586240125378999576208583_prec, -4.0831742255548713691243219300993194797_prec)
success = success .and. test([zero,one,z,one],ref,'5.439')
ref = (0.25085995431508247155500957303590071533_prec, -0.33854230236432952579173102894454044792_prec)
success = success .and. test([zero,one,z,xchen],ref,'5.440')
ref = (-0.19757110036140013122925411339391747855_prec, 0._prec)
success = success .and. test([zero,-(1/z),zero,one],ref,'5.441')
ref = (-0.09562881743217593935556088252256149591_prec, 0._prec)
success = success .and. test([zero,-(1/z),zero,xchen],ref,'5.442')
ref = (0.037399103637049472635014191555760558963_prec, 0._prec)
success = success .and. test([zero,1/z,one,one],ref,'5.443')
ref = (0.0026790272010409971815870734027209177894_prec, 0._prec)
success = success .and. test([zero,1/z,1/z,one],ref,'5.444')
ref = (0.00022959488485825842136791515896428837142_prec, 0._prec)
success = success .and. test([zero,1/z,1/z,xchen],ref,'5.445')
ref = (-0.0054905769055419198411662149360575935136_prec, -0.21818651841462248012177526056433895902_prec)
success = success .and. test([zero,1/z,z,one],ref,'5.446')
ref = (0.023132437088405107461659079434488439809_prec, -0.028781755771102681008373218134539082632_prec)
success = success .and. test([zero,1/z,z,xchen],ref,'5.447')
ref = (-11.8421296075139469827038564186343475658_prec, 0._prec)
success = success .and. test([zero,-z,zero,one],ref,'5.448')
ref = (-7.0325363731494397765358419913213682073_prec, 0._prec)
success = success .and. test([zero,-z,zero,xchen],ref,'5.449')
ref = (-1.2148953128016042563118779988268699652_prec, -0.76215525584963941050474647871019186904_prec)
success = success .and. test([zero,z,one,one],ref,'5.450')
ref = (-0.096410724634134599483549081767091747274_prec, -0.072701962836599001753927524864463732676_prec)
success = success .and. test([zero,z,1/z,one],ref,'5.451')
ref = (-0.0069466912542259887911375058219807705033_prec, -0.034687651729180384583101478140660991905_prec)
success = success .and. test([zero,z,1/z,xchen],ref,'5.452')
ref = (-7.7911706350557041309251416693132579345_prec, 3.4828725955757598012551174417809196589_prec)
success = success .and. test([zero,z,z,one],ref,'5.453')
ref = (-3.28305497331473367172288788007123178_prec, -2.1213489928333165372531887629807674616_prec)
success = success .and. test([zero,z,z,xchen],ref,'5.454')
ref = (10.856362550486147826902046600964823224_prec, -28.14673183414669487357698161802159908_prec)
success = success .and. test([zero,(one - Sqrt(one - z**2))/z,zero,one],ref,'5.455')
ref = (12.0283820718589385422334472118417092205_prec, -16.8251893359584843165858286464188819_prec)
success = success .and. test([zero,(one - Sqrt(one - z**2))/z,zero,xchen],ref,'5.456')
ref = (-0.10777867350222848180613418137868833723_prec, -0.047254100789338769516007529159310350398_prec)
success = success .and. test([zero,(one - Sqrt(one - z**2))/z,1/z,one],ref,'5.457')
ref = (-0.02257860448922370652658420979846761713_prec, -0.02824694523562946093059450579740898002_prec)
success = success .and. test([zero,(one - Sqrt(one - z**2))/z,1/z,xchen],ref,'5.458')
ref = (-7.5035186871714586423297978332092182624_prec, 5.14367646684146159718476357811804153_prec)
success = success .and. test([zero,(one - Sqrt(one - z**2))/z,z,one],ref,'5.459')
ref = (-4.0217540065304030758380982286830151333_prec, -0.89950697684471093523216478513169789933_prec)
success = success .and. test([zero,(one - Sqrt(one - z**2))/z,z,xchen],ref,'5.460')
ref = (0.100888934262885687554607125012686366896_prec, 0._prec)
success = success .and. test([zero,(one + Sqrt(one - z**2))/z,zero,one],ref,'5.461')
ref = (0.048305655096624013250719576814140703792_prec, 0._prec)
success = success .and. test([zero,(one + Sqrt(one - z**2))/z,zero,xchen],ref,'5.462')
ref = (0.00131166444885804997112063505446438626645_prec, 0._prec)
success = success .and. test([zero,(one + Sqrt(one - z**2))/z,1/z,one],ref,'5.463')
ref = (0.000114309849063361622445238679844572284384_prec, 0._prec)
success = success .and. test([zero,(one + Sqrt(one - z**2))/z,1/z,xchen],ref,'5.464')
ref = (-0.002136801089852576897496423642695774361_prec, -0.107374736000547442685680645406791972833_prec)
success = success .and. test([zero,(one + Sqrt(one - z**2))/z,z,one],ref,'5.465')
ref = (0.011545754161531075234828065607347404916_prec, -0.01431005868318942411700632417401090156_prec)
success = success .and. test([zero,(one + Sqrt(one - z**2))/z,z,xchen],ref,'5.466')
ref = (0.00569698309864279052988780779031306848_prec, 0._prec)
success = success .and. test([one,zero,1/z,xchen],ref,'5.467')
ref = (0.66162250883031947930847869610232118983_prec, -0.528842379082813855598442033807393271_prec)
success = success .and. test([one,zero,z,xchen],ref,'5.468')
ref = (-0.00005974268041425383114912149229973783152_prec, 0._prec)
success = success .and. test([one,1/z,1/z,xchen],ref,'5.469')
ref = (-0.0048680221983588419499008366434435079887_prec, 0.0083664372111496634359653714416195293916_prec)
success = success .and. test([one,1/z,z,xchen],ref,'5.470')
ref = (0.004017798920642819125671299408228184409_prec, 0.007935017159961612941395013006313550131_prec)
success = success .and. test([one,z,1/z,xchen],ref,'5.471')
ref = (1.00491226097057646168332922830084903415_prec, 0.19404812649528053104863154115793213714_prec)
success = success .and. test([one,z,z,xchen],ref,'5.472')
ref = (0.00125746157956990965354675782679807947021_prec, 0._prec)
success = success .and. test([1/z,-one,1/z,one],ref,'5.473')
ref = (0.000040459037987621106544723670004529518115_prec, 0._prec)
success = success .and. test([1/z,-one,1/z,xchen],ref,'5.474')
ref = (-0.008778979965114075931023572618962535656_prec, -0.099771545537246541752803914565637239785_prec)
success = success .and. test([1/z,-one,z,one],ref,'5.475')
ref = (0.0036193892835016358891628129378740429677_prec, -0.00552268633510439311450538295237061708_prec)
success = success .and. test([1/z,-one,z,xchen],ref,'5.476')
ref = (0.0054538089838169533564611212841700464699_prec, 0._prec)
success = success .and. test([1/z,zero,1/z,one],ref,'5.477')
ref = (0.00046153272636569521627552815037501096431_prec, 0._prec)
success = success .and. test([1/z,zero,1/z,xchen],ref,'5.478')
ref = (0.15840628172365701875311942954590746852_prec, -0.47126677459841792862904369328138917734_prec)
success = success .and. test([1/z,zero,z,one],ref,'5.479')
ref = (0.054485111081473450451410806657533326829_prec, -0.041657266531044916290669299495026537571_prec)
success = success .and. test([1/z,zero,z,xchen],ref,'5.480')
ref = (-0.0056487406576960090958756710608706986635_prec, 0._prec)
success = success .and. test([1/z,one,1/z,one],ref,'5.481')
ref = (-0.00005494773854982008571815507305079288551_prec, 0._prec)
success = success .and. test([1/z,one,1/z,xchen],ref,'5.482')
ref = (0.1074426115011663019565337568472015227_prec, 0.306635889948340365746343443901428605_prec)
success = success .and. test([1/z,one,z,one],ref,'5.483')
ref = (-0.0043258818620811715502108708191146619441_prec, 0.0077469294434245839938334492338115998205_prec)
success = success .and. test([1/z,one,z,xchen],ref,'5.484')
ref = (-0.0028739588749200529210016231794215699831_prec, 0._prec)
success = success .and. test([1/z,1/z,one,one],ref,'5.485')
ref = (-0.00019493167387905573941454977670065219378_prec, 0._prec)
success = success .and. test([1/z,1/z,1/z,one],ref,'5.486')
ref = (-4.7098225797919552874948133731743533985e-6_prec, 0._prec)
success = success .and. test([1/z,1/z,1/z,xchen],ref,'5.487')
ref = (0.0023240263787299346602418666521922353828_prec, 0.014269161544495128957020886118285861671_prec)
success = success .and. test([1/z,1/z,z,one],ref,'5.488')
ref = (-0.00039759119089614086904640186787920937939_prec, 0.0006542712924388911811574137603713033068_prec)
success = success .and. test([1/z,1/z,z,xchen],ref,'5.489')
ref = (0.08465495527681420656571642349054752774_prec, 0.031547652547070577897396942731919379345_prec)
success = success .and. test([1/z,z,one,one],ref,'5.490')
ref = (0.006549560976597102036205325762450011356_prec, 0.0030093294580803199833551704953476560027_prec)
success = success .and. test([1/z,z,1/z,one],ref,'5.491')
ref = (0.00030070024282523585592508992994494647673_prec, 0.0006443909636102102063035399049531977282_prec)
success = success .and. test([1/z,z,1/z,xchen],ref,'5.492')
ref = (0.34268924521736567277396152829540669008_prec, -0.36553891206212459406409945333066601368_prec)
success = success .and. test([1/z,z,z,one],ref,'5.493')
ref = (0.079543692717118960208340255443595126352_prec, 0.019347892382374102678665788478912216812_prec)
success = success .and. test([1/z,z,z,xchen],ref,'5.494')
ref = (0.02293069136987037700829587781431041928_prec, 0.943502128392214854664259070910071283_prec)
success = success .and. test([1/z,(one - Sqrt(one - z**2))/z,zero,one],ref,'5.495')
ref = (-0.056003465995839047719813157325622209154_prec, 0.23916865789774594806577513321140523577_prec)
success = success .and. test([1/z,(one - Sqrt(one - z**2))/z,zero,xchen],ref,'5.496')
ref = (0.0064338836234714453259100493971510768664_prec, 0.00158399720907963814276993476962235121689_prec)
success = success .and. test([1/z,(one - Sqrt(one - z**2))/z,1/z,one],ref,'5.497')
ref = (0.0005157291123896778535328210413072925236_prec, 0.00040152796184458325424411947442512207984_prec)
success = success .and. test([1/z,(one - Sqrt(one - z**2))/z,1/z,xchen],ref,'5.498')
ref = (0.27947682174312529884120733048559969312_prec, -0.41796731017441894462794698686425015646_prec)
success = success .and. test([1/z,(one - Sqrt(one - z**2))/z,z,one],ref,'5.499')
ref = (0.07850038668764574320849813222511415414_prec, -0.009545022059507543248866646264429322288_prec)
success = success .and. test([1/z,(one - Sqrt(one - z**2))/z,z,xchen],ref,'5.500')
ref = (-0.004037296661505629037581146558802290664_prec, 0._prec)
success = success .and. test([1/z,(one + Sqrt(one - z**2))/z,zero,one],ref,'5.501')
ref = (-0.00062399426891277699263233961514092479518_prec, 0._prec)
success = success .and. test([1/z,(one + Sqrt(one - z**2))/z,zero,xchen],ref,'5.502')
ref = (-0.000095144226684966246403088440955870463703_prec, 0._prec)
success = success .and. test([1/z,(one + Sqrt(one - z**2))/z,1/z,one],ref,'5.503')
ref = (-2.3428962629377679172736356033696134684e-6_prec, 0._prec)
success = success .and. test([1/z,(one + Sqrt(one - z**2))/z,1/z,xchen],ref,'5.504')
ref = (0.0011084273616177934194441923074060074993_prec, 0.007003354770021088240859995419606510858_prec)
success = success .and. test([1/z,(one + Sqrt(one - z**2))/z,z,one],ref,'5.505')
ref = (-0.00019840583436396933286716733459994642956_prec, 0.00032520098014493736552208856675411365177_prec)
success = success .and. test([1/z,(one + Sqrt(one - z**2))/z,z,xchen],ref,'5.506')
ref = (-0.022863747729639323209733881430320809111_prec, -0.00147824715262375491361977235434005164215_prec)
success = success .and. test([z,-one,1/z,one],ref,'5.507')
ref = (-0.0036276805504088112182141335046580008301_prec, -0.00147824715262375491361977235434005164215_prec)
success = success .and. test([z,-one,1/z,xchen],ref,'5.508')
ref = (-0.36511329043138292641924942596625478064_prec, 1.885082226135552870334556339341574345_prec)
success = success .and. test([z,-one,z,one],ref,'5.509')
ref = (-0.48351581953573035602160223435543967382_prec, 0.25477403790914280279873196218869872755_prec)
success = success .and. test([z,-one,z,xchen],ref,'5.510')
ref = (-0.12357303113585961408119832836088616487_prec, -0.031494817394237767741281316945251826627_prec)
success = success .and. test([z,zero,1/z,one],ref,'5.511')
ref = (-0.037138234586813099691202236203475576484_prec, -0.031494817394237767741281316945251826627_prec)
success = success .and. test([z,zero,1/z,xchen],ref,'5.512')
ref = (-8.3216370670251253983532697474868831316_prec, 7.24366352248517192076245526950618462_prec)
success = success .and. test([z,zero,z,one],ref,'5.513')
ref = (-5.8849852515100155274168031900913634761_prec, -0.65404094877637216998250908635677356583_prec)
success = success .and. test([z,zero,z,xchen],ref,'5.514')
ref = (0.078871556066025664260757704865872283481_prec, 0.0016897472655355213719200971849046507917_prec)
success = success .and. test([z,one,1/z,one],ref,'5.515')
ref = (0.0048197228482849566306717543337224061665_prec, 0.0016897472655355213719200971849046507917_prec)
success = success .and. test([z,one,1/z,xchen],ref,'5.516')
ref = (-0.75327299877929315213554178736975613624_prec, -4.827892325441856374386507653151980785_prec)
success = success .and. test([z,one,z,one],ref,'5.517')
ref = (0.58833988027172560324068678890393676004_prec, -0.40148647520427015940434767230596893039_prec)
success = success .and. test([z,one,z,xchen],ref,'5.518')
ref = (0.045572283224160548514694016398611248524_prec, 0.00163691211270271121580447139823709807367_prec)
success = success .and. test([z,1/z,one,one],ref,'5.519')
ref = (0.0033219299712778869345833792576825465793_prec, 0.00015866496007895630218469904389704643155_prec)
success = success .and. test([z,1/z,1/z,one],ref,'5.520')
ref = (0.0004184292130201120199528643576798769057_prec, 0.00015866496007895630218469904389704643155_prec)
success = success .and. test([z,1/z,1/z,xchen],ref,'5.521')
ref = (0.021776375984701133719489817423559424126_prec, -0.26071324604952851274585654179399387028_prec)
success = success .and. test([z,1/z,z,one],ref,'5.522')
ref = (0.053592822762031541693609140671123348126_prec, -0.0321364850109657567252098334493604115_prec)
success = success .and. test([z,1/z,z,xchen],ref,'5.523')
ref = (-1.2837394307487144195636698655433813333_prec, -1.0671013985324442548791698254267158232_prec)
success = success .and. test([z,z,one,one],ref,'5.524')
ref = (-0.098861846451085887723879068121176926718_prec, -0.10102878581267749320966897227047085687_prec)
success = success .and. test([z,z,1/z,one],ref,'5.525')
ref = (0.0098565396244421669471657748686833382186_prec, -0.05353895391178104353708564213083649855_prec)
success = success .and. test([z,z,1/z,xchen],ref,'5.526')
ref = (-9.0749100658044185504888115348566392678_prec, 2.415771197043315546375947616354203836_prec)
success = success .and. test([z,z,z,one],ref,'5.527')
ref = (-3.3650401232637366924705973132084262783_prec, -4.4130189505897218903879246308024838572_prec)
success = success .and. test([z,z,z,xchen],ref,'5.528')
ref = (19.312548455911479358122770117137625424_prec, -19.415329354159691102724807454002928095_prec)
success = success .and. test([z,(one - Sqrt(one - z**2))/z,zero,one],ref,'5.529')
ref = (20.745254947958497203760472697381029355_prec, -5.271757251050143495586674898047290293_prec)
success = success .and. test([z,(one - Sqrt(one - z**2))/z,zero,xchen],ref,'5.530')
ref = (-0.11565098028150446345500096415044738114_prec, -0.07716485453140841715522760877192749202_prec)
success = success .and. test([z,(one - Sqrt(one - z**2))/z,1/z,one],ref,'5.531')
ref = (-0.011946654857921520209919739909383755654_prec, -0.053419938580960192318935943702110312863_prec)
success = success .and. test([z,(one - Sqrt(one - z**2))/z,1/z,xchen],ref,'5.532')
ref = (-9.101113903727645374632764257550398431_prec, 4.0677253307685521454059542297860363382_prec)
success = success .and. test([z,(one - Sqrt(one - z**2))/z,z,one],ref,'5.533')
ref = (-4.681532927664019640434911597416613531_prec, -3.3286657359936524556076202647524238239_prec)
success = success .and. test([z,(one - Sqrt(one - z**2))/z,z,xchen],ref,'5.534')
ref = (0.10941228104520332353094048342922985756_prec, 0.052118190013884013305731857003838743555_prec)
success = success .and. test([z,(one + Sqrt(one - z**2))/z,zero,one],ref,'5.535')
ref = (0.044421440290603047108833730187455191349_prec, 0.052118190013884013305731857003838743555_prec)
success = success .and. test([z,(one + Sqrt(one - z**2))/z,zero,xchen],ref,'5.536')
ref = (0.0016282010086168371643495784832797740499_prec, 0.00007926603695099619180104695893618942851_prec)
success = success .and. test([z,(one + Sqrt(one - z**2))/z,1/z,one],ref,'5.537')
ref = (0.0002082594370419895710964354319743259962_prec, 0.00007926603695099619180104695893618942851_prec)
success = success .and. test([z,(one + Sqrt(one - z**2))/z,1/z,xchen],ref,'5.538')
ref = (0.0115507565044741217545474717311020012_prec, -0.1282819655852761023894803516648028464_prec)
success = success .and. test([z,(one + Sqrt(one - z**2))/z,z,one],ref,'5.539')
ref = (0.026732005201458409699625089630360807746_prec, -0.015926743374189142429061999876060529244_prec)
success = success .and. test([z,(one + Sqrt(one - z**2))/z,z,xchen],ref,'5.540')
end function
end module chenreftest