| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240 |
- # This file is automatically generated by _generate_pyx.py.
- # Do not edit manually!
- from libc.math cimport NAN
- include "_ufuncs_extra_code_common.pxi"
- include "_ufuncs_extra_code.pxi"
- __all__ = ['agm', 'bdtr', 'bdtrc', 'bdtri', 'bdtrik', 'bdtrin', 'betainc', 'betaincc', 'betainccinv', 'betaincinv', 'boxcox', 'boxcox1p', 'btdtria', 'btdtrib', 'chdtr', 'chdtrc', 'chdtri', 'chdtriv', 'chndtr', 'chndtridf', 'chndtrinc', 'chndtrix', 'elliprc', 'elliprd', 'elliprf', 'elliprg', 'elliprj', 'entr', 'erfcinv', 'erfinv', 'eval_chebyc', 'eval_chebys', 'eval_chebyt', 'eval_chebyu', 'eval_gegenbauer', 'eval_genlaguerre', 'eval_hermite', 'eval_hermitenorm', 'eval_jacobi', 'eval_laguerre', 'eval_legendre', 'eval_sh_chebyt', 'eval_sh_chebyu', 'eval_sh_jacobi', 'eval_sh_legendre', 'expn', 'fdtr', 'fdtrc', 'fdtri', 'fdtridfd', 'gdtr', 'gdtrc', 'gdtria', 'gdtrib', 'gdtrix', 'huber', 'hyp0f1', 'hyp1f1', 'hyperu', 'inv_boxcox', 'inv_boxcox1p', 'kl_div', 'kn', 'kolmogi', 'kolmogorov', 'lpmv', 'nbdtr', 'nbdtrc', 'nbdtri', 'nbdtrik', 'nbdtrin', 'ncfdtr', 'ncfdtri', 'ncfdtridfd', 'ncfdtridfn', 'ncfdtrinc', 'nctdtr', 'nctdtridf', 'nctdtrinc', 'nctdtrit', 'ndtri', 'ndtri_exp', 'nrdtrimn', 'nrdtrisd', 'owens_t', 'pdtr', 'pdtrc', 'pdtri', 'pdtrik', 'poch', 'powm1', 'pseudo_huber', 'rel_entr', 'round', 'shichi', 'sici', 'smirnov', 'smirnovi', 'spence', 'stdtr', 'stdtridf', 'stdtrit', 'tklmbda', 'wrightomega', 'yn', 'geterr', 'seterr', 'errstate', 'jn', 'airy', 'airye', 'bei', 'beip', 'ber', 'berp', 'binom', 'exp1', 'expi', 'expit', 'exprel', 'gamma', 'gammaln', 'hankel1', 'hankel1e', 'hankel2', 'hankel2e', 'hyp2f1', 'it2i0k0', 'it2j0y0', 'it2struve0', 'itairy', 'iti0k0', 'itj0y0', 'itmodstruve0', 'itstruve0', 'iv', 'ive', 'jv', 'jve', 'kei', 'keip', 'kelvin', 'ker', 'kerp', 'kv', 'kve', 'log_expit', 'log_wright_bessel', 'loggamma', 'logit', 'mathieu_a', 'mathieu_b', 'mathieu_cem', 'mathieu_modcem1', 'mathieu_modcem2', 'mathieu_modsem1', 'mathieu_modsem2', 'mathieu_sem', 'modfresnelm', 'modfresnelp', 'obl_ang1', 'obl_ang1_cv', 'obl_cv', 'obl_rad1', 'obl_rad1_cv', 'obl_rad2', 'obl_rad2_cv', 'pbdv', 'pbvv', 'pbwa', 'pro_ang1', 'pro_ang1_cv', 'pro_cv', 'pro_rad1', 'pro_rad1_cv', 'pro_rad2', 'pro_rad2_cv', 'psi', 'rgamma', 'wright_bessel', 'yv', 'yve', 'zetac', 'sindg', 'cosdg', 'tandg', 'cotdg', 'i0', 'i0e', 'i1', 'i1e', 'k0', 'k0e', 'k1', 'k1e', 'y0', 'y1', 'j0', 'j1', 'struve', 'modstruve', 'beta', 'betaln', 'besselpoly', 'gammaln', 'gammasgn', 'cbrt', 'radian', 'cosm1', 'gammainc', 'gammaincinv', 'gammaincc', 'gammainccinv', 'fresnel', 'ellipe', 'ellipeinc', 'ellipk', 'ellipkinc', 'ellipkm1', 'ellipj', 'erf', 'erfc', 'erfcx', 'erfi', 'voigt_profile', 'wofz', 'dawsn', 'ndtr', 'log_ndtr', 'exp2', 'exp10', 'expm1', 'log1p', 'xlogy', 'xlog1py']
- cdef void loop_D_DDDD__As_DDDD_D(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *ip1 = args[1]
- cdef char *ip2 = args[2]
- cdef char *ip3 = args[3]
- cdef char *op0 = args[4]
- cdef double complex ov0
- for i in range(n):
- ov0 = (<double complex(*)(double complex, double complex, double complex, double complex) noexcept nogil>func)(<double complex>(<double complex*>ip0)[0], <double complex>(<double complex*>ip1)[0], <double complex>(<double complex*>ip2)[0], <double complex>(<double complex*>ip3)[0])
- (<double complex *>op0)[0] = <double complex>ov0
- ip0 += steps[0]
- ip1 += steps[1]
- ip2 += steps[2]
- ip3 += steps[3]
- op0 += steps[4]
- sf_error.check_fpe(func_name)
- cdef void loop_D_DDDD__As_FFFF_F(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *ip1 = args[1]
- cdef char *ip2 = args[2]
- cdef char *ip3 = args[3]
- cdef char *op0 = args[4]
- cdef double complex ov0
- for i in range(n):
- ov0 = (<double complex(*)(double complex, double complex, double complex, double complex) noexcept nogil>func)(<double complex>(<float complex*>ip0)[0], <double complex>(<float complex*>ip1)[0], <double complex>(<float complex*>ip2)[0], <double complex>(<float complex*>ip3)[0])
- (<float complex *>op0)[0] = <float complex>ov0
- ip0 += steps[0]
- ip1 += steps[1]
- ip2 += steps[2]
- ip3 += steps[3]
- op0 += steps[4]
- sf_error.check_fpe(func_name)
- cdef void loop_D_DDD__As_DDD_D(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *ip1 = args[1]
- cdef char *ip2 = args[2]
- cdef char *op0 = args[3]
- cdef double complex ov0
- for i in range(n):
- ov0 = (<double complex(*)(double complex, double complex, double complex) noexcept nogil>func)(<double complex>(<double complex*>ip0)[0], <double complex>(<double complex*>ip1)[0], <double complex>(<double complex*>ip2)[0])
- (<double complex *>op0)[0] = <double complex>ov0
- ip0 += steps[0]
- ip1 += steps[1]
- ip2 += steps[2]
- op0 += steps[3]
- sf_error.check_fpe(func_name)
- cdef void loop_D_DDD__As_FFF_F(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *ip1 = args[1]
- cdef char *ip2 = args[2]
- cdef char *op0 = args[3]
- cdef double complex ov0
- for i in range(n):
- ov0 = (<double complex(*)(double complex, double complex, double complex) noexcept nogil>func)(<double complex>(<float complex*>ip0)[0], <double complex>(<float complex*>ip1)[0], <double complex>(<float complex*>ip2)[0])
- (<float complex *>op0)[0] = <float complex>ov0
- ip0 += steps[0]
- ip1 += steps[1]
- ip2 += steps[2]
- op0 += steps[3]
- sf_error.check_fpe(func_name)
- cdef void loop_D_DD__As_DD_D(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *ip1 = args[1]
- cdef char *op0 = args[2]
- cdef double complex ov0
- for i in range(n):
- ov0 = (<double complex(*)(double complex, double complex) noexcept nogil>func)(<double complex>(<double complex*>ip0)[0], <double complex>(<double complex*>ip1)[0])
- (<double complex *>op0)[0] = <double complex>ov0
- ip0 += steps[0]
- ip1 += steps[1]
- op0 += steps[2]
- sf_error.check_fpe(func_name)
- cdef void loop_D_DD__As_FF_F(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *ip1 = args[1]
- cdef char *op0 = args[2]
- cdef double complex ov0
- for i in range(n):
- ov0 = (<double complex(*)(double complex, double complex) noexcept nogil>func)(<double complex>(<float complex*>ip0)[0], <double complex>(<float complex*>ip1)[0])
- (<float complex *>op0)[0] = <float complex>ov0
- ip0 += steps[0]
- ip1 += steps[1]
- op0 += steps[2]
- sf_error.check_fpe(func_name)
- cdef void loop_D_D__As_D_D(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *op0 = args[1]
- cdef double complex ov0
- for i in range(n):
- ov0 = (<double complex(*)(double complex) noexcept nogil>func)(<double complex>(<double complex*>ip0)[0])
- (<double complex *>op0)[0] = <double complex>ov0
- ip0 += steps[0]
- op0 += steps[1]
- sf_error.check_fpe(func_name)
- cdef void loop_D_D__As_F_F(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *op0 = args[1]
- cdef double complex ov0
- for i in range(n):
- ov0 = (<double complex(*)(double complex) noexcept nogil>func)(<double complex>(<float complex*>ip0)[0])
- (<float complex *>op0)[0] = <float complex>ov0
- ip0 += steps[0]
- op0 += steps[1]
- sf_error.check_fpe(func_name)
- cdef void loop_D_dD__As_dD_D(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *ip1 = args[1]
- cdef char *op0 = args[2]
- cdef double complex ov0
- for i in range(n):
- ov0 = (<double complex(*)(double, double complex) noexcept nogil>func)(<double>(<double*>ip0)[0], <double complex>(<double complex*>ip1)[0])
- (<double complex *>op0)[0] = <double complex>ov0
- ip0 += steps[0]
- ip1 += steps[1]
- op0 += steps[2]
- sf_error.check_fpe(func_name)
- cdef void loop_D_dD__As_fF_F(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *ip1 = args[1]
- cdef char *op0 = args[2]
- cdef double complex ov0
- for i in range(n):
- ov0 = (<double complex(*)(double, double complex) noexcept nogil>func)(<double>(<float*>ip0)[0], <double complex>(<float complex*>ip1)[0])
- (<float complex *>op0)[0] = <float complex>ov0
- ip0 += steps[0]
- ip1 += steps[1]
- op0 += steps[2]
- sf_error.check_fpe(func_name)
- cdef void loop_D_ddD__As_ddD_D(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *ip1 = args[1]
- cdef char *ip2 = args[2]
- cdef char *op0 = args[3]
- cdef double complex ov0
- for i in range(n):
- ov0 = (<double complex(*)(double, double, double complex) noexcept nogil>func)(<double>(<double*>ip0)[0], <double>(<double*>ip1)[0], <double complex>(<double complex*>ip2)[0])
- (<double complex *>op0)[0] = <double complex>ov0
- ip0 += steps[0]
- ip1 += steps[1]
- ip2 += steps[2]
- op0 += steps[3]
- sf_error.check_fpe(func_name)
- cdef void loop_D_ddD__As_ffF_F(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *ip1 = args[1]
- cdef char *ip2 = args[2]
- cdef char *op0 = args[3]
- cdef double complex ov0
- for i in range(n):
- ov0 = (<double complex(*)(double, double, double complex) noexcept nogil>func)(<double>(<float*>ip0)[0], <double>(<float*>ip1)[0], <double complex>(<float complex*>ip2)[0])
- (<float complex *>op0)[0] = <float complex>ov0
- ip0 += steps[0]
- ip1 += steps[1]
- ip2 += steps[2]
- op0 += steps[3]
- sf_error.check_fpe(func_name)
- cdef void loop_D_dddD__As_dddD_D(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *ip1 = args[1]
- cdef char *ip2 = args[2]
- cdef char *ip3 = args[3]
- cdef char *op0 = args[4]
- cdef double complex ov0
- for i in range(n):
- ov0 = (<double complex(*)(double, double, double, double complex) noexcept nogil>func)(<double>(<double*>ip0)[0], <double>(<double*>ip1)[0], <double>(<double*>ip2)[0], <double complex>(<double complex*>ip3)[0])
- (<double complex *>op0)[0] = <double complex>ov0
- ip0 += steps[0]
- ip1 += steps[1]
- ip2 += steps[2]
- ip3 += steps[3]
- op0 += steps[4]
- sf_error.check_fpe(func_name)
- cdef void loop_D_dddD__As_fffF_F(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *ip1 = args[1]
- cdef char *ip2 = args[2]
- cdef char *ip3 = args[3]
- cdef char *op0 = args[4]
- cdef double complex ov0
- for i in range(n):
- ov0 = (<double complex(*)(double, double, double, double complex) noexcept nogil>func)(<double>(<float*>ip0)[0], <double>(<float*>ip1)[0], <double>(<float*>ip2)[0], <double complex>(<float complex*>ip3)[0])
- (<float complex *>op0)[0] = <float complex>ov0
- ip0 += steps[0]
- ip1 += steps[1]
- ip2 += steps[2]
- ip3 += steps[3]
- op0 += steps[4]
- sf_error.check_fpe(func_name)
- cdef void loop_d_d__As_d_d(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *op0 = args[1]
- cdef double ov0
- for i in range(n):
- ov0 = (<double(*)(double) noexcept nogil>func)(<double>(<double*>ip0)[0])
- (<double *>op0)[0] = <double>ov0
- ip0 += steps[0]
- op0 += steps[1]
- sf_error.check_fpe(func_name)
- cdef void loop_d_d__As_f_f(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *op0 = args[1]
- cdef double ov0
- for i in range(n):
- ov0 = (<double(*)(double) noexcept nogil>func)(<double>(<float*>ip0)[0])
- (<float *>op0)[0] = <float>ov0
- ip0 += steps[0]
- op0 += steps[1]
- sf_error.check_fpe(func_name)
- cdef void loop_d_dd__As_dd_d(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *ip1 = args[1]
- cdef char *op0 = args[2]
- cdef double ov0
- for i in range(n):
- ov0 = (<double(*)(double, double) noexcept nogil>func)(<double>(<double*>ip0)[0], <double>(<double*>ip1)[0])
- (<double *>op0)[0] = <double>ov0
- ip0 += steps[0]
- ip1 += steps[1]
- op0 += steps[2]
- sf_error.check_fpe(func_name)
- cdef void loop_d_dd__As_ff_f(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *ip1 = args[1]
- cdef char *op0 = args[2]
- cdef double ov0
- for i in range(n):
- ov0 = (<double(*)(double, double) noexcept nogil>func)(<double>(<float*>ip0)[0], <double>(<float*>ip1)[0])
- (<float *>op0)[0] = <float>ov0
- ip0 += steps[0]
- ip1 += steps[1]
- op0 += steps[2]
- sf_error.check_fpe(func_name)
- cdef void loop_d_ddd__As_ddd_d(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *ip1 = args[1]
- cdef char *ip2 = args[2]
- cdef char *op0 = args[3]
- cdef double ov0
- for i in range(n):
- ov0 = (<double(*)(double, double, double) noexcept nogil>func)(<double>(<double*>ip0)[0], <double>(<double*>ip1)[0], <double>(<double*>ip2)[0])
- (<double *>op0)[0] = <double>ov0
- ip0 += steps[0]
- ip1 += steps[1]
- ip2 += steps[2]
- op0 += steps[3]
- sf_error.check_fpe(func_name)
- cdef void loop_d_ddd__As_fff_f(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *ip1 = args[1]
- cdef char *ip2 = args[2]
- cdef char *op0 = args[3]
- cdef double ov0
- for i in range(n):
- ov0 = (<double(*)(double, double, double) noexcept nogil>func)(<double>(<float*>ip0)[0], <double>(<float*>ip1)[0], <double>(<float*>ip2)[0])
- (<float *>op0)[0] = <float>ov0
- ip0 += steps[0]
- ip1 += steps[1]
- ip2 += steps[2]
- op0 += steps[3]
- sf_error.check_fpe(func_name)
- cdef void loop_d_dddd__As_dddd_d(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *ip1 = args[1]
- cdef char *ip2 = args[2]
- cdef char *ip3 = args[3]
- cdef char *op0 = args[4]
- cdef double ov0
- for i in range(n):
- ov0 = (<double(*)(double, double, double, double) noexcept nogil>func)(<double>(<double*>ip0)[0], <double>(<double*>ip1)[0], <double>(<double*>ip2)[0], <double>(<double*>ip3)[0])
- (<double *>op0)[0] = <double>ov0
- ip0 += steps[0]
- ip1 += steps[1]
- ip2 += steps[2]
- ip3 += steps[3]
- op0 += steps[4]
- sf_error.check_fpe(func_name)
- cdef void loop_d_dddd__As_ffff_f(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *ip1 = args[1]
- cdef char *ip2 = args[2]
- cdef char *ip3 = args[3]
- cdef char *op0 = args[4]
- cdef double ov0
- for i in range(n):
- ov0 = (<double(*)(double, double, double, double) noexcept nogil>func)(<double>(<float*>ip0)[0], <double>(<float*>ip1)[0], <double>(<float*>ip2)[0], <double>(<float*>ip3)[0])
- (<float *>op0)[0] = <float>ov0
- ip0 += steps[0]
- ip1 += steps[1]
- ip2 += steps[2]
- ip3 += steps[3]
- op0 += steps[4]
- sf_error.check_fpe(func_name)
- cdef void loop_d_ddddddd__As_ddddddd_d(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *ip1 = args[1]
- cdef char *ip2 = args[2]
- cdef char *ip3 = args[3]
- cdef char *ip4 = args[4]
- cdef char *ip5 = args[5]
- cdef char *ip6 = args[6]
- cdef char *op0 = args[7]
- cdef double ov0
- for i in range(n):
- ov0 = (<double(*)(double, double, double, double, double, double, double) noexcept nogil>func)(<double>(<double*>ip0)[0], <double>(<double*>ip1)[0], <double>(<double*>ip2)[0], <double>(<double*>ip3)[0], <double>(<double*>ip4)[0], <double>(<double*>ip5)[0], <double>(<double*>ip6)[0])
- (<double *>op0)[0] = <double>ov0
- ip0 += steps[0]
- ip1 += steps[1]
- ip2 += steps[2]
- ip3 += steps[3]
- ip4 += steps[4]
- ip5 += steps[5]
- ip6 += steps[6]
- op0 += steps[7]
- sf_error.check_fpe(func_name)
- cdef void loop_d_ddddddd__As_fffffff_f(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *ip1 = args[1]
- cdef char *ip2 = args[2]
- cdef char *ip3 = args[3]
- cdef char *ip4 = args[4]
- cdef char *ip5 = args[5]
- cdef char *ip6 = args[6]
- cdef char *op0 = args[7]
- cdef double ov0
- for i in range(n):
- ov0 = (<double(*)(double, double, double, double, double, double, double) noexcept nogil>func)(<double>(<float*>ip0)[0], <double>(<float*>ip1)[0], <double>(<float*>ip2)[0], <double>(<float*>ip3)[0], <double>(<float*>ip4)[0], <double>(<float*>ip5)[0], <double>(<float*>ip6)[0])
- (<float *>op0)[0] = <float>ov0
- ip0 += steps[0]
- ip1 += steps[1]
- ip2 += steps[2]
- ip3 += steps[3]
- ip4 += steps[4]
- ip5 += steps[5]
- ip6 += steps[6]
- op0 += steps[7]
- sf_error.check_fpe(func_name)
- cdef void loop_d_ddiiddd__As_ddllddd_d(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *ip1 = args[1]
- cdef char *ip2 = args[2]
- cdef char *ip3 = args[3]
- cdef char *ip4 = args[4]
- cdef char *ip5 = args[5]
- cdef char *ip6 = args[6]
- cdef char *op0 = args[7]
- cdef double ov0
- for i in range(n):
- if <int>(<long*>ip2)[0] == (<long*>ip2)[0] and <int>(<long*>ip3)[0] == (<long*>ip3)[0]:
- ov0 = (<double(*)(double, double, int, int, double, double, double) noexcept nogil>func)(<double>(<double*>ip0)[0], <double>(<double*>ip1)[0], <int>(<long*>ip2)[0], <int>(<long*>ip3)[0], <double>(<double*>ip4)[0], <double>(<double*>ip5)[0], <double>(<double*>ip6)[0])
- else:
- sf_error.error(func_name, sf_error.DOMAIN, "invalid input argument")
- ov0 = <double>NAN
- (<double *>op0)[0] = <double>ov0
- ip0 += steps[0]
- ip1 += steps[1]
- ip2 += steps[2]
- ip3 += steps[3]
- ip4 += steps[4]
- ip5 += steps[5]
- ip6 += steps[6]
- op0 += steps[7]
- sf_error.check_fpe(func_name)
- cdef void loop_d_ddp_d_As_ddp_dd(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *ip1 = args[1]
- cdef char *ip2 = args[2]
- cdef char *op0 = args[3]
- cdef char *op1 = args[4]
- cdef double ov0
- cdef double ov1
- for i in range(n):
- ov0 = (<double(*)(double, double, Py_ssize_t, double *) noexcept nogil>func)(<double>(<double*>ip0)[0], <double>(<double*>ip1)[0], <Py_ssize_t>(<Py_ssize_t*>ip2)[0], &ov1)
- (<double *>op0)[0] = <double>ov0
- (<double *>op1)[0] = <double>ov1
- ip0 += steps[0]
- ip1 += steps[1]
- ip2 += steps[2]
- op0 += steps[3]
- op1 += steps[4]
- sf_error.check_fpe(func_name)
- cdef void loop_d_dpd__As_dpd_d(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *ip1 = args[1]
- cdef char *ip2 = args[2]
- cdef char *op0 = args[3]
- cdef double ov0
- for i in range(n):
- ov0 = (<double(*)(double, Py_ssize_t, double) noexcept nogil>func)(<double>(<double*>ip0)[0], <Py_ssize_t>(<Py_ssize_t*>ip1)[0], <double>(<double*>ip2)[0])
- (<double *>op0)[0] = <double>ov0
- ip0 += steps[0]
- ip1 += steps[1]
- ip2 += steps[2]
- op0 += steps[3]
- sf_error.check_fpe(func_name)
- cdef void loop_d_pd__As_pd_d(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *ip1 = args[1]
- cdef char *op0 = args[2]
- cdef double ov0
- for i in range(n):
- ov0 = (<double(*)(Py_ssize_t, double) noexcept nogil>func)(<Py_ssize_t>(<Py_ssize_t*>ip0)[0], <double>(<double*>ip1)[0])
- (<double *>op0)[0] = <double>ov0
- ip0 += steps[0]
- ip1 += steps[1]
- op0 += steps[2]
- sf_error.check_fpe(func_name)
- cdef void loop_d_pdd__As_pdd_d(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *ip1 = args[1]
- cdef char *ip2 = args[2]
- cdef char *op0 = args[3]
- cdef double ov0
- for i in range(n):
- ov0 = (<double(*)(Py_ssize_t, double, double) noexcept nogil>func)(<Py_ssize_t>(<Py_ssize_t*>ip0)[0], <double>(<double*>ip1)[0], <double>(<double*>ip2)[0])
- (<double *>op0)[0] = <double>ov0
- ip0 += steps[0]
- ip1 += steps[1]
- ip2 += steps[2]
- op0 += steps[3]
- sf_error.check_fpe(func_name)
- cdef void loop_d_pddd__As_pddd_d(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *ip1 = args[1]
- cdef char *ip2 = args[2]
- cdef char *ip3 = args[3]
- cdef char *op0 = args[4]
- cdef double ov0
- for i in range(n):
- ov0 = (<double(*)(Py_ssize_t, double, double, double) noexcept nogil>func)(<Py_ssize_t>(<Py_ssize_t*>ip0)[0], <double>(<double*>ip1)[0], <double>(<double*>ip2)[0], <double>(<double*>ip3)[0])
- (<double *>op0)[0] = <double>ov0
- ip0 += steps[0]
- ip1 += steps[1]
- ip2 += steps[2]
- ip3 += steps[3]
- op0 += steps[4]
- sf_error.check_fpe(func_name)
- cdef void loop_d_ppd__As_ppd_d(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *ip1 = args[1]
- cdef char *ip2 = args[2]
- cdef char *op0 = args[3]
- cdef double ov0
- for i in range(n):
- ov0 = (<double(*)(Py_ssize_t, Py_ssize_t, double) noexcept nogil>func)(<Py_ssize_t>(<Py_ssize_t*>ip0)[0], <Py_ssize_t>(<Py_ssize_t*>ip1)[0], <double>(<double*>ip2)[0])
- (<double *>op0)[0] = <double>ov0
- ip0 += steps[0]
- ip1 += steps[1]
- ip2 += steps[2]
- op0 += steps[3]
- sf_error.check_fpe(func_name)
- cdef void loop_f_f__As_f_f(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *op0 = args[1]
- cdef float ov0
- for i in range(n):
- ov0 = (<float(*)(float) noexcept nogil>func)(<float>(<float*>ip0)[0])
- (<float *>op0)[0] = <float>ov0
- ip0 += steps[0]
- op0 += steps[1]
- sf_error.check_fpe(func_name)
- cdef void loop_f_ff__As_ff_f(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *ip1 = args[1]
- cdef char *op0 = args[2]
- cdef float ov0
- for i in range(n):
- ov0 = (<float(*)(float, float) noexcept nogil>func)(<float>(<float*>ip0)[0], <float>(<float*>ip1)[0])
- (<float *>op0)[0] = <float>ov0
- ip0 += steps[0]
- ip1 += steps[1]
- op0 += steps[2]
- sf_error.check_fpe(func_name)
- cdef void loop_f_fff__As_fff_f(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *ip1 = args[1]
- cdef char *ip2 = args[2]
- cdef char *op0 = args[3]
- cdef float ov0
- for i in range(n):
- ov0 = (<float(*)(float, float, float) noexcept nogil>func)(<float>(<float*>ip0)[0], <float>(<float*>ip1)[0], <float>(<float*>ip2)[0])
- (<float *>op0)[0] = <float>ov0
- ip0 += steps[0]
- ip1 += steps[1]
- ip2 += steps[2]
- op0 += steps[3]
- sf_error.check_fpe(func_name)
- cdef void loop_f_ffff__As_ffff_f(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *ip1 = args[1]
- cdef char *ip2 = args[2]
- cdef char *ip3 = args[3]
- cdef char *op0 = args[4]
- cdef float ov0
- for i in range(n):
- ov0 = (<float(*)(float, float, float, float) noexcept nogil>func)(<float>(<float*>ip0)[0], <float>(<float*>ip1)[0], <float>(<float*>ip2)[0], <float>(<float*>ip3)[0])
- (<float *>op0)[0] = <float>ov0
- ip0 += steps[0]
- ip1 += steps[1]
- ip2 += steps[2]
- ip3 += steps[3]
- op0 += steps[4]
- sf_error.check_fpe(func_name)
- cdef void loop_i_D_DD_As_D_DD(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *op0 = args[1]
- cdef char *op1 = args[2]
- cdef double complex ov0
- cdef double complex ov1
- for i in range(n):
- (<int(*)(double complex, double complex *, double complex *) noexcept nogil>func)(<double complex>(<double complex*>ip0)[0], &ov0, &ov1)
- (<double complex *>op0)[0] = <double complex>ov0
- (<double complex *>op1)[0] = <double complex>ov1
- ip0 += steps[0]
- op0 += steps[1]
- op1 += steps[2]
- sf_error.check_fpe(func_name)
- cdef void loop_i_D_DD_As_F_FF(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *op0 = args[1]
- cdef char *op1 = args[2]
- cdef double complex ov0
- cdef double complex ov1
- for i in range(n):
- (<int(*)(double complex, double complex *, double complex *) noexcept nogil>func)(<double complex>(<float complex*>ip0)[0], &ov0, &ov1)
- (<float complex *>op0)[0] = <float complex>ov0
- (<float complex *>op1)[0] = <float complex>ov1
- ip0 += steps[0]
- op0 += steps[1]
- op1 += steps[2]
- sf_error.check_fpe(func_name)
- cdef void loop_i_d_dd_As_d_dd(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *op0 = args[1]
- cdef char *op1 = args[2]
- cdef double ov0
- cdef double ov1
- for i in range(n):
- (<int(*)(double, double *, double *) noexcept nogil>func)(<double>(<double*>ip0)[0], &ov0, &ov1)
- (<double *>op0)[0] = <double>ov0
- (<double *>op1)[0] = <double>ov1
- ip0 += steps[0]
- op0 += steps[1]
- op1 += steps[2]
- sf_error.check_fpe(func_name)
- cdef void loop_i_d_dd_As_f_ff(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *op0 = args[1]
- cdef char *op1 = args[2]
- cdef double ov0
- cdef double ov1
- for i in range(n):
- (<int(*)(double, double *, double *) noexcept nogil>func)(<double>(<float*>ip0)[0], &ov0, &ov1)
- (<float *>op0)[0] = <float>ov0
- (<float *>op1)[0] = <float>ov1
- ip0 += steps[0]
- op0 += steps[1]
- op1 += steps[2]
- sf_error.check_fpe(func_name)
- cdef void loop_i_i__As_l_l(char **args, np.npy_intp *dims, np.npy_intp *steps, void *data) noexcept nogil:
- cdef np.npy_intp i, n = dims[0]
- cdef void *func = (<void**>data)[0]
- cdef char *func_name = <char*>(<void**>data)[1]
- cdef char *ip0 = args[0]
- cdef char *op0 = args[1]
- cdef int ov0
- for i in range(n):
- if <int>(<long*>ip0)[0] == (<long*>ip0)[0]:
- ov0 = (<int(*)(int) noexcept nogil>func)(<int>(<long*>ip0)[0])
- else:
- sf_error.error(func_name, sf_error.DOMAIN, "invalid input argument")
- ov0 = <int>0xbad0bad0
- (<long *>op0)[0] = <long>ov0
- ip0 += steps[0]
- op0 += steps[1]
- sf_error.check_fpe(func_name)
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_cosine_cdf "cosine_cdf"(double) noexcept nogil
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_cosine_invcdf "cosine_invcdf"(double) noexcept nogil
- from ._ellip_harm cimport ellip_harmonic as _func_ellip_harmonic
- ctypedef double _proto_ellip_harmonic_t(double, double, int, int, double, double, double) noexcept nogil
- cdef _proto_ellip_harmonic_t *_proto_ellip_harmonic_t_var = &_func_ellip_harmonic
- from ._legacy cimport ellip_harmonic_unsafe as _func_ellip_harmonic_unsafe
- ctypedef double _proto_ellip_harmonic_unsafe_t(double, double, double, double, double, double, double) noexcept nogil
- cdef _proto_ellip_harmonic_unsafe_t *_proto_ellip_harmonic_unsafe_t_var = &_func_ellip_harmonic_unsafe
- from ._factorial cimport _factorial as _func__factorial
- ctypedef double _proto__factorial_t(double) noexcept nogil
- cdef _proto__factorial_t *_proto__factorial_t_var = &_func__factorial
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_cephes_igam_fac "cephes_igam_fac"(double, double) noexcept nogil
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_xsf_kolmogc "xsf_kolmogc"(double) noexcept nogil
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_xsf_kolmogci "xsf_kolmogci"(double) noexcept nogil
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_xsf_kolmogp "xsf_kolmogp"(double) noexcept nogil
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_cephes_lanczos_sum_expg_scaled "cephes_lanczos_sum_expg_scaled"(double) noexcept nogil
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_cephes_lgam1p "cephes_lgam1p"(double) noexcept nogil
- from .sf_error cimport _sf_error_test_function as _func__sf_error_test_function
- ctypedef int _proto__sf_error_test_function_t(int) noexcept nogil
- cdef _proto__sf_error_test_function_t *_proto__sf_error_test_function_t_var = &_func__sf_error_test_function
- from ._legacy cimport smirnovc_unsafe as _func_smirnovc_unsafe
- ctypedef double _proto_smirnovc_unsafe_t(double, double) noexcept nogil
- cdef _proto_smirnovc_unsafe_t *_proto_smirnovc_unsafe_t_var = &_func_smirnovc_unsafe
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_cephes_smirnovc_wrap "cephes_smirnovc_wrap"(Py_ssize_t, double) noexcept nogil
- from ._legacy cimport smirnovci_unsafe as _func_smirnovci_unsafe
- ctypedef double _proto_smirnovci_unsafe_t(double, double) noexcept nogil
- cdef _proto_smirnovci_unsafe_t *_proto_smirnovci_unsafe_t_var = &_func_smirnovci_unsafe
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_cephes_smirnovci_wrap "cephes_smirnovci_wrap"(Py_ssize_t, double) noexcept nogil
- from ._legacy cimport smirnovp_unsafe as _func_smirnovp_unsafe
- ctypedef double _proto_smirnovp_unsafe_t(double, double) noexcept nogil
- cdef _proto_smirnovp_unsafe_t *_proto_smirnovp_unsafe_t_var = &_func_smirnovp_unsafe
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_cephes_smirnovp_wrap "cephes_smirnovp_wrap"(Py_ssize_t, double) noexcept nogil
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_cephes__struve_asymp_large_z "cephes__struve_asymp_large_z"(double, double, Py_ssize_t, double *) noexcept nogil
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_cephes__struve_bessel_series "cephes__struve_bessel_series"(double, double, Py_ssize_t, double *) noexcept nogil
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_cephes__struve_power_series "cephes__struve_power_series"(double, double, Py_ssize_t, double *) noexcept nogil
- from ._agm cimport agm as _func_agm
- ctypedef double _proto_agm_t(double, double) noexcept nogil
- cdef _proto_agm_t *_proto_agm_t_var = &_func_agm
- from ._legacy cimport bdtr_unsafe as _func_bdtr_unsafe
- ctypedef double _proto_bdtr_unsafe_t(double, double, double) noexcept nogil
- cdef _proto_bdtr_unsafe_t *_proto_bdtr_unsafe_t_var = &_func_bdtr_unsafe
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_cephes_bdtr_wrap "cephes_bdtr_wrap"(double, Py_ssize_t, double) noexcept nogil
- from ._legacy cimport bdtrc_unsafe as _func_bdtrc_unsafe
- ctypedef double _proto_bdtrc_unsafe_t(double, double, double) noexcept nogil
- cdef _proto_bdtrc_unsafe_t *_proto_bdtrc_unsafe_t_var = &_func_bdtrc_unsafe
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_cephes_bdtrc_wrap "cephes_bdtrc_wrap"(double, Py_ssize_t, double) noexcept nogil
- from ._legacy cimport bdtri_unsafe as _func_bdtri_unsafe
- ctypedef double _proto_bdtri_unsafe_t(double, double, double) noexcept nogil
- cdef _proto_bdtri_unsafe_t *_proto_bdtri_unsafe_t_var = &_func_bdtri_unsafe
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_cephes_bdtri_wrap "cephes_bdtri_wrap"(double, Py_ssize_t, double) noexcept nogil
- from ._cdflib_wrappers cimport bdtrik as _func_bdtrik
- ctypedef double _proto_bdtrik_t(double, double, double) noexcept nogil
- cdef _proto_bdtrik_t *_proto_bdtrik_t_var = &_func_bdtrik
- from ._cdflib_wrappers cimport bdtrin as _func_bdtrin
- ctypedef double _proto_bdtrin_t(double, double, double) noexcept nogil
- cdef _proto_bdtrin_t *_proto_bdtrin_t_var = &_func_bdtrin
- from ._boxcox cimport boxcox as _func_boxcox
- ctypedef double _proto_boxcox_t(double, double) noexcept nogil
- cdef _proto_boxcox_t *_proto_boxcox_t_var = &_func_boxcox
- from ._boxcox cimport boxcox1p as _func_boxcox1p
- ctypedef double _proto_boxcox1p_t(double, double) noexcept nogil
- cdef _proto_boxcox1p_t *_proto_boxcox1p_t_var = &_func_boxcox1p
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_xsf_chdtr "xsf_chdtr"(double, double) noexcept nogil
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_xsf_chdtrc "xsf_chdtrc"(double, double) noexcept nogil
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_xsf_chdtri "xsf_chdtri"(double, double) noexcept nogil
- from ._convex_analysis cimport entr as _func_entr
- ctypedef double _proto_entr_t(double) noexcept nogil
- cdef _proto_entr_t *_proto_entr_t_var = &_func_entr
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_cephes_erfcinv "cephes_erfcinv"(double) noexcept nogil
- from .orthogonal_eval cimport eval_chebyc as _func_eval_chebyc
- ctypedef double complex _proto_eval_chebyc_double_complex__t(double, double complex) noexcept nogil
- cdef _proto_eval_chebyc_double_complex__t *_proto_eval_chebyc_double_complex__t_var = &_func_eval_chebyc[double_complex]
- from .orthogonal_eval cimport eval_chebyc as _func_eval_chebyc
- ctypedef double _proto_eval_chebyc_double__t(double, double) noexcept nogil
- cdef _proto_eval_chebyc_double__t *_proto_eval_chebyc_double__t_var = &_func_eval_chebyc[double]
- from .orthogonal_eval cimport eval_chebyc_l as _func_eval_chebyc_l
- ctypedef double _proto_eval_chebyc_l_t(Py_ssize_t, double) noexcept nogil
- cdef _proto_eval_chebyc_l_t *_proto_eval_chebyc_l_t_var = &_func_eval_chebyc_l
- from .orthogonal_eval cimport eval_chebys as _func_eval_chebys
- ctypedef double complex _proto_eval_chebys_double_complex__t(double, double complex) noexcept nogil
- cdef _proto_eval_chebys_double_complex__t *_proto_eval_chebys_double_complex__t_var = &_func_eval_chebys[double_complex]
- from .orthogonal_eval cimport eval_chebys as _func_eval_chebys
- ctypedef double _proto_eval_chebys_double__t(double, double) noexcept nogil
- cdef _proto_eval_chebys_double__t *_proto_eval_chebys_double__t_var = &_func_eval_chebys[double]
- from .orthogonal_eval cimport eval_chebys_l as _func_eval_chebys_l
- ctypedef double _proto_eval_chebys_l_t(Py_ssize_t, double) noexcept nogil
- cdef _proto_eval_chebys_l_t *_proto_eval_chebys_l_t_var = &_func_eval_chebys_l
- from .orthogonal_eval cimport eval_chebyt as _func_eval_chebyt
- ctypedef double complex _proto_eval_chebyt_double_complex__t(double, double complex) noexcept nogil
- cdef _proto_eval_chebyt_double_complex__t *_proto_eval_chebyt_double_complex__t_var = &_func_eval_chebyt[double_complex]
- from .orthogonal_eval cimport eval_chebyt as _func_eval_chebyt
- ctypedef double _proto_eval_chebyt_double__t(double, double) noexcept nogil
- cdef _proto_eval_chebyt_double__t *_proto_eval_chebyt_double__t_var = &_func_eval_chebyt[double]
- from .orthogonal_eval cimport eval_chebyt_l as _func_eval_chebyt_l
- ctypedef double _proto_eval_chebyt_l_t(Py_ssize_t, double) noexcept nogil
- cdef _proto_eval_chebyt_l_t *_proto_eval_chebyt_l_t_var = &_func_eval_chebyt_l
- from .orthogonal_eval cimport eval_chebyu as _func_eval_chebyu
- ctypedef double complex _proto_eval_chebyu_double_complex__t(double, double complex) noexcept nogil
- cdef _proto_eval_chebyu_double_complex__t *_proto_eval_chebyu_double_complex__t_var = &_func_eval_chebyu[double_complex]
- from .orthogonal_eval cimport eval_chebyu as _func_eval_chebyu
- ctypedef double _proto_eval_chebyu_double__t(double, double) noexcept nogil
- cdef _proto_eval_chebyu_double__t *_proto_eval_chebyu_double__t_var = &_func_eval_chebyu[double]
- from .orthogonal_eval cimport eval_chebyu_l as _func_eval_chebyu_l
- ctypedef double _proto_eval_chebyu_l_t(Py_ssize_t, double) noexcept nogil
- cdef _proto_eval_chebyu_l_t *_proto_eval_chebyu_l_t_var = &_func_eval_chebyu_l
- from .orthogonal_eval cimport eval_gegenbauer as _func_eval_gegenbauer
- ctypedef double complex _proto_eval_gegenbauer_double_complex__t(double, double, double complex) noexcept nogil
- cdef _proto_eval_gegenbauer_double_complex__t *_proto_eval_gegenbauer_double_complex__t_var = &_func_eval_gegenbauer[double_complex]
- from .orthogonal_eval cimport eval_gegenbauer as _func_eval_gegenbauer
- ctypedef double _proto_eval_gegenbauer_double__t(double, double, double) noexcept nogil
- cdef _proto_eval_gegenbauer_double__t *_proto_eval_gegenbauer_double__t_var = &_func_eval_gegenbauer[double]
- from .orthogonal_eval cimport eval_gegenbauer_l as _func_eval_gegenbauer_l
- ctypedef double _proto_eval_gegenbauer_l_t(Py_ssize_t, double, double) noexcept nogil
- cdef _proto_eval_gegenbauer_l_t *_proto_eval_gegenbauer_l_t_var = &_func_eval_gegenbauer_l
- from .orthogonal_eval cimport eval_genlaguerre as _func_eval_genlaguerre
- ctypedef double complex _proto_eval_genlaguerre_double_complex__t(double, double, double complex) noexcept nogil
- cdef _proto_eval_genlaguerre_double_complex__t *_proto_eval_genlaguerre_double_complex__t_var = &_func_eval_genlaguerre[double_complex]
- from .orthogonal_eval cimport eval_genlaguerre as _func_eval_genlaguerre
- ctypedef double _proto_eval_genlaguerre_double__t(double, double, double) noexcept nogil
- cdef _proto_eval_genlaguerre_double__t *_proto_eval_genlaguerre_double__t_var = &_func_eval_genlaguerre[double]
- from .orthogonal_eval cimport eval_genlaguerre_l as _func_eval_genlaguerre_l
- ctypedef double _proto_eval_genlaguerre_l_t(Py_ssize_t, double, double) noexcept nogil
- cdef _proto_eval_genlaguerre_l_t *_proto_eval_genlaguerre_l_t_var = &_func_eval_genlaguerre_l
- from .orthogonal_eval cimport eval_hermite as _func_eval_hermite
- ctypedef double _proto_eval_hermite_t(Py_ssize_t, double) noexcept nogil
- cdef _proto_eval_hermite_t *_proto_eval_hermite_t_var = &_func_eval_hermite
- from .orthogonal_eval cimport eval_hermitenorm as _func_eval_hermitenorm
- ctypedef double _proto_eval_hermitenorm_t(Py_ssize_t, double) noexcept nogil
- cdef _proto_eval_hermitenorm_t *_proto_eval_hermitenorm_t_var = &_func_eval_hermitenorm
- from .orthogonal_eval cimport eval_jacobi as _func_eval_jacobi
- ctypedef double complex _proto_eval_jacobi_double_complex__t(double, double, double, double complex) noexcept nogil
- cdef _proto_eval_jacobi_double_complex__t *_proto_eval_jacobi_double_complex__t_var = &_func_eval_jacobi[double_complex]
- from .orthogonal_eval cimport eval_jacobi as _func_eval_jacobi
- ctypedef double _proto_eval_jacobi_double__t(double, double, double, double) noexcept nogil
- cdef _proto_eval_jacobi_double__t *_proto_eval_jacobi_double__t_var = &_func_eval_jacobi[double]
- from .orthogonal_eval cimport eval_jacobi_l as _func_eval_jacobi_l
- ctypedef double _proto_eval_jacobi_l_t(Py_ssize_t, double, double, double) noexcept nogil
- cdef _proto_eval_jacobi_l_t *_proto_eval_jacobi_l_t_var = &_func_eval_jacobi_l
- from .orthogonal_eval cimport eval_laguerre as _func_eval_laguerre
- ctypedef double complex _proto_eval_laguerre_double_complex__t(double, double complex) noexcept nogil
- cdef _proto_eval_laguerre_double_complex__t *_proto_eval_laguerre_double_complex__t_var = &_func_eval_laguerre[double_complex]
- from .orthogonal_eval cimport eval_laguerre as _func_eval_laguerre
- ctypedef double _proto_eval_laguerre_double__t(double, double) noexcept nogil
- cdef _proto_eval_laguerre_double__t *_proto_eval_laguerre_double__t_var = &_func_eval_laguerre[double]
- from .orthogonal_eval cimport eval_laguerre_l as _func_eval_laguerre_l
- ctypedef double _proto_eval_laguerre_l_t(Py_ssize_t, double) noexcept nogil
- cdef _proto_eval_laguerre_l_t *_proto_eval_laguerre_l_t_var = &_func_eval_laguerre_l
- from .orthogonal_eval cimport eval_legendre as _func_eval_legendre
- ctypedef double complex _proto_eval_legendre_double_complex__t(double, double complex) noexcept nogil
- cdef _proto_eval_legendre_double_complex__t *_proto_eval_legendre_double_complex__t_var = &_func_eval_legendre[double_complex]
- from .orthogonal_eval cimport eval_legendre as _func_eval_legendre
- ctypedef double _proto_eval_legendre_double__t(double, double) noexcept nogil
- cdef _proto_eval_legendre_double__t *_proto_eval_legendre_double__t_var = &_func_eval_legendre[double]
- from .orthogonal_eval cimport eval_legendre_l as _func_eval_legendre_l
- ctypedef double _proto_eval_legendre_l_t(Py_ssize_t, double) noexcept nogil
- cdef _proto_eval_legendre_l_t *_proto_eval_legendre_l_t_var = &_func_eval_legendre_l
- from .orthogonal_eval cimport eval_sh_chebyt as _func_eval_sh_chebyt
- ctypedef double complex _proto_eval_sh_chebyt_double_complex__t(double, double complex) noexcept nogil
- cdef _proto_eval_sh_chebyt_double_complex__t *_proto_eval_sh_chebyt_double_complex__t_var = &_func_eval_sh_chebyt[double_complex]
- from .orthogonal_eval cimport eval_sh_chebyt as _func_eval_sh_chebyt
- ctypedef double _proto_eval_sh_chebyt_double__t(double, double) noexcept nogil
- cdef _proto_eval_sh_chebyt_double__t *_proto_eval_sh_chebyt_double__t_var = &_func_eval_sh_chebyt[double]
- from .orthogonal_eval cimport eval_sh_chebyt_l as _func_eval_sh_chebyt_l
- ctypedef double _proto_eval_sh_chebyt_l_t(Py_ssize_t, double) noexcept nogil
- cdef _proto_eval_sh_chebyt_l_t *_proto_eval_sh_chebyt_l_t_var = &_func_eval_sh_chebyt_l
- from .orthogonal_eval cimport eval_sh_chebyu as _func_eval_sh_chebyu
- ctypedef double complex _proto_eval_sh_chebyu_double_complex__t(double, double complex) noexcept nogil
- cdef _proto_eval_sh_chebyu_double_complex__t *_proto_eval_sh_chebyu_double_complex__t_var = &_func_eval_sh_chebyu[double_complex]
- from .orthogonal_eval cimport eval_sh_chebyu as _func_eval_sh_chebyu
- ctypedef double _proto_eval_sh_chebyu_double__t(double, double) noexcept nogil
- cdef _proto_eval_sh_chebyu_double__t *_proto_eval_sh_chebyu_double__t_var = &_func_eval_sh_chebyu[double]
- from .orthogonal_eval cimport eval_sh_chebyu_l as _func_eval_sh_chebyu_l
- ctypedef double _proto_eval_sh_chebyu_l_t(Py_ssize_t, double) noexcept nogil
- cdef _proto_eval_sh_chebyu_l_t *_proto_eval_sh_chebyu_l_t_var = &_func_eval_sh_chebyu_l
- from .orthogonal_eval cimport eval_sh_jacobi as _func_eval_sh_jacobi
- ctypedef double complex _proto_eval_sh_jacobi_double_complex__t(double, double, double, double complex) noexcept nogil
- cdef _proto_eval_sh_jacobi_double_complex__t *_proto_eval_sh_jacobi_double_complex__t_var = &_func_eval_sh_jacobi[double_complex]
- from .orthogonal_eval cimport eval_sh_jacobi as _func_eval_sh_jacobi
- ctypedef double _proto_eval_sh_jacobi_double__t(double, double, double, double) noexcept nogil
- cdef _proto_eval_sh_jacobi_double__t *_proto_eval_sh_jacobi_double__t_var = &_func_eval_sh_jacobi[double]
- from .orthogonal_eval cimport eval_sh_jacobi_l as _func_eval_sh_jacobi_l
- ctypedef double _proto_eval_sh_jacobi_l_t(Py_ssize_t, double, double, double) noexcept nogil
- cdef _proto_eval_sh_jacobi_l_t *_proto_eval_sh_jacobi_l_t_var = &_func_eval_sh_jacobi_l
- from .orthogonal_eval cimport eval_sh_legendre as _func_eval_sh_legendre
- ctypedef double complex _proto_eval_sh_legendre_double_complex__t(double, double complex) noexcept nogil
- cdef _proto_eval_sh_legendre_double_complex__t *_proto_eval_sh_legendre_double_complex__t_var = &_func_eval_sh_legendre[double_complex]
- from .orthogonal_eval cimport eval_sh_legendre as _func_eval_sh_legendre
- ctypedef double _proto_eval_sh_legendre_double__t(double, double) noexcept nogil
- cdef _proto_eval_sh_legendre_double__t *_proto_eval_sh_legendre_double__t_var = &_func_eval_sh_legendre[double]
- from .orthogonal_eval cimport eval_sh_legendre_l as _func_eval_sh_legendre_l
- ctypedef double _proto_eval_sh_legendre_l_t(Py_ssize_t, double) noexcept nogil
- cdef _proto_eval_sh_legendre_l_t *_proto_eval_sh_legendre_l_t_var = &_func_eval_sh_legendre_l
- from ._legacy cimport expn_unsafe as _func_expn_unsafe
- ctypedef double _proto_expn_unsafe_t(double, double) noexcept nogil
- cdef _proto_expn_unsafe_t *_proto_expn_unsafe_t_var = &_func_expn_unsafe
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_cephes_expn_wrap "cephes_expn_wrap"(Py_ssize_t, double) noexcept nogil
- from ._cdflib_wrappers cimport fdtridfd as _func_fdtridfd
- ctypedef double _proto_fdtridfd_t(double, double, double) noexcept nogil
- cdef _proto_fdtridfd_t *_proto_fdtridfd_t_var = &_func_fdtridfd
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_xsf_gdtr "xsf_gdtr"(double, double, double) noexcept nogil
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_xsf_gdtrc "xsf_gdtrc"(double, double, double) noexcept nogil
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_special_gdtria "special_gdtria"(double, double, double) noexcept nogil
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_xsf_gdtrib "xsf_gdtrib"(double, double, double) noexcept nogil
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_special_gdtrix "special_gdtrix"(double, double, double) noexcept nogil
- from ._convex_analysis cimport huber as _func_huber
- ctypedef double _proto_huber_t(double, double) noexcept nogil
- cdef _proto_huber_t *_proto_huber_t_var = &_func_huber
- from ._hyp0f1 cimport _hyp0f1_cmplx as _func__hyp0f1_cmplx
- ctypedef double complex _proto__hyp0f1_cmplx_t(double, double complex) noexcept nogil
- cdef _proto__hyp0f1_cmplx_t *_proto__hyp0f1_cmplx_t_var = &_func__hyp0f1_cmplx
- from ._hyp0f1 cimport _hyp0f1_real as _func__hyp0f1_real
- ctypedef double _proto__hyp0f1_real_t(double, double) noexcept nogil
- cdef _proto__hyp0f1_real_t *_proto__hyp0f1_real_t_var = &_func__hyp0f1_real
- cdef extern from r"_ufuncs_defs.h":
- cdef double complex _func_chyp1f1_wrap "chyp1f1_wrap"(double, double, double complex) noexcept nogil
- from ._hypergeometric cimport hyperu as _func_hyperu
- ctypedef double _proto_hyperu_t(double, double, double) noexcept nogil
- cdef _proto_hyperu_t *_proto_hyperu_t_var = &_func_hyperu
- from ._boxcox cimport inv_boxcox as _func_inv_boxcox
- ctypedef double _proto_inv_boxcox_t(double, double) noexcept nogil
- cdef _proto_inv_boxcox_t *_proto_inv_boxcox_t_var = &_func_inv_boxcox
- from ._boxcox cimport inv_boxcox1p as _func_inv_boxcox1p
- ctypedef double _proto_inv_boxcox1p_t(double, double) noexcept nogil
- cdef _proto_inv_boxcox1p_t *_proto_inv_boxcox1p_t_var = &_func_inv_boxcox1p
- from ._convex_analysis cimport kl_div as _func_kl_div
- ctypedef double _proto_kl_div_t(double, double) noexcept nogil
- cdef _proto_kl_div_t *_proto_kl_div_t_var = &_func_kl_div
- from ._legacy cimport kn_unsafe as _func_kn_unsafe
- ctypedef double _proto_kn_unsafe_t(double, double) noexcept nogil
- cdef _proto_kn_unsafe_t *_proto_kn_unsafe_t_var = &_func_kn_unsafe
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_special_cyl_bessel_k_int "special_cyl_bessel_k_int"(Py_ssize_t, double) noexcept nogil
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_xsf_kolmogi "xsf_kolmogi"(double) noexcept nogil
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_xsf_kolmogorov "xsf_kolmogorov"(double) noexcept nogil
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_pmv_wrap "pmv_wrap"(double, double, double) noexcept nogil
- from ._legacy cimport nbdtr_unsafe as _func_nbdtr_unsafe
- ctypedef double _proto_nbdtr_unsafe_t(double, double, double) noexcept nogil
- cdef _proto_nbdtr_unsafe_t *_proto_nbdtr_unsafe_t_var = &_func_nbdtr_unsafe
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_cephes_nbdtr_wrap "cephes_nbdtr_wrap"(Py_ssize_t, Py_ssize_t, double) noexcept nogil
- from ._legacy cimport nbdtrc_unsafe as _func_nbdtrc_unsafe
- ctypedef double _proto_nbdtrc_unsafe_t(double, double, double) noexcept nogil
- cdef _proto_nbdtrc_unsafe_t *_proto_nbdtrc_unsafe_t_var = &_func_nbdtrc_unsafe
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_cephes_nbdtrc_wrap "cephes_nbdtrc_wrap"(Py_ssize_t, Py_ssize_t, double) noexcept nogil
- from ._legacy cimport nbdtri_unsafe as _func_nbdtri_unsafe
- ctypedef double _proto_nbdtri_unsafe_t(double, double, double) noexcept nogil
- cdef _proto_nbdtri_unsafe_t *_proto_nbdtri_unsafe_t_var = &_func_nbdtri_unsafe
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_cephes_nbdtri_wrap "cephes_nbdtri_wrap"(Py_ssize_t, Py_ssize_t, double) noexcept nogil
- from ._cdflib_wrappers cimport nbdtrik as _func_nbdtrik
- ctypedef double _proto_nbdtrik_t(double, double, double) noexcept nogil
- cdef _proto_nbdtrik_t *_proto_nbdtrik_t_var = &_func_nbdtrik
- from ._cdflib_wrappers cimport nbdtrin as _func_nbdtrin
- ctypedef double _proto_nbdtrin_t(double, double, double) noexcept nogil
- cdef _proto_nbdtrin_t *_proto_nbdtrin_t_var = &_func_nbdtrin
- from ._cdflib_wrappers cimport ncfdtridfd as _func_ncfdtridfd
- ctypedef double _proto_ncfdtridfd_t(double, double, double, double) noexcept nogil
- cdef _proto_ncfdtridfd_t *_proto_ncfdtridfd_t_var = &_func_ncfdtridfd
- from ._cdflib_wrappers cimport ncfdtridfn as _func_ncfdtridfn
- ctypedef double _proto_ncfdtridfn_t(double, double, double, double) noexcept nogil
- cdef _proto_ncfdtridfn_t *_proto_ncfdtridfn_t_var = &_func_ncfdtridfn
- from ._cdflib_wrappers cimport ncfdtrinc as _func_ncfdtrinc
- ctypedef double _proto_ncfdtrinc_t(double, double, double, double) noexcept nogil
- cdef _proto_ncfdtrinc_t *_proto_ncfdtrinc_t_var = &_func_ncfdtrinc
- from ._cdflib_wrappers cimport nctdtridf as _func_nctdtridf
- ctypedef double _proto_nctdtridf_t(double, double, double) noexcept nogil
- cdef _proto_nctdtridf_t *_proto_nctdtridf_t_var = &_func_nctdtridf
- from ._cdflib_wrappers cimport nctdtrinc as _func_nctdtrinc
- ctypedef double _proto_nctdtrinc_t(double, double, double) noexcept nogil
- cdef _proto_nctdtrinc_t *_proto_nctdtrinc_t_var = &_func_nctdtrinc
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_xsf_ndtri "xsf_ndtri"(double) noexcept nogil
- from ._ndtri_exp cimport ndtri_exp as _func_ndtri_exp
- ctypedef double _proto_ndtri_exp_t(double) noexcept nogil
- cdef _proto_ndtri_exp_t *_proto_ndtri_exp_t_var = &_func_ndtri_exp
- from ._cdflib_wrappers cimport nrdtrimn as _func_nrdtrimn
- ctypedef double _proto_nrdtrimn_t(double, double, double) noexcept nogil
- cdef _proto_nrdtrimn_t *_proto_nrdtrimn_t_var = &_func_nrdtrimn
- from ._cdflib_wrappers cimport nrdtrisd as _func_nrdtrisd
- ctypedef double _proto_nrdtrisd_t(double, double, double) noexcept nogil
- cdef _proto_nrdtrisd_t *_proto_nrdtrisd_t_var = &_func_nrdtrisd
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_xsf_owens_t "xsf_owens_t"(double, double) noexcept nogil
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_xsf_pdtr "xsf_pdtr"(double, double) noexcept nogil
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_xsf_pdtrc "xsf_pdtrc"(double, double) noexcept nogil
- from ._legacy cimport pdtri_unsafe as _func_pdtri_unsafe
- ctypedef double _proto_pdtri_unsafe_t(double, double) noexcept nogil
- cdef _proto_pdtri_unsafe_t *_proto_pdtri_unsafe_t_var = &_func_pdtri_unsafe
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_cephes_pdtri_wrap "cephes_pdtri_wrap"(Py_ssize_t, double) noexcept nogil
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_cephes_poch "cephes_poch"(double, double) noexcept nogil
- from ._convex_analysis cimport pseudo_huber as _func_pseudo_huber
- ctypedef double _proto_pseudo_huber_t(double, double) noexcept nogil
- cdef _proto_pseudo_huber_t *_proto_pseudo_huber_t_var = &_func_pseudo_huber
- from ._convex_analysis cimport rel_entr as _func_rel_entr
- ctypedef double _proto_rel_entr_t(double, double) noexcept nogil
- cdef _proto_rel_entr_t *_proto_rel_entr_t_var = &_func_rel_entr
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_cephes_round "cephes_round"(double) noexcept nogil
- cdef extern from r"_ufuncs_defs.h":
- cdef int _func_xsf_cshichi "xsf_cshichi"(double complex, double complex *, double complex *) noexcept nogil
- cdef extern from r"_ufuncs_defs.h":
- cdef int _func_xsf_shichi "xsf_shichi"(double, double *, double *) noexcept nogil
- cdef extern from r"_ufuncs_defs.h":
- cdef int _func_xsf_csici "xsf_csici"(double complex, double complex *, double complex *) noexcept nogil
- cdef extern from r"_ufuncs_defs.h":
- cdef int _func_xsf_sici "xsf_sici"(double, double *, double *) noexcept nogil
- from ._legacy cimport smirnov_unsafe as _func_smirnov_unsafe
- ctypedef double _proto_smirnov_unsafe_t(double, double) noexcept nogil
- cdef _proto_smirnov_unsafe_t *_proto_smirnov_unsafe_t_var = &_func_smirnov_unsafe
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_cephes_smirnov_wrap "cephes_smirnov_wrap"(Py_ssize_t, double) noexcept nogil
- from ._legacy cimport smirnovi_unsafe as _func_smirnovi_unsafe
- ctypedef double _proto_smirnovi_unsafe_t(double, double) noexcept nogil
- cdef _proto_smirnovi_unsafe_t *_proto_smirnovi_unsafe_t_var = &_func_smirnovi_unsafe
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_cephes_smirnovi_wrap "cephes_smirnovi_wrap"(Py_ssize_t, double) noexcept nogil
- from ._spence cimport cspence as _func_cspence
- ctypedef double complex _proto_cspence_t(double complex) noexcept nogil
- cdef _proto_cspence_t *_proto_cspence_t_var = &_func_cspence
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_cephes_spence "cephes_spence"(double) noexcept nogil
- from ._cdflib_wrappers cimport stdtridf as _func_stdtridf
- ctypedef double _proto_stdtridf_t(double, double) noexcept nogil
- cdef _proto_stdtridf_t *_proto_stdtridf_t_var = &_func_stdtridf
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_xsf_tukeylambdacdf "xsf_tukeylambdacdf"(double, double) noexcept nogil
- from ._legacy cimport yn_unsafe as _func_yn_unsafe
- ctypedef double _proto_yn_unsafe_t(double, double) noexcept nogil
- cdef _proto_yn_unsafe_t *_proto_yn_unsafe_t_var = &_func_yn_unsafe
- cdef extern from r"_ufuncs_defs.h":
- cdef double _func_cephes_yn_wrap "cephes_yn_wrap"(Py_ssize_t, double) noexcept nogil
- cdef np.PyUFuncGenericFunction ufunc__beta_pdf_loops[2]
- cdef void *ufunc__beta_pdf_ptr[4]
- cdef void *ufunc__beta_pdf_data[2]
- cdef char ufunc__beta_pdf_types[8]
- cdef char *ufunc__beta_pdf_doc = (
- "_beta_pdf(x, a, b)\n"
- "\n"
- "Probability density function of beta distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Real-valued such that :math:`0 \\leq x \\leq 1`,\n"
- " the upper limit of integration\n"
- "a, b : array_like\n"
- " Positive, real-valued parameters\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__beta_pdf_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc__beta_pdf_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc__beta_pdf_types[0] = <char>NPY_FLOAT
- ufunc__beta_pdf_types[1] = <char>NPY_FLOAT
- ufunc__beta_pdf_types[2] = <char>NPY_FLOAT
- ufunc__beta_pdf_types[3] = <char>NPY_FLOAT
- ufunc__beta_pdf_types[4] = <char>NPY_DOUBLE
- ufunc__beta_pdf_types[5] = <char>NPY_DOUBLE
- ufunc__beta_pdf_types[6] = <char>NPY_DOUBLE
- ufunc__beta_pdf_types[7] = <char>NPY_DOUBLE
- ufunc__beta_pdf_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_beta_pdf_float
- ufunc__beta_pdf_ptr[2*0+1] = <void*>(<char*>"_beta_pdf")
- ufunc__beta_pdf_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_beta_pdf_double
- ufunc__beta_pdf_ptr[2*1+1] = <void*>(<char*>"_beta_pdf")
- ufunc__beta_pdf_data[0] = &ufunc__beta_pdf_ptr[2*0]
- ufunc__beta_pdf_data[1] = &ufunc__beta_pdf_ptr[2*1]
- _beta_pdf = np.PyUFunc_FromFuncAndData(ufunc__beta_pdf_loops, ufunc__beta_pdf_data, ufunc__beta_pdf_types, 2, 3, 1, 0, '_beta_pdf', ufunc__beta_pdf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__beta_ppf_loops[2]
- cdef void *ufunc__beta_ppf_ptr[4]
- cdef void *ufunc__beta_ppf_data[2]
- cdef char ufunc__beta_ppf_types[8]
- cdef char *ufunc__beta_ppf_doc = (
- "_beta_ppf(x, a, b)\n"
- "\n"
- "Percent point function of beta distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Real-valued such that :math:`0 \\leq x \\leq 1`,\n"
- " the upper limit of integration\n"
- "a, b : array_like\n"
- " Positive, real-valued parameters\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__beta_ppf_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc__beta_ppf_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc__beta_ppf_types[0] = <char>NPY_FLOAT
- ufunc__beta_ppf_types[1] = <char>NPY_FLOAT
- ufunc__beta_ppf_types[2] = <char>NPY_FLOAT
- ufunc__beta_ppf_types[3] = <char>NPY_FLOAT
- ufunc__beta_ppf_types[4] = <char>NPY_DOUBLE
- ufunc__beta_ppf_types[5] = <char>NPY_DOUBLE
- ufunc__beta_ppf_types[6] = <char>NPY_DOUBLE
- ufunc__beta_ppf_types[7] = <char>NPY_DOUBLE
- ufunc__beta_ppf_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_beta_ppf_float
- ufunc__beta_ppf_ptr[2*0+1] = <void*>(<char*>"_beta_ppf")
- ufunc__beta_ppf_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_beta_ppf_double
- ufunc__beta_ppf_ptr[2*1+1] = <void*>(<char*>"_beta_ppf")
- ufunc__beta_ppf_data[0] = &ufunc__beta_ppf_ptr[2*0]
- ufunc__beta_ppf_data[1] = &ufunc__beta_ppf_ptr[2*1]
- _beta_ppf = np.PyUFunc_FromFuncAndData(ufunc__beta_ppf_loops, ufunc__beta_ppf_data, ufunc__beta_ppf_types, 2, 3, 1, 0, '_beta_ppf', ufunc__beta_ppf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__binom_cdf_loops[2]
- cdef void *ufunc__binom_cdf_ptr[4]
- cdef void *ufunc__binom_cdf_data[2]
- cdef char ufunc__binom_cdf_types[8]
- cdef char *ufunc__binom_cdf_doc = (
- "_binom_cdf(x, n, p)\n"
- "\n"
- "Cumulative density function of binomial distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Real-valued\n"
- "n : array_like\n"
- " Positive, integer-valued parameter\n"
- "p : array_like\n"
- " Positive, real-valued parameter\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__binom_cdf_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc__binom_cdf_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc__binom_cdf_types[0] = <char>NPY_FLOAT
- ufunc__binom_cdf_types[1] = <char>NPY_FLOAT
- ufunc__binom_cdf_types[2] = <char>NPY_FLOAT
- ufunc__binom_cdf_types[3] = <char>NPY_FLOAT
- ufunc__binom_cdf_types[4] = <char>NPY_DOUBLE
- ufunc__binom_cdf_types[5] = <char>NPY_DOUBLE
- ufunc__binom_cdf_types[6] = <char>NPY_DOUBLE
- ufunc__binom_cdf_types[7] = <char>NPY_DOUBLE
- ufunc__binom_cdf_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_binom_cdf_float
- ufunc__binom_cdf_ptr[2*0+1] = <void*>(<char*>"_binom_cdf")
- ufunc__binom_cdf_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_binom_cdf_double
- ufunc__binom_cdf_ptr[2*1+1] = <void*>(<char*>"_binom_cdf")
- ufunc__binom_cdf_data[0] = &ufunc__binom_cdf_ptr[2*0]
- ufunc__binom_cdf_data[1] = &ufunc__binom_cdf_ptr[2*1]
- _binom_cdf = np.PyUFunc_FromFuncAndData(ufunc__binom_cdf_loops, ufunc__binom_cdf_data, ufunc__binom_cdf_types, 2, 3, 1, 0, '_binom_cdf', ufunc__binom_cdf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__binom_isf_loops[2]
- cdef void *ufunc__binom_isf_ptr[4]
- cdef void *ufunc__binom_isf_data[2]
- cdef char ufunc__binom_isf_types[8]
- cdef char *ufunc__binom_isf_doc = (
- "_binom_isf(x, n, p)\n"
- "\n"
- "Inverse survival function of binomial distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Real-valued\n"
- "n : array_like\n"
- " Positive, integer-valued parameter\n"
- "p : array_like\n"
- " Positive, real-valued parameter\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__binom_isf_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc__binom_isf_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc__binom_isf_types[0] = <char>NPY_FLOAT
- ufunc__binom_isf_types[1] = <char>NPY_FLOAT
- ufunc__binom_isf_types[2] = <char>NPY_FLOAT
- ufunc__binom_isf_types[3] = <char>NPY_FLOAT
- ufunc__binom_isf_types[4] = <char>NPY_DOUBLE
- ufunc__binom_isf_types[5] = <char>NPY_DOUBLE
- ufunc__binom_isf_types[6] = <char>NPY_DOUBLE
- ufunc__binom_isf_types[7] = <char>NPY_DOUBLE
- ufunc__binom_isf_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_binom_isf_float
- ufunc__binom_isf_ptr[2*0+1] = <void*>(<char*>"_binom_isf")
- ufunc__binom_isf_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_binom_isf_double
- ufunc__binom_isf_ptr[2*1+1] = <void*>(<char*>"_binom_isf")
- ufunc__binom_isf_data[0] = &ufunc__binom_isf_ptr[2*0]
- ufunc__binom_isf_data[1] = &ufunc__binom_isf_ptr[2*1]
- _binom_isf = np.PyUFunc_FromFuncAndData(ufunc__binom_isf_loops, ufunc__binom_isf_data, ufunc__binom_isf_types, 2, 3, 1, 0, '_binom_isf', ufunc__binom_isf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__binom_pmf_loops[2]
- cdef void *ufunc__binom_pmf_ptr[4]
- cdef void *ufunc__binom_pmf_data[2]
- cdef char ufunc__binom_pmf_types[8]
- cdef char *ufunc__binom_pmf_doc = (
- "_binom_pmf(x, n, p)\n"
- "\n"
- "Probability mass function of binomial distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Real-valued\n"
- "n : array_like\n"
- " Positive, integer-valued parameter\n"
- "p : array_like\n"
- " Positive, real-valued parameter\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__binom_pmf_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc__binom_pmf_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc__binom_pmf_types[0] = <char>NPY_FLOAT
- ufunc__binom_pmf_types[1] = <char>NPY_FLOAT
- ufunc__binom_pmf_types[2] = <char>NPY_FLOAT
- ufunc__binom_pmf_types[3] = <char>NPY_FLOAT
- ufunc__binom_pmf_types[4] = <char>NPY_DOUBLE
- ufunc__binom_pmf_types[5] = <char>NPY_DOUBLE
- ufunc__binom_pmf_types[6] = <char>NPY_DOUBLE
- ufunc__binom_pmf_types[7] = <char>NPY_DOUBLE
- ufunc__binom_pmf_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_binom_pmf_float
- ufunc__binom_pmf_ptr[2*0+1] = <void*>(<char*>"_binom_pmf")
- ufunc__binom_pmf_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_binom_pmf_double
- ufunc__binom_pmf_ptr[2*1+1] = <void*>(<char*>"_binom_pmf")
- ufunc__binom_pmf_data[0] = &ufunc__binom_pmf_ptr[2*0]
- ufunc__binom_pmf_data[1] = &ufunc__binom_pmf_ptr[2*1]
- _binom_pmf = np.PyUFunc_FromFuncAndData(ufunc__binom_pmf_loops, ufunc__binom_pmf_data, ufunc__binom_pmf_types, 2, 3, 1, 0, '_binom_pmf', ufunc__binom_pmf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__binom_ppf_loops[2]
- cdef void *ufunc__binom_ppf_ptr[4]
- cdef void *ufunc__binom_ppf_data[2]
- cdef char ufunc__binom_ppf_types[8]
- cdef char *ufunc__binom_ppf_doc = (
- "_binom_ppf(x, n, p)\n"
- "\n"
- "Percent point function of binomial distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Real-valued\n"
- "n : array_like\n"
- " Positive, integer-valued parameter\n"
- "p : array_like\n"
- " Positive, real-valued parameter\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__binom_ppf_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc__binom_ppf_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc__binom_ppf_types[0] = <char>NPY_FLOAT
- ufunc__binom_ppf_types[1] = <char>NPY_FLOAT
- ufunc__binom_ppf_types[2] = <char>NPY_FLOAT
- ufunc__binom_ppf_types[3] = <char>NPY_FLOAT
- ufunc__binom_ppf_types[4] = <char>NPY_DOUBLE
- ufunc__binom_ppf_types[5] = <char>NPY_DOUBLE
- ufunc__binom_ppf_types[6] = <char>NPY_DOUBLE
- ufunc__binom_ppf_types[7] = <char>NPY_DOUBLE
- ufunc__binom_ppf_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_binom_ppf_float
- ufunc__binom_ppf_ptr[2*0+1] = <void*>(<char*>"_binom_ppf")
- ufunc__binom_ppf_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_binom_ppf_double
- ufunc__binom_ppf_ptr[2*1+1] = <void*>(<char*>"_binom_ppf")
- ufunc__binom_ppf_data[0] = &ufunc__binom_ppf_ptr[2*0]
- ufunc__binom_ppf_data[1] = &ufunc__binom_ppf_ptr[2*1]
- _binom_ppf = np.PyUFunc_FromFuncAndData(ufunc__binom_ppf_loops, ufunc__binom_ppf_data, ufunc__binom_ppf_types, 2, 3, 1, 0, '_binom_ppf', ufunc__binom_ppf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__binom_sf_loops[2]
- cdef void *ufunc__binom_sf_ptr[4]
- cdef void *ufunc__binom_sf_data[2]
- cdef char ufunc__binom_sf_types[8]
- cdef char *ufunc__binom_sf_doc = (
- "_binom_sf(x, n, p)\n"
- "\n"
- "Survival function of binomial distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Real-valued\n"
- "n : array_like\n"
- " Positive, integer-valued parameter\n"
- "p : array_like\n"
- " Positive, real-valued parameter\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__binom_sf_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc__binom_sf_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc__binom_sf_types[0] = <char>NPY_FLOAT
- ufunc__binom_sf_types[1] = <char>NPY_FLOAT
- ufunc__binom_sf_types[2] = <char>NPY_FLOAT
- ufunc__binom_sf_types[3] = <char>NPY_FLOAT
- ufunc__binom_sf_types[4] = <char>NPY_DOUBLE
- ufunc__binom_sf_types[5] = <char>NPY_DOUBLE
- ufunc__binom_sf_types[6] = <char>NPY_DOUBLE
- ufunc__binom_sf_types[7] = <char>NPY_DOUBLE
- ufunc__binom_sf_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_binom_sf_float
- ufunc__binom_sf_ptr[2*0+1] = <void*>(<char*>"_binom_sf")
- ufunc__binom_sf_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_binom_sf_double
- ufunc__binom_sf_ptr[2*1+1] = <void*>(<char*>"_binom_sf")
- ufunc__binom_sf_data[0] = &ufunc__binom_sf_ptr[2*0]
- ufunc__binom_sf_data[1] = &ufunc__binom_sf_ptr[2*1]
- _binom_sf = np.PyUFunc_FromFuncAndData(ufunc__binom_sf_loops, ufunc__binom_sf_data, ufunc__binom_sf_types, 2, 3, 1, 0, '_binom_sf', ufunc__binom_sf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__cauchy_isf_loops[2]
- cdef void *ufunc__cauchy_isf_ptr[4]
- cdef void *ufunc__cauchy_isf_data[2]
- cdef char ufunc__cauchy_isf_types[8]
- cdef char *ufunc__cauchy_isf_doc = (
- "_cauchy_isf(p, loc, scale)\n"
- "\n"
- "Inverse survival function of the Cauchy distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "p : array_like\n"
- " Probabilities\n"
- "loc : array_like\n"
- " Location parameter of the distribution.\n"
- "scale : array_like\n"
- " Scale parameter of the distribution.\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__cauchy_isf_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc__cauchy_isf_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc__cauchy_isf_types[0] = <char>NPY_FLOAT
- ufunc__cauchy_isf_types[1] = <char>NPY_FLOAT
- ufunc__cauchy_isf_types[2] = <char>NPY_FLOAT
- ufunc__cauchy_isf_types[3] = <char>NPY_FLOAT
- ufunc__cauchy_isf_types[4] = <char>NPY_DOUBLE
- ufunc__cauchy_isf_types[5] = <char>NPY_DOUBLE
- ufunc__cauchy_isf_types[6] = <char>NPY_DOUBLE
- ufunc__cauchy_isf_types[7] = <char>NPY_DOUBLE
- ufunc__cauchy_isf_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_cauchy_isf_float
- ufunc__cauchy_isf_ptr[2*0+1] = <void*>(<char*>"_cauchy_isf")
- ufunc__cauchy_isf_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_cauchy_isf_double
- ufunc__cauchy_isf_ptr[2*1+1] = <void*>(<char*>"_cauchy_isf")
- ufunc__cauchy_isf_data[0] = &ufunc__cauchy_isf_ptr[2*0]
- ufunc__cauchy_isf_data[1] = &ufunc__cauchy_isf_ptr[2*1]
- _cauchy_isf = np.PyUFunc_FromFuncAndData(ufunc__cauchy_isf_loops, ufunc__cauchy_isf_data, ufunc__cauchy_isf_types, 2, 3, 1, 0, '_cauchy_isf', ufunc__cauchy_isf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__cauchy_ppf_loops[2]
- cdef void *ufunc__cauchy_ppf_ptr[4]
- cdef void *ufunc__cauchy_ppf_data[2]
- cdef char ufunc__cauchy_ppf_types[8]
- cdef char *ufunc__cauchy_ppf_doc = (
- "_cauchy_ppf(p, loc, scale)\n"
- "\n"
- "Percent point function (i.e. quantile) of the Cauchy distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "p : array_like\n"
- " Probabilities\n"
- "loc : array_like\n"
- " Location parameter of the distribution.\n"
- "scale : array_like\n"
- " Scale parameter of the distribution.\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__cauchy_ppf_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc__cauchy_ppf_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc__cauchy_ppf_types[0] = <char>NPY_FLOAT
- ufunc__cauchy_ppf_types[1] = <char>NPY_FLOAT
- ufunc__cauchy_ppf_types[2] = <char>NPY_FLOAT
- ufunc__cauchy_ppf_types[3] = <char>NPY_FLOAT
- ufunc__cauchy_ppf_types[4] = <char>NPY_DOUBLE
- ufunc__cauchy_ppf_types[5] = <char>NPY_DOUBLE
- ufunc__cauchy_ppf_types[6] = <char>NPY_DOUBLE
- ufunc__cauchy_ppf_types[7] = <char>NPY_DOUBLE
- ufunc__cauchy_ppf_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_cauchy_ppf_float
- ufunc__cauchy_ppf_ptr[2*0+1] = <void*>(<char*>"_cauchy_ppf")
- ufunc__cauchy_ppf_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_cauchy_ppf_double
- ufunc__cauchy_ppf_ptr[2*1+1] = <void*>(<char*>"_cauchy_ppf")
- ufunc__cauchy_ppf_data[0] = &ufunc__cauchy_ppf_ptr[2*0]
- ufunc__cauchy_ppf_data[1] = &ufunc__cauchy_ppf_ptr[2*1]
- _cauchy_ppf = np.PyUFunc_FromFuncAndData(ufunc__cauchy_ppf_loops, ufunc__cauchy_ppf_data, ufunc__cauchy_ppf_types, 2, 3, 1, 0, '_cauchy_ppf', ufunc__cauchy_ppf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__cosine_cdf_loops[2]
- cdef void *ufunc__cosine_cdf_ptr[4]
- cdef void *ufunc__cosine_cdf_data[2]
- cdef char ufunc__cosine_cdf_types[4]
- cdef char *ufunc__cosine_cdf_doc = (
- "_cosine_cdf(x)\n"
- "\n"
- "Cumulative distribution function (CDF) of the cosine distribution::\n"
- "\n"
- " { 0, x < -pi\n"
- " cdf(x) = { (pi + x + sin(x))/(2*pi), -pi <= x <= pi\n"
- " { 1, x > pi\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " `x` must contain real numbers.\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray\n"
- " The cosine distribution CDF evaluated at `x`.")
- ufunc__cosine_cdf_loops[0] = <np.PyUFuncGenericFunction>loop_d_d__As_f_f
- ufunc__cosine_cdf_loops[1] = <np.PyUFuncGenericFunction>loop_d_d__As_d_d
- ufunc__cosine_cdf_types[0] = <char>NPY_FLOAT
- ufunc__cosine_cdf_types[1] = <char>NPY_FLOAT
- ufunc__cosine_cdf_types[2] = <char>NPY_DOUBLE
- ufunc__cosine_cdf_types[3] = <char>NPY_DOUBLE
- ufunc__cosine_cdf_ptr[2*0] = <void*>_func_cosine_cdf
- ufunc__cosine_cdf_ptr[2*0+1] = <void*>(<char*>"_cosine_cdf")
- ufunc__cosine_cdf_ptr[2*1] = <void*>_func_cosine_cdf
- ufunc__cosine_cdf_ptr[2*1+1] = <void*>(<char*>"_cosine_cdf")
- ufunc__cosine_cdf_data[0] = &ufunc__cosine_cdf_ptr[2*0]
- ufunc__cosine_cdf_data[1] = &ufunc__cosine_cdf_ptr[2*1]
- _cosine_cdf = np.PyUFunc_FromFuncAndData(ufunc__cosine_cdf_loops, ufunc__cosine_cdf_data, ufunc__cosine_cdf_types, 2, 1, 1, 0, '_cosine_cdf', ufunc__cosine_cdf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__cosine_invcdf_loops[2]
- cdef void *ufunc__cosine_invcdf_ptr[4]
- cdef void *ufunc__cosine_invcdf_data[2]
- cdef char ufunc__cosine_invcdf_types[4]
- cdef char *ufunc__cosine_invcdf_doc = (
- "_cosine_invcdf(p)\n"
- "\n"
- "Inverse of the cumulative distribution function (CDF) of the cosine\n"
- "distribution.\n"
- "\n"
- "The CDF of the cosine distribution is::\n"
- "\n"
- " cdf(x) = (pi + x + sin(x))/(2*pi)\n"
- "\n"
- "This function computes the inverse of cdf(x).\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "p : array_like\n"
- " `p` must contain real numbers in the interval ``0 <= p <= 1``.\n"
- " `nan` is returned for values of `p` outside the interval [0, 1].\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray\n"
- " The inverse of the cosine distribution CDF evaluated at `p`.")
- ufunc__cosine_invcdf_loops[0] = <np.PyUFuncGenericFunction>loop_d_d__As_f_f
- ufunc__cosine_invcdf_loops[1] = <np.PyUFuncGenericFunction>loop_d_d__As_d_d
- ufunc__cosine_invcdf_types[0] = <char>NPY_FLOAT
- ufunc__cosine_invcdf_types[1] = <char>NPY_FLOAT
- ufunc__cosine_invcdf_types[2] = <char>NPY_DOUBLE
- ufunc__cosine_invcdf_types[3] = <char>NPY_DOUBLE
- ufunc__cosine_invcdf_ptr[2*0] = <void*>_func_cosine_invcdf
- ufunc__cosine_invcdf_ptr[2*0+1] = <void*>(<char*>"_cosine_invcdf")
- ufunc__cosine_invcdf_ptr[2*1] = <void*>_func_cosine_invcdf
- ufunc__cosine_invcdf_ptr[2*1+1] = <void*>(<char*>"_cosine_invcdf")
- ufunc__cosine_invcdf_data[0] = &ufunc__cosine_invcdf_ptr[2*0]
- ufunc__cosine_invcdf_data[1] = &ufunc__cosine_invcdf_ptr[2*1]
- _cosine_invcdf = np.PyUFunc_FromFuncAndData(ufunc__cosine_invcdf_loops, ufunc__cosine_invcdf_data, ufunc__cosine_invcdf_types, 2, 1, 1, 0, '_cosine_invcdf', ufunc__cosine_invcdf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__ellip_harm_loops[3]
- cdef void *ufunc__ellip_harm_ptr[6]
- cdef void *ufunc__ellip_harm_data[3]
- cdef char ufunc__ellip_harm_types[24]
- cdef char *ufunc__ellip_harm_doc = (
- "Internal function, use `ellip_harm` instead.")
- ufunc__ellip_harm_loops[0] = <np.PyUFuncGenericFunction>loop_d_ddddddd__As_fffffff_f
- ufunc__ellip_harm_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddiiddd__As_ddllddd_d
- ufunc__ellip_harm_loops[2] = <np.PyUFuncGenericFunction>loop_d_ddddddd__As_ddddddd_d
- ufunc__ellip_harm_types[0] = <char>NPY_FLOAT
- ufunc__ellip_harm_types[1] = <char>NPY_FLOAT
- ufunc__ellip_harm_types[2] = <char>NPY_FLOAT
- ufunc__ellip_harm_types[3] = <char>NPY_FLOAT
- ufunc__ellip_harm_types[4] = <char>NPY_FLOAT
- ufunc__ellip_harm_types[5] = <char>NPY_FLOAT
- ufunc__ellip_harm_types[6] = <char>NPY_FLOAT
- ufunc__ellip_harm_types[7] = <char>NPY_FLOAT
- ufunc__ellip_harm_types[8] = <char>NPY_DOUBLE
- ufunc__ellip_harm_types[9] = <char>NPY_DOUBLE
- ufunc__ellip_harm_types[10] = <char>NPY_LONG
- ufunc__ellip_harm_types[11] = <char>NPY_LONG
- ufunc__ellip_harm_types[12] = <char>NPY_DOUBLE
- ufunc__ellip_harm_types[13] = <char>NPY_DOUBLE
- ufunc__ellip_harm_types[14] = <char>NPY_DOUBLE
- ufunc__ellip_harm_types[15] = <char>NPY_DOUBLE
- ufunc__ellip_harm_types[16] = <char>NPY_DOUBLE
- ufunc__ellip_harm_types[17] = <char>NPY_DOUBLE
- ufunc__ellip_harm_types[18] = <char>NPY_DOUBLE
- ufunc__ellip_harm_types[19] = <char>NPY_DOUBLE
- ufunc__ellip_harm_types[20] = <char>NPY_DOUBLE
- ufunc__ellip_harm_types[21] = <char>NPY_DOUBLE
- ufunc__ellip_harm_types[22] = <char>NPY_DOUBLE
- ufunc__ellip_harm_types[23] = <char>NPY_DOUBLE
- ufunc__ellip_harm_ptr[2*0] = <void*>_func_ellip_harmonic_unsafe
- ufunc__ellip_harm_ptr[2*0+1] = <void*>(<char*>"_ellip_harm")
- ufunc__ellip_harm_ptr[2*1] = <void*>_func_ellip_harmonic
- ufunc__ellip_harm_ptr[2*1+1] = <void*>(<char*>"_ellip_harm")
- ufunc__ellip_harm_ptr[2*2] = <void*>_func_ellip_harmonic_unsafe
- ufunc__ellip_harm_ptr[2*2+1] = <void*>(<char*>"_ellip_harm")
- ufunc__ellip_harm_data[0] = &ufunc__ellip_harm_ptr[2*0]
- ufunc__ellip_harm_data[1] = &ufunc__ellip_harm_ptr[2*1]
- ufunc__ellip_harm_data[2] = &ufunc__ellip_harm_ptr[2*2]
- _ellip_harm = np.PyUFunc_FromFuncAndData(ufunc__ellip_harm_loops, ufunc__ellip_harm_data, ufunc__ellip_harm_types, 3, 7, 1, 0, '_ellip_harm', ufunc__ellip_harm_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__factorial_loops[2]
- cdef void *ufunc__factorial_ptr[4]
- cdef void *ufunc__factorial_data[2]
- cdef char ufunc__factorial_types[4]
- cdef char *ufunc__factorial_doc = (
- "Internal function, do not use.")
- ufunc__factorial_loops[0] = <np.PyUFuncGenericFunction>loop_d_d__As_f_f
- ufunc__factorial_loops[1] = <np.PyUFuncGenericFunction>loop_d_d__As_d_d
- ufunc__factorial_types[0] = <char>NPY_FLOAT
- ufunc__factorial_types[1] = <char>NPY_FLOAT
- ufunc__factorial_types[2] = <char>NPY_DOUBLE
- ufunc__factorial_types[3] = <char>NPY_DOUBLE
- ufunc__factorial_ptr[2*0] = <void*>_func__factorial
- ufunc__factorial_ptr[2*0+1] = <void*>(<char*>"_factorial")
- ufunc__factorial_ptr[2*1] = <void*>_func__factorial
- ufunc__factorial_ptr[2*1+1] = <void*>(<char*>"_factorial")
- ufunc__factorial_data[0] = &ufunc__factorial_ptr[2*0]
- ufunc__factorial_data[1] = &ufunc__factorial_ptr[2*1]
- _factorial = np.PyUFunc_FromFuncAndData(ufunc__factorial_loops, ufunc__factorial_data, ufunc__factorial_types, 2, 1, 1, 0, '_factorial', ufunc__factorial_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__hypergeom_cdf_loops[2]
- cdef void *ufunc__hypergeom_cdf_ptr[4]
- cdef void *ufunc__hypergeom_cdf_data[2]
- cdef char ufunc__hypergeom_cdf_types[10]
- cdef char *ufunc__hypergeom_cdf_doc = (
- "_hypergeom_cdf(x, r, N, M)\n"
- "\n"
- "Cumulative density function of hypergeometric distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Real-valued\n"
- "r, N, M : array_like\n"
- " Positive, integer-valued parameter\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__hypergeom_cdf_loops[0] = <np.PyUFuncGenericFunction>loop_f_ffff__As_ffff_f
- ufunc__hypergeom_cdf_loops[1] = <np.PyUFuncGenericFunction>loop_d_dddd__As_dddd_d
- ufunc__hypergeom_cdf_types[0] = <char>NPY_FLOAT
- ufunc__hypergeom_cdf_types[1] = <char>NPY_FLOAT
- ufunc__hypergeom_cdf_types[2] = <char>NPY_FLOAT
- ufunc__hypergeom_cdf_types[3] = <char>NPY_FLOAT
- ufunc__hypergeom_cdf_types[4] = <char>NPY_FLOAT
- ufunc__hypergeom_cdf_types[5] = <char>NPY_DOUBLE
- ufunc__hypergeom_cdf_types[6] = <char>NPY_DOUBLE
- ufunc__hypergeom_cdf_types[7] = <char>NPY_DOUBLE
- ufunc__hypergeom_cdf_types[8] = <char>NPY_DOUBLE
- ufunc__hypergeom_cdf_types[9] = <char>NPY_DOUBLE
- ufunc__hypergeom_cdf_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_hypergeom_cdf_float
- ufunc__hypergeom_cdf_ptr[2*0+1] = <void*>(<char*>"_hypergeom_cdf")
- ufunc__hypergeom_cdf_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_hypergeom_cdf_double
- ufunc__hypergeom_cdf_ptr[2*1+1] = <void*>(<char*>"_hypergeom_cdf")
- ufunc__hypergeom_cdf_data[0] = &ufunc__hypergeom_cdf_ptr[2*0]
- ufunc__hypergeom_cdf_data[1] = &ufunc__hypergeom_cdf_ptr[2*1]
- _hypergeom_cdf = np.PyUFunc_FromFuncAndData(ufunc__hypergeom_cdf_loops, ufunc__hypergeom_cdf_data, ufunc__hypergeom_cdf_types, 2, 4, 1, 0, '_hypergeom_cdf', ufunc__hypergeom_cdf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__hypergeom_mean_loops[2]
- cdef void *ufunc__hypergeom_mean_ptr[4]
- cdef void *ufunc__hypergeom_mean_data[2]
- cdef char ufunc__hypergeom_mean_types[8]
- cdef char *ufunc__hypergeom_mean_doc = (
- "_hypergeom_mean(r, N, M)\n"
- "\n"
- "Mean of hypergeometric distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "r, N, M : array_like\n"
- " Positive, integer-valued parameter\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__hypergeom_mean_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc__hypergeom_mean_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc__hypergeom_mean_types[0] = <char>NPY_FLOAT
- ufunc__hypergeom_mean_types[1] = <char>NPY_FLOAT
- ufunc__hypergeom_mean_types[2] = <char>NPY_FLOAT
- ufunc__hypergeom_mean_types[3] = <char>NPY_FLOAT
- ufunc__hypergeom_mean_types[4] = <char>NPY_DOUBLE
- ufunc__hypergeom_mean_types[5] = <char>NPY_DOUBLE
- ufunc__hypergeom_mean_types[6] = <char>NPY_DOUBLE
- ufunc__hypergeom_mean_types[7] = <char>NPY_DOUBLE
- ufunc__hypergeom_mean_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_hypergeom_mean_float
- ufunc__hypergeom_mean_ptr[2*0+1] = <void*>(<char*>"_hypergeom_mean")
- ufunc__hypergeom_mean_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_hypergeom_mean_double
- ufunc__hypergeom_mean_ptr[2*1+1] = <void*>(<char*>"_hypergeom_mean")
- ufunc__hypergeom_mean_data[0] = &ufunc__hypergeom_mean_ptr[2*0]
- ufunc__hypergeom_mean_data[1] = &ufunc__hypergeom_mean_ptr[2*1]
- _hypergeom_mean = np.PyUFunc_FromFuncAndData(ufunc__hypergeom_mean_loops, ufunc__hypergeom_mean_data, ufunc__hypergeom_mean_types, 2, 3, 1, 0, '_hypergeom_mean', ufunc__hypergeom_mean_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__hypergeom_pmf_loops[2]
- cdef void *ufunc__hypergeom_pmf_ptr[4]
- cdef void *ufunc__hypergeom_pmf_data[2]
- cdef char ufunc__hypergeom_pmf_types[10]
- cdef char *ufunc__hypergeom_pmf_doc = (
- "_hypergeom_pmf(x, r, N, M)\n"
- "\n"
- "Probability mass function of hypergeometric distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Real-valued\n"
- "r, N, M : array_like\n"
- " Positive, integer-valued parameter\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__hypergeom_pmf_loops[0] = <np.PyUFuncGenericFunction>loop_f_ffff__As_ffff_f
- ufunc__hypergeom_pmf_loops[1] = <np.PyUFuncGenericFunction>loop_d_dddd__As_dddd_d
- ufunc__hypergeom_pmf_types[0] = <char>NPY_FLOAT
- ufunc__hypergeom_pmf_types[1] = <char>NPY_FLOAT
- ufunc__hypergeom_pmf_types[2] = <char>NPY_FLOAT
- ufunc__hypergeom_pmf_types[3] = <char>NPY_FLOAT
- ufunc__hypergeom_pmf_types[4] = <char>NPY_FLOAT
- ufunc__hypergeom_pmf_types[5] = <char>NPY_DOUBLE
- ufunc__hypergeom_pmf_types[6] = <char>NPY_DOUBLE
- ufunc__hypergeom_pmf_types[7] = <char>NPY_DOUBLE
- ufunc__hypergeom_pmf_types[8] = <char>NPY_DOUBLE
- ufunc__hypergeom_pmf_types[9] = <char>NPY_DOUBLE
- ufunc__hypergeom_pmf_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_hypergeom_pmf_float
- ufunc__hypergeom_pmf_ptr[2*0+1] = <void*>(<char*>"_hypergeom_pmf")
- ufunc__hypergeom_pmf_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_hypergeom_pmf_double
- ufunc__hypergeom_pmf_ptr[2*1+1] = <void*>(<char*>"_hypergeom_pmf")
- ufunc__hypergeom_pmf_data[0] = &ufunc__hypergeom_pmf_ptr[2*0]
- ufunc__hypergeom_pmf_data[1] = &ufunc__hypergeom_pmf_ptr[2*1]
- _hypergeom_pmf = np.PyUFunc_FromFuncAndData(ufunc__hypergeom_pmf_loops, ufunc__hypergeom_pmf_data, ufunc__hypergeom_pmf_types, 2, 4, 1, 0, '_hypergeom_pmf', ufunc__hypergeom_pmf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__hypergeom_sf_loops[2]
- cdef void *ufunc__hypergeom_sf_ptr[4]
- cdef void *ufunc__hypergeom_sf_data[2]
- cdef char ufunc__hypergeom_sf_types[10]
- cdef char *ufunc__hypergeom_sf_doc = (
- "_hypergeom_sf(x, r, N, M)\n"
- "\n"
- "Survival function of hypergeometric distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Real-valued\n"
- "r, N, M : array_like\n"
- " Positive, integer-valued parameter\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__hypergeom_sf_loops[0] = <np.PyUFuncGenericFunction>loop_f_ffff__As_ffff_f
- ufunc__hypergeom_sf_loops[1] = <np.PyUFuncGenericFunction>loop_d_dddd__As_dddd_d
- ufunc__hypergeom_sf_types[0] = <char>NPY_FLOAT
- ufunc__hypergeom_sf_types[1] = <char>NPY_FLOAT
- ufunc__hypergeom_sf_types[2] = <char>NPY_FLOAT
- ufunc__hypergeom_sf_types[3] = <char>NPY_FLOAT
- ufunc__hypergeom_sf_types[4] = <char>NPY_FLOAT
- ufunc__hypergeom_sf_types[5] = <char>NPY_DOUBLE
- ufunc__hypergeom_sf_types[6] = <char>NPY_DOUBLE
- ufunc__hypergeom_sf_types[7] = <char>NPY_DOUBLE
- ufunc__hypergeom_sf_types[8] = <char>NPY_DOUBLE
- ufunc__hypergeom_sf_types[9] = <char>NPY_DOUBLE
- ufunc__hypergeom_sf_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_hypergeom_sf_float
- ufunc__hypergeom_sf_ptr[2*0+1] = <void*>(<char*>"_hypergeom_sf")
- ufunc__hypergeom_sf_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_hypergeom_sf_double
- ufunc__hypergeom_sf_ptr[2*1+1] = <void*>(<char*>"_hypergeom_sf")
- ufunc__hypergeom_sf_data[0] = &ufunc__hypergeom_sf_ptr[2*0]
- ufunc__hypergeom_sf_data[1] = &ufunc__hypergeom_sf_ptr[2*1]
- _hypergeom_sf = np.PyUFunc_FromFuncAndData(ufunc__hypergeom_sf_loops, ufunc__hypergeom_sf_data, ufunc__hypergeom_sf_types, 2, 4, 1, 0, '_hypergeom_sf', ufunc__hypergeom_sf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__hypergeom_skewness_loops[2]
- cdef void *ufunc__hypergeom_skewness_ptr[4]
- cdef void *ufunc__hypergeom_skewness_data[2]
- cdef char ufunc__hypergeom_skewness_types[8]
- cdef char *ufunc__hypergeom_skewness_doc = (
- "_hypergeom_skewness(r, N, M)\n"
- "\n"
- "Skewness of hypergeometric distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "r, N, M : array_like\n"
- " Positive, integer-valued parameter\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__hypergeom_skewness_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc__hypergeom_skewness_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc__hypergeom_skewness_types[0] = <char>NPY_FLOAT
- ufunc__hypergeom_skewness_types[1] = <char>NPY_FLOAT
- ufunc__hypergeom_skewness_types[2] = <char>NPY_FLOAT
- ufunc__hypergeom_skewness_types[3] = <char>NPY_FLOAT
- ufunc__hypergeom_skewness_types[4] = <char>NPY_DOUBLE
- ufunc__hypergeom_skewness_types[5] = <char>NPY_DOUBLE
- ufunc__hypergeom_skewness_types[6] = <char>NPY_DOUBLE
- ufunc__hypergeom_skewness_types[7] = <char>NPY_DOUBLE
- ufunc__hypergeom_skewness_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_hypergeom_skewness_float
- ufunc__hypergeom_skewness_ptr[2*0+1] = <void*>(<char*>"_hypergeom_skewness")
- ufunc__hypergeom_skewness_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_hypergeom_skewness_double
- ufunc__hypergeom_skewness_ptr[2*1+1] = <void*>(<char*>"_hypergeom_skewness")
- ufunc__hypergeom_skewness_data[0] = &ufunc__hypergeom_skewness_ptr[2*0]
- ufunc__hypergeom_skewness_data[1] = &ufunc__hypergeom_skewness_ptr[2*1]
- _hypergeom_skewness = np.PyUFunc_FromFuncAndData(ufunc__hypergeom_skewness_loops, ufunc__hypergeom_skewness_data, ufunc__hypergeom_skewness_types, 2, 3, 1, 0, '_hypergeom_skewness', ufunc__hypergeom_skewness_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__hypergeom_variance_loops[2]
- cdef void *ufunc__hypergeom_variance_ptr[4]
- cdef void *ufunc__hypergeom_variance_data[2]
- cdef char ufunc__hypergeom_variance_types[8]
- cdef char *ufunc__hypergeom_variance_doc = (
- "_hypergeom_variance(r, N, M)\n"
- "\n"
- "Mean of hypergeometric distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "r, N, M : array_like\n"
- " Positive, integer-valued parameter\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__hypergeom_variance_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc__hypergeom_variance_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc__hypergeom_variance_types[0] = <char>NPY_FLOAT
- ufunc__hypergeom_variance_types[1] = <char>NPY_FLOAT
- ufunc__hypergeom_variance_types[2] = <char>NPY_FLOAT
- ufunc__hypergeom_variance_types[3] = <char>NPY_FLOAT
- ufunc__hypergeom_variance_types[4] = <char>NPY_DOUBLE
- ufunc__hypergeom_variance_types[5] = <char>NPY_DOUBLE
- ufunc__hypergeom_variance_types[6] = <char>NPY_DOUBLE
- ufunc__hypergeom_variance_types[7] = <char>NPY_DOUBLE
- ufunc__hypergeom_variance_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_hypergeom_variance_float
- ufunc__hypergeom_variance_ptr[2*0+1] = <void*>(<char*>"_hypergeom_variance")
- ufunc__hypergeom_variance_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_hypergeom_variance_double
- ufunc__hypergeom_variance_ptr[2*1+1] = <void*>(<char*>"_hypergeom_variance")
- ufunc__hypergeom_variance_data[0] = &ufunc__hypergeom_variance_ptr[2*0]
- ufunc__hypergeom_variance_data[1] = &ufunc__hypergeom_variance_ptr[2*1]
- _hypergeom_variance = np.PyUFunc_FromFuncAndData(ufunc__hypergeom_variance_loops, ufunc__hypergeom_variance_data, ufunc__hypergeom_variance_types, 2, 3, 1, 0, '_hypergeom_variance', ufunc__hypergeom_variance_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__igam_fac_loops[2]
- cdef void *ufunc__igam_fac_ptr[4]
- cdef void *ufunc__igam_fac_data[2]
- cdef char ufunc__igam_fac_types[6]
- cdef char *ufunc__igam_fac_doc = (
- "Internal function, do not use.")
- ufunc__igam_fac_loops[0] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc__igam_fac_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc__igam_fac_types[0] = <char>NPY_FLOAT
- ufunc__igam_fac_types[1] = <char>NPY_FLOAT
- ufunc__igam_fac_types[2] = <char>NPY_FLOAT
- ufunc__igam_fac_types[3] = <char>NPY_DOUBLE
- ufunc__igam_fac_types[4] = <char>NPY_DOUBLE
- ufunc__igam_fac_types[5] = <char>NPY_DOUBLE
- ufunc__igam_fac_ptr[2*0] = <void*>_func_cephes_igam_fac
- ufunc__igam_fac_ptr[2*0+1] = <void*>(<char*>"_igam_fac")
- ufunc__igam_fac_ptr[2*1] = <void*>_func_cephes_igam_fac
- ufunc__igam_fac_ptr[2*1+1] = <void*>(<char*>"_igam_fac")
- ufunc__igam_fac_data[0] = &ufunc__igam_fac_ptr[2*0]
- ufunc__igam_fac_data[1] = &ufunc__igam_fac_ptr[2*1]
- _igam_fac = np.PyUFunc_FromFuncAndData(ufunc__igam_fac_loops, ufunc__igam_fac_data, ufunc__igam_fac_types, 2, 2, 1, 0, '_igam_fac', ufunc__igam_fac_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__invgauss_isf_loops[2]
- cdef void *ufunc__invgauss_isf_ptr[4]
- cdef void *ufunc__invgauss_isf_data[2]
- cdef char ufunc__invgauss_isf_types[8]
- cdef char *ufunc__invgauss_isf_doc = (
- "_invgauss_isf(x, mu, s)\n"
- "\n"
- "Inverse survival function of inverse gaussian distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Positive real-valued\n"
- "mu : array_like\n"
- " Positive, real-valued parameters\n"
- "s : array_like\n"
- " Positive, real-valued parameters\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__invgauss_isf_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc__invgauss_isf_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc__invgauss_isf_types[0] = <char>NPY_FLOAT
- ufunc__invgauss_isf_types[1] = <char>NPY_FLOAT
- ufunc__invgauss_isf_types[2] = <char>NPY_FLOAT
- ufunc__invgauss_isf_types[3] = <char>NPY_FLOAT
- ufunc__invgauss_isf_types[4] = <char>NPY_DOUBLE
- ufunc__invgauss_isf_types[5] = <char>NPY_DOUBLE
- ufunc__invgauss_isf_types[6] = <char>NPY_DOUBLE
- ufunc__invgauss_isf_types[7] = <char>NPY_DOUBLE
- ufunc__invgauss_isf_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_invgauss_isf_float
- ufunc__invgauss_isf_ptr[2*0+1] = <void*>(<char*>"_invgauss_isf")
- ufunc__invgauss_isf_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_invgauss_isf_double
- ufunc__invgauss_isf_ptr[2*1+1] = <void*>(<char*>"_invgauss_isf")
- ufunc__invgauss_isf_data[0] = &ufunc__invgauss_isf_ptr[2*0]
- ufunc__invgauss_isf_data[1] = &ufunc__invgauss_isf_ptr[2*1]
- _invgauss_isf = np.PyUFunc_FromFuncAndData(ufunc__invgauss_isf_loops, ufunc__invgauss_isf_data, ufunc__invgauss_isf_types, 2, 3, 1, 0, '_invgauss_isf', ufunc__invgauss_isf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__invgauss_ppf_loops[2]
- cdef void *ufunc__invgauss_ppf_ptr[4]
- cdef void *ufunc__invgauss_ppf_data[2]
- cdef char ufunc__invgauss_ppf_types[8]
- cdef char *ufunc__invgauss_ppf_doc = (
- "_invgauss_ppf(x, mu)\n"
- "\n"
- "Percent point function of inverse gaussian distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Positive real-valued\n"
- "mu : array_like\n"
- " Positive, real-valued parameters\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__invgauss_ppf_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc__invgauss_ppf_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc__invgauss_ppf_types[0] = <char>NPY_FLOAT
- ufunc__invgauss_ppf_types[1] = <char>NPY_FLOAT
- ufunc__invgauss_ppf_types[2] = <char>NPY_FLOAT
- ufunc__invgauss_ppf_types[3] = <char>NPY_FLOAT
- ufunc__invgauss_ppf_types[4] = <char>NPY_DOUBLE
- ufunc__invgauss_ppf_types[5] = <char>NPY_DOUBLE
- ufunc__invgauss_ppf_types[6] = <char>NPY_DOUBLE
- ufunc__invgauss_ppf_types[7] = <char>NPY_DOUBLE
- ufunc__invgauss_ppf_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_invgauss_ppf_float
- ufunc__invgauss_ppf_ptr[2*0+1] = <void*>(<char*>"_invgauss_ppf")
- ufunc__invgauss_ppf_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_invgauss_ppf_double
- ufunc__invgauss_ppf_ptr[2*1+1] = <void*>(<char*>"_invgauss_ppf")
- ufunc__invgauss_ppf_data[0] = &ufunc__invgauss_ppf_ptr[2*0]
- ufunc__invgauss_ppf_data[1] = &ufunc__invgauss_ppf_ptr[2*1]
- _invgauss_ppf = np.PyUFunc_FromFuncAndData(ufunc__invgauss_ppf_loops, ufunc__invgauss_ppf_data, ufunc__invgauss_ppf_types, 2, 3, 1, 0, '_invgauss_ppf', ufunc__invgauss_ppf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__kolmogc_loops[2]
- cdef void *ufunc__kolmogc_ptr[4]
- cdef void *ufunc__kolmogc_data[2]
- cdef char ufunc__kolmogc_types[4]
- cdef char *ufunc__kolmogc_doc = (
- "Internal function, do not use.")
- ufunc__kolmogc_loops[0] = <np.PyUFuncGenericFunction>loop_d_d__As_f_f
- ufunc__kolmogc_loops[1] = <np.PyUFuncGenericFunction>loop_d_d__As_d_d
- ufunc__kolmogc_types[0] = <char>NPY_FLOAT
- ufunc__kolmogc_types[1] = <char>NPY_FLOAT
- ufunc__kolmogc_types[2] = <char>NPY_DOUBLE
- ufunc__kolmogc_types[3] = <char>NPY_DOUBLE
- ufunc__kolmogc_ptr[2*0] = <void*>_func_xsf_kolmogc
- ufunc__kolmogc_ptr[2*0+1] = <void*>(<char*>"_kolmogc")
- ufunc__kolmogc_ptr[2*1] = <void*>_func_xsf_kolmogc
- ufunc__kolmogc_ptr[2*1+1] = <void*>(<char*>"_kolmogc")
- ufunc__kolmogc_data[0] = &ufunc__kolmogc_ptr[2*0]
- ufunc__kolmogc_data[1] = &ufunc__kolmogc_ptr[2*1]
- _kolmogc = np.PyUFunc_FromFuncAndData(ufunc__kolmogc_loops, ufunc__kolmogc_data, ufunc__kolmogc_types, 2, 1, 1, 0, '_kolmogc', ufunc__kolmogc_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__kolmogci_loops[2]
- cdef void *ufunc__kolmogci_ptr[4]
- cdef void *ufunc__kolmogci_data[2]
- cdef char ufunc__kolmogci_types[4]
- cdef char *ufunc__kolmogci_doc = (
- "Internal function, do not use.")
- ufunc__kolmogci_loops[0] = <np.PyUFuncGenericFunction>loop_d_d__As_f_f
- ufunc__kolmogci_loops[1] = <np.PyUFuncGenericFunction>loop_d_d__As_d_d
- ufunc__kolmogci_types[0] = <char>NPY_FLOAT
- ufunc__kolmogci_types[1] = <char>NPY_FLOAT
- ufunc__kolmogci_types[2] = <char>NPY_DOUBLE
- ufunc__kolmogci_types[3] = <char>NPY_DOUBLE
- ufunc__kolmogci_ptr[2*0] = <void*>_func_xsf_kolmogci
- ufunc__kolmogci_ptr[2*0+1] = <void*>(<char*>"_kolmogci")
- ufunc__kolmogci_ptr[2*1] = <void*>_func_xsf_kolmogci
- ufunc__kolmogci_ptr[2*1+1] = <void*>(<char*>"_kolmogci")
- ufunc__kolmogci_data[0] = &ufunc__kolmogci_ptr[2*0]
- ufunc__kolmogci_data[1] = &ufunc__kolmogci_ptr[2*1]
- _kolmogci = np.PyUFunc_FromFuncAndData(ufunc__kolmogci_loops, ufunc__kolmogci_data, ufunc__kolmogci_types, 2, 1, 1, 0, '_kolmogci', ufunc__kolmogci_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__kolmogp_loops[2]
- cdef void *ufunc__kolmogp_ptr[4]
- cdef void *ufunc__kolmogp_data[2]
- cdef char ufunc__kolmogp_types[4]
- cdef char *ufunc__kolmogp_doc = (
- "Internal function, do not use.")
- ufunc__kolmogp_loops[0] = <np.PyUFuncGenericFunction>loop_d_d__As_f_f
- ufunc__kolmogp_loops[1] = <np.PyUFuncGenericFunction>loop_d_d__As_d_d
- ufunc__kolmogp_types[0] = <char>NPY_FLOAT
- ufunc__kolmogp_types[1] = <char>NPY_FLOAT
- ufunc__kolmogp_types[2] = <char>NPY_DOUBLE
- ufunc__kolmogp_types[3] = <char>NPY_DOUBLE
- ufunc__kolmogp_ptr[2*0] = <void*>_func_xsf_kolmogp
- ufunc__kolmogp_ptr[2*0+1] = <void*>(<char*>"_kolmogp")
- ufunc__kolmogp_ptr[2*1] = <void*>_func_xsf_kolmogp
- ufunc__kolmogp_ptr[2*1+1] = <void*>(<char*>"_kolmogp")
- ufunc__kolmogp_data[0] = &ufunc__kolmogp_ptr[2*0]
- ufunc__kolmogp_data[1] = &ufunc__kolmogp_ptr[2*1]
- _kolmogp = np.PyUFunc_FromFuncAndData(ufunc__kolmogp_loops, ufunc__kolmogp_data, ufunc__kolmogp_types, 2, 1, 1, 0, '_kolmogp', ufunc__kolmogp_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__lanczos_sum_expg_scaled_loops[2]
- cdef void *ufunc__lanczos_sum_expg_scaled_ptr[4]
- cdef void *ufunc__lanczos_sum_expg_scaled_data[2]
- cdef char ufunc__lanczos_sum_expg_scaled_types[4]
- cdef char *ufunc__lanczos_sum_expg_scaled_doc = (
- "Internal function, do not use.")
- ufunc__lanczos_sum_expg_scaled_loops[0] = <np.PyUFuncGenericFunction>loop_d_d__As_f_f
- ufunc__lanczos_sum_expg_scaled_loops[1] = <np.PyUFuncGenericFunction>loop_d_d__As_d_d
- ufunc__lanczos_sum_expg_scaled_types[0] = <char>NPY_FLOAT
- ufunc__lanczos_sum_expg_scaled_types[1] = <char>NPY_FLOAT
- ufunc__lanczos_sum_expg_scaled_types[2] = <char>NPY_DOUBLE
- ufunc__lanczos_sum_expg_scaled_types[3] = <char>NPY_DOUBLE
- ufunc__lanczos_sum_expg_scaled_ptr[2*0] = <void*>_func_cephes_lanczos_sum_expg_scaled
- ufunc__lanczos_sum_expg_scaled_ptr[2*0+1] = <void*>(<char*>"_lanczos_sum_expg_scaled")
- ufunc__lanczos_sum_expg_scaled_ptr[2*1] = <void*>_func_cephes_lanczos_sum_expg_scaled
- ufunc__lanczos_sum_expg_scaled_ptr[2*1+1] = <void*>(<char*>"_lanczos_sum_expg_scaled")
- ufunc__lanczos_sum_expg_scaled_data[0] = &ufunc__lanczos_sum_expg_scaled_ptr[2*0]
- ufunc__lanczos_sum_expg_scaled_data[1] = &ufunc__lanczos_sum_expg_scaled_ptr[2*1]
- _lanczos_sum_expg_scaled = np.PyUFunc_FromFuncAndData(ufunc__lanczos_sum_expg_scaled_loops, ufunc__lanczos_sum_expg_scaled_data, ufunc__lanczos_sum_expg_scaled_types, 2, 1, 1, 0, '_lanczos_sum_expg_scaled', ufunc__lanczos_sum_expg_scaled_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__landau_cdf_loops[2]
- cdef void *ufunc__landau_cdf_ptr[4]
- cdef void *ufunc__landau_cdf_data[2]
- cdef char ufunc__landau_cdf_types[8]
- cdef char *ufunc__landau_cdf_doc = (
- "_landau_cdf(x, loc, scale)\n"
- "\n"
- "Cumulative distribution function of the Landau distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Real-valued argument\n"
- "loc : array_like\n"
- " Real-valued distribution location\n"
- "scale : array_like\n"
- " Positive, real-valued distribution scale\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__landau_cdf_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc__landau_cdf_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc__landau_cdf_types[0] = <char>NPY_FLOAT
- ufunc__landau_cdf_types[1] = <char>NPY_FLOAT
- ufunc__landau_cdf_types[2] = <char>NPY_FLOAT
- ufunc__landau_cdf_types[3] = <char>NPY_FLOAT
- ufunc__landau_cdf_types[4] = <char>NPY_DOUBLE
- ufunc__landau_cdf_types[5] = <char>NPY_DOUBLE
- ufunc__landau_cdf_types[6] = <char>NPY_DOUBLE
- ufunc__landau_cdf_types[7] = <char>NPY_DOUBLE
- ufunc__landau_cdf_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_landau_cdf_float
- ufunc__landau_cdf_ptr[2*0+1] = <void*>(<char*>"_landau_cdf")
- ufunc__landau_cdf_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_landau_cdf_double
- ufunc__landau_cdf_ptr[2*1+1] = <void*>(<char*>"_landau_cdf")
- ufunc__landau_cdf_data[0] = &ufunc__landau_cdf_ptr[2*0]
- ufunc__landau_cdf_data[1] = &ufunc__landau_cdf_ptr[2*1]
- _landau_cdf = np.PyUFunc_FromFuncAndData(ufunc__landau_cdf_loops, ufunc__landau_cdf_data, ufunc__landau_cdf_types, 2, 3, 1, 0, '_landau_cdf', ufunc__landau_cdf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__landau_isf_loops[2]
- cdef void *ufunc__landau_isf_ptr[4]
- cdef void *ufunc__landau_isf_data[2]
- cdef char ufunc__landau_isf_types[8]
- cdef char *ufunc__landau_isf_doc = (
- "_landau_isf(p, loc, scale)\n"
- "\n"
- "Inverse survival function of the Landau distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "p : array_like\n"
- " Real-valued argument between 0 and 1\n"
- "loc : array_like\n"
- " Real-valued distribution location\n"
- "scale : array_like\n"
- " Positive, real-valued distribution scale\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__landau_isf_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc__landau_isf_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc__landau_isf_types[0] = <char>NPY_FLOAT
- ufunc__landau_isf_types[1] = <char>NPY_FLOAT
- ufunc__landau_isf_types[2] = <char>NPY_FLOAT
- ufunc__landau_isf_types[3] = <char>NPY_FLOAT
- ufunc__landau_isf_types[4] = <char>NPY_DOUBLE
- ufunc__landau_isf_types[5] = <char>NPY_DOUBLE
- ufunc__landau_isf_types[6] = <char>NPY_DOUBLE
- ufunc__landau_isf_types[7] = <char>NPY_DOUBLE
- ufunc__landau_isf_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_landau_isf_float
- ufunc__landau_isf_ptr[2*0+1] = <void*>(<char*>"_landau_isf")
- ufunc__landau_isf_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_landau_isf_double
- ufunc__landau_isf_ptr[2*1+1] = <void*>(<char*>"_landau_isf")
- ufunc__landau_isf_data[0] = &ufunc__landau_isf_ptr[2*0]
- ufunc__landau_isf_data[1] = &ufunc__landau_isf_ptr[2*1]
- _landau_isf = np.PyUFunc_FromFuncAndData(ufunc__landau_isf_loops, ufunc__landau_isf_data, ufunc__landau_isf_types, 2, 3, 1, 0, '_landau_isf', ufunc__landau_isf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__landau_pdf_loops[2]
- cdef void *ufunc__landau_pdf_ptr[4]
- cdef void *ufunc__landau_pdf_data[2]
- cdef char ufunc__landau_pdf_types[8]
- cdef char *ufunc__landau_pdf_doc = (
- "_landau_pdf(x, loc, scale)\n"
- "\n"
- "Probability density function of the Landau distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Real-valued argument\n"
- "loc : array_like\n"
- " Real-valued distribution location\n"
- "scale : array_like\n"
- " Positive, real-valued distribution scale\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__landau_pdf_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc__landau_pdf_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc__landau_pdf_types[0] = <char>NPY_FLOAT
- ufunc__landau_pdf_types[1] = <char>NPY_FLOAT
- ufunc__landau_pdf_types[2] = <char>NPY_FLOAT
- ufunc__landau_pdf_types[3] = <char>NPY_FLOAT
- ufunc__landau_pdf_types[4] = <char>NPY_DOUBLE
- ufunc__landau_pdf_types[5] = <char>NPY_DOUBLE
- ufunc__landau_pdf_types[6] = <char>NPY_DOUBLE
- ufunc__landau_pdf_types[7] = <char>NPY_DOUBLE
- ufunc__landau_pdf_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_landau_pdf_float
- ufunc__landau_pdf_ptr[2*0+1] = <void*>(<char*>"_landau_pdf")
- ufunc__landau_pdf_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_landau_pdf_double
- ufunc__landau_pdf_ptr[2*1+1] = <void*>(<char*>"_landau_pdf")
- ufunc__landau_pdf_data[0] = &ufunc__landau_pdf_ptr[2*0]
- ufunc__landau_pdf_data[1] = &ufunc__landau_pdf_ptr[2*1]
- _landau_pdf = np.PyUFunc_FromFuncAndData(ufunc__landau_pdf_loops, ufunc__landau_pdf_data, ufunc__landau_pdf_types, 2, 3, 1, 0, '_landau_pdf', ufunc__landau_pdf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__landau_ppf_loops[2]
- cdef void *ufunc__landau_ppf_ptr[4]
- cdef void *ufunc__landau_ppf_data[2]
- cdef char ufunc__landau_ppf_types[8]
- cdef char *ufunc__landau_ppf_doc = (
- "_landau_ppf(p, loc, scale)\n"
- "\n"
- "Percent point function of the Landau distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "p : array_like\n"
- " Real-valued argument between 0 and 1\n"
- "loc : array_like\n"
- " Real-valued distribution location\n"
- "scale : array_like\n"
- " Positive, real-valued distribution scale\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__landau_ppf_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc__landau_ppf_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc__landau_ppf_types[0] = <char>NPY_FLOAT
- ufunc__landau_ppf_types[1] = <char>NPY_FLOAT
- ufunc__landau_ppf_types[2] = <char>NPY_FLOAT
- ufunc__landau_ppf_types[3] = <char>NPY_FLOAT
- ufunc__landau_ppf_types[4] = <char>NPY_DOUBLE
- ufunc__landau_ppf_types[5] = <char>NPY_DOUBLE
- ufunc__landau_ppf_types[6] = <char>NPY_DOUBLE
- ufunc__landau_ppf_types[7] = <char>NPY_DOUBLE
- ufunc__landau_ppf_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_landau_ppf_float
- ufunc__landau_ppf_ptr[2*0+1] = <void*>(<char*>"_landau_ppf")
- ufunc__landau_ppf_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_landau_ppf_double
- ufunc__landau_ppf_ptr[2*1+1] = <void*>(<char*>"_landau_ppf")
- ufunc__landau_ppf_data[0] = &ufunc__landau_ppf_ptr[2*0]
- ufunc__landau_ppf_data[1] = &ufunc__landau_ppf_ptr[2*1]
- _landau_ppf = np.PyUFunc_FromFuncAndData(ufunc__landau_ppf_loops, ufunc__landau_ppf_data, ufunc__landau_ppf_types, 2, 3, 1, 0, '_landau_ppf', ufunc__landau_ppf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__landau_sf_loops[2]
- cdef void *ufunc__landau_sf_ptr[4]
- cdef void *ufunc__landau_sf_data[2]
- cdef char ufunc__landau_sf_types[8]
- cdef char *ufunc__landau_sf_doc = (
- "_landau_sf(x, loc, scale)\n"
- "\n"
- "Survival function of the Landau distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Real-valued argument\n"
- "loc : array_like\n"
- " Real-valued distribution location\n"
- "scale : array_like\n"
- " Positive, real-valued distribution scale\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__landau_sf_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc__landau_sf_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc__landau_sf_types[0] = <char>NPY_FLOAT
- ufunc__landau_sf_types[1] = <char>NPY_FLOAT
- ufunc__landau_sf_types[2] = <char>NPY_FLOAT
- ufunc__landau_sf_types[3] = <char>NPY_FLOAT
- ufunc__landau_sf_types[4] = <char>NPY_DOUBLE
- ufunc__landau_sf_types[5] = <char>NPY_DOUBLE
- ufunc__landau_sf_types[6] = <char>NPY_DOUBLE
- ufunc__landau_sf_types[7] = <char>NPY_DOUBLE
- ufunc__landau_sf_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_landau_sf_float
- ufunc__landau_sf_ptr[2*0+1] = <void*>(<char*>"_landau_sf")
- ufunc__landau_sf_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_landau_sf_double
- ufunc__landau_sf_ptr[2*1+1] = <void*>(<char*>"_landau_sf")
- ufunc__landau_sf_data[0] = &ufunc__landau_sf_ptr[2*0]
- ufunc__landau_sf_data[1] = &ufunc__landau_sf_ptr[2*1]
- _landau_sf = np.PyUFunc_FromFuncAndData(ufunc__landau_sf_loops, ufunc__landau_sf_data, ufunc__landau_sf_types, 2, 3, 1, 0, '_landau_sf', ufunc__landau_sf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__lgam1p_loops[2]
- cdef void *ufunc__lgam1p_ptr[4]
- cdef void *ufunc__lgam1p_data[2]
- cdef char ufunc__lgam1p_types[4]
- cdef char *ufunc__lgam1p_doc = (
- "Internal function, do not use.")
- ufunc__lgam1p_loops[0] = <np.PyUFuncGenericFunction>loop_d_d__As_f_f
- ufunc__lgam1p_loops[1] = <np.PyUFuncGenericFunction>loop_d_d__As_d_d
- ufunc__lgam1p_types[0] = <char>NPY_FLOAT
- ufunc__lgam1p_types[1] = <char>NPY_FLOAT
- ufunc__lgam1p_types[2] = <char>NPY_DOUBLE
- ufunc__lgam1p_types[3] = <char>NPY_DOUBLE
- ufunc__lgam1p_ptr[2*0] = <void*>_func_cephes_lgam1p
- ufunc__lgam1p_ptr[2*0+1] = <void*>(<char*>"_lgam1p")
- ufunc__lgam1p_ptr[2*1] = <void*>_func_cephes_lgam1p
- ufunc__lgam1p_ptr[2*1+1] = <void*>(<char*>"_lgam1p")
- ufunc__lgam1p_data[0] = &ufunc__lgam1p_ptr[2*0]
- ufunc__lgam1p_data[1] = &ufunc__lgam1p_ptr[2*1]
- _lgam1p = np.PyUFunc_FromFuncAndData(ufunc__lgam1p_loops, ufunc__lgam1p_data, ufunc__lgam1p_types, 2, 1, 1, 0, '_lgam1p', ufunc__lgam1p_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__nbinom_cdf_loops[2]
- cdef void *ufunc__nbinom_cdf_ptr[4]
- cdef void *ufunc__nbinom_cdf_data[2]
- cdef char ufunc__nbinom_cdf_types[8]
- cdef char *ufunc__nbinom_cdf_doc = (
- "_nbinom_cdf(x, r, p)\n"
- "\n"
- "Cumulative density function of negative binomial distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Real-valued\n"
- "r : array_like\n"
- " Positive, integer-valued parameter\n"
- "p : array_like\n"
- " Positive, real-valued parameter\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__nbinom_cdf_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc__nbinom_cdf_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc__nbinom_cdf_types[0] = <char>NPY_FLOAT
- ufunc__nbinom_cdf_types[1] = <char>NPY_FLOAT
- ufunc__nbinom_cdf_types[2] = <char>NPY_FLOAT
- ufunc__nbinom_cdf_types[3] = <char>NPY_FLOAT
- ufunc__nbinom_cdf_types[4] = <char>NPY_DOUBLE
- ufunc__nbinom_cdf_types[5] = <char>NPY_DOUBLE
- ufunc__nbinom_cdf_types[6] = <char>NPY_DOUBLE
- ufunc__nbinom_cdf_types[7] = <char>NPY_DOUBLE
- ufunc__nbinom_cdf_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_nbinom_cdf_float
- ufunc__nbinom_cdf_ptr[2*0+1] = <void*>(<char*>"_nbinom_cdf")
- ufunc__nbinom_cdf_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_nbinom_cdf_double
- ufunc__nbinom_cdf_ptr[2*1+1] = <void*>(<char*>"_nbinom_cdf")
- ufunc__nbinom_cdf_data[0] = &ufunc__nbinom_cdf_ptr[2*0]
- ufunc__nbinom_cdf_data[1] = &ufunc__nbinom_cdf_ptr[2*1]
- _nbinom_cdf = np.PyUFunc_FromFuncAndData(ufunc__nbinom_cdf_loops, ufunc__nbinom_cdf_data, ufunc__nbinom_cdf_types, 2, 3, 1, 0, '_nbinom_cdf', ufunc__nbinom_cdf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__nbinom_isf_loops[2]
- cdef void *ufunc__nbinom_isf_ptr[4]
- cdef void *ufunc__nbinom_isf_data[2]
- cdef char ufunc__nbinom_isf_types[8]
- cdef char *ufunc__nbinom_isf_doc = (
- "_nbinom_isf(x, r, p)\n"
- "\n"
- "Inverse survival function of negative binomial distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Real-valued\n"
- "r : array_like\n"
- " Positive, integer-valued parameter\n"
- "p : array_like\n"
- " Positive, real-valued parameter\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__nbinom_isf_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc__nbinom_isf_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc__nbinom_isf_types[0] = <char>NPY_FLOAT
- ufunc__nbinom_isf_types[1] = <char>NPY_FLOAT
- ufunc__nbinom_isf_types[2] = <char>NPY_FLOAT
- ufunc__nbinom_isf_types[3] = <char>NPY_FLOAT
- ufunc__nbinom_isf_types[4] = <char>NPY_DOUBLE
- ufunc__nbinom_isf_types[5] = <char>NPY_DOUBLE
- ufunc__nbinom_isf_types[6] = <char>NPY_DOUBLE
- ufunc__nbinom_isf_types[7] = <char>NPY_DOUBLE
- ufunc__nbinom_isf_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_nbinom_isf_float
- ufunc__nbinom_isf_ptr[2*0+1] = <void*>(<char*>"_nbinom_isf")
- ufunc__nbinom_isf_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_nbinom_isf_double
- ufunc__nbinom_isf_ptr[2*1+1] = <void*>(<char*>"_nbinom_isf")
- ufunc__nbinom_isf_data[0] = &ufunc__nbinom_isf_ptr[2*0]
- ufunc__nbinom_isf_data[1] = &ufunc__nbinom_isf_ptr[2*1]
- _nbinom_isf = np.PyUFunc_FromFuncAndData(ufunc__nbinom_isf_loops, ufunc__nbinom_isf_data, ufunc__nbinom_isf_types, 2, 3, 1, 0, '_nbinom_isf', ufunc__nbinom_isf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__nbinom_kurtosis_excess_loops[2]
- cdef void *ufunc__nbinom_kurtosis_excess_ptr[4]
- cdef void *ufunc__nbinom_kurtosis_excess_data[2]
- cdef char ufunc__nbinom_kurtosis_excess_types[6]
- cdef char *ufunc__nbinom_kurtosis_excess_doc = (
- "_nbinom_kurtosis_excess(r, p)\n"
- "\n"
- "Kurtosis excess of negative binomial distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "r : array_like\n"
- " Positive, integer-valued parameter\n"
- "p : array_like\n"
- " Positive, real-valued parameter\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__nbinom_kurtosis_excess_loops[0] = <np.PyUFuncGenericFunction>loop_f_ff__As_ff_f
- ufunc__nbinom_kurtosis_excess_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc__nbinom_kurtosis_excess_types[0] = <char>NPY_FLOAT
- ufunc__nbinom_kurtosis_excess_types[1] = <char>NPY_FLOAT
- ufunc__nbinom_kurtosis_excess_types[2] = <char>NPY_FLOAT
- ufunc__nbinom_kurtosis_excess_types[3] = <char>NPY_DOUBLE
- ufunc__nbinom_kurtosis_excess_types[4] = <char>NPY_DOUBLE
- ufunc__nbinom_kurtosis_excess_types[5] = <char>NPY_DOUBLE
- ufunc__nbinom_kurtosis_excess_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_nbinom_kurtosis_excess_float
- ufunc__nbinom_kurtosis_excess_ptr[2*0+1] = <void*>(<char*>"_nbinom_kurtosis_excess")
- ufunc__nbinom_kurtosis_excess_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_nbinom_kurtosis_excess_double
- ufunc__nbinom_kurtosis_excess_ptr[2*1+1] = <void*>(<char*>"_nbinom_kurtosis_excess")
- ufunc__nbinom_kurtosis_excess_data[0] = &ufunc__nbinom_kurtosis_excess_ptr[2*0]
- ufunc__nbinom_kurtosis_excess_data[1] = &ufunc__nbinom_kurtosis_excess_ptr[2*1]
- _nbinom_kurtosis_excess = np.PyUFunc_FromFuncAndData(ufunc__nbinom_kurtosis_excess_loops, ufunc__nbinom_kurtosis_excess_data, ufunc__nbinom_kurtosis_excess_types, 2, 2, 1, 0, '_nbinom_kurtosis_excess', ufunc__nbinom_kurtosis_excess_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__nbinom_mean_loops[2]
- cdef void *ufunc__nbinom_mean_ptr[4]
- cdef void *ufunc__nbinom_mean_data[2]
- cdef char ufunc__nbinom_mean_types[6]
- cdef char *ufunc__nbinom_mean_doc = (
- "_nbinom_mean(r, p)\n"
- "\n"
- "Mean of negative binomial distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "r : array_like\n"
- " Positive, integer-valued parameter\n"
- "p : array_like\n"
- " Positive, real-valued parameter\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__nbinom_mean_loops[0] = <np.PyUFuncGenericFunction>loop_f_ff__As_ff_f
- ufunc__nbinom_mean_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc__nbinom_mean_types[0] = <char>NPY_FLOAT
- ufunc__nbinom_mean_types[1] = <char>NPY_FLOAT
- ufunc__nbinom_mean_types[2] = <char>NPY_FLOAT
- ufunc__nbinom_mean_types[3] = <char>NPY_DOUBLE
- ufunc__nbinom_mean_types[4] = <char>NPY_DOUBLE
- ufunc__nbinom_mean_types[5] = <char>NPY_DOUBLE
- ufunc__nbinom_mean_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_nbinom_mean_float
- ufunc__nbinom_mean_ptr[2*0+1] = <void*>(<char*>"_nbinom_mean")
- ufunc__nbinom_mean_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_nbinom_mean_double
- ufunc__nbinom_mean_ptr[2*1+1] = <void*>(<char*>"_nbinom_mean")
- ufunc__nbinom_mean_data[0] = &ufunc__nbinom_mean_ptr[2*0]
- ufunc__nbinom_mean_data[1] = &ufunc__nbinom_mean_ptr[2*1]
- _nbinom_mean = np.PyUFunc_FromFuncAndData(ufunc__nbinom_mean_loops, ufunc__nbinom_mean_data, ufunc__nbinom_mean_types, 2, 2, 1, 0, '_nbinom_mean', ufunc__nbinom_mean_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__nbinom_pmf_loops[2]
- cdef void *ufunc__nbinom_pmf_ptr[4]
- cdef void *ufunc__nbinom_pmf_data[2]
- cdef char ufunc__nbinom_pmf_types[8]
- cdef char *ufunc__nbinom_pmf_doc = (
- "_nbinom_pmf(x, r, p)\n"
- "\n"
- "Probability mass function of negative binomial distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Real-valued\n"
- "r : array_like\n"
- " Positive, integer-valued parameter\n"
- "p : array_like\n"
- " Positive, real-valued parameter\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__nbinom_pmf_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc__nbinom_pmf_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc__nbinom_pmf_types[0] = <char>NPY_FLOAT
- ufunc__nbinom_pmf_types[1] = <char>NPY_FLOAT
- ufunc__nbinom_pmf_types[2] = <char>NPY_FLOAT
- ufunc__nbinom_pmf_types[3] = <char>NPY_FLOAT
- ufunc__nbinom_pmf_types[4] = <char>NPY_DOUBLE
- ufunc__nbinom_pmf_types[5] = <char>NPY_DOUBLE
- ufunc__nbinom_pmf_types[6] = <char>NPY_DOUBLE
- ufunc__nbinom_pmf_types[7] = <char>NPY_DOUBLE
- ufunc__nbinom_pmf_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_nbinom_pmf_float
- ufunc__nbinom_pmf_ptr[2*0+1] = <void*>(<char*>"_nbinom_pmf")
- ufunc__nbinom_pmf_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_nbinom_pmf_double
- ufunc__nbinom_pmf_ptr[2*1+1] = <void*>(<char*>"_nbinom_pmf")
- ufunc__nbinom_pmf_data[0] = &ufunc__nbinom_pmf_ptr[2*0]
- ufunc__nbinom_pmf_data[1] = &ufunc__nbinom_pmf_ptr[2*1]
- _nbinom_pmf = np.PyUFunc_FromFuncAndData(ufunc__nbinom_pmf_loops, ufunc__nbinom_pmf_data, ufunc__nbinom_pmf_types, 2, 3, 1, 0, '_nbinom_pmf', ufunc__nbinom_pmf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__nbinom_ppf_loops[2]
- cdef void *ufunc__nbinom_ppf_ptr[4]
- cdef void *ufunc__nbinom_ppf_data[2]
- cdef char ufunc__nbinom_ppf_types[8]
- cdef char *ufunc__nbinom_ppf_doc = (
- "_nbinom_ppf(x, r, p)\n"
- "\n"
- "Percent point function of negative binomial distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Real-valued\n"
- "r : array_like\n"
- " Positive, integer-valued parameter\n"
- "p : array_like\n"
- " Positive, real-valued parameter\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__nbinom_ppf_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc__nbinom_ppf_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc__nbinom_ppf_types[0] = <char>NPY_FLOAT
- ufunc__nbinom_ppf_types[1] = <char>NPY_FLOAT
- ufunc__nbinom_ppf_types[2] = <char>NPY_FLOAT
- ufunc__nbinom_ppf_types[3] = <char>NPY_FLOAT
- ufunc__nbinom_ppf_types[4] = <char>NPY_DOUBLE
- ufunc__nbinom_ppf_types[5] = <char>NPY_DOUBLE
- ufunc__nbinom_ppf_types[6] = <char>NPY_DOUBLE
- ufunc__nbinom_ppf_types[7] = <char>NPY_DOUBLE
- ufunc__nbinom_ppf_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_nbinom_ppf_float
- ufunc__nbinom_ppf_ptr[2*0+1] = <void*>(<char*>"_nbinom_ppf")
- ufunc__nbinom_ppf_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_nbinom_ppf_double
- ufunc__nbinom_ppf_ptr[2*1+1] = <void*>(<char*>"_nbinom_ppf")
- ufunc__nbinom_ppf_data[0] = &ufunc__nbinom_ppf_ptr[2*0]
- ufunc__nbinom_ppf_data[1] = &ufunc__nbinom_ppf_ptr[2*1]
- _nbinom_ppf = np.PyUFunc_FromFuncAndData(ufunc__nbinom_ppf_loops, ufunc__nbinom_ppf_data, ufunc__nbinom_ppf_types, 2, 3, 1, 0, '_nbinom_ppf', ufunc__nbinom_ppf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__nbinom_sf_loops[2]
- cdef void *ufunc__nbinom_sf_ptr[4]
- cdef void *ufunc__nbinom_sf_data[2]
- cdef char ufunc__nbinom_sf_types[8]
- cdef char *ufunc__nbinom_sf_doc = (
- "_nbinom_sf(x, r, p)\n"
- "\n"
- "Survival function of negative binomial distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Real-valued\n"
- "r : array_like\n"
- " Positive, integer-valued parameter\n"
- "p : array_like\n"
- " Positive, real-valued parameter\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__nbinom_sf_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc__nbinom_sf_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc__nbinom_sf_types[0] = <char>NPY_FLOAT
- ufunc__nbinom_sf_types[1] = <char>NPY_FLOAT
- ufunc__nbinom_sf_types[2] = <char>NPY_FLOAT
- ufunc__nbinom_sf_types[3] = <char>NPY_FLOAT
- ufunc__nbinom_sf_types[4] = <char>NPY_DOUBLE
- ufunc__nbinom_sf_types[5] = <char>NPY_DOUBLE
- ufunc__nbinom_sf_types[6] = <char>NPY_DOUBLE
- ufunc__nbinom_sf_types[7] = <char>NPY_DOUBLE
- ufunc__nbinom_sf_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_nbinom_sf_float
- ufunc__nbinom_sf_ptr[2*0+1] = <void*>(<char*>"_nbinom_sf")
- ufunc__nbinom_sf_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_nbinom_sf_double
- ufunc__nbinom_sf_ptr[2*1+1] = <void*>(<char*>"_nbinom_sf")
- ufunc__nbinom_sf_data[0] = &ufunc__nbinom_sf_ptr[2*0]
- ufunc__nbinom_sf_data[1] = &ufunc__nbinom_sf_ptr[2*1]
- _nbinom_sf = np.PyUFunc_FromFuncAndData(ufunc__nbinom_sf_loops, ufunc__nbinom_sf_data, ufunc__nbinom_sf_types, 2, 3, 1, 0, '_nbinom_sf', ufunc__nbinom_sf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__nbinom_skewness_loops[2]
- cdef void *ufunc__nbinom_skewness_ptr[4]
- cdef void *ufunc__nbinom_skewness_data[2]
- cdef char ufunc__nbinom_skewness_types[6]
- cdef char *ufunc__nbinom_skewness_doc = (
- "_nbinom_skewness(r, p)\n"
- "\n"
- "Skewness of negative binomial distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "r : array_like\n"
- " Positive, integer-valued parameter\n"
- "p : array_like\n"
- " Positive, real-valued parameter\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__nbinom_skewness_loops[0] = <np.PyUFuncGenericFunction>loop_f_ff__As_ff_f
- ufunc__nbinom_skewness_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc__nbinom_skewness_types[0] = <char>NPY_FLOAT
- ufunc__nbinom_skewness_types[1] = <char>NPY_FLOAT
- ufunc__nbinom_skewness_types[2] = <char>NPY_FLOAT
- ufunc__nbinom_skewness_types[3] = <char>NPY_DOUBLE
- ufunc__nbinom_skewness_types[4] = <char>NPY_DOUBLE
- ufunc__nbinom_skewness_types[5] = <char>NPY_DOUBLE
- ufunc__nbinom_skewness_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_nbinom_skewness_float
- ufunc__nbinom_skewness_ptr[2*0+1] = <void*>(<char*>"_nbinom_skewness")
- ufunc__nbinom_skewness_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_nbinom_skewness_double
- ufunc__nbinom_skewness_ptr[2*1+1] = <void*>(<char*>"_nbinom_skewness")
- ufunc__nbinom_skewness_data[0] = &ufunc__nbinom_skewness_ptr[2*0]
- ufunc__nbinom_skewness_data[1] = &ufunc__nbinom_skewness_ptr[2*1]
- _nbinom_skewness = np.PyUFunc_FromFuncAndData(ufunc__nbinom_skewness_loops, ufunc__nbinom_skewness_data, ufunc__nbinom_skewness_types, 2, 2, 1, 0, '_nbinom_skewness', ufunc__nbinom_skewness_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__nbinom_variance_loops[2]
- cdef void *ufunc__nbinom_variance_ptr[4]
- cdef void *ufunc__nbinom_variance_data[2]
- cdef char ufunc__nbinom_variance_types[6]
- cdef char *ufunc__nbinom_variance_doc = (
- "_nbinom_variance(r, p)\n"
- "\n"
- "Variance of negative binomial distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "r : array_like\n"
- " Positive, integer-valued parameter\n"
- "p : array_like\n"
- " Positive, real-valued parameter\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__nbinom_variance_loops[0] = <np.PyUFuncGenericFunction>loop_f_ff__As_ff_f
- ufunc__nbinom_variance_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc__nbinom_variance_types[0] = <char>NPY_FLOAT
- ufunc__nbinom_variance_types[1] = <char>NPY_FLOAT
- ufunc__nbinom_variance_types[2] = <char>NPY_FLOAT
- ufunc__nbinom_variance_types[3] = <char>NPY_DOUBLE
- ufunc__nbinom_variance_types[4] = <char>NPY_DOUBLE
- ufunc__nbinom_variance_types[5] = <char>NPY_DOUBLE
- ufunc__nbinom_variance_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_nbinom_variance_float
- ufunc__nbinom_variance_ptr[2*0+1] = <void*>(<char*>"_nbinom_variance")
- ufunc__nbinom_variance_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_nbinom_variance_double
- ufunc__nbinom_variance_ptr[2*1+1] = <void*>(<char*>"_nbinom_variance")
- ufunc__nbinom_variance_data[0] = &ufunc__nbinom_variance_ptr[2*0]
- ufunc__nbinom_variance_data[1] = &ufunc__nbinom_variance_ptr[2*1]
- _nbinom_variance = np.PyUFunc_FromFuncAndData(ufunc__nbinom_variance_loops, ufunc__nbinom_variance_data, ufunc__nbinom_variance_types, 2, 2, 1, 0, '_nbinom_variance', ufunc__nbinom_variance_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__ncf_isf_loops[2]
- cdef void *ufunc__ncf_isf_ptr[4]
- cdef void *ufunc__ncf_isf_data[2]
- cdef char ufunc__ncf_isf_types[10]
- cdef char *ufunc__ncf_isf_doc = (
- "_ncf_isf(x, v1, v2, l)\n"
- "\n"
- "Inverse survival function of noncentral F-distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Positive real-valued\n"
- "v1, v2, l : array_like\n"
- " Positive, real-valued parameters\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__ncf_isf_loops[0] = <np.PyUFuncGenericFunction>loop_f_ffff__As_ffff_f
- ufunc__ncf_isf_loops[1] = <np.PyUFuncGenericFunction>loop_d_dddd__As_dddd_d
- ufunc__ncf_isf_types[0] = <char>NPY_FLOAT
- ufunc__ncf_isf_types[1] = <char>NPY_FLOAT
- ufunc__ncf_isf_types[2] = <char>NPY_FLOAT
- ufunc__ncf_isf_types[3] = <char>NPY_FLOAT
- ufunc__ncf_isf_types[4] = <char>NPY_FLOAT
- ufunc__ncf_isf_types[5] = <char>NPY_DOUBLE
- ufunc__ncf_isf_types[6] = <char>NPY_DOUBLE
- ufunc__ncf_isf_types[7] = <char>NPY_DOUBLE
- ufunc__ncf_isf_types[8] = <char>NPY_DOUBLE
- ufunc__ncf_isf_types[9] = <char>NPY_DOUBLE
- ufunc__ncf_isf_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_ncf_isf_float
- ufunc__ncf_isf_ptr[2*0+1] = <void*>(<char*>"_ncf_isf")
- ufunc__ncf_isf_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_ncf_isf_double
- ufunc__ncf_isf_ptr[2*1+1] = <void*>(<char*>"_ncf_isf")
- ufunc__ncf_isf_data[0] = &ufunc__ncf_isf_ptr[2*0]
- ufunc__ncf_isf_data[1] = &ufunc__ncf_isf_ptr[2*1]
- _ncf_isf = np.PyUFunc_FromFuncAndData(ufunc__ncf_isf_loops, ufunc__ncf_isf_data, ufunc__ncf_isf_types, 2, 4, 1, 0, '_ncf_isf', ufunc__ncf_isf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__ncf_kurtosis_excess_loops[2]
- cdef void *ufunc__ncf_kurtosis_excess_ptr[4]
- cdef void *ufunc__ncf_kurtosis_excess_data[2]
- cdef char ufunc__ncf_kurtosis_excess_types[8]
- cdef char *ufunc__ncf_kurtosis_excess_doc = (
- "_ncf_kurtosis_excess(v1, v2, l)\n"
- "\n"
- "Kurtosis excess of noncentral F-distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "v1, v2, l : array_like\n"
- " Positive, real-valued parameters\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__ncf_kurtosis_excess_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc__ncf_kurtosis_excess_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc__ncf_kurtosis_excess_types[0] = <char>NPY_FLOAT
- ufunc__ncf_kurtosis_excess_types[1] = <char>NPY_FLOAT
- ufunc__ncf_kurtosis_excess_types[2] = <char>NPY_FLOAT
- ufunc__ncf_kurtosis_excess_types[3] = <char>NPY_FLOAT
- ufunc__ncf_kurtosis_excess_types[4] = <char>NPY_DOUBLE
- ufunc__ncf_kurtosis_excess_types[5] = <char>NPY_DOUBLE
- ufunc__ncf_kurtosis_excess_types[6] = <char>NPY_DOUBLE
- ufunc__ncf_kurtosis_excess_types[7] = <char>NPY_DOUBLE
- ufunc__ncf_kurtosis_excess_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_ncf_kurtosis_excess_float
- ufunc__ncf_kurtosis_excess_ptr[2*0+1] = <void*>(<char*>"_ncf_kurtosis_excess")
- ufunc__ncf_kurtosis_excess_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_ncf_kurtosis_excess_double
- ufunc__ncf_kurtosis_excess_ptr[2*1+1] = <void*>(<char*>"_ncf_kurtosis_excess")
- ufunc__ncf_kurtosis_excess_data[0] = &ufunc__ncf_kurtosis_excess_ptr[2*0]
- ufunc__ncf_kurtosis_excess_data[1] = &ufunc__ncf_kurtosis_excess_ptr[2*1]
- _ncf_kurtosis_excess = np.PyUFunc_FromFuncAndData(ufunc__ncf_kurtosis_excess_loops, ufunc__ncf_kurtosis_excess_data, ufunc__ncf_kurtosis_excess_types, 2, 3, 1, 0, '_ncf_kurtosis_excess', ufunc__ncf_kurtosis_excess_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__ncf_mean_loops[2]
- cdef void *ufunc__ncf_mean_ptr[4]
- cdef void *ufunc__ncf_mean_data[2]
- cdef char ufunc__ncf_mean_types[8]
- cdef char *ufunc__ncf_mean_doc = (
- "_ncf_mean(v1, v2, l)\n"
- "\n"
- "Mean of noncentral F-distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "v1, v2, l : array_like\n"
- " Positive, real-valued parameters\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__ncf_mean_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc__ncf_mean_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc__ncf_mean_types[0] = <char>NPY_FLOAT
- ufunc__ncf_mean_types[1] = <char>NPY_FLOAT
- ufunc__ncf_mean_types[2] = <char>NPY_FLOAT
- ufunc__ncf_mean_types[3] = <char>NPY_FLOAT
- ufunc__ncf_mean_types[4] = <char>NPY_DOUBLE
- ufunc__ncf_mean_types[5] = <char>NPY_DOUBLE
- ufunc__ncf_mean_types[6] = <char>NPY_DOUBLE
- ufunc__ncf_mean_types[7] = <char>NPY_DOUBLE
- ufunc__ncf_mean_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_ncf_mean_float
- ufunc__ncf_mean_ptr[2*0+1] = <void*>(<char*>"_ncf_mean")
- ufunc__ncf_mean_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_ncf_mean_double
- ufunc__ncf_mean_ptr[2*1+1] = <void*>(<char*>"_ncf_mean")
- ufunc__ncf_mean_data[0] = &ufunc__ncf_mean_ptr[2*0]
- ufunc__ncf_mean_data[1] = &ufunc__ncf_mean_ptr[2*1]
- _ncf_mean = np.PyUFunc_FromFuncAndData(ufunc__ncf_mean_loops, ufunc__ncf_mean_data, ufunc__ncf_mean_types, 2, 3, 1, 0, '_ncf_mean', ufunc__ncf_mean_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__ncf_pdf_loops[2]
- cdef void *ufunc__ncf_pdf_ptr[4]
- cdef void *ufunc__ncf_pdf_data[2]
- cdef char ufunc__ncf_pdf_types[10]
- cdef char *ufunc__ncf_pdf_doc = (
- "_ncf_pdf(x, v1, v2, l)\n"
- "\n"
- "Probability density function of noncentral F-distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Positive real-valued\n"
- "v1, v2, l : array_like\n"
- " Positive, real-valued parameters\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__ncf_pdf_loops[0] = <np.PyUFuncGenericFunction>loop_f_ffff__As_ffff_f
- ufunc__ncf_pdf_loops[1] = <np.PyUFuncGenericFunction>loop_d_dddd__As_dddd_d
- ufunc__ncf_pdf_types[0] = <char>NPY_FLOAT
- ufunc__ncf_pdf_types[1] = <char>NPY_FLOAT
- ufunc__ncf_pdf_types[2] = <char>NPY_FLOAT
- ufunc__ncf_pdf_types[3] = <char>NPY_FLOAT
- ufunc__ncf_pdf_types[4] = <char>NPY_FLOAT
- ufunc__ncf_pdf_types[5] = <char>NPY_DOUBLE
- ufunc__ncf_pdf_types[6] = <char>NPY_DOUBLE
- ufunc__ncf_pdf_types[7] = <char>NPY_DOUBLE
- ufunc__ncf_pdf_types[8] = <char>NPY_DOUBLE
- ufunc__ncf_pdf_types[9] = <char>NPY_DOUBLE
- ufunc__ncf_pdf_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_ncf_pdf_float
- ufunc__ncf_pdf_ptr[2*0+1] = <void*>(<char*>"_ncf_pdf")
- ufunc__ncf_pdf_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_ncf_pdf_double
- ufunc__ncf_pdf_ptr[2*1+1] = <void*>(<char*>"_ncf_pdf")
- ufunc__ncf_pdf_data[0] = &ufunc__ncf_pdf_ptr[2*0]
- ufunc__ncf_pdf_data[1] = &ufunc__ncf_pdf_ptr[2*1]
- _ncf_pdf = np.PyUFunc_FromFuncAndData(ufunc__ncf_pdf_loops, ufunc__ncf_pdf_data, ufunc__ncf_pdf_types, 2, 4, 1, 0, '_ncf_pdf', ufunc__ncf_pdf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__ncf_sf_loops[2]
- cdef void *ufunc__ncf_sf_ptr[4]
- cdef void *ufunc__ncf_sf_data[2]
- cdef char ufunc__ncf_sf_types[10]
- cdef char *ufunc__ncf_sf_doc = (
- "_ncf_sf(x, v1, v2, l)\n"
- "\n"
- "Survival function of noncentral F-distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Positive real-valued\n"
- "v1, v2, l : array_like\n"
- " Positive, real-valued parameters\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__ncf_sf_loops[0] = <np.PyUFuncGenericFunction>loop_f_ffff__As_ffff_f
- ufunc__ncf_sf_loops[1] = <np.PyUFuncGenericFunction>loop_d_dddd__As_dddd_d
- ufunc__ncf_sf_types[0] = <char>NPY_FLOAT
- ufunc__ncf_sf_types[1] = <char>NPY_FLOAT
- ufunc__ncf_sf_types[2] = <char>NPY_FLOAT
- ufunc__ncf_sf_types[3] = <char>NPY_FLOAT
- ufunc__ncf_sf_types[4] = <char>NPY_FLOAT
- ufunc__ncf_sf_types[5] = <char>NPY_DOUBLE
- ufunc__ncf_sf_types[6] = <char>NPY_DOUBLE
- ufunc__ncf_sf_types[7] = <char>NPY_DOUBLE
- ufunc__ncf_sf_types[8] = <char>NPY_DOUBLE
- ufunc__ncf_sf_types[9] = <char>NPY_DOUBLE
- ufunc__ncf_sf_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_ncf_sf_float
- ufunc__ncf_sf_ptr[2*0+1] = <void*>(<char*>"_ncf_sf")
- ufunc__ncf_sf_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_ncf_sf_double
- ufunc__ncf_sf_ptr[2*1+1] = <void*>(<char*>"_ncf_sf")
- ufunc__ncf_sf_data[0] = &ufunc__ncf_sf_ptr[2*0]
- ufunc__ncf_sf_data[1] = &ufunc__ncf_sf_ptr[2*1]
- _ncf_sf = np.PyUFunc_FromFuncAndData(ufunc__ncf_sf_loops, ufunc__ncf_sf_data, ufunc__ncf_sf_types, 2, 4, 1, 0, '_ncf_sf', ufunc__ncf_sf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__ncf_skewness_loops[2]
- cdef void *ufunc__ncf_skewness_ptr[4]
- cdef void *ufunc__ncf_skewness_data[2]
- cdef char ufunc__ncf_skewness_types[8]
- cdef char *ufunc__ncf_skewness_doc = (
- "_ncf_skewness(v1, v2, l)\n"
- "\n"
- "Skewness of noncentral F-distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "v1, v2, l : array_like\n"
- " Positive, real-valued parameters\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__ncf_skewness_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc__ncf_skewness_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc__ncf_skewness_types[0] = <char>NPY_FLOAT
- ufunc__ncf_skewness_types[1] = <char>NPY_FLOAT
- ufunc__ncf_skewness_types[2] = <char>NPY_FLOAT
- ufunc__ncf_skewness_types[3] = <char>NPY_FLOAT
- ufunc__ncf_skewness_types[4] = <char>NPY_DOUBLE
- ufunc__ncf_skewness_types[5] = <char>NPY_DOUBLE
- ufunc__ncf_skewness_types[6] = <char>NPY_DOUBLE
- ufunc__ncf_skewness_types[7] = <char>NPY_DOUBLE
- ufunc__ncf_skewness_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_ncf_skewness_float
- ufunc__ncf_skewness_ptr[2*0+1] = <void*>(<char*>"_ncf_skewness")
- ufunc__ncf_skewness_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_ncf_skewness_double
- ufunc__ncf_skewness_ptr[2*1+1] = <void*>(<char*>"_ncf_skewness")
- ufunc__ncf_skewness_data[0] = &ufunc__ncf_skewness_ptr[2*0]
- ufunc__ncf_skewness_data[1] = &ufunc__ncf_skewness_ptr[2*1]
- _ncf_skewness = np.PyUFunc_FromFuncAndData(ufunc__ncf_skewness_loops, ufunc__ncf_skewness_data, ufunc__ncf_skewness_types, 2, 3, 1, 0, '_ncf_skewness', ufunc__ncf_skewness_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__ncf_variance_loops[2]
- cdef void *ufunc__ncf_variance_ptr[4]
- cdef void *ufunc__ncf_variance_data[2]
- cdef char ufunc__ncf_variance_types[8]
- cdef char *ufunc__ncf_variance_doc = (
- "_ncf_variance(v1, v2, l)\n"
- "\n"
- "Variance of noncentral F-distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "v1, v2, l : array_like\n"
- " Positive, real-valued parameters\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__ncf_variance_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc__ncf_variance_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc__ncf_variance_types[0] = <char>NPY_FLOAT
- ufunc__ncf_variance_types[1] = <char>NPY_FLOAT
- ufunc__ncf_variance_types[2] = <char>NPY_FLOAT
- ufunc__ncf_variance_types[3] = <char>NPY_FLOAT
- ufunc__ncf_variance_types[4] = <char>NPY_DOUBLE
- ufunc__ncf_variance_types[5] = <char>NPY_DOUBLE
- ufunc__ncf_variance_types[6] = <char>NPY_DOUBLE
- ufunc__ncf_variance_types[7] = <char>NPY_DOUBLE
- ufunc__ncf_variance_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_ncf_variance_float
- ufunc__ncf_variance_ptr[2*0+1] = <void*>(<char*>"_ncf_variance")
- ufunc__ncf_variance_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_ncf_variance_double
- ufunc__ncf_variance_ptr[2*1+1] = <void*>(<char*>"_ncf_variance")
- ufunc__ncf_variance_data[0] = &ufunc__ncf_variance_ptr[2*0]
- ufunc__ncf_variance_data[1] = &ufunc__ncf_variance_ptr[2*1]
- _ncf_variance = np.PyUFunc_FromFuncAndData(ufunc__ncf_variance_loops, ufunc__ncf_variance_data, ufunc__ncf_variance_types, 2, 3, 1, 0, '_ncf_variance', ufunc__ncf_variance_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__nct_isf_loops[2]
- cdef void *ufunc__nct_isf_ptr[4]
- cdef void *ufunc__nct_isf_data[2]
- cdef char ufunc__nct_isf_types[8]
- cdef char *ufunc__nct_isf_doc = (
- "_nct_isf(x, v, l)\n"
- "\n"
- "Inverse survival function of noncentral t-distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Real-valued\n"
- "v : array_like\n"
- " Positive, real-valued parameters\n"
- "l : array_like\n"
- " Real-valued parameters\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__nct_isf_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc__nct_isf_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc__nct_isf_types[0] = <char>NPY_FLOAT
- ufunc__nct_isf_types[1] = <char>NPY_FLOAT
- ufunc__nct_isf_types[2] = <char>NPY_FLOAT
- ufunc__nct_isf_types[3] = <char>NPY_FLOAT
- ufunc__nct_isf_types[4] = <char>NPY_DOUBLE
- ufunc__nct_isf_types[5] = <char>NPY_DOUBLE
- ufunc__nct_isf_types[6] = <char>NPY_DOUBLE
- ufunc__nct_isf_types[7] = <char>NPY_DOUBLE
- ufunc__nct_isf_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_nct_isf_float
- ufunc__nct_isf_ptr[2*0+1] = <void*>(<char*>"_nct_isf")
- ufunc__nct_isf_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_nct_isf_double
- ufunc__nct_isf_ptr[2*1+1] = <void*>(<char*>"_nct_isf")
- ufunc__nct_isf_data[0] = &ufunc__nct_isf_ptr[2*0]
- ufunc__nct_isf_data[1] = &ufunc__nct_isf_ptr[2*1]
- _nct_isf = np.PyUFunc_FromFuncAndData(ufunc__nct_isf_loops, ufunc__nct_isf_data, ufunc__nct_isf_types, 2, 3, 1, 0, '_nct_isf', ufunc__nct_isf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__nct_kurtosis_excess_loops[2]
- cdef void *ufunc__nct_kurtosis_excess_ptr[4]
- cdef void *ufunc__nct_kurtosis_excess_data[2]
- cdef char ufunc__nct_kurtosis_excess_types[6]
- cdef char *ufunc__nct_kurtosis_excess_doc = (
- "_nct_kurtosis_excess(v, l)\n"
- "\n"
- "Kurtosis excess of noncentral t-distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "v : array_like\n"
- " Positive, real-valued parameters\n"
- "l : array_like\n"
- " Real-valued parameters\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__nct_kurtosis_excess_loops[0] = <np.PyUFuncGenericFunction>loop_f_ff__As_ff_f
- ufunc__nct_kurtosis_excess_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc__nct_kurtosis_excess_types[0] = <char>NPY_FLOAT
- ufunc__nct_kurtosis_excess_types[1] = <char>NPY_FLOAT
- ufunc__nct_kurtosis_excess_types[2] = <char>NPY_FLOAT
- ufunc__nct_kurtosis_excess_types[3] = <char>NPY_DOUBLE
- ufunc__nct_kurtosis_excess_types[4] = <char>NPY_DOUBLE
- ufunc__nct_kurtosis_excess_types[5] = <char>NPY_DOUBLE
- ufunc__nct_kurtosis_excess_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_nct_kurtosis_excess_float
- ufunc__nct_kurtosis_excess_ptr[2*0+1] = <void*>(<char*>"_nct_kurtosis_excess")
- ufunc__nct_kurtosis_excess_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_nct_kurtosis_excess_double
- ufunc__nct_kurtosis_excess_ptr[2*1+1] = <void*>(<char*>"_nct_kurtosis_excess")
- ufunc__nct_kurtosis_excess_data[0] = &ufunc__nct_kurtosis_excess_ptr[2*0]
- ufunc__nct_kurtosis_excess_data[1] = &ufunc__nct_kurtosis_excess_ptr[2*1]
- _nct_kurtosis_excess = np.PyUFunc_FromFuncAndData(ufunc__nct_kurtosis_excess_loops, ufunc__nct_kurtosis_excess_data, ufunc__nct_kurtosis_excess_types, 2, 2, 1, 0, '_nct_kurtosis_excess', ufunc__nct_kurtosis_excess_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__nct_mean_loops[2]
- cdef void *ufunc__nct_mean_ptr[4]
- cdef void *ufunc__nct_mean_data[2]
- cdef char ufunc__nct_mean_types[6]
- cdef char *ufunc__nct_mean_doc = (
- "_nct_mean(v, l)\n"
- "\n"
- "Mean of noncentral t-distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "v : array_like\n"
- " Positive, real-valued parameters\n"
- "l : array_like\n"
- " Real-valued parameters\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__nct_mean_loops[0] = <np.PyUFuncGenericFunction>loop_f_ff__As_ff_f
- ufunc__nct_mean_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc__nct_mean_types[0] = <char>NPY_FLOAT
- ufunc__nct_mean_types[1] = <char>NPY_FLOAT
- ufunc__nct_mean_types[2] = <char>NPY_FLOAT
- ufunc__nct_mean_types[3] = <char>NPY_DOUBLE
- ufunc__nct_mean_types[4] = <char>NPY_DOUBLE
- ufunc__nct_mean_types[5] = <char>NPY_DOUBLE
- ufunc__nct_mean_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_nct_mean_float
- ufunc__nct_mean_ptr[2*0+1] = <void*>(<char*>"_nct_mean")
- ufunc__nct_mean_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_nct_mean_double
- ufunc__nct_mean_ptr[2*1+1] = <void*>(<char*>"_nct_mean")
- ufunc__nct_mean_data[0] = &ufunc__nct_mean_ptr[2*0]
- ufunc__nct_mean_data[1] = &ufunc__nct_mean_ptr[2*1]
- _nct_mean = np.PyUFunc_FromFuncAndData(ufunc__nct_mean_loops, ufunc__nct_mean_data, ufunc__nct_mean_types, 2, 2, 1, 0, '_nct_mean', ufunc__nct_mean_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__nct_pdf_loops[2]
- cdef void *ufunc__nct_pdf_ptr[4]
- cdef void *ufunc__nct_pdf_data[2]
- cdef char ufunc__nct_pdf_types[8]
- cdef char *ufunc__nct_pdf_doc = (
- "_nct_pdf(x, v, l)\n"
- "\n"
- "Probability density function of noncentral t-distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Real-valued\n"
- "v : array_like\n"
- " Positive, real-valued parameters\n"
- "l : array_like\n"
- " Real-valued parameters\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__nct_pdf_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc__nct_pdf_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc__nct_pdf_types[0] = <char>NPY_FLOAT
- ufunc__nct_pdf_types[1] = <char>NPY_FLOAT
- ufunc__nct_pdf_types[2] = <char>NPY_FLOAT
- ufunc__nct_pdf_types[3] = <char>NPY_FLOAT
- ufunc__nct_pdf_types[4] = <char>NPY_DOUBLE
- ufunc__nct_pdf_types[5] = <char>NPY_DOUBLE
- ufunc__nct_pdf_types[6] = <char>NPY_DOUBLE
- ufunc__nct_pdf_types[7] = <char>NPY_DOUBLE
- ufunc__nct_pdf_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_nct_pdf_float
- ufunc__nct_pdf_ptr[2*0+1] = <void*>(<char*>"_nct_pdf")
- ufunc__nct_pdf_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_nct_pdf_double
- ufunc__nct_pdf_ptr[2*1+1] = <void*>(<char*>"_nct_pdf")
- ufunc__nct_pdf_data[0] = &ufunc__nct_pdf_ptr[2*0]
- ufunc__nct_pdf_data[1] = &ufunc__nct_pdf_ptr[2*1]
- _nct_pdf = np.PyUFunc_FromFuncAndData(ufunc__nct_pdf_loops, ufunc__nct_pdf_data, ufunc__nct_pdf_types, 2, 3, 1, 0, '_nct_pdf', ufunc__nct_pdf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__nct_sf_loops[2]
- cdef void *ufunc__nct_sf_ptr[4]
- cdef void *ufunc__nct_sf_data[2]
- cdef char ufunc__nct_sf_types[8]
- cdef char *ufunc__nct_sf_doc = (
- "_nct_sf(x, v, l)\n"
- "\n"
- "Survival function of noncentral t-distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Real-valued\n"
- "v : array_like\n"
- " Positive, real-valued parameters\n"
- "l : array_like\n"
- " Real-valued parameters\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__nct_sf_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc__nct_sf_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc__nct_sf_types[0] = <char>NPY_FLOAT
- ufunc__nct_sf_types[1] = <char>NPY_FLOAT
- ufunc__nct_sf_types[2] = <char>NPY_FLOAT
- ufunc__nct_sf_types[3] = <char>NPY_FLOAT
- ufunc__nct_sf_types[4] = <char>NPY_DOUBLE
- ufunc__nct_sf_types[5] = <char>NPY_DOUBLE
- ufunc__nct_sf_types[6] = <char>NPY_DOUBLE
- ufunc__nct_sf_types[7] = <char>NPY_DOUBLE
- ufunc__nct_sf_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_nct_sf_float
- ufunc__nct_sf_ptr[2*0+1] = <void*>(<char*>"_nct_sf")
- ufunc__nct_sf_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_nct_sf_double
- ufunc__nct_sf_ptr[2*1+1] = <void*>(<char*>"_nct_sf")
- ufunc__nct_sf_data[0] = &ufunc__nct_sf_ptr[2*0]
- ufunc__nct_sf_data[1] = &ufunc__nct_sf_ptr[2*1]
- _nct_sf = np.PyUFunc_FromFuncAndData(ufunc__nct_sf_loops, ufunc__nct_sf_data, ufunc__nct_sf_types, 2, 3, 1, 0, '_nct_sf', ufunc__nct_sf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__nct_skewness_loops[2]
- cdef void *ufunc__nct_skewness_ptr[4]
- cdef void *ufunc__nct_skewness_data[2]
- cdef char ufunc__nct_skewness_types[6]
- cdef char *ufunc__nct_skewness_doc = (
- "_nct_skewness(v, l)\n"
- "\n"
- "Skewness of noncentral t-distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "v : array_like\n"
- " Positive, real-valued parameters\n"
- "l : array_like\n"
- " Real-valued parameters\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__nct_skewness_loops[0] = <np.PyUFuncGenericFunction>loop_f_ff__As_ff_f
- ufunc__nct_skewness_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc__nct_skewness_types[0] = <char>NPY_FLOAT
- ufunc__nct_skewness_types[1] = <char>NPY_FLOAT
- ufunc__nct_skewness_types[2] = <char>NPY_FLOAT
- ufunc__nct_skewness_types[3] = <char>NPY_DOUBLE
- ufunc__nct_skewness_types[4] = <char>NPY_DOUBLE
- ufunc__nct_skewness_types[5] = <char>NPY_DOUBLE
- ufunc__nct_skewness_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_nct_skewness_float
- ufunc__nct_skewness_ptr[2*0+1] = <void*>(<char*>"_nct_skewness")
- ufunc__nct_skewness_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_nct_skewness_double
- ufunc__nct_skewness_ptr[2*1+1] = <void*>(<char*>"_nct_skewness")
- ufunc__nct_skewness_data[0] = &ufunc__nct_skewness_ptr[2*0]
- ufunc__nct_skewness_data[1] = &ufunc__nct_skewness_ptr[2*1]
- _nct_skewness = np.PyUFunc_FromFuncAndData(ufunc__nct_skewness_loops, ufunc__nct_skewness_data, ufunc__nct_skewness_types, 2, 2, 1, 0, '_nct_skewness', ufunc__nct_skewness_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__nct_variance_loops[2]
- cdef void *ufunc__nct_variance_ptr[4]
- cdef void *ufunc__nct_variance_data[2]
- cdef char ufunc__nct_variance_types[6]
- cdef char *ufunc__nct_variance_doc = (
- "_nct_variance(v, l)\n"
- "\n"
- "Variance of noncentral t-distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "v : array_like\n"
- " Positive, real-valued parameters\n"
- "l : array_like\n"
- " Real-valued parameters\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__nct_variance_loops[0] = <np.PyUFuncGenericFunction>loop_f_ff__As_ff_f
- ufunc__nct_variance_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc__nct_variance_types[0] = <char>NPY_FLOAT
- ufunc__nct_variance_types[1] = <char>NPY_FLOAT
- ufunc__nct_variance_types[2] = <char>NPY_FLOAT
- ufunc__nct_variance_types[3] = <char>NPY_DOUBLE
- ufunc__nct_variance_types[4] = <char>NPY_DOUBLE
- ufunc__nct_variance_types[5] = <char>NPY_DOUBLE
- ufunc__nct_variance_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_nct_variance_float
- ufunc__nct_variance_ptr[2*0+1] = <void*>(<char*>"_nct_variance")
- ufunc__nct_variance_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_nct_variance_double
- ufunc__nct_variance_ptr[2*1+1] = <void*>(<char*>"_nct_variance")
- ufunc__nct_variance_data[0] = &ufunc__nct_variance_ptr[2*0]
- ufunc__nct_variance_data[1] = &ufunc__nct_variance_ptr[2*1]
- _nct_variance = np.PyUFunc_FromFuncAndData(ufunc__nct_variance_loops, ufunc__nct_variance_data, ufunc__nct_variance_types, 2, 2, 1, 0, '_nct_variance', ufunc__nct_variance_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__ncx2_isf_loops[2]
- cdef void *ufunc__ncx2_isf_ptr[4]
- cdef void *ufunc__ncx2_isf_data[2]
- cdef char ufunc__ncx2_isf_types[8]
- cdef char *ufunc__ncx2_isf_doc = (
- "_ncx2_isf(x, k, l)\n"
- "\n"
- "Inverse survival function of Non-central chi-squared distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Positive real-valued\n"
- "k, l : array_like\n"
- " Positive, real-valued parameters\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__ncx2_isf_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc__ncx2_isf_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc__ncx2_isf_types[0] = <char>NPY_FLOAT
- ufunc__ncx2_isf_types[1] = <char>NPY_FLOAT
- ufunc__ncx2_isf_types[2] = <char>NPY_FLOAT
- ufunc__ncx2_isf_types[3] = <char>NPY_FLOAT
- ufunc__ncx2_isf_types[4] = <char>NPY_DOUBLE
- ufunc__ncx2_isf_types[5] = <char>NPY_DOUBLE
- ufunc__ncx2_isf_types[6] = <char>NPY_DOUBLE
- ufunc__ncx2_isf_types[7] = <char>NPY_DOUBLE
- ufunc__ncx2_isf_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_ncx2_isf_float
- ufunc__ncx2_isf_ptr[2*0+1] = <void*>(<char*>"_ncx2_isf")
- ufunc__ncx2_isf_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_ncx2_isf_double
- ufunc__ncx2_isf_ptr[2*1+1] = <void*>(<char*>"_ncx2_isf")
- ufunc__ncx2_isf_data[0] = &ufunc__ncx2_isf_ptr[2*0]
- ufunc__ncx2_isf_data[1] = &ufunc__ncx2_isf_ptr[2*1]
- _ncx2_isf = np.PyUFunc_FromFuncAndData(ufunc__ncx2_isf_loops, ufunc__ncx2_isf_data, ufunc__ncx2_isf_types, 2, 3, 1, 0, '_ncx2_isf', ufunc__ncx2_isf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__ncx2_pdf_loops[2]
- cdef void *ufunc__ncx2_pdf_ptr[4]
- cdef void *ufunc__ncx2_pdf_data[2]
- cdef char ufunc__ncx2_pdf_types[8]
- cdef char *ufunc__ncx2_pdf_doc = (
- "_ncx2_pdf(x, k, l)\n"
- "\n"
- "Probability density function of Non-central chi-squared distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Positive real-valued\n"
- "k, l : array_like\n"
- " Positive, real-valued parameters\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__ncx2_pdf_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc__ncx2_pdf_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc__ncx2_pdf_types[0] = <char>NPY_FLOAT
- ufunc__ncx2_pdf_types[1] = <char>NPY_FLOAT
- ufunc__ncx2_pdf_types[2] = <char>NPY_FLOAT
- ufunc__ncx2_pdf_types[3] = <char>NPY_FLOAT
- ufunc__ncx2_pdf_types[4] = <char>NPY_DOUBLE
- ufunc__ncx2_pdf_types[5] = <char>NPY_DOUBLE
- ufunc__ncx2_pdf_types[6] = <char>NPY_DOUBLE
- ufunc__ncx2_pdf_types[7] = <char>NPY_DOUBLE
- ufunc__ncx2_pdf_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_ncx2_pdf_float
- ufunc__ncx2_pdf_ptr[2*0+1] = <void*>(<char*>"_ncx2_pdf")
- ufunc__ncx2_pdf_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_ncx2_pdf_double
- ufunc__ncx2_pdf_ptr[2*1+1] = <void*>(<char*>"_ncx2_pdf")
- ufunc__ncx2_pdf_data[0] = &ufunc__ncx2_pdf_ptr[2*0]
- ufunc__ncx2_pdf_data[1] = &ufunc__ncx2_pdf_ptr[2*1]
- _ncx2_pdf = np.PyUFunc_FromFuncAndData(ufunc__ncx2_pdf_loops, ufunc__ncx2_pdf_data, ufunc__ncx2_pdf_types, 2, 3, 1, 0, '_ncx2_pdf', ufunc__ncx2_pdf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__ncx2_sf_loops[2]
- cdef void *ufunc__ncx2_sf_ptr[4]
- cdef void *ufunc__ncx2_sf_data[2]
- cdef char ufunc__ncx2_sf_types[8]
- cdef char *ufunc__ncx2_sf_doc = (
- "_ncx2_sf(x, k, l)\n"
- "\n"
- "Survival function of Non-central chi-squared distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Positive real-valued\n"
- "k, l : array_like\n"
- " Positive, real-valued parameters\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__ncx2_sf_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc__ncx2_sf_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc__ncx2_sf_types[0] = <char>NPY_FLOAT
- ufunc__ncx2_sf_types[1] = <char>NPY_FLOAT
- ufunc__ncx2_sf_types[2] = <char>NPY_FLOAT
- ufunc__ncx2_sf_types[3] = <char>NPY_FLOAT
- ufunc__ncx2_sf_types[4] = <char>NPY_DOUBLE
- ufunc__ncx2_sf_types[5] = <char>NPY_DOUBLE
- ufunc__ncx2_sf_types[6] = <char>NPY_DOUBLE
- ufunc__ncx2_sf_types[7] = <char>NPY_DOUBLE
- ufunc__ncx2_sf_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_ncx2_sf_float
- ufunc__ncx2_sf_ptr[2*0+1] = <void*>(<char*>"_ncx2_sf")
- ufunc__ncx2_sf_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_ncx2_sf_double
- ufunc__ncx2_sf_ptr[2*1+1] = <void*>(<char*>"_ncx2_sf")
- ufunc__ncx2_sf_data[0] = &ufunc__ncx2_sf_ptr[2*0]
- ufunc__ncx2_sf_data[1] = &ufunc__ncx2_sf_ptr[2*1]
- _ncx2_sf = np.PyUFunc_FromFuncAndData(ufunc__ncx2_sf_loops, ufunc__ncx2_sf_data, ufunc__ncx2_sf_types, 2, 3, 1, 0, '_ncx2_sf', ufunc__ncx2_sf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__sf_error_test_function_loops[1]
- cdef void *ufunc__sf_error_test_function_ptr[2]
- cdef void *ufunc__sf_error_test_function_data[1]
- cdef char ufunc__sf_error_test_function_types[2]
- cdef char *ufunc__sf_error_test_function_doc = (
- "Private function; do not use.")
- ufunc__sf_error_test_function_loops[0] = <np.PyUFuncGenericFunction>loop_i_i__As_l_l
- ufunc__sf_error_test_function_types[0] = <char>NPY_LONG
- ufunc__sf_error_test_function_types[1] = <char>NPY_LONG
- ufunc__sf_error_test_function_ptr[2*0] = <void*>_func__sf_error_test_function
- ufunc__sf_error_test_function_ptr[2*0+1] = <void*>(<char*>"_sf_error_test_function")
- ufunc__sf_error_test_function_data[0] = &ufunc__sf_error_test_function_ptr[2*0]
- _sf_error_test_function = np.PyUFunc_FromFuncAndData(ufunc__sf_error_test_function_loops, ufunc__sf_error_test_function_data, ufunc__sf_error_test_function_types, 1, 1, 1, 0, '_sf_error_test_function', ufunc__sf_error_test_function_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__skewnorm_cdf_loops[2]
- cdef void *ufunc__skewnorm_cdf_ptr[4]
- cdef void *ufunc__skewnorm_cdf_data[2]
- cdef char ufunc__skewnorm_cdf_types[10]
- cdef char *ufunc__skewnorm_cdf_doc = (
- "_skewnorm_cdf(x, l, sc, sh)\n"
- "\n"
- "Cumulative density function of skewnorm distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Real-valued\n"
- "l : array_like\n"
- " Real-valued parameters\n"
- "sc : array_like\n"
- " Positive, Real-valued parameters\n"
- "sh : array_like\n"
- " Real-valued parameters\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__skewnorm_cdf_loops[0] = <np.PyUFuncGenericFunction>loop_f_ffff__As_ffff_f
- ufunc__skewnorm_cdf_loops[1] = <np.PyUFuncGenericFunction>loop_d_dddd__As_dddd_d
- ufunc__skewnorm_cdf_types[0] = <char>NPY_FLOAT
- ufunc__skewnorm_cdf_types[1] = <char>NPY_FLOAT
- ufunc__skewnorm_cdf_types[2] = <char>NPY_FLOAT
- ufunc__skewnorm_cdf_types[3] = <char>NPY_FLOAT
- ufunc__skewnorm_cdf_types[4] = <char>NPY_FLOAT
- ufunc__skewnorm_cdf_types[5] = <char>NPY_DOUBLE
- ufunc__skewnorm_cdf_types[6] = <char>NPY_DOUBLE
- ufunc__skewnorm_cdf_types[7] = <char>NPY_DOUBLE
- ufunc__skewnorm_cdf_types[8] = <char>NPY_DOUBLE
- ufunc__skewnorm_cdf_types[9] = <char>NPY_DOUBLE
- ufunc__skewnorm_cdf_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_skewnorm_cdf_float
- ufunc__skewnorm_cdf_ptr[2*0+1] = <void*>(<char*>"_skewnorm_cdf")
- ufunc__skewnorm_cdf_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_skewnorm_cdf_double
- ufunc__skewnorm_cdf_ptr[2*1+1] = <void*>(<char*>"_skewnorm_cdf")
- ufunc__skewnorm_cdf_data[0] = &ufunc__skewnorm_cdf_ptr[2*0]
- ufunc__skewnorm_cdf_data[1] = &ufunc__skewnorm_cdf_ptr[2*1]
- _skewnorm_cdf = np.PyUFunc_FromFuncAndData(ufunc__skewnorm_cdf_loops, ufunc__skewnorm_cdf_data, ufunc__skewnorm_cdf_types, 2, 4, 1, 0, '_skewnorm_cdf', ufunc__skewnorm_cdf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__skewnorm_isf_loops[2]
- cdef void *ufunc__skewnorm_isf_ptr[4]
- cdef void *ufunc__skewnorm_isf_data[2]
- cdef char ufunc__skewnorm_isf_types[10]
- cdef char *ufunc__skewnorm_isf_doc = (
- "_skewnorm_isf(x, l, sc, sh)\n"
- "\n"
- "Inverse survival function of skewnorm distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Real-valued\n"
- "l : array_like\n"
- " Real-valued parameters\n"
- "sc : array_like\n"
- " Positive, Real-valued parameters\n"
- "sh : array_like\n"
- " Real-valued parameters\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__skewnorm_isf_loops[0] = <np.PyUFuncGenericFunction>loop_f_ffff__As_ffff_f
- ufunc__skewnorm_isf_loops[1] = <np.PyUFuncGenericFunction>loop_d_dddd__As_dddd_d
- ufunc__skewnorm_isf_types[0] = <char>NPY_FLOAT
- ufunc__skewnorm_isf_types[1] = <char>NPY_FLOAT
- ufunc__skewnorm_isf_types[2] = <char>NPY_FLOAT
- ufunc__skewnorm_isf_types[3] = <char>NPY_FLOAT
- ufunc__skewnorm_isf_types[4] = <char>NPY_FLOAT
- ufunc__skewnorm_isf_types[5] = <char>NPY_DOUBLE
- ufunc__skewnorm_isf_types[6] = <char>NPY_DOUBLE
- ufunc__skewnorm_isf_types[7] = <char>NPY_DOUBLE
- ufunc__skewnorm_isf_types[8] = <char>NPY_DOUBLE
- ufunc__skewnorm_isf_types[9] = <char>NPY_DOUBLE
- ufunc__skewnorm_isf_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_skewnorm_isf_float
- ufunc__skewnorm_isf_ptr[2*0+1] = <void*>(<char*>"_skewnorm_isf")
- ufunc__skewnorm_isf_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_skewnorm_isf_double
- ufunc__skewnorm_isf_ptr[2*1+1] = <void*>(<char*>"_skewnorm_isf")
- ufunc__skewnorm_isf_data[0] = &ufunc__skewnorm_isf_ptr[2*0]
- ufunc__skewnorm_isf_data[1] = &ufunc__skewnorm_isf_ptr[2*1]
- _skewnorm_isf = np.PyUFunc_FromFuncAndData(ufunc__skewnorm_isf_loops, ufunc__skewnorm_isf_data, ufunc__skewnorm_isf_types, 2, 4, 1, 0, '_skewnorm_isf', ufunc__skewnorm_isf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__skewnorm_ppf_loops[2]
- cdef void *ufunc__skewnorm_ppf_ptr[4]
- cdef void *ufunc__skewnorm_ppf_data[2]
- cdef char ufunc__skewnorm_ppf_types[10]
- cdef char *ufunc__skewnorm_ppf_doc = (
- "_skewnorm_ppf(x, l, sc, sh)\n"
- "\n"
- "Percent point function of skewnorm distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Real-valued\n"
- "l : array_like\n"
- " Real-valued parameters\n"
- "sc : array_like\n"
- " Positive, Real-valued parameters\n"
- "sh : array_like\n"
- " Real-valued parameters\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray")
- ufunc__skewnorm_ppf_loops[0] = <np.PyUFuncGenericFunction>loop_f_ffff__As_ffff_f
- ufunc__skewnorm_ppf_loops[1] = <np.PyUFuncGenericFunction>loop_d_dddd__As_dddd_d
- ufunc__skewnorm_ppf_types[0] = <char>NPY_FLOAT
- ufunc__skewnorm_ppf_types[1] = <char>NPY_FLOAT
- ufunc__skewnorm_ppf_types[2] = <char>NPY_FLOAT
- ufunc__skewnorm_ppf_types[3] = <char>NPY_FLOAT
- ufunc__skewnorm_ppf_types[4] = <char>NPY_FLOAT
- ufunc__skewnorm_ppf_types[5] = <char>NPY_DOUBLE
- ufunc__skewnorm_ppf_types[6] = <char>NPY_DOUBLE
- ufunc__skewnorm_ppf_types[7] = <char>NPY_DOUBLE
- ufunc__skewnorm_ppf_types[8] = <char>NPY_DOUBLE
- ufunc__skewnorm_ppf_types[9] = <char>NPY_DOUBLE
- ufunc__skewnorm_ppf_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_skewnorm_ppf_float
- ufunc__skewnorm_ppf_ptr[2*0+1] = <void*>(<char*>"_skewnorm_ppf")
- ufunc__skewnorm_ppf_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_skewnorm_ppf_double
- ufunc__skewnorm_ppf_ptr[2*1+1] = <void*>(<char*>"_skewnorm_ppf")
- ufunc__skewnorm_ppf_data[0] = &ufunc__skewnorm_ppf_ptr[2*0]
- ufunc__skewnorm_ppf_data[1] = &ufunc__skewnorm_ppf_ptr[2*1]
- _skewnorm_ppf = np.PyUFunc_FromFuncAndData(ufunc__skewnorm_ppf_loops, ufunc__skewnorm_ppf_data, ufunc__skewnorm_ppf_types, 2, 4, 1, 0, '_skewnorm_ppf', ufunc__skewnorm_ppf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__smirnovc_loops[3]
- cdef void *ufunc__smirnovc_ptr[6]
- cdef void *ufunc__smirnovc_data[3]
- cdef char ufunc__smirnovc_types[9]
- cdef char *ufunc__smirnovc_doc = (
- "_smirnovc(n, d)\n"
- " Internal function, do not use.")
- ufunc__smirnovc_loops[0] = <np.PyUFuncGenericFunction>loop_d_pd__As_pd_d
- ufunc__smirnovc_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc__smirnovc_loops[2] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc__smirnovc_types[0] = <char>NPY_INTP
- ufunc__smirnovc_types[1] = <char>NPY_DOUBLE
- ufunc__smirnovc_types[2] = <char>NPY_DOUBLE
- ufunc__smirnovc_types[3] = <char>NPY_FLOAT
- ufunc__smirnovc_types[4] = <char>NPY_FLOAT
- ufunc__smirnovc_types[5] = <char>NPY_FLOAT
- ufunc__smirnovc_types[6] = <char>NPY_DOUBLE
- ufunc__smirnovc_types[7] = <char>NPY_DOUBLE
- ufunc__smirnovc_types[8] = <char>NPY_DOUBLE
- ufunc__smirnovc_ptr[2*0] = <void*>_func_cephes_smirnovc_wrap
- ufunc__smirnovc_ptr[2*0+1] = <void*>(<char*>"_smirnovc")
- ufunc__smirnovc_ptr[2*1] = <void*>_func_smirnovc_unsafe
- ufunc__smirnovc_ptr[2*1+1] = <void*>(<char*>"_smirnovc")
- ufunc__smirnovc_ptr[2*2] = <void*>_func_smirnovc_unsafe
- ufunc__smirnovc_ptr[2*2+1] = <void*>(<char*>"_smirnovc")
- ufunc__smirnovc_data[0] = &ufunc__smirnovc_ptr[2*0]
- ufunc__smirnovc_data[1] = &ufunc__smirnovc_ptr[2*1]
- ufunc__smirnovc_data[2] = &ufunc__smirnovc_ptr[2*2]
- _smirnovc = np.PyUFunc_FromFuncAndData(ufunc__smirnovc_loops, ufunc__smirnovc_data, ufunc__smirnovc_types, 3, 2, 1, 0, '_smirnovc', ufunc__smirnovc_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__smirnovci_loops[3]
- cdef void *ufunc__smirnovci_ptr[6]
- cdef void *ufunc__smirnovci_data[3]
- cdef char ufunc__smirnovci_types[9]
- cdef char *ufunc__smirnovci_doc = (
- "Internal function, do not use.")
- ufunc__smirnovci_loops[0] = <np.PyUFuncGenericFunction>loop_d_pd__As_pd_d
- ufunc__smirnovci_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc__smirnovci_loops[2] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc__smirnovci_types[0] = <char>NPY_INTP
- ufunc__smirnovci_types[1] = <char>NPY_DOUBLE
- ufunc__smirnovci_types[2] = <char>NPY_DOUBLE
- ufunc__smirnovci_types[3] = <char>NPY_FLOAT
- ufunc__smirnovci_types[4] = <char>NPY_FLOAT
- ufunc__smirnovci_types[5] = <char>NPY_FLOAT
- ufunc__smirnovci_types[6] = <char>NPY_DOUBLE
- ufunc__smirnovci_types[7] = <char>NPY_DOUBLE
- ufunc__smirnovci_types[8] = <char>NPY_DOUBLE
- ufunc__smirnovci_ptr[2*0] = <void*>_func_cephes_smirnovci_wrap
- ufunc__smirnovci_ptr[2*0+1] = <void*>(<char*>"_smirnovci")
- ufunc__smirnovci_ptr[2*1] = <void*>_func_smirnovci_unsafe
- ufunc__smirnovci_ptr[2*1+1] = <void*>(<char*>"_smirnovci")
- ufunc__smirnovci_ptr[2*2] = <void*>_func_smirnovci_unsafe
- ufunc__smirnovci_ptr[2*2+1] = <void*>(<char*>"_smirnovci")
- ufunc__smirnovci_data[0] = &ufunc__smirnovci_ptr[2*0]
- ufunc__smirnovci_data[1] = &ufunc__smirnovci_ptr[2*1]
- ufunc__smirnovci_data[2] = &ufunc__smirnovci_ptr[2*2]
- _smirnovci = np.PyUFunc_FromFuncAndData(ufunc__smirnovci_loops, ufunc__smirnovci_data, ufunc__smirnovci_types, 3, 2, 1, 0, '_smirnovci', ufunc__smirnovci_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__smirnovp_loops[3]
- cdef void *ufunc__smirnovp_ptr[6]
- cdef void *ufunc__smirnovp_data[3]
- cdef char ufunc__smirnovp_types[9]
- cdef char *ufunc__smirnovp_doc = (
- "_smirnovp(n, p)\n"
- " Internal function, do not use.")
- ufunc__smirnovp_loops[0] = <np.PyUFuncGenericFunction>loop_d_pd__As_pd_d
- ufunc__smirnovp_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc__smirnovp_loops[2] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc__smirnovp_types[0] = <char>NPY_INTP
- ufunc__smirnovp_types[1] = <char>NPY_DOUBLE
- ufunc__smirnovp_types[2] = <char>NPY_DOUBLE
- ufunc__smirnovp_types[3] = <char>NPY_FLOAT
- ufunc__smirnovp_types[4] = <char>NPY_FLOAT
- ufunc__smirnovp_types[5] = <char>NPY_FLOAT
- ufunc__smirnovp_types[6] = <char>NPY_DOUBLE
- ufunc__smirnovp_types[7] = <char>NPY_DOUBLE
- ufunc__smirnovp_types[8] = <char>NPY_DOUBLE
- ufunc__smirnovp_ptr[2*0] = <void*>_func_cephes_smirnovp_wrap
- ufunc__smirnovp_ptr[2*0+1] = <void*>(<char*>"_smirnovp")
- ufunc__smirnovp_ptr[2*1] = <void*>_func_smirnovp_unsafe
- ufunc__smirnovp_ptr[2*1+1] = <void*>(<char*>"_smirnovp")
- ufunc__smirnovp_ptr[2*2] = <void*>_func_smirnovp_unsafe
- ufunc__smirnovp_ptr[2*2+1] = <void*>(<char*>"_smirnovp")
- ufunc__smirnovp_data[0] = &ufunc__smirnovp_ptr[2*0]
- ufunc__smirnovp_data[1] = &ufunc__smirnovp_ptr[2*1]
- ufunc__smirnovp_data[2] = &ufunc__smirnovp_ptr[2*2]
- _smirnovp = np.PyUFunc_FromFuncAndData(ufunc__smirnovp_loops, ufunc__smirnovp_data, ufunc__smirnovp_types, 3, 2, 1, 0, '_smirnovp', ufunc__smirnovp_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__stirling2_inexact_loops[2]
- cdef void *ufunc__stirling2_inexact_ptr[4]
- cdef void *ufunc__stirling2_inexact_data[2]
- cdef char ufunc__stirling2_inexact_types[6]
- cdef char *ufunc__stirling2_inexact_doc = (
- "Internal function, do not use.")
- ufunc__stirling2_inexact_loops[0] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc__stirling2_inexact_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc__stirling2_inexact_types[0] = <char>NPY_FLOAT
- ufunc__stirling2_inexact_types[1] = <char>NPY_FLOAT
- ufunc__stirling2_inexact_types[2] = <char>NPY_FLOAT
- ufunc__stirling2_inexact_types[3] = <char>NPY_DOUBLE
- ufunc__stirling2_inexact_types[4] = <char>NPY_DOUBLE
- ufunc__stirling2_inexact_types[5] = <char>NPY_DOUBLE
- ufunc__stirling2_inexact_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export__stirling2_inexact
- ufunc__stirling2_inexact_ptr[2*0+1] = <void*>(<char*>"_stirling2_inexact")
- ufunc__stirling2_inexact_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export__stirling2_inexact
- ufunc__stirling2_inexact_ptr[2*1+1] = <void*>(<char*>"_stirling2_inexact")
- ufunc__stirling2_inexact_data[0] = &ufunc__stirling2_inexact_ptr[2*0]
- ufunc__stirling2_inexact_data[1] = &ufunc__stirling2_inexact_ptr[2*1]
- _stirling2_inexact = np.PyUFunc_FromFuncAndData(ufunc__stirling2_inexact_loops, ufunc__stirling2_inexact_data, ufunc__stirling2_inexact_types, 2, 2, 1, 0, '_stirling2_inexact', ufunc__stirling2_inexact_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__struve_asymp_large_z_loops[1]
- cdef void *ufunc__struve_asymp_large_z_ptr[2]
- cdef void *ufunc__struve_asymp_large_z_data[1]
- cdef char ufunc__struve_asymp_large_z_types[5]
- cdef char *ufunc__struve_asymp_large_z_doc = (
- "_struve_asymp_large_z(v, z, is_h)\n"
- "\n"
- "Internal function for testing `struve` & `modstruve`\n"
- "\n"
- "Evaluates using asymptotic expansion\n"
- "\n"
- "Returns\n"
- "-------\n"
- "v, err")
- ufunc__struve_asymp_large_z_loops[0] = <np.PyUFuncGenericFunction>loop_d_ddp_d_As_ddp_dd
- ufunc__struve_asymp_large_z_types[0] = <char>NPY_DOUBLE
- ufunc__struve_asymp_large_z_types[1] = <char>NPY_DOUBLE
- ufunc__struve_asymp_large_z_types[2] = <char>NPY_INTP
- ufunc__struve_asymp_large_z_types[3] = <char>NPY_DOUBLE
- ufunc__struve_asymp_large_z_types[4] = <char>NPY_DOUBLE
- ufunc__struve_asymp_large_z_ptr[2*0] = <void*>_func_cephes__struve_asymp_large_z
- ufunc__struve_asymp_large_z_ptr[2*0+1] = <void*>(<char*>"_struve_asymp_large_z")
- ufunc__struve_asymp_large_z_data[0] = &ufunc__struve_asymp_large_z_ptr[2*0]
- _struve_asymp_large_z = np.PyUFunc_FromFuncAndData(ufunc__struve_asymp_large_z_loops, ufunc__struve_asymp_large_z_data, ufunc__struve_asymp_large_z_types, 1, 3, 2, 0, '_struve_asymp_large_z', ufunc__struve_asymp_large_z_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__struve_bessel_series_loops[1]
- cdef void *ufunc__struve_bessel_series_ptr[2]
- cdef void *ufunc__struve_bessel_series_data[1]
- cdef char ufunc__struve_bessel_series_types[5]
- cdef char *ufunc__struve_bessel_series_doc = (
- "_struve_bessel_series(v, z, is_h)\n"
- "\n"
- "Internal function for testing `struve` & `modstruve`\n"
- "\n"
- "Evaluates using Bessel function series\n"
- "\n"
- "Returns\n"
- "-------\n"
- "v, err")
- ufunc__struve_bessel_series_loops[0] = <np.PyUFuncGenericFunction>loop_d_ddp_d_As_ddp_dd
- ufunc__struve_bessel_series_types[0] = <char>NPY_DOUBLE
- ufunc__struve_bessel_series_types[1] = <char>NPY_DOUBLE
- ufunc__struve_bessel_series_types[2] = <char>NPY_INTP
- ufunc__struve_bessel_series_types[3] = <char>NPY_DOUBLE
- ufunc__struve_bessel_series_types[4] = <char>NPY_DOUBLE
- ufunc__struve_bessel_series_ptr[2*0] = <void*>_func_cephes__struve_bessel_series
- ufunc__struve_bessel_series_ptr[2*0+1] = <void*>(<char*>"_struve_bessel_series")
- ufunc__struve_bessel_series_data[0] = &ufunc__struve_bessel_series_ptr[2*0]
- _struve_bessel_series = np.PyUFunc_FromFuncAndData(ufunc__struve_bessel_series_loops, ufunc__struve_bessel_series_data, ufunc__struve_bessel_series_types, 1, 3, 2, 0, '_struve_bessel_series', ufunc__struve_bessel_series_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc__struve_power_series_loops[1]
- cdef void *ufunc__struve_power_series_ptr[2]
- cdef void *ufunc__struve_power_series_data[1]
- cdef char ufunc__struve_power_series_types[5]
- cdef char *ufunc__struve_power_series_doc = (
- "_struve_power_series(v, z, is_h)\n"
- "\n"
- "Internal function for testing `struve` & `modstruve`\n"
- "\n"
- "Evaluates using power series\n"
- "\n"
- "Returns\n"
- "-------\n"
- "v, err")
- ufunc__struve_power_series_loops[0] = <np.PyUFuncGenericFunction>loop_d_ddp_d_As_ddp_dd
- ufunc__struve_power_series_types[0] = <char>NPY_DOUBLE
- ufunc__struve_power_series_types[1] = <char>NPY_DOUBLE
- ufunc__struve_power_series_types[2] = <char>NPY_INTP
- ufunc__struve_power_series_types[3] = <char>NPY_DOUBLE
- ufunc__struve_power_series_types[4] = <char>NPY_DOUBLE
- ufunc__struve_power_series_ptr[2*0] = <void*>_func_cephes__struve_power_series
- ufunc__struve_power_series_ptr[2*0+1] = <void*>(<char*>"_struve_power_series")
- ufunc__struve_power_series_data[0] = &ufunc__struve_power_series_ptr[2*0]
- _struve_power_series = np.PyUFunc_FromFuncAndData(ufunc__struve_power_series_loops, ufunc__struve_power_series_data, ufunc__struve_power_series_types, 1, 3, 2, 0, '_struve_power_series', ufunc__struve_power_series_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_agm_loops[2]
- cdef void *ufunc_agm_ptr[4]
- cdef void *ufunc_agm_data[2]
- cdef char ufunc_agm_types[6]
- cdef char *ufunc_agm_doc = (
- "agm(a, b, out=None)\n"
- "\n"
- "Compute the arithmetic-geometric mean of `a` and `b`.\n"
- "\n"
- "Start with a_0 = a and b_0 = b and iteratively compute::\n"
- "\n"
- " a_{n+1} = (a_n + b_n)/2\n"
- " b_{n+1} = sqrt(a_n*b_n)\n"
- "\n"
- "a_n and b_n converge to the same limit as n increases; their common\n"
- "limit is agm(a, b).\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "a, b : array_like\n"
- " Real values only. If the values are both negative, the result\n"
- " is negative. If one value is negative and the other is positive,\n"
- " `nan` is returned.\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray\n"
- " The arithmetic-geometric mean of `a` and `b`.\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> import numpy as np\n"
- ">>> from scipy.special import agm\n"
- ">>> a, b = 24.0, 6.0\n"
- ">>> agm(a, b)\n"
- "13.458171481725614\n"
- "\n"
- "Compare that result to the iteration:\n"
- "\n"
- ">>> while a != b:\n"
- "... a, b = (a + b)/2, np.sqrt(a*b)\n"
- "... print(\"a = %19.16f b=%19.16f\" % (a, b))\n"
- "...\n"
- "a = 15.0000000000000000 b=12.0000000000000000\n"
- "a = 13.5000000000000000 b=13.4164078649987388\n"
- "a = 13.4582039324993694 b=13.4581390309909850\n"
- "a = 13.4581714817451772 b=13.4581714817060547\n"
- "a = 13.4581714817256159 b=13.4581714817256159\n"
- "\n"
- "When array-like arguments are given, broadcasting applies:\n"
- "\n"
- ">>> a = np.array([[1.5], [3], [6]]) # a has shape (3, 1).\n"
- ">>> b = np.array([6, 12, 24, 48]) # b has shape (4,).\n"
- ">>> agm(a, b)\n"
- "array([[ 3.36454287, 5.42363427, 9.05798751, 15.53650756],\n"
- " [ 4.37037309, 6.72908574, 10.84726853, 18.11597502],\n"
- " [ 6. , 8.74074619, 13.45817148, 21.69453707]])")
- ufunc_agm_loops[0] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc_agm_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_agm_types[0] = <char>NPY_FLOAT
- ufunc_agm_types[1] = <char>NPY_FLOAT
- ufunc_agm_types[2] = <char>NPY_FLOAT
- ufunc_agm_types[3] = <char>NPY_DOUBLE
- ufunc_agm_types[4] = <char>NPY_DOUBLE
- ufunc_agm_types[5] = <char>NPY_DOUBLE
- ufunc_agm_ptr[2*0] = <void*>_func_agm
- ufunc_agm_ptr[2*0+1] = <void*>(<char*>"agm")
- ufunc_agm_ptr[2*1] = <void*>_func_agm
- ufunc_agm_ptr[2*1+1] = <void*>(<char*>"agm")
- ufunc_agm_data[0] = &ufunc_agm_ptr[2*0]
- ufunc_agm_data[1] = &ufunc_agm_ptr[2*1]
- agm = np.PyUFunc_FromFuncAndData(ufunc_agm_loops, ufunc_agm_data, ufunc_agm_types, 2, 2, 1, 0, 'agm', ufunc_agm_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_bdtr_loops[3]
- cdef void *ufunc_bdtr_ptr[6]
- cdef void *ufunc_bdtr_data[3]
- cdef char ufunc_bdtr_types[12]
- cdef char *ufunc_bdtr_doc = (
- "bdtr(k, n, p, out=None)\n"
- "\n"
- "Binomial distribution cumulative distribution function.\n"
- "\n"
- "Sum of the terms 0 through `floor(k)` of the Binomial probability density.\n"
- "\n"
- ".. math::\n"
- " \\mathrm{bdtr}(k, n, p) =\n"
- " \\sum_{j=0}^{\\lfloor k \\rfloor} {{n}\\choose{j}} p^j (1-p)^{n-j}\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "k : array_like\n"
- " Number of successes (double), rounded down to the nearest integer.\n"
- "n : array_like\n"
- " Number of events (int).\n"
- "p : array_like\n"
- " Probability of success in a single event (float).\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "y : scalar or ndarray\n"
- " Probability of `floor(k)` or fewer successes in `n` independent events with\n"
- " success probabilities of `p`.\n"
- "\n"
- "Notes\n"
- "-----\n"
- "The terms are not summed directly; instead the regularized incomplete beta\n"
- "function is employed, according to the formula,\n"
- "\n"
- ".. math::\n"
- " \\mathrm{bdtr}(k, n, p) =\n"
- " I_{1 - p}(n - \\lfloor k \\rfloor, \\lfloor k \\rfloor + 1).\n"
- "\n"
- "Wrapper for the Cephes [1]_ routine `bdtr`.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] Cephes Mathematical Functions Library,\n"
- " http://www.netlib.org/cephes/")
- ufunc_bdtr_loops[0] = <np.PyUFuncGenericFunction>loop_d_ddd__As_fff_f
- ufunc_bdtr_loops[1] = <np.PyUFuncGenericFunction>loop_d_dpd__As_dpd_d
- ufunc_bdtr_loops[2] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_bdtr_types[0] = <char>NPY_FLOAT
- ufunc_bdtr_types[1] = <char>NPY_FLOAT
- ufunc_bdtr_types[2] = <char>NPY_FLOAT
- ufunc_bdtr_types[3] = <char>NPY_FLOAT
- ufunc_bdtr_types[4] = <char>NPY_DOUBLE
- ufunc_bdtr_types[5] = <char>NPY_INTP
- ufunc_bdtr_types[6] = <char>NPY_DOUBLE
- ufunc_bdtr_types[7] = <char>NPY_DOUBLE
- ufunc_bdtr_types[8] = <char>NPY_DOUBLE
- ufunc_bdtr_types[9] = <char>NPY_DOUBLE
- ufunc_bdtr_types[10] = <char>NPY_DOUBLE
- ufunc_bdtr_types[11] = <char>NPY_DOUBLE
- ufunc_bdtr_ptr[2*0] = <void*>_func_bdtr_unsafe
- ufunc_bdtr_ptr[2*0+1] = <void*>(<char*>"bdtr")
- ufunc_bdtr_ptr[2*1] = <void*>_func_cephes_bdtr_wrap
- ufunc_bdtr_ptr[2*1+1] = <void*>(<char*>"bdtr")
- ufunc_bdtr_ptr[2*2] = <void*>_func_bdtr_unsafe
- ufunc_bdtr_ptr[2*2+1] = <void*>(<char*>"bdtr")
- ufunc_bdtr_data[0] = &ufunc_bdtr_ptr[2*0]
- ufunc_bdtr_data[1] = &ufunc_bdtr_ptr[2*1]
- ufunc_bdtr_data[2] = &ufunc_bdtr_ptr[2*2]
- bdtr = np.PyUFunc_FromFuncAndData(ufunc_bdtr_loops, ufunc_bdtr_data, ufunc_bdtr_types, 3, 3, 1, 0, 'bdtr', ufunc_bdtr_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_bdtrc_loops[3]
- cdef void *ufunc_bdtrc_ptr[6]
- cdef void *ufunc_bdtrc_data[3]
- cdef char ufunc_bdtrc_types[12]
- cdef char *ufunc_bdtrc_doc = (
- "bdtrc(k, n, p, out=None)\n"
- "\n"
- "Binomial distribution survival function.\n"
- "\n"
- "Sum of the terms `floor(k) + 1` through `n` of the binomial probability\n"
- "density,\n"
- "\n"
- ".. math::\n"
- " \\mathrm{bdtrc}(k, n, p) =\n"
- " \\sum_{j=\\lfloor k \\rfloor +1}^n {{n}\\choose{j}} p^j (1-p)^{n-j}\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "k : array_like\n"
- " Number of successes (double), rounded down to nearest integer.\n"
- "n : array_like\n"
- " Number of events (int)\n"
- "p : array_like\n"
- " Probability of success in a single event.\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "y : scalar or ndarray\n"
- " Probability of `floor(k) + 1` or more successes in `n` independent\n"
- " events with success probabilities of `p`.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "bdtr\n"
- "betainc\n"
- "\n"
- "Notes\n"
- "-----\n"
- "The terms are not summed directly; instead the regularized incomplete beta\n"
- "function is employed, according to the formula,\n"
- "\n"
- ".. math::\n"
- " \\mathrm{bdtrc}(k, n, p) = I_{p}(\\lfloor k \\rfloor + 1, n - \\lfloor k \\rfloor).\n"
- "\n"
- "Wrapper for the Cephes [1]_ routine `bdtrc`.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] Cephes Mathematical Functions Library,\n"
- " http://www.netlib.org/cephes/")
- ufunc_bdtrc_loops[0] = <np.PyUFuncGenericFunction>loop_d_ddd__As_fff_f
- ufunc_bdtrc_loops[1] = <np.PyUFuncGenericFunction>loop_d_dpd__As_dpd_d
- ufunc_bdtrc_loops[2] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_bdtrc_types[0] = <char>NPY_FLOAT
- ufunc_bdtrc_types[1] = <char>NPY_FLOAT
- ufunc_bdtrc_types[2] = <char>NPY_FLOAT
- ufunc_bdtrc_types[3] = <char>NPY_FLOAT
- ufunc_bdtrc_types[4] = <char>NPY_DOUBLE
- ufunc_bdtrc_types[5] = <char>NPY_INTP
- ufunc_bdtrc_types[6] = <char>NPY_DOUBLE
- ufunc_bdtrc_types[7] = <char>NPY_DOUBLE
- ufunc_bdtrc_types[8] = <char>NPY_DOUBLE
- ufunc_bdtrc_types[9] = <char>NPY_DOUBLE
- ufunc_bdtrc_types[10] = <char>NPY_DOUBLE
- ufunc_bdtrc_types[11] = <char>NPY_DOUBLE
- ufunc_bdtrc_ptr[2*0] = <void*>_func_bdtrc_unsafe
- ufunc_bdtrc_ptr[2*0+1] = <void*>(<char*>"bdtrc")
- ufunc_bdtrc_ptr[2*1] = <void*>_func_cephes_bdtrc_wrap
- ufunc_bdtrc_ptr[2*1+1] = <void*>(<char*>"bdtrc")
- ufunc_bdtrc_ptr[2*2] = <void*>_func_bdtrc_unsafe
- ufunc_bdtrc_ptr[2*2+1] = <void*>(<char*>"bdtrc")
- ufunc_bdtrc_data[0] = &ufunc_bdtrc_ptr[2*0]
- ufunc_bdtrc_data[1] = &ufunc_bdtrc_ptr[2*1]
- ufunc_bdtrc_data[2] = &ufunc_bdtrc_ptr[2*2]
- bdtrc = np.PyUFunc_FromFuncAndData(ufunc_bdtrc_loops, ufunc_bdtrc_data, ufunc_bdtrc_types, 3, 3, 1, 0, 'bdtrc', ufunc_bdtrc_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_bdtri_loops[3]
- cdef void *ufunc_bdtri_ptr[6]
- cdef void *ufunc_bdtri_data[3]
- cdef char ufunc_bdtri_types[12]
- cdef char *ufunc_bdtri_doc = (
- "bdtri(k, n, y, out=None)\n"
- "\n"
- "Inverse function to `bdtr` with respect to `p`.\n"
- "\n"
- "Finds the event probability `p` such that the sum of the terms 0 through\n"
- "`k` of the binomial probability density is equal to the given cumulative\n"
- "probability `y`.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "k : array_like\n"
- " Number of successes (float), rounded down to the nearest integer.\n"
- "n : array_like\n"
- " Number of events (float)\n"
- "y : array_like\n"
- " Cumulative probability (probability of `k` or fewer successes in `n`\n"
- " events).\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "p : scalar or ndarray\n"
- " The event probability such that `bdtr(\\lfloor k \\rfloor, n, p) = y`.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "bdtr\n"
- "betaincinv\n"
- "\n"
- "Notes\n"
- "-----\n"
- "The computation is carried out using the inverse beta integral function\n"
- "and the relation,::\n"
- "\n"
- " 1 - p = betaincinv(n - k, k + 1, y).\n"
- "\n"
- "Wrapper for the Cephes [1]_ routine `bdtri`.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] Cephes Mathematical Functions Library,\n"
- " http://www.netlib.org/cephes/")
- ufunc_bdtri_loops[0] = <np.PyUFuncGenericFunction>loop_d_ddd__As_fff_f
- ufunc_bdtri_loops[1] = <np.PyUFuncGenericFunction>loop_d_dpd__As_dpd_d
- ufunc_bdtri_loops[2] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_bdtri_types[0] = <char>NPY_FLOAT
- ufunc_bdtri_types[1] = <char>NPY_FLOAT
- ufunc_bdtri_types[2] = <char>NPY_FLOAT
- ufunc_bdtri_types[3] = <char>NPY_FLOAT
- ufunc_bdtri_types[4] = <char>NPY_DOUBLE
- ufunc_bdtri_types[5] = <char>NPY_INTP
- ufunc_bdtri_types[6] = <char>NPY_DOUBLE
- ufunc_bdtri_types[7] = <char>NPY_DOUBLE
- ufunc_bdtri_types[8] = <char>NPY_DOUBLE
- ufunc_bdtri_types[9] = <char>NPY_DOUBLE
- ufunc_bdtri_types[10] = <char>NPY_DOUBLE
- ufunc_bdtri_types[11] = <char>NPY_DOUBLE
- ufunc_bdtri_ptr[2*0] = <void*>_func_bdtri_unsafe
- ufunc_bdtri_ptr[2*0+1] = <void*>(<char*>"bdtri")
- ufunc_bdtri_ptr[2*1] = <void*>_func_cephes_bdtri_wrap
- ufunc_bdtri_ptr[2*1+1] = <void*>(<char*>"bdtri")
- ufunc_bdtri_ptr[2*2] = <void*>_func_bdtri_unsafe
- ufunc_bdtri_ptr[2*2+1] = <void*>(<char*>"bdtri")
- ufunc_bdtri_data[0] = &ufunc_bdtri_ptr[2*0]
- ufunc_bdtri_data[1] = &ufunc_bdtri_ptr[2*1]
- ufunc_bdtri_data[2] = &ufunc_bdtri_ptr[2*2]
- bdtri = np.PyUFunc_FromFuncAndData(ufunc_bdtri_loops, ufunc_bdtri_data, ufunc_bdtri_types, 3, 3, 1, 0, 'bdtri', ufunc_bdtri_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_bdtrik_loops[2]
- cdef void *ufunc_bdtrik_ptr[4]
- cdef void *ufunc_bdtrik_data[2]
- cdef char ufunc_bdtrik_types[8]
- cdef char *ufunc_bdtrik_doc = (
- "bdtrik(y, n, p, out=None)\n"
- "\n"
- "Inverse function to `bdtr` with respect to `k`.\n"
- "\n"
- "Finds the number of successes `k` such that the sum of the terms 0 through\n"
- "`k` of the Binomial probability density for `n` events with probability\n"
- "`p` is equal to the given cumulative probability `y`.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "y : array_like\n"
- " Cumulative probability (probability of `k` or fewer successes in `n`\n"
- " events).\n"
- "n : array_like\n"
- " Number of events (float).\n"
- "p : array_like\n"
- " Success probability (float).\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "k : scalar or ndarray\n"
- " The number of successes `k` such that `bdtr(k, n, p) = y`.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "bdtr\n"
- "\n"
- "Notes\n"
- "-----\n"
- "Formula 26.5.24 of [1]_ (or equivalently [2]_) is used to reduce the binomial\n"
- "distribution to the cumulative incomplete beta distribution.\n"
- "\n"
- "Computation of `k` involves a search for a value that produces the desired\n"
- "value of `y`. The search relies on the monotonicity of `y` with `k`.\n"
- "\n"
- "Wrapper for the CDFLIB [3]_ Fortran routine `cdfbin`.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] Milton Abramowitz and Irene A. Stegun, eds.\n"
- " Handbook of Mathematical Functions with Formulas,\n"
- " Graphs, and Mathematical Tables. New York: Dover, 1972.\n"
- ".. [2] NIST Digital Library of Mathematical Functions\n"
- " https://dlmf.nist.gov/8.17.5#E5\n"
- ".. [3] Barry Brown, James Lovato, and Kathy Russell,\n"
- " CDFLIB: Library of Fortran Routines for Cumulative Distribution\n"
- " Functions, Inverses, and Other Parameters.")
- ufunc_bdtrik_loops[0] = <np.PyUFuncGenericFunction>loop_d_ddd__As_fff_f
- ufunc_bdtrik_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_bdtrik_types[0] = <char>NPY_FLOAT
- ufunc_bdtrik_types[1] = <char>NPY_FLOAT
- ufunc_bdtrik_types[2] = <char>NPY_FLOAT
- ufunc_bdtrik_types[3] = <char>NPY_FLOAT
- ufunc_bdtrik_types[4] = <char>NPY_DOUBLE
- ufunc_bdtrik_types[5] = <char>NPY_DOUBLE
- ufunc_bdtrik_types[6] = <char>NPY_DOUBLE
- ufunc_bdtrik_types[7] = <char>NPY_DOUBLE
- ufunc_bdtrik_ptr[2*0] = <void*>_func_bdtrik
- ufunc_bdtrik_ptr[2*0+1] = <void*>(<char*>"bdtrik")
- ufunc_bdtrik_ptr[2*1] = <void*>_func_bdtrik
- ufunc_bdtrik_ptr[2*1+1] = <void*>(<char*>"bdtrik")
- ufunc_bdtrik_data[0] = &ufunc_bdtrik_ptr[2*0]
- ufunc_bdtrik_data[1] = &ufunc_bdtrik_ptr[2*1]
- bdtrik = np.PyUFunc_FromFuncAndData(ufunc_bdtrik_loops, ufunc_bdtrik_data, ufunc_bdtrik_types, 2, 3, 1, 0, 'bdtrik', ufunc_bdtrik_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_bdtrin_loops[2]
- cdef void *ufunc_bdtrin_ptr[4]
- cdef void *ufunc_bdtrin_data[2]
- cdef char ufunc_bdtrin_types[8]
- cdef char *ufunc_bdtrin_doc = (
- "bdtrin(k, y, p, out=None)\n"
- "\n"
- "Inverse function to `bdtr` with respect to `n`.\n"
- "\n"
- "Finds the number of events `n` such that the sum of the terms 0 through\n"
- "`k` of the Binomial probability density for events with probability `p` is\n"
- "equal to the given cumulative probability `y`.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "k : array_like\n"
- " Number of successes (float).\n"
- "y : array_like\n"
- " Cumulative probability (probability of `k` or fewer successes in `n`\n"
- " events).\n"
- "p : array_like\n"
- " Success probability (float).\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "n : scalar or ndarray\n"
- " The number of events `n` such that `bdtr(k, n, p) = y`.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "bdtr\n"
- "\n"
- "Notes\n"
- "-----\n"
- "Formula 26.5.24 of [1]_ (or equivalently [2]_) is used to reduce the binomial\n"
- "distribution to the cumulative incomplete beta distribution.\n"
- "\n"
- "Computation of `n` involves a search for a value that produces the desired\n"
- "value of `y`. The search relies on the monotonicity of `y` with `n`.\n"
- "\n"
- "Wrapper for the CDFLIB [3]_ Fortran routine `cdfbin`.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] Milton Abramowitz and Irene A. Stegun, eds.\n"
- " Handbook of Mathematical Functions with Formulas,\n"
- " Graphs, and Mathematical Tables. New York: Dover, 1972.\n"
- ".. [2] NIST Digital Library of Mathematical Functions\n"
- " https://dlmf.nist.gov/8.17.5#E5\n"
- ".. [3] Barry Brown, James Lovato, and Kathy Russell,\n"
- " CDFLIB: Library of Fortran Routines for Cumulative Distribution\n"
- " Functions, Inverses, and Other Parameters.")
- ufunc_bdtrin_loops[0] = <np.PyUFuncGenericFunction>loop_d_ddd__As_fff_f
- ufunc_bdtrin_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_bdtrin_types[0] = <char>NPY_FLOAT
- ufunc_bdtrin_types[1] = <char>NPY_FLOAT
- ufunc_bdtrin_types[2] = <char>NPY_FLOAT
- ufunc_bdtrin_types[3] = <char>NPY_FLOAT
- ufunc_bdtrin_types[4] = <char>NPY_DOUBLE
- ufunc_bdtrin_types[5] = <char>NPY_DOUBLE
- ufunc_bdtrin_types[6] = <char>NPY_DOUBLE
- ufunc_bdtrin_types[7] = <char>NPY_DOUBLE
- ufunc_bdtrin_ptr[2*0] = <void*>_func_bdtrin
- ufunc_bdtrin_ptr[2*0+1] = <void*>(<char*>"bdtrin")
- ufunc_bdtrin_ptr[2*1] = <void*>_func_bdtrin
- ufunc_bdtrin_ptr[2*1+1] = <void*>(<char*>"bdtrin")
- ufunc_bdtrin_data[0] = &ufunc_bdtrin_ptr[2*0]
- ufunc_bdtrin_data[1] = &ufunc_bdtrin_ptr[2*1]
- bdtrin = np.PyUFunc_FromFuncAndData(ufunc_bdtrin_loops, ufunc_bdtrin_data, ufunc_bdtrin_types, 2, 3, 1, 0, 'bdtrin', ufunc_bdtrin_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_betainc_loops[2]
- cdef void *ufunc_betainc_ptr[4]
- cdef void *ufunc_betainc_data[2]
- cdef char ufunc_betainc_types[8]
- cdef char *ufunc_betainc_doc = (
- "betainc(a, b, x, out=None)\n"
- "\n"
- "Regularized incomplete beta function.\n"
- "\n"
- "Computes the regularized incomplete beta function, defined as [1]_:\n"
- "\n"
- ".. math::\n"
- "\n"
- " I_x(a, b) = \\frac{\\Gamma(a+b)}{\\Gamma(a)\\Gamma(b)} \\int_0^x\n"
- " t^{a-1}(1-t)^{b-1}dt,\n"
- "\n"
- "for :math:`0 \\leq x \\leq 1`.\n"
- "\n"
- "This function is the cumulative distribution function for the beta\n"
- "distribution; its range is [0, 1].\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "a, b : array_like\n"
- " Positive, real-valued parameters\n"
- "x : array_like\n"
- " Real-valued such that :math:`0 \\leq x \\leq 1`,\n"
- " the upper limit of integration\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray\n"
- " Value of the regularized incomplete beta function\n"
- "\n"
- "See Also\n"
- "--------\n"
- "beta : beta function\n"
- "betaincinv : inverse of the regularized incomplete beta function\n"
- "betaincc : complement of the regularized incomplete beta function\n"
- "scipy.stats.beta : beta distribution\n"
- "\n"
- "Notes\n"
- "-----\n"
- "The term *regularized* in the name of this function refers to the\n"
- "scaling of the function by the gamma function terms shown in the\n"
- "formula. When not qualified as *regularized*, the name *incomplete\n"
- "beta function* often refers to just the integral expression,\n"
- "without the gamma terms. One can use the function `beta` from\n"
- "`scipy.special` to get this \"nonregularized\" incomplete beta\n"
- "function by multiplying the result of ``betainc(a, b, x)`` by\n"
- "``beta(a, b)``.\n"
- "\n"
- "``betainc(a, b, x)`` is treated as a two parameter family of functions\n"
- "of a single variable `x`, rather than as a function of three variables.\n"
- "This impacts only the limiting cases ``a = 0``, ``b = 0``, ``a = inf``,\n"
- "``b = inf``.\n"
- "\n"
- "In general\n"
- "\n"
- ".. math::\n"
- "\n"
- " \\lim_{(a, b) \\rightarrow (a_0, b_0)} \\mathrm{betainc}(a, b, x)\n"
- "\n"
- "is treated as a pointwise limit in ``x``. Thus for example,\n"
- "``betainc(0, b, 0)`` equals ``0`` for ``b > 0``, although it would be\n"
- "indeterminate when considering the simultaneous limit ``(a, x) -> (0+, 0+)``.\n"
- "\n"
- "This function wraps the ``ibeta`` routine from the\n"
- "Boost Math C++ library [2]_.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] NIST Digital Library of Mathematical Functions\n"
- " https://dlmf.nist.gov/8.17\n"
- ".. [2] The Boost Developers. \"Boost C++ Libraries\". https://www.boost.org/.\n"
- "\n"
- "Examples\n"
- "--------\n"
- "\n"
- "Let :math:`B(a, b)` be the `beta` function.\n"
- "\n"
- ">>> import scipy.special as sc\n"
- "\n"
- "The coefficient in terms of `gamma` is equal to\n"
- ":math:`1/B(a, b)`. Also, when :math:`x=1`\n"
- "the integral is equal to :math:`B(a, b)`.\n"
- "Therefore, :math:`I_{x=1}(a, b) = 1` for any :math:`a, b`.\n"
- "\n"
- ">>> sc.betainc(0.2, 3.5, 1.0)\n"
- "1.0\n"
- "\n"
- "It satisfies\n"
- ":math:`I_x(a, b) = x^a F(a, 1-b, a+1, x)/ (aB(a, b))`,\n"
- "where :math:`F` is the hypergeometric function `hyp2f1`:\n"
- "\n"
- ">>> a, b, x = 1.4, 3.1, 0.5\n"
- ">>> x**a * sc.hyp2f1(a, 1 - b, a + 1, x)/(a * sc.beta(a, b))\n"
- "0.8148904036225295\n"
- ">>> sc.betainc(a, b, x)\n"
- "0.8148904036225296\n"
- "\n"
- "This functions satisfies the relationship\n"
- ":math:`I_x(a, b) = 1 - I_{1-x}(b, a)`:\n"
- "\n"
- ">>> sc.betainc(2.2, 3.1, 0.4)\n"
- "0.49339638807619446\n"
- ">>> 1 - sc.betainc(3.1, 2.2, 1 - 0.4)\n"
- "0.49339638807619446")
- ufunc_betainc_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc_betainc_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_betainc_types[0] = <char>NPY_FLOAT
- ufunc_betainc_types[1] = <char>NPY_FLOAT
- ufunc_betainc_types[2] = <char>NPY_FLOAT
- ufunc_betainc_types[3] = <char>NPY_FLOAT
- ufunc_betainc_types[4] = <char>NPY_DOUBLE
- ufunc_betainc_types[5] = <char>NPY_DOUBLE
- ufunc_betainc_types[6] = <char>NPY_DOUBLE
- ufunc_betainc_types[7] = <char>NPY_DOUBLE
- ufunc_betainc_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_ibeta_float
- ufunc_betainc_ptr[2*0+1] = <void*>(<char*>"betainc")
- ufunc_betainc_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_ibeta_double
- ufunc_betainc_ptr[2*1+1] = <void*>(<char*>"betainc")
- ufunc_betainc_data[0] = &ufunc_betainc_ptr[2*0]
- ufunc_betainc_data[1] = &ufunc_betainc_ptr[2*1]
- betainc = np.PyUFunc_FromFuncAndData(ufunc_betainc_loops, ufunc_betainc_data, ufunc_betainc_types, 2, 3, 1, 0, 'betainc', ufunc_betainc_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_betaincc_loops[2]
- cdef void *ufunc_betaincc_ptr[4]
- cdef void *ufunc_betaincc_data[2]
- cdef char ufunc_betaincc_types[8]
- cdef char *ufunc_betaincc_doc = (
- "betaincc(a, b, x, out=None)\n"
- "\n"
- "Complement of the regularized incomplete beta function.\n"
- "\n"
- "Computes the complement of the regularized incomplete beta function,\n"
- "defined as [1]_:\n"
- "\n"
- ".. math::\n"
- "\n"
- " \\bar{I}_x(a, b) = 1 - I_x(a, b)\n"
- " = 1 - \\frac{\\Gamma(a+b)}{\\Gamma(a)\\Gamma(b)} \\int_0^x\n"
- " t^{a-1}(1-t)^{b-1}dt,\n"
- "\n"
- "for :math:`0 \\leq x \\leq 1`.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "a, b : array_like\n"
- " Positive, real-valued parameters\n"
- "x : array_like\n"
- " Real-valued such that :math:`0 \\leq x \\leq 1`,\n"
- " the upper limit of integration\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray\n"
- " Value of the regularized incomplete beta function\n"
- "\n"
- "See Also\n"
- "--------\n"
- "betainc : regularized incomplete beta function\n"
- "betaincinv : inverse of the regularized incomplete beta function\n"
- "betainccinv :\n"
- " inverse of the complement of the regularized incomplete beta function\n"
- "beta : beta function\n"
- "scipy.stats.beta : beta distribution\n"
- "\n"
- "Notes\n"
- "-----\n"
- ".. versionadded:: 1.11.0\n"
- "\n"
- "Like `betainc`, ``betaincc(a, b, x)`` is treated as a two parameter\n"
- "family of functions of a single variable `x`, rather than as a function of\n"
- "three variables. See the `betainc` docstring for more info on how this\n"
- "impacts limiting cases.\n"
- "\n"
- "This function wraps the ``ibetac`` routine from the\n"
- "Boost Math C++ library [2]_.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] NIST Digital Library of Mathematical Functions\n"
- " https://dlmf.nist.gov/8.17\n"
- ".. [2] The Boost Developers. \"Boost C++ Libraries\". https://www.boost.org/.\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> from scipy.special import betaincc, betainc\n"
- "\n"
- "The naive calculation ``1 - betainc(a, b, x)`` loses precision when\n"
- "the values of ``betainc(a, b, x)`` are close to 1:\n"
- "\n"
- ">>> 1 - betainc(0.5, 8, [0.9, 0.99, 0.999])\n"
- "array([2.0574632e-09, 0.0000000e+00, 0.0000000e+00])\n"
- "\n"
- "By using ``betaincc``, we get the correct values:\n"
- "\n"
- ">>> betaincc(0.5, 8, [0.9, 0.99, 0.999])\n"
- "array([2.05746321e-09, 1.97259354e-17, 1.96467954e-25])")
- ufunc_betaincc_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc_betaincc_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_betaincc_types[0] = <char>NPY_FLOAT
- ufunc_betaincc_types[1] = <char>NPY_FLOAT
- ufunc_betaincc_types[2] = <char>NPY_FLOAT
- ufunc_betaincc_types[3] = <char>NPY_FLOAT
- ufunc_betaincc_types[4] = <char>NPY_DOUBLE
- ufunc_betaincc_types[5] = <char>NPY_DOUBLE
- ufunc_betaincc_types[6] = <char>NPY_DOUBLE
- ufunc_betaincc_types[7] = <char>NPY_DOUBLE
- ufunc_betaincc_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_ibetac_float
- ufunc_betaincc_ptr[2*0+1] = <void*>(<char*>"betaincc")
- ufunc_betaincc_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_ibetac_double
- ufunc_betaincc_ptr[2*1+1] = <void*>(<char*>"betaincc")
- ufunc_betaincc_data[0] = &ufunc_betaincc_ptr[2*0]
- ufunc_betaincc_data[1] = &ufunc_betaincc_ptr[2*1]
- betaincc = np.PyUFunc_FromFuncAndData(ufunc_betaincc_loops, ufunc_betaincc_data, ufunc_betaincc_types, 2, 3, 1, 0, 'betaincc', ufunc_betaincc_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_betainccinv_loops[2]
- cdef void *ufunc_betainccinv_ptr[4]
- cdef void *ufunc_betainccinv_data[2]
- cdef char ufunc_betainccinv_types[8]
- cdef char *ufunc_betainccinv_doc = (
- "betainccinv(a, b, y, out=None)\n"
- "\n"
- "Inverse of the complemented regularized incomplete beta function.\n"
- "\n"
- "Computes :math:`x` such that:\n"
- "\n"
- ".. math::\n"
- "\n"
- " y = 1 - I_x(a, b) = 1 - \\frac{\\Gamma(a+b)}{\\Gamma(a)\\Gamma(b)}\n"
- " \\int_0^x t^{a-1}(1-t)^{b-1}dt,\n"
- "\n"
- "where :math:`I_x` is the normalized incomplete beta function `betainc`\n"
- "and :math:`\\Gamma` is the `gamma` function [1]_.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "a, b : array_like\n"
- " Positive, real-valued parameters\n"
- "y : array_like\n"
- " Real-valued input\n"
- "out : ndarray, optional\n"
- " Optional output array for function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray\n"
- " Value of the inverse of the regularized incomplete beta function\n"
- "\n"
- "See Also\n"
- "--------\n"
- "betainc : regularized incomplete beta function\n"
- "betaincc : complement of the regularized incomplete beta function\n"
- "\n"
- "Notes\n"
- "-----\n"
- ".. versionadded:: 1.11.0\n"
- "\n"
- "This function wraps the ``ibetac_inv`` routine from the\n"
- "Boost Math C++ library [2]_.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] NIST Digital Library of Mathematical Functions\n"
- " https://dlmf.nist.gov/8.17\n"
- ".. [2] The Boost Developers. \"Boost C++ Libraries\". https://www.boost.org/.\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> from scipy.special import betainccinv, betaincc\n"
- "\n"
- "This function is the inverse of `betaincc` for fixed\n"
- "values of :math:`a` and :math:`b`.\n"
- "\n"
- ">>> a, b = 1.2, 3.1\n"
- ">>> y = betaincc(a, b, 0.2)\n"
- ">>> betainccinv(a, b, y)\n"
- "0.2\n"
- "\n"
- ">>> a, b = 7, 2.5\n"
- ">>> x = betainccinv(a, b, 0.875)\n"
- ">>> betaincc(a, b, x)\n"
- "0.875")
- ufunc_betainccinv_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc_betainccinv_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_betainccinv_types[0] = <char>NPY_FLOAT
- ufunc_betainccinv_types[1] = <char>NPY_FLOAT
- ufunc_betainccinv_types[2] = <char>NPY_FLOAT
- ufunc_betainccinv_types[3] = <char>NPY_FLOAT
- ufunc_betainccinv_types[4] = <char>NPY_DOUBLE
- ufunc_betainccinv_types[5] = <char>NPY_DOUBLE
- ufunc_betainccinv_types[6] = <char>NPY_DOUBLE
- ufunc_betainccinv_types[7] = <char>NPY_DOUBLE
- ufunc_betainccinv_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_ibetac_inv_float
- ufunc_betainccinv_ptr[2*0+1] = <void*>(<char*>"betainccinv")
- ufunc_betainccinv_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_ibetac_inv_double
- ufunc_betainccinv_ptr[2*1+1] = <void*>(<char*>"betainccinv")
- ufunc_betainccinv_data[0] = &ufunc_betainccinv_ptr[2*0]
- ufunc_betainccinv_data[1] = &ufunc_betainccinv_ptr[2*1]
- betainccinv = np.PyUFunc_FromFuncAndData(ufunc_betainccinv_loops, ufunc_betainccinv_data, ufunc_betainccinv_types, 2, 3, 1, 0, 'betainccinv', ufunc_betainccinv_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_betaincinv_loops[2]
- cdef void *ufunc_betaincinv_ptr[4]
- cdef void *ufunc_betaincinv_data[2]
- cdef char ufunc_betaincinv_types[8]
- cdef char *ufunc_betaincinv_doc = (
- "betaincinv(a, b, y, out=None)\n"
- "\n"
- "Inverse of the regularized incomplete beta function.\n"
- "\n"
- "Computes :math:`x` such that:\n"
- "\n"
- ".. math::\n"
- "\n"
- " y = I_x(a, b) = \\frac{\\Gamma(a+b)}{\\Gamma(a)\\Gamma(b)}\n"
- " \\int_0^x t^{a-1}(1-t)^{b-1}dt,\n"
- "\n"
- "where :math:`I_x` is the normalized incomplete beta function `betainc`\n"
- "and :math:`\\Gamma` is the `gamma` function [1]_.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "a, b : array_like\n"
- " Positive, real-valued parameters\n"
- "y : array_like\n"
- " Real-valued input\n"
- "out : ndarray, optional\n"
- " Optional output array for function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray\n"
- " Value of the inverse of the regularized incomplete beta function\n"
- "\n"
- "See Also\n"
- "--------\n"
- "betainc : regularized incomplete beta function\n"
- "gamma : gamma function\n"
- "\n"
- "Notes\n"
- "-----\n"
- "This function wraps the ``ibeta_inv`` routine from the\n"
- "Boost Math C++ library [2]_.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] NIST Digital Library of Mathematical Functions\n"
- " https://dlmf.nist.gov/8.17\n"
- ".. [2] The Boost Developers. \"Boost C++ Libraries\". https://www.boost.org/.\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> import scipy.special as sc\n"
- "\n"
- "This function is the inverse of `betainc` for fixed\n"
- "values of :math:`a` and :math:`b`.\n"
- "\n"
- ">>> a, b = 1.2, 3.1\n"
- ">>> y = sc.betainc(a, b, 0.2)\n"
- ">>> sc.betaincinv(a, b, y)\n"
- "0.2\n"
- ">>>\n"
- ">>> a, b = 7.5, 0.4\n"
- ">>> x = sc.betaincinv(a, b, 0.5)\n"
- ">>> sc.betainc(a, b, x)\n"
- "0.5")
- ufunc_betaincinv_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc_betaincinv_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_betaincinv_types[0] = <char>NPY_FLOAT
- ufunc_betaincinv_types[1] = <char>NPY_FLOAT
- ufunc_betaincinv_types[2] = <char>NPY_FLOAT
- ufunc_betaincinv_types[3] = <char>NPY_FLOAT
- ufunc_betaincinv_types[4] = <char>NPY_DOUBLE
- ufunc_betaincinv_types[5] = <char>NPY_DOUBLE
- ufunc_betaincinv_types[6] = <char>NPY_DOUBLE
- ufunc_betaincinv_types[7] = <char>NPY_DOUBLE
- ufunc_betaincinv_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_ibeta_inv_float
- ufunc_betaincinv_ptr[2*0+1] = <void*>(<char*>"betaincinv")
- ufunc_betaincinv_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_ibeta_inv_double
- ufunc_betaincinv_ptr[2*1+1] = <void*>(<char*>"betaincinv")
- ufunc_betaincinv_data[0] = &ufunc_betaincinv_ptr[2*0]
- ufunc_betaincinv_data[1] = &ufunc_betaincinv_ptr[2*1]
- betaincinv = np.PyUFunc_FromFuncAndData(ufunc_betaincinv_loops, ufunc_betaincinv_data, ufunc_betaincinv_types, 2, 3, 1, 0, 'betaincinv', ufunc_betaincinv_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_boxcox_loops[2]
- cdef void *ufunc_boxcox_ptr[4]
- cdef void *ufunc_boxcox_data[2]
- cdef char ufunc_boxcox_types[6]
- cdef char *ufunc_boxcox_doc = (
- "boxcox(x, lmbda, out=None)\n"
- "\n"
- "Compute the Box-Cox transformation.\n"
- "\n"
- "The Box-Cox transformation is::\n"
- "\n"
- " y = (x**lmbda - 1) / lmbda if lmbda != 0\n"
- " log(x) if lmbda == 0\n"
- "\n"
- "Returns `nan` if ``x < 0``.\n"
- "Returns `-inf` if ``x == 0`` and ``lmbda < 0``.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Data to be transformed.\n"
- "lmbda : array_like\n"
- " Power parameter of the Box-Cox transform.\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "y : scalar or ndarray\n"
- " Transformed data.\n"
- "\n"
- "Notes\n"
- "-----\n"
- "\n"
- ".. versionadded:: 0.14.0\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> from scipy.special import boxcox\n"
- ">>> boxcox([1, 4, 10], 2.5)\n"
- "array([ 0. , 12.4 , 126.09110641])\n"
- ">>> boxcox(2, [0, 1, 2])\n"
- "array([ 0.69314718, 1. , 1.5 ])")
- ufunc_boxcox_loops[0] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc_boxcox_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_boxcox_types[0] = <char>NPY_FLOAT
- ufunc_boxcox_types[1] = <char>NPY_FLOAT
- ufunc_boxcox_types[2] = <char>NPY_FLOAT
- ufunc_boxcox_types[3] = <char>NPY_DOUBLE
- ufunc_boxcox_types[4] = <char>NPY_DOUBLE
- ufunc_boxcox_types[5] = <char>NPY_DOUBLE
- ufunc_boxcox_ptr[2*0] = <void*>_func_boxcox
- ufunc_boxcox_ptr[2*0+1] = <void*>(<char*>"boxcox")
- ufunc_boxcox_ptr[2*1] = <void*>_func_boxcox
- ufunc_boxcox_ptr[2*1+1] = <void*>(<char*>"boxcox")
- ufunc_boxcox_data[0] = &ufunc_boxcox_ptr[2*0]
- ufunc_boxcox_data[1] = &ufunc_boxcox_ptr[2*1]
- boxcox = np.PyUFunc_FromFuncAndData(ufunc_boxcox_loops, ufunc_boxcox_data, ufunc_boxcox_types, 2, 2, 1, 0, 'boxcox', ufunc_boxcox_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_boxcox1p_loops[2]
- cdef void *ufunc_boxcox1p_ptr[4]
- cdef void *ufunc_boxcox1p_data[2]
- cdef char ufunc_boxcox1p_types[6]
- cdef char *ufunc_boxcox1p_doc = (
- "boxcox1p(x, lmbda, out=None)\n"
- "\n"
- "Compute the Box-Cox transformation of 1 + `x`.\n"
- "\n"
- "The Box-Cox transformation computed by `boxcox1p` is::\n"
- "\n"
- " y = ((1+x)**lmbda - 1) / lmbda if lmbda != 0\n"
- " log(1+x) if lmbda == 0\n"
- "\n"
- "Returns `nan` if ``x < -1``.\n"
- "Returns `-inf` if ``x == -1`` and ``lmbda < 0``.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Data to be transformed.\n"
- "lmbda : array_like\n"
- " Power parameter of the Box-Cox transform.\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "y : scalar or ndarray\n"
- " Transformed data.\n"
- "\n"
- "Notes\n"
- "-----\n"
- "\n"
- ".. versionadded:: 0.14.0\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> from scipy.special import boxcox1p\n"
- ">>> boxcox1p(1e-4, [0, 0.5, 1])\n"
- "array([ 9.99950003e-05, 9.99975001e-05, 1.00000000e-04])\n"
- ">>> boxcox1p([0.01, 0.1], 0.25)\n"
- "array([ 0.00996272, 0.09645476])")
- ufunc_boxcox1p_loops[0] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc_boxcox1p_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_boxcox1p_types[0] = <char>NPY_FLOAT
- ufunc_boxcox1p_types[1] = <char>NPY_FLOAT
- ufunc_boxcox1p_types[2] = <char>NPY_FLOAT
- ufunc_boxcox1p_types[3] = <char>NPY_DOUBLE
- ufunc_boxcox1p_types[4] = <char>NPY_DOUBLE
- ufunc_boxcox1p_types[5] = <char>NPY_DOUBLE
- ufunc_boxcox1p_ptr[2*0] = <void*>_func_boxcox1p
- ufunc_boxcox1p_ptr[2*0+1] = <void*>(<char*>"boxcox1p")
- ufunc_boxcox1p_ptr[2*1] = <void*>_func_boxcox1p
- ufunc_boxcox1p_ptr[2*1+1] = <void*>(<char*>"boxcox1p")
- ufunc_boxcox1p_data[0] = &ufunc_boxcox1p_ptr[2*0]
- ufunc_boxcox1p_data[1] = &ufunc_boxcox1p_ptr[2*1]
- boxcox1p = np.PyUFunc_FromFuncAndData(ufunc_boxcox1p_loops, ufunc_boxcox1p_data, ufunc_boxcox1p_types, 2, 2, 1, 0, 'boxcox1p', ufunc_boxcox1p_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_btdtria_loops[2]
- cdef void *ufunc_btdtria_ptr[4]
- cdef void *ufunc_btdtria_data[2]
- cdef char ufunc_btdtria_types[8]
- cdef char *ufunc_btdtria_doc = (
- "btdtria(p, b, x, out=None)\n"
- "\n"
- "Inverse of `betainc` with respect to `a`.\n"
- "\n"
- "This is the inverse of the beta cumulative distribution function, `betainc`,\n"
- "considered as a function of `a`, returning the value of `a` for which\n"
- "`betainc(a, b, x) = p`, or\n"
- "\n"
- ".. math::\n"
- " p = \\int_0^x \\frac{\\Gamma(a + b)}{\\Gamma(a)\\Gamma(b)} t^{a-1} (1-t)^{b-1}\\,dt\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "p : array_like\n"
- " Cumulative probability, in [0, 1].\n"
- "b : array_like\n"
- " Shape parameter (`b` > 0).\n"
- "x : array_like\n"
- " The quantile, in [0, 1].\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "a : scalar or ndarray\n"
- " The value of the shape parameter `a` such that `betainc(a, b, x) = p`.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "betainc : Regularized incomplete beta function\n"
- "betaincinv : Inverse of the regularized incomplete beta function\n"
- "btdtrib : Inverse of the beta cumulative distribution function, with respect to `b`.\n"
- "\n"
- "Notes\n"
- "-----\n"
- "This function wraps the ``ibeta_inva`` routine from the\n"
- "Boost Math C++ library [1]_.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] The Boost Developers. \"Boost C++ Libraries\". https://www.boost.org/.\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> import scipy.special as sc\n"
- "\n"
- "This function is the inverse of `betainc` for fixed\n"
- "values of :math:`b` and :math:`x`.\n"
- "\n"
- ">>> a, b, x = 1.2, 3.1, 0.2\n"
- ">>> y = sc.betainc(a, b, x)\n"
- ">>> sc.btdtria(y, b, x)\n"
- "1.2")
- ufunc_btdtria_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc_btdtria_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_btdtria_types[0] = <char>NPY_FLOAT
- ufunc_btdtria_types[1] = <char>NPY_FLOAT
- ufunc_btdtria_types[2] = <char>NPY_FLOAT
- ufunc_btdtria_types[3] = <char>NPY_FLOAT
- ufunc_btdtria_types[4] = <char>NPY_DOUBLE
- ufunc_btdtria_types[5] = <char>NPY_DOUBLE
- ufunc_btdtria_types[6] = <char>NPY_DOUBLE
- ufunc_btdtria_types[7] = <char>NPY_DOUBLE
- ufunc_btdtria_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_ibeta_inva_float
- ufunc_btdtria_ptr[2*0+1] = <void*>(<char*>"btdtria")
- ufunc_btdtria_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_ibeta_inva_double
- ufunc_btdtria_ptr[2*1+1] = <void*>(<char*>"btdtria")
- ufunc_btdtria_data[0] = &ufunc_btdtria_ptr[2*0]
- ufunc_btdtria_data[1] = &ufunc_btdtria_ptr[2*1]
- btdtria = np.PyUFunc_FromFuncAndData(ufunc_btdtria_loops, ufunc_btdtria_data, ufunc_btdtria_types, 2, 3, 1, 0, 'btdtria', ufunc_btdtria_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_btdtrib_loops[2]
- cdef void *ufunc_btdtrib_ptr[4]
- cdef void *ufunc_btdtrib_data[2]
- cdef char ufunc_btdtrib_types[8]
- cdef char *ufunc_btdtrib_doc = (
- "btdtria(a, p, x, out=None)\n"
- "\n"
- "Inverse of `betainc` with respect to `b`.\n"
- "\n"
- "This is the inverse of the beta cumulative distribution function, `betainc`,\n"
- "considered as a function of `b`, returning the value of `b` for which\n"
- "`betainc(a, b, x) = p`, or\n"
- "\n"
- ".. math::\n"
- " p = \\int_0^x \\frac{\\Gamma(a + b)}{\\Gamma(a)\\Gamma(b)} t^{a-1} (1-t)^{b-1}\\,dt\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "a : array_like\n"
- " Shape parameter (`a` > 0).\n"
- "p : array_like\n"
- " Cumulative probability, in [0, 1].\n"
- "x : array_like\n"
- " The quantile, in [0, 1].\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "b : scalar or ndarray\n"
- " The value of the shape parameter `b` such that `betainc(a, b, x) = p`.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "betainc : Regularized incomplete beta function\n"
- "betaincinv : Inverse of the regularized incomplete beta function with\n"
- " respect to `x`.\n"
- "btdtria : Inverse of the beta cumulative distribution function, with respect to `a`.\n"
- "\n"
- "Notes\n"
- "-----\n"
- "Wrapper for the `ibeta_invb` routine from the Boost Math C++ library [1]_.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] The Boost Developers. \"Boost C++ Libraries\". https://www.boost.org/.\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> import scipy.special as sc\n"
- ">>> a, b, x = 1.2, 3.1, 0.2\n"
- ">>> y = sc.betainc(a, b, x)\n"
- "\n"
- "`btdtrib` is the inverse of `betainc` for fixed values of :math:`a` and\n"
- ":math:`x`:\n"
- "\n"
- ">>> sc.btdtrib(a, y, x)\n"
- "3.1")
- ufunc_btdtrib_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc_btdtrib_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_btdtrib_types[0] = <char>NPY_FLOAT
- ufunc_btdtrib_types[1] = <char>NPY_FLOAT
- ufunc_btdtrib_types[2] = <char>NPY_FLOAT
- ufunc_btdtrib_types[3] = <char>NPY_FLOAT
- ufunc_btdtrib_types[4] = <char>NPY_DOUBLE
- ufunc_btdtrib_types[5] = <char>NPY_DOUBLE
- ufunc_btdtrib_types[6] = <char>NPY_DOUBLE
- ufunc_btdtrib_types[7] = <char>NPY_DOUBLE
- ufunc_btdtrib_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_ibeta_invb_float
- ufunc_btdtrib_ptr[2*0+1] = <void*>(<char*>"btdtrib")
- ufunc_btdtrib_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_ibeta_invb_double
- ufunc_btdtrib_ptr[2*1+1] = <void*>(<char*>"btdtrib")
- ufunc_btdtrib_data[0] = &ufunc_btdtrib_ptr[2*0]
- ufunc_btdtrib_data[1] = &ufunc_btdtrib_ptr[2*1]
- btdtrib = np.PyUFunc_FromFuncAndData(ufunc_btdtrib_loops, ufunc_btdtrib_data, ufunc_btdtrib_types, 2, 3, 1, 0, 'btdtrib', ufunc_btdtrib_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_chdtr_loops[2]
- cdef void *ufunc_chdtr_ptr[4]
- cdef void *ufunc_chdtr_data[2]
- cdef char ufunc_chdtr_types[6]
- cdef char *ufunc_chdtr_doc = (
- "chdtr(v, x, out=None)\n"
- "\n"
- "Chi square cumulative distribution function.\n"
- "\n"
- "Returns the area under the left tail (from 0 to `x`) of the Chi\n"
- "square probability density function with `v` degrees of freedom:\n"
- "\n"
- ".. math::\n"
- "\n"
- " \\frac{1}{2^{v/2} \\Gamma(v/2)} \\int_0^x t^{v/2 - 1} e^{-t/2} dt\n"
- "\n"
- "Here :math:`\\Gamma` is the Gamma function; see `gamma`. This\n"
- "integral can be expressed in terms of the regularized lower\n"
- "incomplete gamma function `gammainc` as\n"
- "``gammainc(v / 2, x / 2)``. [1]_\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "v : array_like\n"
- " Degrees of freedom.\n"
- "x : array_like\n"
- " Upper bound of the integral.\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results.\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray\n"
- " Values of the cumulative distribution function.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "chdtrc, chdtri, chdtriv, gammainc\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] Chi-Square distribution,\n"
- " https://www.itl.nist.gov/div898/handbook/eda/section3/eda3666.htm\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> import numpy as np\n"
- ">>> import scipy.special as sc\n"
- "\n"
- "It can be expressed in terms of the regularized lower incomplete\n"
- "gamma function.\n"
- "\n"
- ">>> v = 1\n"
- ">>> x = np.arange(4)\n"
- ">>> sc.chdtr(v, x)\n"
- "array([0. , 0.68268949, 0.84270079, 0.91673548])\n"
- ">>> sc.gammainc(v / 2, x / 2)\n"
- "array([0. , 0.68268949, 0.84270079, 0.91673548])")
- ufunc_chdtr_loops[0] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc_chdtr_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_chdtr_types[0] = <char>NPY_FLOAT
- ufunc_chdtr_types[1] = <char>NPY_FLOAT
- ufunc_chdtr_types[2] = <char>NPY_FLOAT
- ufunc_chdtr_types[3] = <char>NPY_DOUBLE
- ufunc_chdtr_types[4] = <char>NPY_DOUBLE
- ufunc_chdtr_types[5] = <char>NPY_DOUBLE
- ufunc_chdtr_ptr[2*0] = <void*>_func_xsf_chdtr
- ufunc_chdtr_ptr[2*0+1] = <void*>(<char*>"chdtr")
- ufunc_chdtr_ptr[2*1] = <void*>_func_xsf_chdtr
- ufunc_chdtr_ptr[2*1+1] = <void*>(<char*>"chdtr")
- ufunc_chdtr_data[0] = &ufunc_chdtr_ptr[2*0]
- ufunc_chdtr_data[1] = &ufunc_chdtr_ptr[2*1]
- chdtr = np.PyUFunc_FromFuncAndData(ufunc_chdtr_loops, ufunc_chdtr_data, ufunc_chdtr_types, 2, 2, 1, 0, 'chdtr', ufunc_chdtr_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_chdtrc_loops[2]
- cdef void *ufunc_chdtrc_ptr[4]
- cdef void *ufunc_chdtrc_data[2]
- cdef char ufunc_chdtrc_types[6]
- cdef char *ufunc_chdtrc_doc = (
- "chdtrc(v, x, out=None)\n"
- "\n"
- "Chi square survival function.\n"
- "\n"
- "Returns the area under the right hand tail (from `x` to infinity)\n"
- "of the Chi square probability density function with `v` degrees of\n"
- "freedom:\n"
- "\n"
- ".. math::\n"
- "\n"
- " \\frac{1}{2^{v/2} \\Gamma(v/2)} \\int_x^\\infty t^{v/2 - 1} e^{-t/2} dt\n"
- "\n"
- "Here :math:`\\Gamma` is the Gamma function; see `gamma`. This\n"
- "integral can be expressed in terms of the regularized upper\n"
- "incomplete gamma function `gammaincc` as\n"
- "``gammaincc(v / 2, x / 2)``. [1]_\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "v : array_like\n"
- " Degrees of freedom.\n"
- "x : array_like\n"
- " Lower bound of the integral.\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results.\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray\n"
- " Values of the survival function.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "chdtr, chdtri, chdtriv, gammaincc\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] Chi-Square distribution,\n"
- " https://www.itl.nist.gov/div898/handbook/eda/section3/eda3666.htm\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> import numpy as np\n"
- ">>> import scipy.special as sc\n"
- "\n"
- "It can be expressed in terms of the regularized upper incomplete\n"
- "gamma function.\n"
- "\n"
- ">>> v = 1\n"
- ">>> x = np.arange(4)\n"
- ">>> sc.chdtrc(v, x)\n"
- "array([1. , 0.31731051, 0.15729921, 0.08326452])\n"
- ">>> sc.gammaincc(v / 2, x / 2)\n"
- "array([1. , 0.31731051, 0.15729921, 0.08326452])")
- ufunc_chdtrc_loops[0] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc_chdtrc_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_chdtrc_types[0] = <char>NPY_FLOAT
- ufunc_chdtrc_types[1] = <char>NPY_FLOAT
- ufunc_chdtrc_types[2] = <char>NPY_FLOAT
- ufunc_chdtrc_types[3] = <char>NPY_DOUBLE
- ufunc_chdtrc_types[4] = <char>NPY_DOUBLE
- ufunc_chdtrc_types[5] = <char>NPY_DOUBLE
- ufunc_chdtrc_ptr[2*0] = <void*>_func_xsf_chdtrc
- ufunc_chdtrc_ptr[2*0+1] = <void*>(<char*>"chdtrc")
- ufunc_chdtrc_ptr[2*1] = <void*>_func_xsf_chdtrc
- ufunc_chdtrc_ptr[2*1+1] = <void*>(<char*>"chdtrc")
- ufunc_chdtrc_data[0] = &ufunc_chdtrc_ptr[2*0]
- ufunc_chdtrc_data[1] = &ufunc_chdtrc_ptr[2*1]
- chdtrc = np.PyUFunc_FromFuncAndData(ufunc_chdtrc_loops, ufunc_chdtrc_data, ufunc_chdtrc_types, 2, 2, 1, 0, 'chdtrc', ufunc_chdtrc_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_chdtri_loops[2]
- cdef void *ufunc_chdtri_ptr[4]
- cdef void *ufunc_chdtri_data[2]
- cdef char ufunc_chdtri_types[6]
- cdef char *ufunc_chdtri_doc = (
- "chdtri(v, p, out=None)\n"
- "\n"
- "Inverse to `chdtrc` with respect to `x`.\n"
- "\n"
- "Returns `x` such that ``chdtrc(v, x) == p``.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "v : array_like\n"
- " Degrees of freedom.\n"
- "p : array_like\n"
- " Probability.\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results.\n"
- "\n"
- "Returns\n"
- "-------\n"
- "x : scalar or ndarray\n"
- " Value so that the probability a Chi square random variable\n"
- " with `v` degrees of freedom is greater than `x` equals `p`.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "chdtrc, chdtr, chdtriv\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] Chi-Square distribution,\n"
- " https://www.itl.nist.gov/div898/handbook/eda/section3/eda3666.htm\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> import scipy.special as sc\n"
- "\n"
- "It inverts `chdtrc`.\n"
- "\n"
- ">>> v, p = 1, 0.3\n"
- ">>> sc.chdtrc(v, sc.chdtri(v, p))\n"
- "0.3\n"
- ">>> x = 1\n"
- ">>> sc.chdtri(v, sc.chdtrc(v, x))\n"
- "1.0")
- ufunc_chdtri_loops[0] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc_chdtri_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_chdtri_types[0] = <char>NPY_FLOAT
- ufunc_chdtri_types[1] = <char>NPY_FLOAT
- ufunc_chdtri_types[2] = <char>NPY_FLOAT
- ufunc_chdtri_types[3] = <char>NPY_DOUBLE
- ufunc_chdtri_types[4] = <char>NPY_DOUBLE
- ufunc_chdtri_types[5] = <char>NPY_DOUBLE
- ufunc_chdtri_ptr[2*0] = <void*>_func_xsf_chdtri
- ufunc_chdtri_ptr[2*0+1] = <void*>(<char*>"chdtri")
- ufunc_chdtri_ptr[2*1] = <void*>_func_xsf_chdtri
- ufunc_chdtri_ptr[2*1+1] = <void*>(<char*>"chdtri")
- ufunc_chdtri_data[0] = &ufunc_chdtri_ptr[2*0]
- ufunc_chdtri_data[1] = &ufunc_chdtri_ptr[2*1]
- chdtri = np.PyUFunc_FromFuncAndData(ufunc_chdtri_loops, ufunc_chdtri_data, ufunc_chdtri_types, 2, 2, 1, 0, 'chdtri', ufunc_chdtri_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_chdtriv_loops[2]
- cdef void *ufunc_chdtriv_ptr[4]
- cdef void *ufunc_chdtriv_data[2]
- cdef char ufunc_chdtriv_types[6]
- cdef char *ufunc_chdtriv_doc = (
- "chdtriv(p, x, out=None)\n"
- "\n"
- "Inverse to `chdtr` with respect to `v`.\n"
- "\n"
- "Returns `v` such that ``chdtr(v, x) == p``.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "p : array_like\n"
- " Probability that the Chi square random variable is less than\n"
- " or equal to `x`.\n"
- "x : array_like\n"
- " Nonnegative input.\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results.\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray\n"
- " Degrees of freedom.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "chdtr, chdtrc, chdtri\n"
- "\n"
- "Notes\n"
- "-----\n"
- "This function wraps routines from the Boost Math C++ library [1]_.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] The Boost Developers. \"Boost C++ Libraries\". https://www.boost.org/.\n"
- ".. [2] Chi-Square distribution,\n"
- " https://www.itl.nist.gov/div898/handbook/eda/section3/eda3666.htm\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> import scipy.special as sc\n"
- "\n"
- "It inverts `chdtr`.\n"
- "\n"
- ">>> p, x = 0.5, 1\n"
- ">>> sc.chdtr(sc.chdtriv(p, x), x)\n"
- "0.5000000000000003\n"
- ">>> v = 1\n"
- ">>> sc.chdtriv(sc.chdtr(v, x), v)\n"
- "1.0")
- ufunc_chdtriv_loops[0] = <np.PyUFuncGenericFunction>loop_f_ff__As_ff_f
- ufunc_chdtriv_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_chdtriv_types[0] = <char>NPY_FLOAT
- ufunc_chdtriv_types[1] = <char>NPY_FLOAT
- ufunc_chdtriv_types[2] = <char>NPY_FLOAT
- ufunc_chdtriv_types[3] = <char>NPY_DOUBLE
- ufunc_chdtriv_types[4] = <char>NPY_DOUBLE
- ufunc_chdtriv_types[5] = <char>NPY_DOUBLE
- ufunc_chdtriv_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_chdtriv_float
- ufunc_chdtriv_ptr[2*0+1] = <void*>(<char*>"chdtriv")
- ufunc_chdtriv_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_chdtriv_double
- ufunc_chdtriv_ptr[2*1+1] = <void*>(<char*>"chdtriv")
- ufunc_chdtriv_data[0] = &ufunc_chdtriv_ptr[2*0]
- ufunc_chdtriv_data[1] = &ufunc_chdtriv_ptr[2*1]
- chdtriv = np.PyUFunc_FromFuncAndData(ufunc_chdtriv_loops, ufunc_chdtriv_data, ufunc_chdtriv_types, 2, 2, 1, 0, 'chdtriv', ufunc_chdtriv_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_chndtr_loops[2]
- cdef void *ufunc_chndtr_ptr[4]
- cdef void *ufunc_chndtr_data[2]
- cdef char ufunc_chndtr_types[8]
- cdef char *ufunc_chndtr_doc = (
- "chndtr(x, df, nc, out=None)\n"
- "\n"
- "Non-central chi square cumulative distribution function\n"
- "\n"
- "The cumulative distribution function is given by:\n"
- "\n"
- ".. math::\n"
- "\n"
- " P(\\chi^{\\prime 2} \\vert \\nu, \\lambda) =\\sum_{j=0}^{\\infty}\n"
- " e^{-\\lambda /2}\n"
- " \\frac{(\\lambda /2)^j}{j!} P(\\chi^{\\prime 2} \\vert \\nu + 2j),\n"
- "\n"
- "where :math:`\\nu > 0` is the degrees of freedom (``df``) and\n"
- ":math:`\\lambda \\geq 0` is the non-centrality parameter (``nc``).\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Upper bound of the integral; must satisfy ``x >= 0``\n"
- "df : array_like\n"
- " Degrees of freedom; must satisfy ``df > 0``\n"
- "nc : array_like\n"
- " Non-centrality parameter; must satisfy ``nc >= 0``\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "x : scalar or ndarray\n"
- " Value of the non-central chi square cumulative distribution function.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "chndtrix: Noncentral Chi Squared distribution quantile\n"
- "chndtridf: Inverse of `chndtr` with respect to `df`\n"
- "chndtrinc: Inverse of `chndtr` with respect to `nc`\n"
- "scipy.stats.ncx2: Non-central chi-squared distribution\n"
- "\n"
- "Notes\n"
- "-----\n"
- "The noncentral chi squared distribution is also available in\n"
- "`scipy.stats.ncx2`. ``scipy.stats.ncx2.cdf`` is equivalent to `chndtr`.\n"
- "\n"
- "This function wraps routines from the Boost Math C++ library [1]_.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] The Boost Developers. \"Boost C++ Libraries\". https://www.boost.org/.\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> import numpy as np\n"
- ">>> import scipy.special as sc\n"
- "\n"
- "Compute the noncentral chi squared distribution CDF at one point.\n"
- "\n"
- ">>> x = 4.0\n"
- ">>> df = 1.0\n"
- ">>> nc = 5.0\n"
- ">>> sc.chndtr(x, df, nc)\n"
- "0.40667858759710945\n"
- "\n"
- "Plot the noncentral chi squared distribution CDF for different parameters.\n"
- "\n"
- ">>> import matplotlib.pyplot as plt\n"
- ">>> x = np.linspace(0, 40, 1000)\n"
- ">>> plt.plot(x, sc.chndtr(x, 1, 5), label=r\"$df=1,\\ nc=5$\")\n"
- ">>> plt.plot(x, sc.chndtr(x, 5, 10), label=r\"$df=5,\\ nc=10$\")\n"
- ">>> plt.legend()\n"
- ">>> plt.show()")
- ufunc_chndtr_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc_chndtr_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_chndtr_types[0] = <char>NPY_FLOAT
- ufunc_chndtr_types[1] = <char>NPY_FLOAT
- ufunc_chndtr_types[2] = <char>NPY_FLOAT
- ufunc_chndtr_types[3] = <char>NPY_FLOAT
- ufunc_chndtr_types[4] = <char>NPY_DOUBLE
- ufunc_chndtr_types[5] = <char>NPY_DOUBLE
- ufunc_chndtr_types[6] = <char>NPY_DOUBLE
- ufunc_chndtr_types[7] = <char>NPY_DOUBLE
- ufunc_chndtr_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_ncx2_cdf_float
- ufunc_chndtr_ptr[2*0+1] = <void*>(<char*>"chndtr")
- ufunc_chndtr_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_ncx2_cdf_double
- ufunc_chndtr_ptr[2*1+1] = <void*>(<char*>"chndtr")
- ufunc_chndtr_data[0] = &ufunc_chndtr_ptr[2*0]
- ufunc_chndtr_data[1] = &ufunc_chndtr_ptr[2*1]
- chndtr = np.PyUFunc_FromFuncAndData(ufunc_chndtr_loops, ufunc_chndtr_data, ufunc_chndtr_types, 2, 3, 1, 0, 'chndtr', ufunc_chndtr_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_chndtridf_loops[2]
- cdef void *ufunc_chndtridf_ptr[4]
- cdef void *ufunc_chndtridf_data[2]
- cdef char ufunc_chndtridf_types[8]
- cdef char *ufunc_chndtridf_doc = (
- "chndtridf(x, p, nc, out=None)\n"
- "\n"
- "Inverse to `chndtr` vs `df`\n"
- "\n"
- "Calculated using a search to find a value for `df` that produces the\n"
- "desired value of `p`.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Upper bound of the integral; must satisfy ``x >= 0``\n"
- "p : array_like\n"
- " Probability; must satisfy ``0 <= p < 1``\n"
- "nc : array_like\n"
- " Non-centrality parameter; must satisfy ``nc >= 0``\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "df : scalar or ndarray\n"
- " Degrees of freedom\n"
- "\n"
- "See Also\n"
- "--------\n"
- "chndtr : Noncentral chi-squared distribution CDF\n"
- "chndtrix : inverse of `chndtr` with respect to `x`\n"
- "chndtrinc : inverse of `chndtr` with respect to `nc`\n"
- "scipy.stats.ncx2 : Non-central chi-squared distribution\n"
- "\n"
- "Notes\n"
- "-----\n"
- "The noncentral chi squared distribution is also available in\n"
- "`scipy.stats.ncx2`.\n"
- "\n"
- "This function wraps routines from the Boost Math C++ library [1]_.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] The Boost Developers. \"Boost C++ Libraries\". https://www.boost.org/.\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> from scipy.special import chndtridf, chndtr\n"
- "\n"
- "Compute the noncentral chi squared distribution CDF at one point.\n"
- "\n"
- ">>> x, df, nc = 3, 5, 10\n"
- ">>> p = chndtr(x, df, nc)\n"
- "\n"
- "`chndtridf` is the inverse of `chndtr` with respect to `df`:\n"
- "\n"
- ">>> chndtridf(x, p, nc)\n"
- "5.0")
- ufunc_chndtridf_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc_chndtridf_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_chndtridf_types[0] = <char>NPY_FLOAT
- ufunc_chndtridf_types[1] = <char>NPY_FLOAT
- ufunc_chndtridf_types[2] = <char>NPY_FLOAT
- ufunc_chndtridf_types[3] = <char>NPY_FLOAT
- ufunc_chndtridf_types[4] = <char>NPY_DOUBLE
- ufunc_chndtridf_types[5] = <char>NPY_DOUBLE
- ufunc_chndtridf_types[6] = <char>NPY_DOUBLE
- ufunc_chndtridf_types[7] = <char>NPY_DOUBLE
- ufunc_chndtridf_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_ncx2_find_degrees_of_freedom_float
- ufunc_chndtridf_ptr[2*0+1] = <void*>(<char*>"chndtridf")
- ufunc_chndtridf_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_ncx2_find_degrees_of_freedom_double
- ufunc_chndtridf_ptr[2*1+1] = <void*>(<char*>"chndtridf")
- ufunc_chndtridf_data[0] = &ufunc_chndtridf_ptr[2*0]
- ufunc_chndtridf_data[1] = &ufunc_chndtridf_ptr[2*1]
- chndtridf = np.PyUFunc_FromFuncAndData(ufunc_chndtridf_loops, ufunc_chndtridf_data, ufunc_chndtridf_types, 2, 3, 1, 0, 'chndtridf', ufunc_chndtridf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_chndtrinc_loops[2]
- cdef void *ufunc_chndtrinc_ptr[4]
- cdef void *ufunc_chndtrinc_data[2]
- cdef char ufunc_chndtrinc_types[8]
- cdef char *ufunc_chndtrinc_doc = (
- "chndtrinc(x, df, p, out=None)\n"
- "\n"
- "Inverse to `chndtr` vs `nc`\n"
- "\n"
- "Calculated using a search to find a value for `df` that produces the\n"
- "desired value of `p`.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Upper bound of the integral; must satisfy ``x >= 0``\n"
- "df : array_like\n"
- " Degrees of freedom; must satisfy ``df > 0``\n"
- "p : array_like\n"
- " Probability; must satisfy ``0 <= p < 1``\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "nc : scalar or ndarray\n"
- " Non-centrality\n"
- "\n"
- "See Also\n"
- "--------\n"
- "chndtr : Noncentral chi-squared distribution CDF\n"
- "chndtridf : inverse of `chndtr` with respect to `df`\n"
- "chndtrinc : inverse of `chndtr` with respect to `nc`\n"
- "scipy.stats.ncx2 : Non-central chi-squared distribution\n"
- "\n"
- "Notes\n"
- "-----\n"
- "The noncentral chi squared distribution is also available in\n"
- "`scipy.stats.ncx2`.\n"
- "\n"
- "This function wraps routines from the Boost Math C++ library [1]_.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] The Boost Developers. \"Boost C++ Libraries\". https://www.boost.org/.\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> from scipy.special import chndtrinc, chndtr\n"
- "\n"
- "Compute the noncentral chi squared distribution CDF at one point.\n"
- "\n"
- ">>> x, df, nc = 3, 5, 10\n"
- ">>> p = chndtr(x, df, nc)\n"
- "\n"
- "`chndtrinc` is the inverse of `chndtr` with respect to `nc`:\n"
- "\n"
- ">>> chndtrinc(x, df, p)\n"
- "10.0")
- ufunc_chndtrinc_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc_chndtrinc_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_chndtrinc_types[0] = <char>NPY_FLOAT
- ufunc_chndtrinc_types[1] = <char>NPY_FLOAT
- ufunc_chndtrinc_types[2] = <char>NPY_FLOAT
- ufunc_chndtrinc_types[3] = <char>NPY_FLOAT
- ufunc_chndtrinc_types[4] = <char>NPY_DOUBLE
- ufunc_chndtrinc_types[5] = <char>NPY_DOUBLE
- ufunc_chndtrinc_types[6] = <char>NPY_DOUBLE
- ufunc_chndtrinc_types[7] = <char>NPY_DOUBLE
- ufunc_chndtrinc_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_ncx2_find_noncentrality_float
- ufunc_chndtrinc_ptr[2*0+1] = <void*>(<char*>"chndtrinc")
- ufunc_chndtrinc_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_ncx2_find_noncentrality_double
- ufunc_chndtrinc_ptr[2*1+1] = <void*>(<char*>"chndtrinc")
- ufunc_chndtrinc_data[0] = &ufunc_chndtrinc_ptr[2*0]
- ufunc_chndtrinc_data[1] = &ufunc_chndtrinc_ptr[2*1]
- chndtrinc = np.PyUFunc_FromFuncAndData(ufunc_chndtrinc_loops, ufunc_chndtrinc_data, ufunc_chndtrinc_types, 2, 3, 1, 0, 'chndtrinc', ufunc_chndtrinc_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_chndtrix_loops[2]
- cdef void *ufunc_chndtrix_ptr[4]
- cdef void *ufunc_chndtrix_data[2]
- cdef char ufunc_chndtrix_types[8]
- cdef char *ufunc_chndtrix_doc = (
- "chndtrix(p, df, nc, out=None)\n"
- "\n"
- "Inverse to `chndtr` vs `x`\n"
- "\n"
- "Calculated using a search to find a value for `x` that produces the\n"
- "desired value of `p`.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "p : array_like\n"
- " Probability; must satisfy ``0 <= p < 1``\n"
- "df : array_like\n"
- " Degrees of freedom; must satisfy ``df > 0``\n"
- "nc : array_like\n"
- " Non-centrality parameter; must satisfy ``nc >= 0``\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "x : scalar or ndarray\n"
- " Value so that the probability a non-central Chi square random variable\n"
- " with `df` degrees of freedom and non-centrality, `nc`, is greater than\n"
- " `x` equals `p`.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "chndtr : Noncentral chi-squared distribution CDF\n"
- "chndtridf : inverse of `chndtr` with respect to `cdf`\n"
- "chndtrinc : inverse of `chndtr` with respect to `nc`\n"
- "scipy.stats.ncx2 : Non-central chi-squared distribution\n"
- "\n"
- "Notes\n"
- "-----\n"
- "The noncentral chi squared distribution is also available in\n"
- "`scipy.stats.ncx2`. ``scipy.stats.ncx2.ppf`` is equivalent to `chndtrix`.\n"
- "\n"
- "This function wraps routines from the Boost Math C++ library [1]_.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] The Boost Developers. \"Boost C++ Libraries\". https://www.boost.org/.\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> from scipy.special import chndtrix, chndtr\n"
- "\n"
- "Compute the noncentral chi squared distribution CDF at one point.\n"
- ">>> x, df, nc = 3, 5, 10\n"
- ">>> p = chndtr(x, df, nc)\n"
- "\n"
- "`chndtrix` is the inverse of `chndtr` with respect to `x`:\n"
- "\n"
- ">>> chndtrix(p, df, nc)\n"
- "3.0")
- ufunc_chndtrix_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc_chndtrix_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_chndtrix_types[0] = <char>NPY_FLOAT
- ufunc_chndtrix_types[1] = <char>NPY_FLOAT
- ufunc_chndtrix_types[2] = <char>NPY_FLOAT
- ufunc_chndtrix_types[3] = <char>NPY_FLOAT
- ufunc_chndtrix_types[4] = <char>NPY_DOUBLE
- ufunc_chndtrix_types[5] = <char>NPY_DOUBLE
- ufunc_chndtrix_types[6] = <char>NPY_DOUBLE
- ufunc_chndtrix_types[7] = <char>NPY_DOUBLE
- ufunc_chndtrix_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_ncx2_ppf_float
- ufunc_chndtrix_ptr[2*0+1] = <void*>(<char*>"chndtrix")
- ufunc_chndtrix_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_ncx2_ppf_double
- ufunc_chndtrix_ptr[2*1+1] = <void*>(<char*>"chndtrix")
- ufunc_chndtrix_data[0] = &ufunc_chndtrix_ptr[2*0]
- ufunc_chndtrix_data[1] = &ufunc_chndtrix_ptr[2*1]
- chndtrix = np.PyUFunc_FromFuncAndData(ufunc_chndtrix_loops, ufunc_chndtrix_data, ufunc_chndtrix_types, 2, 3, 1, 0, 'chndtrix', ufunc_chndtrix_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_elliprc_loops[4]
- cdef void *ufunc_elliprc_ptr[8]
- cdef void *ufunc_elliprc_data[4]
- cdef char ufunc_elliprc_types[12]
- cdef char *ufunc_elliprc_doc = (
- "elliprc(x, y, out=None)\n"
- "\n"
- "Degenerate symmetric elliptic integral.\n"
- "\n"
- "The function RC is defined as [1]_\n"
- "\n"
- ".. math::\n"
- "\n"
- " R_{\\mathrm{C}}(x, y) =\n"
- " \\frac{1}{2} \\int_0^{+\\infty} (t + x)^{-1/2} (t + y)^{-1} dt\n"
- " = R_{\\mathrm{F}}(x, y, y)\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x, y : array_like\n"
- " Real or complex input parameters. `x` can be any number in the\n"
- " complex plane cut along the negative real axis. `y` must be non-zero.\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "R : scalar or ndarray\n"
- " Value of the integral. If `y` is real and negative, the Cauchy\n"
- " principal value is returned. If both of `x` and `y` are real, the\n"
- " return value is real. Otherwise, the return value is complex.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "elliprf : Completely-symmetric elliptic integral of the first kind.\n"
- "elliprd : Symmetric elliptic integral of the second kind.\n"
- "elliprg : Completely-symmetric elliptic integral of the second kind.\n"
- "elliprj : Symmetric elliptic integral of the third kind.\n"
- "\n"
- "Notes\n"
- "-----\n"
- "RC is a degenerate case of the symmetric integral RF: ``elliprc(x, y) ==\n"
- "elliprf(x, y, y)``. It is an elementary function rather than an elliptic\n"
- "integral.\n"
- "\n"
- "The code implements Carlson's algorithm based on the duplication theorems\n"
- "and series expansion up to the 7th order. [2]_\n"
- "\n"
- ".. versionadded:: 1.8.0\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] B. C. Carlson, ed., Chapter 19 in \"Digital Library of Mathematical\n"
- " Functions,\" NIST, US Dept. of Commerce.\n"
- " https://dlmf.nist.gov/19.16.E6\n"
- ".. [2] B. C. Carlson, \"Numerical computation of real or complex elliptic\n"
- " integrals,\" Numer. Algorithm, vol. 10, no. 1, pp. 13-26, 1995.\n"
- " https://arxiv.org/abs/math/9409227\n"
- " https://doi.org/10.1007/BF02198293\n"
- "\n"
- "Examples\n"
- "--------\n"
- "Basic homogeneity property:\n"
- "\n"
- ">>> import numpy as np\n"
- ">>> from scipy.special import elliprc\n"
- "\n"
- ">>> x = 1.2 + 3.4j\n"
- ">>> y = 5.\n"
- ">>> scale = 0.3 + 0.4j\n"
- ">>> elliprc(scale*x, scale*y)\n"
- "(0.5484493976710874-0.4169557678995833j)\n"
- "\n"
- ">>> elliprc(x, y)/np.sqrt(scale)\n"
- "(0.5484493976710874-0.41695576789958333j)\n"
- "\n"
- "When the two arguments coincide, the integral is particularly\n"
- "simple:\n"
- "\n"
- ">>> x = 1.2 + 3.4j\n"
- ">>> elliprc(x, x)\n"
- "(0.4299173120614631-0.3041729818745595j)\n"
- "\n"
- ">>> 1/np.sqrt(x)\n"
- "(0.4299173120614631-0.30417298187455954j)\n"
- "\n"
- "Another simple case: the first argument vanishes:\n"
- "\n"
- ">>> y = 1.2 + 3.4j\n"
- ">>> elliprc(0, y)\n"
- "(0.6753125346116815-0.47779380263880866j)\n"
- "\n"
- ">>> np.pi/2/np.sqrt(y)\n"
- "(0.6753125346116815-0.4777938026388088j)\n"
- "\n"
- "When `x` and `y` are both positive, we can express\n"
- ":math:`R_C(x,y)` in terms of more elementary functions. For the\n"
- "case :math:`0 \\le x < y`,\n"
- "\n"
- ">>> x = 3.2\n"
- ">>> y = 6.\n"
- ">>> elliprc(x, y)\n"
- "0.44942991498453444\n"
- "\n"
- ">>> np.arctan(np.sqrt((y-x)/x))/np.sqrt(y-x)\n"
- "0.44942991498453433\n"
- "\n"
- "And for the case :math:`0 \\le y < x`,\n"
- "\n"
- ">>> x = 6.\n"
- ">>> y = 3.2\n"
- ">>> elliprc(x,y)\n"
- "0.4989837501576147\n"
- "\n"
- ">>> np.log((np.sqrt(x)+np.sqrt(x-y))/np.sqrt(y))/np.sqrt(x-y)\n"
- "0.49898375015761476")
- ufunc_elliprc_loops[0] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc_elliprc_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_elliprc_loops[2] = <np.PyUFuncGenericFunction>loop_D_DD__As_FF_F
- ufunc_elliprc_loops[3] = <np.PyUFuncGenericFunction>loop_D_DD__As_DD_D
- ufunc_elliprc_types[0] = <char>NPY_FLOAT
- ufunc_elliprc_types[1] = <char>NPY_FLOAT
- ufunc_elliprc_types[2] = <char>NPY_FLOAT
- ufunc_elliprc_types[3] = <char>NPY_DOUBLE
- ufunc_elliprc_types[4] = <char>NPY_DOUBLE
- ufunc_elliprc_types[5] = <char>NPY_DOUBLE
- ufunc_elliprc_types[6] = <char>NPY_CFLOAT
- ufunc_elliprc_types[7] = <char>NPY_CFLOAT
- ufunc_elliprc_types[8] = <char>NPY_CFLOAT
- ufunc_elliprc_types[9] = <char>NPY_CDOUBLE
- ufunc_elliprc_types[10] = <char>NPY_CDOUBLE
- ufunc_elliprc_types[11] = <char>NPY_CDOUBLE
- ufunc_elliprc_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_fellint_RC
- ufunc_elliprc_ptr[2*0+1] = <void*>(<char*>"elliprc")
- ufunc_elliprc_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_fellint_RC
- ufunc_elliprc_ptr[2*1+1] = <void*>(<char*>"elliprc")
- ufunc_elliprc_ptr[2*2] = <void*>scipy.special._ufuncs_cxx._export_cellint_RC
- ufunc_elliprc_ptr[2*2+1] = <void*>(<char*>"elliprc")
- ufunc_elliprc_ptr[2*3] = <void*>scipy.special._ufuncs_cxx._export_cellint_RC
- ufunc_elliprc_ptr[2*3+1] = <void*>(<char*>"elliprc")
- ufunc_elliprc_data[0] = &ufunc_elliprc_ptr[2*0]
- ufunc_elliprc_data[1] = &ufunc_elliprc_ptr[2*1]
- ufunc_elliprc_data[2] = &ufunc_elliprc_ptr[2*2]
- ufunc_elliprc_data[3] = &ufunc_elliprc_ptr[2*3]
- elliprc = np.PyUFunc_FromFuncAndData(ufunc_elliprc_loops, ufunc_elliprc_data, ufunc_elliprc_types, 4, 2, 1, 0, 'elliprc', ufunc_elliprc_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_elliprd_loops[4]
- cdef void *ufunc_elliprd_ptr[8]
- cdef void *ufunc_elliprd_data[4]
- cdef char ufunc_elliprd_types[16]
- cdef char *ufunc_elliprd_doc = (
- "elliprd(x, y, z, out=None)\n"
- "\n"
- "Symmetric elliptic integral of the second kind.\n"
- "\n"
- "The function RD is defined as [1]_\n"
- "\n"
- ".. math::\n"
- "\n"
- " R_{\\mathrm{D}}(x, y, z) =\n"
- " \\frac{3}{2} \\int_0^{+\\infty} [(t + x) (t + y)]^{-1/2} (t + z)^{-3/2}\n"
- " dt\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x, y, z : array_like\n"
- " Real or complex input parameters. `x` or `y` can be any number in the\n"
- " complex plane cut along the negative real axis, but at most one of them\n"
- " can be zero, while `z` must be non-zero.\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "R : scalar or ndarray\n"
- " Value of the integral. If all of `x`, `y`, and `z` are real, the\n"
- " return value is real. Otherwise, the return value is complex.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "elliprc : Degenerate symmetric elliptic integral.\n"
- "elliprf : Completely-symmetric elliptic integral of the first kind.\n"
- "elliprg : Completely-symmetric elliptic integral of the second kind.\n"
- "elliprj : Symmetric elliptic integral of the third kind.\n"
- "\n"
- "Notes\n"
- "-----\n"
- "RD is a degenerate case of the elliptic integral RJ: ``elliprd(x, y, z) ==\n"
- "elliprj(x, y, z, z)``.\n"
- "\n"
- "The code implements Carlson's algorithm based on the duplication theorems\n"
- "and series expansion up to the 7th order. [2]_\n"
- "\n"
- ".. versionadded:: 1.8.0\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] B. C. Carlson, ed., Chapter 19 in \"Digital Library of Mathematical\n"
- " Functions,\" NIST, US Dept. of Commerce.\n"
- " https://dlmf.nist.gov/19.16.E5\n"
- ".. [2] B. C. Carlson, \"Numerical computation of real or complex elliptic\n"
- " integrals,\" Numer. Algorithm, vol. 10, no. 1, pp. 13-26, 1995.\n"
- " https://arxiv.org/abs/math/9409227\n"
- " https://doi.org/10.1007/BF02198293\n"
- "\n"
- "Examples\n"
- "--------\n"
- "Basic homogeneity property:\n"
- "\n"
- ">>> import numpy as np\n"
- ">>> from scipy.special import elliprd\n"
- "\n"
- ">>> x = 1.2 + 3.4j\n"
- ">>> y = 5.\n"
- ">>> z = 6.\n"
- ">>> scale = 0.3 + 0.4j\n"
- ">>> elliprd(scale*x, scale*y, scale*z)\n"
- "(-0.03703043835680379-0.24500934665683802j)\n"
- "\n"
- ">>> elliprd(x, y, z)*np.power(scale, -1.5)\n"
- "(-0.0370304383568038-0.24500934665683805j)\n"
- "\n"
- "All three arguments coincide:\n"
- "\n"
- ">>> x = 1.2 + 3.4j\n"
- ">>> elliprd(x, x, x)\n"
- "(-0.03986825876151896-0.14051741840449586j)\n"
- "\n"
- ">>> np.power(x, -1.5)\n"
- "(-0.03986825876151894-0.14051741840449583j)\n"
- "\n"
- "The so-called \"second lemniscate constant\":\n"
- "\n"
- ">>> elliprd(0, 2, 1)/3\n"
- "0.5990701173677961\n"
- "\n"
- ">>> from scipy.special import gamma\n"
- ">>> gamma(0.75)**2/np.sqrt(2*np.pi)\n"
- "0.5990701173677959")
- ufunc_elliprd_loops[0] = <np.PyUFuncGenericFunction>loop_d_ddd__As_fff_f
- ufunc_elliprd_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_elliprd_loops[2] = <np.PyUFuncGenericFunction>loop_D_DDD__As_FFF_F
- ufunc_elliprd_loops[3] = <np.PyUFuncGenericFunction>loop_D_DDD__As_DDD_D
- ufunc_elliprd_types[0] = <char>NPY_FLOAT
- ufunc_elliprd_types[1] = <char>NPY_FLOAT
- ufunc_elliprd_types[2] = <char>NPY_FLOAT
- ufunc_elliprd_types[3] = <char>NPY_FLOAT
- ufunc_elliprd_types[4] = <char>NPY_DOUBLE
- ufunc_elliprd_types[5] = <char>NPY_DOUBLE
- ufunc_elliprd_types[6] = <char>NPY_DOUBLE
- ufunc_elliprd_types[7] = <char>NPY_DOUBLE
- ufunc_elliprd_types[8] = <char>NPY_CFLOAT
- ufunc_elliprd_types[9] = <char>NPY_CFLOAT
- ufunc_elliprd_types[10] = <char>NPY_CFLOAT
- ufunc_elliprd_types[11] = <char>NPY_CFLOAT
- ufunc_elliprd_types[12] = <char>NPY_CDOUBLE
- ufunc_elliprd_types[13] = <char>NPY_CDOUBLE
- ufunc_elliprd_types[14] = <char>NPY_CDOUBLE
- ufunc_elliprd_types[15] = <char>NPY_CDOUBLE
- ufunc_elliprd_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_fellint_RD
- ufunc_elliprd_ptr[2*0+1] = <void*>(<char*>"elliprd")
- ufunc_elliprd_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_fellint_RD
- ufunc_elliprd_ptr[2*1+1] = <void*>(<char*>"elliprd")
- ufunc_elliprd_ptr[2*2] = <void*>scipy.special._ufuncs_cxx._export_cellint_RD
- ufunc_elliprd_ptr[2*2+1] = <void*>(<char*>"elliprd")
- ufunc_elliprd_ptr[2*3] = <void*>scipy.special._ufuncs_cxx._export_cellint_RD
- ufunc_elliprd_ptr[2*3+1] = <void*>(<char*>"elliprd")
- ufunc_elliprd_data[0] = &ufunc_elliprd_ptr[2*0]
- ufunc_elliprd_data[1] = &ufunc_elliprd_ptr[2*1]
- ufunc_elliprd_data[2] = &ufunc_elliprd_ptr[2*2]
- ufunc_elliprd_data[3] = &ufunc_elliprd_ptr[2*3]
- elliprd = np.PyUFunc_FromFuncAndData(ufunc_elliprd_loops, ufunc_elliprd_data, ufunc_elliprd_types, 4, 3, 1, 0, 'elliprd', ufunc_elliprd_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_elliprf_loops[4]
- cdef void *ufunc_elliprf_ptr[8]
- cdef void *ufunc_elliprf_data[4]
- cdef char ufunc_elliprf_types[16]
- cdef char *ufunc_elliprf_doc = (
- "elliprf(x, y, z, out=None)\n"
- "\n"
- "Completely-symmetric elliptic integral of the first kind.\n"
- "\n"
- "The function RF is defined as [1]_\n"
- "\n"
- ".. math::\n"
- "\n"
- " R_{\\mathrm{F}}(x, y, z) =\n"
- " \\frac{1}{2} \\int_0^{+\\infty} [(t + x) (t + y) (t + z)]^{-1/2} dt\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x, y, z : array_like\n"
- " Real or complex input parameters. `x`, `y`, or `z` can be any number in\n"
- " the complex plane cut along the negative real axis, but at most one of\n"
- " them can be zero.\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "R : scalar or ndarray\n"
- " Value of the integral. If all of `x`, `y`, and `z` are real, the return\n"
- " value is real. Otherwise, the return value is complex.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "elliprc : Degenerate symmetric integral.\n"
- "elliprd : Symmetric elliptic integral of the second kind.\n"
- "elliprg : Completely-symmetric elliptic integral of the second kind.\n"
- "elliprj : Symmetric elliptic integral of the third kind.\n"
- "\n"
- "Notes\n"
- "-----\n"
- "The code implements Carlson's algorithm based on the duplication theorems\n"
- "and series expansion up to the 7th order (cf.:\n"
- "https://dlmf.nist.gov/19.36.i) and the AGM algorithm for the complete\n"
- "integral. [2]_\n"
- "\n"
- ".. versionadded:: 1.8.0\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] B. C. Carlson, ed., Chapter 19 in \"Digital Library of Mathematical\n"
- " Functions,\" NIST, US Dept. of Commerce.\n"
- " https://dlmf.nist.gov/19.16.E1\n"
- ".. [2] B. C. Carlson, \"Numerical computation of real or complex elliptic\n"
- " integrals,\" Numer. Algorithm, vol. 10, no. 1, pp. 13-26, 1995.\n"
- " https://arxiv.org/abs/math/9409227\n"
- " https://doi.org/10.1007/BF02198293\n"
- "\n"
- "Examples\n"
- "--------\n"
- "Basic homogeneity property:\n"
- "\n"
- ">>> import numpy as np\n"
- ">>> from scipy.special import elliprf\n"
- "\n"
- ">>> x = 1.2 + 3.4j\n"
- ">>> y = 5.\n"
- ">>> z = 6.\n"
- ">>> scale = 0.3 + 0.4j\n"
- ">>> elliprf(scale*x, scale*y, scale*z)\n"
- "(0.5328051227278146-0.4008623567957094j)\n"
- "\n"
- ">>> elliprf(x, y, z)/np.sqrt(scale)\n"
- "(0.5328051227278147-0.4008623567957095j)\n"
- "\n"
- "All three arguments coincide:\n"
- "\n"
- ">>> x = 1.2 + 3.4j\n"
- ">>> elliprf(x, x, x)\n"
- "(0.42991731206146316-0.30417298187455954j)\n"
- "\n"
- ">>> 1/np.sqrt(x)\n"
- "(0.4299173120614631-0.30417298187455954j)\n"
- "\n"
- "The so-called \"first lemniscate constant\":\n"
- "\n"
- ">>> elliprf(0, 1, 2)\n"
- "1.3110287771460598\n"
- "\n"
- ">>> from scipy.special import gamma\n"
- ">>> gamma(0.25)**2/(4*np.sqrt(2*np.pi))\n"
- "1.3110287771460598")
- ufunc_elliprf_loops[0] = <np.PyUFuncGenericFunction>loop_d_ddd__As_fff_f
- ufunc_elliprf_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_elliprf_loops[2] = <np.PyUFuncGenericFunction>loop_D_DDD__As_FFF_F
- ufunc_elliprf_loops[3] = <np.PyUFuncGenericFunction>loop_D_DDD__As_DDD_D
- ufunc_elliprf_types[0] = <char>NPY_FLOAT
- ufunc_elliprf_types[1] = <char>NPY_FLOAT
- ufunc_elliprf_types[2] = <char>NPY_FLOAT
- ufunc_elliprf_types[3] = <char>NPY_FLOAT
- ufunc_elliprf_types[4] = <char>NPY_DOUBLE
- ufunc_elliprf_types[5] = <char>NPY_DOUBLE
- ufunc_elliprf_types[6] = <char>NPY_DOUBLE
- ufunc_elliprf_types[7] = <char>NPY_DOUBLE
- ufunc_elliprf_types[8] = <char>NPY_CFLOAT
- ufunc_elliprf_types[9] = <char>NPY_CFLOAT
- ufunc_elliprf_types[10] = <char>NPY_CFLOAT
- ufunc_elliprf_types[11] = <char>NPY_CFLOAT
- ufunc_elliprf_types[12] = <char>NPY_CDOUBLE
- ufunc_elliprf_types[13] = <char>NPY_CDOUBLE
- ufunc_elliprf_types[14] = <char>NPY_CDOUBLE
- ufunc_elliprf_types[15] = <char>NPY_CDOUBLE
- ufunc_elliprf_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_fellint_RF
- ufunc_elliprf_ptr[2*0+1] = <void*>(<char*>"elliprf")
- ufunc_elliprf_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_fellint_RF
- ufunc_elliprf_ptr[2*1+1] = <void*>(<char*>"elliprf")
- ufunc_elliprf_ptr[2*2] = <void*>scipy.special._ufuncs_cxx._export_cellint_RF
- ufunc_elliprf_ptr[2*2+1] = <void*>(<char*>"elliprf")
- ufunc_elliprf_ptr[2*3] = <void*>scipy.special._ufuncs_cxx._export_cellint_RF
- ufunc_elliprf_ptr[2*3+1] = <void*>(<char*>"elliprf")
- ufunc_elliprf_data[0] = &ufunc_elliprf_ptr[2*0]
- ufunc_elliprf_data[1] = &ufunc_elliprf_ptr[2*1]
- ufunc_elliprf_data[2] = &ufunc_elliprf_ptr[2*2]
- ufunc_elliprf_data[3] = &ufunc_elliprf_ptr[2*3]
- elliprf = np.PyUFunc_FromFuncAndData(ufunc_elliprf_loops, ufunc_elliprf_data, ufunc_elliprf_types, 4, 3, 1, 0, 'elliprf', ufunc_elliprf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_elliprg_loops[4]
- cdef void *ufunc_elliprg_ptr[8]
- cdef void *ufunc_elliprg_data[4]
- cdef char ufunc_elliprg_types[16]
- cdef char *ufunc_elliprg_doc = (
- "elliprg(x, y, z, out=None)\n"
- "\n"
- "Completely-symmetric elliptic integral of the second kind.\n"
- "\n"
- "The function RG is defined as [1]_\n"
- "\n"
- ".. math::\n"
- "\n"
- " R_{\\mathrm{G}}(x, y, z) =\n"
- " \\frac{1}{4} \\int_0^{+\\infty} [(t + x) (t + y) (t + z)]^{-1/2}\n"
- " \\left(\\frac{x}{t + x} + \\frac{y}{t + y} + \\frac{z}{t + z}\\right) t\n"
- " dt\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x, y, z : array_like\n"
- " Real or complex input parameters. `x`, `y`, or `z` can be any number in\n"
- " the complex plane cut along the negative real axis.\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "R : scalar or ndarray\n"
- " Value of the integral. If all of `x`, `y`, and `z` are real, the return\n"
- " value is real. Otherwise, the return value is complex.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "elliprc : Degenerate symmetric integral.\n"
- "elliprd : Symmetric elliptic integral of the second kind.\n"
- "elliprf : Completely-symmetric elliptic integral of the first kind.\n"
- "elliprj : Symmetric elliptic integral of the third kind.\n"
- "\n"
- "Notes\n"
- "-----\n"
- "The implementation uses the relation [1]_\n"
- "\n"
- ".. math::\n"
- "\n"
- " 2 R_{\\mathrm{G}}(x, y, z) =\n"
- " z R_{\\mathrm{F}}(x, y, z) -\n"
- " \\frac{1}{3} (x - z) (y - z) R_{\\mathrm{D}}(x, y, z) +\n"
- " \\sqrt{\\frac{x y}{z}}\n"
- "\n"
- "and the symmetry of `x`, `y`, `z` when at least one non-zero parameter can\n"
- "be chosen as the pivot. When one of the arguments is close to zero, the AGM\n"
- "method is applied instead. Other special cases are computed following Ref.\n"
- "[2]_\n"
- "\n"
- ".. versionadded:: 1.8.0\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] B. C. Carlson, \"Numerical computation of real or complex elliptic\n"
- " integrals,\" Numer. Algorithm, vol. 10, no. 1, pp. 13-26, 1995.\n"
- " https://arxiv.org/abs/math/9409227\n"
- " https://doi.org/10.1007/BF02198293\n"
- ".. [2] B. C. Carlson, ed., Chapter 19 in \"Digital Library of Mathematical\n"
- " Functions,\" NIST, US Dept. of Commerce.\n"
- " https://dlmf.nist.gov/19.16.E1\n"
- " https://dlmf.nist.gov/19.20.ii\n"
- "\n"
- "Examples\n"
- "--------\n"
- "Basic homogeneity property:\n"
- "\n"
- ">>> import numpy as np\n"
- ">>> from scipy.special import elliprg\n"
- "\n"
- ">>> x = 1.2 + 3.4j\n"
- ">>> y = 5.\n"
- ">>> z = 6.\n"
- ">>> scale = 0.3 + 0.4j\n"
- ">>> elliprg(scale*x, scale*y, scale*z)\n"
- "(1.195936862005246+0.8470988320464167j)\n"
- "\n"
- ">>> elliprg(x, y, z)*np.sqrt(scale)\n"
- "(1.195936862005246+0.8470988320464165j)\n"
- "\n"
- "Simplifications:\n"
- "\n"
- ">>> elliprg(0, y, y)\n"
- "1.756203682760182\n"
- "\n"
- ">>> 0.25*np.pi*np.sqrt(y)\n"
- "1.7562036827601817\n"
- "\n"
- ">>> elliprg(0, 0, z)\n"
- "1.224744871391589\n"
- "\n"
- ">>> 0.5*np.sqrt(z)\n"
- "1.224744871391589\n"
- "\n"
- "The surface area of a triaxial ellipsoid with semiaxes ``a``, ``b``, and\n"
- "``c`` is given by\n"
- "\n"
- ".. math::\n"
- "\n"
- " S = 4 \\pi a b c R_{\\mathrm{G}}(1 / a^2, 1 / b^2, 1 / c^2).\n"
- "\n"
- ">>> def ellipsoid_area(a, b, c):\n"
- "... r = 4.0 * np.pi * a * b * c\n"
- "... return r * elliprg(1.0 / (a * a), 1.0 / (b * b), 1.0 / (c * c))\n"
- ">>> print(ellipsoid_area(1, 3, 5))\n"
- "108.62688289491807")
- ufunc_elliprg_loops[0] = <np.PyUFuncGenericFunction>loop_d_ddd__As_fff_f
- ufunc_elliprg_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_elliprg_loops[2] = <np.PyUFuncGenericFunction>loop_D_DDD__As_FFF_F
- ufunc_elliprg_loops[3] = <np.PyUFuncGenericFunction>loop_D_DDD__As_DDD_D
- ufunc_elliprg_types[0] = <char>NPY_FLOAT
- ufunc_elliprg_types[1] = <char>NPY_FLOAT
- ufunc_elliprg_types[2] = <char>NPY_FLOAT
- ufunc_elliprg_types[3] = <char>NPY_FLOAT
- ufunc_elliprg_types[4] = <char>NPY_DOUBLE
- ufunc_elliprg_types[5] = <char>NPY_DOUBLE
- ufunc_elliprg_types[6] = <char>NPY_DOUBLE
- ufunc_elliprg_types[7] = <char>NPY_DOUBLE
- ufunc_elliprg_types[8] = <char>NPY_CFLOAT
- ufunc_elliprg_types[9] = <char>NPY_CFLOAT
- ufunc_elliprg_types[10] = <char>NPY_CFLOAT
- ufunc_elliprg_types[11] = <char>NPY_CFLOAT
- ufunc_elliprg_types[12] = <char>NPY_CDOUBLE
- ufunc_elliprg_types[13] = <char>NPY_CDOUBLE
- ufunc_elliprg_types[14] = <char>NPY_CDOUBLE
- ufunc_elliprg_types[15] = <char>NPY_CDOUBLE
- ufunc_elliprg_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_fellint_RG
- ufunc_elliprg_ptr[2*0+1] = <void*>(<char*>"elliprg")
- ufunc_elliprg_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_fellint_RG
- ufunc_elliprg_ptr[2*1+1] = <void*>(<char*>"elliprg")
- ufunc_elliprg_ptr[2*2] = <void*>scipy.special._ufuncs_cxx._export_cellint_RG
- ufunc_elliprg_ptr[2*2+1] = <void*>(<char*>"elliprg")
- ufunc_elliprg_ptr[2*3] = <void*>scipy.special._ufuncs_cxx._export_cellint_RG
- ufunc_elliprg_ptr[2*3+1] = <void*>(<char*>"elliprg")
- ufunc_elliprg_data[0] = &ufunc_elliprg_ptr[2*0]
- ufunc_elliprg_data[1] = &ufunc_elliprg_ptr[2*1]
- ufunc_elliprg_data[2] = &ufunc_elliprg_ptr[2*2]
- ufunc_elliprg_data[3] = &ufunc_elliprg_ptr[2*3]
- elliprg = np.PyUFunc_FromFuncAndData(ufunc_elliprg_loops, ufunc_elliprg_data, ufunc_elliprg_types, 4, 3, 1, 0, 'elliprg', ufunc_elliprg_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_elliprj_loops[4]
- cdef void *ufunc_elliprj_ptr[8]
- cdef void *ufunc_elliprj_data[4]
- cdef char ufunc_elliprj_types[20]
- cdef char *ufunc_elliprj_doc = (
- "elliprj(x, y, z, p, out=None)\n"
- "\n"
- "Symmetric elliptic integral of the third kind.\n"
- "\n"
- "The function RJ is defined as [1]_\n"
- "\n"
- ".. math::\n"
- "\n"
- " R_{\\mathrm{J}}(x, y, z, p) =\n"
- " \\frac{3}{2} \\int_0^{+\\infty} [(t + x) (t + y) (t + z)]^{-1/2}\n"
- " (t + p)^{-1} dt\n"
- "\n"
- ".. warning::\n"
- " This function should be considered experimental when the inputs are\n"
- " unbalanced. Check correctness with another independent implementation.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x, y, z, p : array_like\n"
- " Real or complex input parameters. `x`, `y`, or `z` are numbers in\n"
- " the complex plane cut along the negative real axis (subject to further\n"
- " constraints, see Notes), and at most one of them can be zero. `p` must\n"
- " be non-zero.\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "R : scalar or ndarray\n"
- " Value of the integral. If all of `x`, `y`, `z`, and `p` are real, the\n"
- " return value is real. Otherwise, the return value is complex.\n"
- "\n"
- " If `p` is real and negative, while `x`, `y`, and `z` are real,\n"
- " non-negative, and at most one of them is zero, the Cauchy principal\n"
- " value is returned. [1]_ [2]_\n"
- "\n"
- "See Also\n"
- "--------\n"
- "elliprc : Degenerate symmetric integral.\n"
- "elliprd : Symmetric elliptic integral of the second kind.\n"
- "elliprf : Completely-symmetric elliptic integral of the first kind.\n"
- "elliprg : Completely-symmetric elliptic integral of the second kind.\n"
- "\n"
- "Notes\n"
- "-----\n"
- "The code implements Carlson's algorithm based on the duplication theorems\n"
- "and series expansion up to the 7th order. [3]_ The algorithm is slightly\n"
- "different from its earlier incarnation as it appears in [1]_, in that the\n"
- "call to `elliprc` (or ``atan``/``atanh``, see [4]_) is no longer needed in\n"
- "the inner loop. Asymptotic approximations are used where arguments differ\n"
- "widely in the order of magnitude. [5]_\n"
- "\n"
- "The input values are subject to certain sufficient but not necessary\n"
- "constraints when input arguments are complex. Notably, ``x``, ``y``, and\n"
- "``z`` must have non-negative real parts, unless two of them are\n"
- "non-negative and complex-conjugates to each other while the other is a real\n"
- "non-negative number. [1]_ If the inputs do not satisfy the sufficient\n"
- "condition described in Ref. [1]_ they are rejected outright with the output\n"
- "set to NaN.\n"
- "\n"
- "In the case where one of ``x``, ``y``, and ``z`` is equal to ``p``, the\n"
- "function ``elliprd`` should be preferred because of its less restrictive\n"
- "domain.\n"
- "\n"
- ".. versionadded:: 1.8.0\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] B. C. Carlson, \"Numerical computation of real or complex elliptic\n"
- " integrals,\" Numer. Algorithm, vol. 10, no. 1, pp. 13-26, 1995.\n"
- " https://arxiv.org/abs/math/9409227\n"
- " https://doi.org/10.1007/BF02198293\n"
- ".. [2] B. C. Carlson, ed., Chapter 19 in \"Digital Library of Mathematical\n"
- " Functions,\" NIST, US Dept. of Commerce.\n"
- " https://dlmf.nist.gov/19.20.iii\n"
- ".. [3] B. C. Carlson, J. FitzSimmons, \"Reduction Theorems for Elliptic\n"
- " Integrands with the Square Root of Two Quadratic Factors,\" J.\n"
- " Comput. Appl. Math., vol. 118, nos. 1-2, pp. 71-85, 2000.\n"
- " https://doi.org/10.1016/S0377-0427(00)00282-X\n"
- ".. [4] F. Johansson, \"Numerical Evaluation of Elliptic Functions, Elliptic\n"
- " Integrals and Modular Forms,\" in J. Blumlein, C. Schneider, P.\n"
- " Paule, eds., \"Elliptic Integrals, Elliptic Functions and Modular\n"
- " Forms in Quantum Field Theory,\" pp. 269-293, 2019 (Cham,\n"
- " Switzerland: Springer Nature Switzerland)\n"
- " https://arxiv.org/abs/1806.06725\n"
- " https://doi.org/10.1007/978-3-030-04480-0\n"
- ".. [5] B. C. Carlson, J. L. Gustafson, \"Asymptotic Approximations for\n"
- " Symmetric Elliptic Integrals,\" SIAM J. Math. Anls., vol. 25, no. 2,\n"
- " pp. 288-303, 1994.\n"
- " https://arxiv.org/abs/math/9310223\n"
- " https://doi.org/10.1137/S0036141092228477\n"
- "\n"
- "Examples\n"
- "--------\n"
- "Basic homogeneity property:\n"
- "\n"
- ">>> import numpy as np\n"
- ">>> from scipy.special import elliprj\n"
- "\n"
- ">>> x = 1.2 + 3.4j\n"
- ">>> y = 5.\n"
- ">>> z = 6.\n"
- ">>> p = 7.\n"
- ">>> scale = 0.3 - 0.4j\n"
- ">>> elliprj(scale*x, scale*y, scale*z, scale*p)\n"
- "(0.10834905565679157+0.19694950747103812j)\n"
- "\n"
- ">>> elliprj(x, y, z, p)*np.power(scale, -1.5)\n"
- "(0.10834905565679556+0.19694950747103854j)\n"
- "\n"
- "Reduction to simpler elliptic integral:\n"
- "\n"
- ">>> elliprj(x, y, z, z)\n"
- "(0.08288462362195129-0.028376809745123258j)\n"
- "\n"
- ">>> from scipy.special import elliprd\n"
- ">>> elliprd(x, y, z)\n"
- "(0.08288462362195136-0.028376809745123296j)\n"
- "\n"
- "All arguments coincide:\n"
- "\n"
- ">>> elliprj(x, x, x, x)\n"
- "(-0.03986825876151896-0.14051741840449586j)\n"
- "\n"
- ">>> np.power(x, -1.5)\n"
- "(-0.03986825876151894-0.14051741840449583j)")
- ufunc_elliprj_loops[0] = <np.PyUFuncGenericFunction>loop_d_dddd__As_ffff_f
- ufunc_elliprj_loops[1] = <np.PyUFuncGenericFunction>loop_d_dddd__As_dddd_d
- ufunc_elliprj_loops[2] = <np.PyUFuncGenericFunction>loop_D_DDDD__As_FFFF_F
- ufunc_elliprj_loops[3] = <np.PyUFuncGenericFunction>loop_D_DDDD__As_DDDD_D
- ufunc_elliprj_types[0] = <char>NPY_FLOAT
- ufunc_elliprj_types[1] = <char>NPY_FLOAT
- ufunc_elliprj_types[2] = <char>NPY_FLOAT
- ufunc_elliprj_types[3] = <char>NPY_FLOAT
- ufunc_elliprj_types[4] = <char>NPY_FLOAT
- ufunc_elliprj_types[5] = <char>NPY_DOUBLE
- ufunc_elliprj_types[6] = <char>NPY_DOUBLE
- ufunc_elliprj_types[7] = <char>NPY_DOUBLE
- ufunc_elliprj_types[8] = <char>NPY_DOUBLE
- ufunc_elliprj_types[9] = <char>NPY_DOUBLE
- ufunc_elliprj_types[10] = <char>NPY_CFLOAT
- ufunc_elliprj_types[11] = <char>NPY_CFLOAT
- ufunc_elliprj_types[12] = <char>NPY_CFLOAT
- ufunc_elliprj_types[13] = <char>NPY_CFLOAT
- ufunc_elliprj_types[14] = <char>NPY_CFLOAT
- ufunc_elliprj_types[15] = <char>NPY_CDOUBLE
- ufunc_elliprj_types[16] = <char>NPY_CDOUBLE
- ufunc_elliprj_types[17] = <char>NPY_CDOUBLE
- ufunc_elliprj_types[18] = <char>NPY_CDOUBLE
- ufunc_elliprj_types[19] = <char>NPY_CDOUBLE
- ufunc_elliprj_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_fellint_RJ
- ufunc_elliprj_ptr[2*0+1] = <void*>(<char*>"elliprj")
- ufunc_elliprj_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_fellint_RJ
- ufunc_elliprj_ptr[2*1+1] = <void*>(<char*>"elliprj")
- ufunc_elliprj_ptr[2*2] = <void*>scipy.special._ufuncs_cxx._export_cellint_RJ
- ufunc_elliprj_ptr[2*2+1] = <void*>(<char*>"elliprj")
- ufunc_elliprj_ptr[2*3] = <void*>scipy.special._ufuncs_cxx._export_cellint_RJ
- ufunc_elliprj_ptr[2*3+1] = <void*>(<char*>"elliprj")
- ufunc_elliprj_data[0] = &ufunc_elliprj_ptr[2*0]
- ufunc_elliprj_data[1] = &ufunc_elliprj_ptr[2*1]
- ufunc_elliprj_data[2] = &ufunc_elliprj_ptr[2*2]
- ufunc_elliprj_data[3] = &ufunc_elliprj_ptr[2*3]
- elliprj = np.PyUFunc_FromFuncAndData(ufunc_elliprj_loops, ufunc_elliprj_data, ufunc_elliprj_types, 4, 4, 1, 0, 'elliprj', ufunc_elliprj_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_entr_loops[2]
- cdef void *ufunc_entr_ptr[4]
- cdef void *ufunc_entr_data[2]
- cdef char ufunc_entr_types[4]
- cdef char *ufunc_entr_doc = (
- "entr(x, out=None)\n"
- "\n"
- "Elementwise function for computing entropy.\n"
- "\n"
- ".. math:: \\text{entr}(x) = \\begin{cases} - x \\log(x) & x > 0 \\\\ 0 & x = 0\n"
- " \\\\ -\\infty & \\text{otherwise} \\end{cases}\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : ndarray\n"
- " Input array.\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "res : scalar or ndarray\n"
- " The value of the elementwise entropy function at the given points `x`.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "kl_div, rel_entr, scipy.stats.entropy\n"
- "\n"
- "Notes\n"
- "-----\n"
- ".. versionadded:: 0.15.0\n"
- "\n"
- "This function is concave.\n"
- "\n"
- "The origin of this function is in convex programming; see [1]_.\n"
- "Given a probability distribution :math:`p_1, \\ldots, p_n`,\n"
- "the definition of entropy in the context of *information theory* is\n"
- "\n"
- ".. math::\n"
- "\n"
- " \\sum_{i = 1}^n \\mathrm{entr}(p_i).\n"
- "\n"
- "To compute the latter quantity, use `scipy.stats.entropy`.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] Boyd, Stephen and Lieven Vandenberghe. *Convex optimization*.\n"
- " Cambridge University Press, 2004.\n"
- " :doi:`https://doi.org/10.1017/CBO9780511804441`")
- ufunc_entr_loops[0] = <np.PyUFuncGenericFunction>loop_d_d__As_f_f
- ufunc_entr_loops[1] = <np.PyUFuncGenericFunction>loop_d_d__As_d_d
- ufunc_entr_types[0] = <char>NPY_FLOAT
- ufunc_entr_types[1] = <char>NPY_FLOAT
- ufunc_entr_types[2] = <char>NPY_DOUBLE
- ufunc_entr_types[3] = <char>NPY_DOUBLE
- ufunc_entr_ptr[2*0] = <void*>_func_entr
- ufunc_entr_ptr[2*0+1] = <void*>(<char*>"entr")
- ufunc_entr_ptr[2*1] = <void*>_func_entr
- ufunc_entr_ptr[2*1+1] = <void*>(<char*>"entr")
- ufunc_entr_data[0] = &ufunc_entr_ptr[2*0]
- ufunc_entr_data[1] = &ufunc_entr_ptr[2*1]
- entr = np.PyUFunc_FromFuncAndData(ufunc_entr_loops, ufunc_entr_data, ufunc_entr_types, 2, 1, 1, 0, 'entr', ufunc_entr_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_erfcinv_loops[2]
- cdef void *ufunc_erfcinv_ptr[4]
- cdef void *ufunc_erfcinv_data[2]
- cdef char ufunc_erfcinv_types[4]
- cdef char *ufunc_erfcinv_doc = (
- "erfcinv(y, out=None)\n"
- "\n"
- "Inverse of the complementary error function.\n"
- "\n"
- "Computes the inverse of the complementary error function.\n"
- "\n"
- "In the complex domain, there is no unique complex number w satisfying\n"
- "erfc(w)=z. This indicates a true inverse function would be multivalued.\n"
- "When the domain restricts to the real, 0 < x < 2, there is a unique real\n"
- "number satisfying erfc(erfcinv(x)) = erfcinv(erfc(x)).\n"
- "\n"
- "It is related to inverse of the error function by erfcinv(1-x) = erfinv(x)\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "y : ndarray\n"
- " Argument at which to evaluate. Domain: [0, 2]\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "erfcinv : scalar or ndarray\n"
- " The inverse of erfc of y, element-wise\n"
- "\n"
- "See Also\n"
- "--------\n"
- "erf : Error function of a complex argument\n"
- "erfc : Complementary error function, ``1 - erf(x)``\n"
- "erfinv : Inverse of the error function\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> import numpy as np\n"
- ">>> import matplotlib.pyplot as plt\n"
- ">>> from scipy.special import erfcinv\n"
- "\n"
- ">>> erfcinv(0.5)\n"
- "0.4769362762044699\n"
- "\n"
- ">>> y = np.linspace(0.0, 2.0, num=11)\n"
- ">>> erfcinv(y)\n"
- "array([ inf, 0.9061938 , 0.59511608, 0.37080716, 0.17914345,\n"
- " -0. , -0.17914345, -0.37080716, -0.59511608, -0.9061938 ,\n"
- " -inf])\n"
- "\n"
- "Plot the function:\n"
- "\n"
- ">>> y = np.linspace(0, 2, 200)\n"
- ">>> fig, ax = plt.subplots()\n"
- ">>> ax.plot(y, erfcinv(y))\n"
- ">>> ax.grid(True)\n"
- ">>> ax.set_xlabel('y')\n"
- ">>> ax.set_title('erfcinv(y)')\n"
- ">>> plt.show()")
- ufunc_erfcinv_loops[0] = <np.PyUFuncGenericFunction>loop_d_d__As_f_f
- ufunc_erfcinv_loops[1] = <np.PyUFuncGenericFunction>loop_d_d__As_d_d
- ufunc_erfcinv_types[0] = <char>NPY_FLOAT
- ufunc_erfcinv_types[1] = <char>NPY_FLOAT
- ufunc_erfcinv_types[2] = <char>NPY_DOUBLE
- ufunc_erfcinv_types[3] = <char>NPY_DOUBLE
- ufunc_erfcinv_ptr[2*0] = <void*>_func_cephes_erfcinv
- ufunc_erfcinv_ptr[2*0+1] = <void*>(<char*>"erfcinv")
- ufunc_erfcinv_ptr[2*1] = <void*>_func_cephes_erfcinv
- ufunc_erfcinv_ptr[2*1+1] = <void*>(<char*>"erfcinv")
- ufunc_erfcinv_data[0] = &ufunc_erfcinv_ptr[2*0]
- ufunc_erfcinv_data[1] = &ufunc_erfcinv_ptr[2*1]
- erfcinv = np.PyUFunc_FromFuncAndData(ufunc_erfcinv_loops, ufunc_erfcinv_data, ufunc_erfcinv_types, 2, 1, 1, 0, 'erfcinv', ufunc_erfcinv_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_erfinv_loops[2]
- cdef void *ufunc_erfinv_ptr[4]
- cdef void *ufunc_erfinv_data[2]
- cdef char ufunc_erfinv_types[4]
- cdef char *ufunc_erfinv_doc = (
- "erfinv(y, out=None)\n"
- "\n"
- "Inverse of the error function.\n"
- "\n"
- "Computes the inverse of the error function.\n"
- "\n"
- "In the complex domain, there is no unique complex number w satisfying\n"
- "erf(w)=z. This indicates a true inverse function would be multivalued.\n"
- "When the domain restricts to the real, -1 < x < 1, there is a unique real\n"
- "number satisfying erf(erfinv(x)) = x.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "y : ndarray\n"
- " Argument at which to evaluate. Domain: [-1, 1]\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "erfinv : scalar or ndarray\n"
- " The inverse of erf of y, element-wise\n"
- "\n"
- "See Also\n"
- "--------\n"
- "erf : Error function of a complex argument\n"
- "erfc : Complementary error function, ``1 - erf(x)``\n"
- "erfcinv : Inverse of the complementary error function\n"
- "\n"
- "Notes\n"
- "-----\n"
- "This function wraps the ``erf_inv`` routine from the\n"
- "Boost Math C++ library [1]_.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] The Boost Developers. \"Boost C++ Libraries\". https://www.boost.org/.\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> import numpy as np\n"
- ">>> import matplotlib.pyplot as plt\n"
- ">>> from scipy.special import erfinv, erf\n"
- "\n"
- ">>> erfinv(0.5)\n"
- "0.4769362762044699\n"
- "\n"
- ">>> y = np.linspace(-1.0, 1.0, num=9)\n"
- ">>> x = erfinv(y)\n"
- ">>> x\n"
- "array([ -inf, -0.81341985, -0.47693628, -0.22531206, 0. ,\n"
- " 0.22531206, 0.47693628, 0.81341985, inf])\n"
- "\n"
- "Verify that ``erf(erfinv(y))`` is ``y``.\n"
- "\n"
- ">>> erf(x)\n"
- "array([-1. , -0.75, -0.5 , -0.25, 0. , 0.25, 0.5 , 0.75, 1. ])\n"
- "\n"
- "Plot the function:\n"
- "\n"
- ">>> y = np.linspace(-1, 1, 200)\n"
- ">>> fig, ax = plt.subplots()\n"
- ">>> ax.plot(y, erfinv(y))\n"
- ">>> ax.grid(True)\n"
- ">>> ax.set_xlabel('y')\n"
- ">>> ax.set_title('erfinv(y)')\n"
- ">>> plt.show()")
- ufunc_erfinv_loops[0] = <np.PyUFuncGenericFunction>loop_f_f__As_f_f
- ufunc_erfinv_loops[1] = <np.PyUFuncGenericFunction>loop_d_d__As_d_d
- ufunc_erfinv_types[0] = <char>NPY_FLOAT
- ufunc_erfinv_types[1] = <char>NPY_FLOAT
- ufunc_erfinv_types[2] = <char>NPY_DOUBLE
- ufunc_erfinv_types[3] = <char>NPY_DOUBLE
- ufunc_erfinv_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_erfinv_float
- ufunc_erfinv_ptr[2*0+1] = <void*>(<char*>"erfinv")
- ufunc_erfinv_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_erfinv_double
- ufunc_erfinv_ptr[2*1+1] = <void*>(<char*>"erfinv")
- ufunc_erfinv_data[0] = &ufunc_erfinv_ptr[2*0]
- ufunc_erfinv_data[1] = &ufunc_erfinv_ptr[2*1]
- erfinv = np.PyUFunc_FromFuncAndData(ufunc_erfinv_loops, ufunc_erfinv_data, ufunc_erfinv_types, 2, 1, 1, 0, 'erfinv', ufunc_erfinv_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_eval_chebyc_loops[5]
- cdef void *ufunc_eval_chebyc_ptr[10]
- cdef void *ufunc_eval_chebyc_data[5]
- cdef char ufunc_eval_chebyc_types[15]
- cdef char *ufunc_eval_chebyc_doc = (
- "eval_chebyc(n, x, out=None)\n"
- "\n"
- "Evaluate Chebyshev polynomial of the first kind on [-2, 2] at a\n"
- "point.\n"
- "\n"
- "These polynomials are defined as\n"
- "\n"
- ".. math::\n"
- "\n"
- " C_n(x) = 2 T_n(x/2)\n"
- "\n"
- "where :math:`T_n` is a Chebyshev polynomial of the first kind. See\n"
- "22.5.11 in [AS]_ (or equivalently [DLMF]_) for details.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "n : array_like\n"
- " Degree of the polynomial. If not an integer, the result is\n"
- " determined via the relation to `eval_chebyt`.\n"
- "x : array_like\n"
- " Points at which to evaluate the Chebyshev polynomial\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "C : scalar or ndarray\n"
- " Values of the Chebyshev polynomial\n"
- "\n"
- "See Also\n"
- "--------\n"
- "roots_chebyc : roots and quadrature weights of Chebyshev\n"
- " polynomials of the first kind on [-2, 2]\n"
- "chebyc : Chebyshev polynomial object\n"
- "numpy.polynomial.chebyshev.Chebyshev : Chebyshev series\n"
- "eval_chebyt : evaluate Chebycshev polynomials of the first kind\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [AS] Milton Abramowitz and Irene A. Stegun, eds.\n"
- " Handbook of Mathematical Functions with Formulas,\n"
- " Graphs, and Mathematical Tables. New York: Dover, 1972.\n"
- ".. [DLMF] NIST Digital Library of Mathematical Functions,\n"
- " https://dlmf.nist.gov/18.1.E3\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> import numpy as np\n"
- ">>> import scipy.special as sc\n"
- "\n"
- "They are a scaled version of the Chebyshev polynomials of the\n"
- "first kind.\n"
- "\n"
- ">>> x = np.linspace(-2, 2, 6)\n"
- ">>> sc.eval_chebyc(3, x)\n"
- "array([-2. , 1.872, 1.136, -1.136, -1.872, 2. ])\n"
- ">>> 2 * sc.eval_chebyt(3, x / 2)\n"
- "array([-2. , 1.872, 1.136, -1.136, -1.872, 2. ])")
- ufunc_eval_chebyc_loops[0] = <np.PyUFuncGenericFunction>loop_d_pd__As_pd_d
- ufunc_eval_chebyc_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc_eval_chebyc_loops[2] = <np.PyUFuncGenericFunction>loop_D_dD__As_fF_F
- ufunc_eval_chebyc_loops[3] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_eval_chebyc_loops[4] = <np.PyUFuncGenericFunction>loop_D_dD__As_dD_D
- ufunc_eval_chebyc_types[0] = <char>NPY_INTP
- ufunc_eval_chebyc_types[1] = <char>NPY_DOUBLE
- ufunc_eval_chebyc_types[2] = <char>NPY_DOUBLE
- ufunc_eval_chebyc_types[3] = <char>NPY_FLOAT
- ufunc_eval_chebyc_types[4] = <char>NPY_FLOAT
- ufunc_eval_chebyc_types[5] = <char>NPY_FLOAT
- ufunc_eval_chebyc_types[6] = <char>NPY_FLOAT
- ufunc_eval_chebyc_types[7] = <char>NPY_CFLOAT
- ufunc_eval_chebyc_types[8] = <char>NPY_CFLOAT
- ufunc_eval_chebyc_types[9] = <char>NPY_DOUBLE
- ufunc_eval_chebyc_types[10] = <char>NPY_DOUBLE
- ufunc_eval_chebyc_types[11] = <char>NPY_DOUBLE
- ufunc_eval_chebyc_types[12] = <char>NPY_DOUBLE
- ufunc_eval_chebyc_types[13] = <char>NPY_CDOUBLE
- ufunc_eval_chebyc_types[14] = <char>NPY_CDOUBLE
- ufunc_eval_chebyc_ptr[2*0] = <void*>_func_eval_chebyc_l
- ufunc_eval_chebyc_ptr[2*0+1] = <void*>(<char*>"eval_chebyc")
- ufunc_eval_chebyc_ptr[2*1] = <void*>_func_eval_chebyc[double]
- ufunc_eval_chebyc_ptr[2*1+1] = <void*>(<char*>"eval_chebyc")
- ufunc_eval_chebyc_ptr[2*2] = <void*>_func_eval_chebyc[double_complex]
- ufunc_eval_chebyc_ptr[2*2+1] = <void*>(<char*>"eval_chebyc")
- ufunc_eval_chebyc_ptr[2*3] = <void*>_func_eval_chebyc[double]
- ufunc_eval_chebyc_ptr[2*3+1] = <void*>(<char*>"eval_chebyc")
- ufunc_eval_chebyc_ptr[2*4] = <void*>_func_eval_chebyc[double_complex]
- ufunc_eval_chebyc_ptr[2*4+1] = <void*>(<char*>"eval_chebyc")
- ufunc_eval_chebyc_data[0] = &ufunc_eval_chebyc_ptr[2*0]
- ufunc_eval_chebyc_data[1] = &ufunc_eval_chebyc_ptr[2*1]
- ufunc_eval_chebyc_data[2] = &ufunc_eval_chebyc_ptr[2*2]
- ufunc_eval_chebyc_data[3] = &ufunc_eval_chebyc_ptr[2*3]
- ufunc_eval_chebyc_data[4] = &ufunc_eval_chebyc_ptr[2*4]
- eval_chebyc = np.PyUFunc_FromFuncAndData(ufunc_eval_chebyc_loops, ufunc_eval_chebyc_data, ufunc_eval_chebyc_types, 5, 2, 1, 0, 'eval_chebyc', ufunc_eval_chebyc_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_eval_chebys_loops[5]
- cdef void *ufunc_eval_chebys_ptr[10]
- cdef void *ufunc_eval_chebys_data[5]
- cdef char ufunc_eval_chebys_types[15]
- cdef char *ufunc_eval_chebys_doc = (
- "eval_chebys(n, x, out=None)\n"
- "\n"
- "Evaluate Chebyshev polynomial of the second kind on [-2, 2] at a\n"
- "point.\n"
- "\n"
- "These polynomials are defined as\n"
- "\n"
- ".. math::\n"
- "\n"
- " S_n(x) = U_n(x/2)\n"
- "\n"
- "where :math:`U_n` is a Chebyshev polynomial of the second kind.\n"
- "See 22.5.13 in [AS]_ (or equivalently [DLMF]_) for details.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "n : array_like\n"
- " Degree of the polynomial. If not an integer, the result is\n"
- " determined via the relation to `eval_chebyu`.\n"
- "x : array_like\n"
- " Points at which to evaluate the Chebyshev polynomial\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "S : scalar or ndarray\n"
- " Values of the Chebyshev polynomial\n"
- "\n"
- "See Also\n"
- "--------\n"
- "roots_chebys : roots and quadrature weights of Chebyshev\n"
- " polynomials of the second kind on [-2, 2]\n"
- "chebys : Chebyshev polynomial object\n"
- "eval_chebyu : evaluate Chebyshev polynomials of the second kind\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [AS] Milton Abramowitz and Irene A. Stegun, eds.\n"
- " Handbook of Mathematical Functions with Formulas,\n"
- " Graphs, and Mathematical Tables. New York: Dover, 1972.\n"
- ".. [DLMF] NIST Digital Library of Mathematical Functions,\n"
- " https://dlmf.nist.gov/18.1.E3\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> import numpy as np\n"
- ">>> import scipy.special as sc\n"
- "\n"
- "They are a scaled version of the Chebyshev polynomials of the\n"
- "second kind.\n"
- "\n"
- ">>> x = np.linspace(-2, 2, 6)\n"
- ">>> sc.eval_chebys(3, x)\n"
- "array([-4. , 0.672, 0.736, -0.736, -0.672, 4. ])\n"
- ">>> sc.eval_chebyu(3, x / 2)\n"
- "array([-4. , 0.672, 0.736, -0.736, -0.672, 4. ])")
- ufunc_eval_chebys_loops[0] = <np.PyUFuncGenericFunction>loop_d_pd__As_pd_d
- ufunc_eval_chebys_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc_eval_chebys_loops[2] = <np.PyUFuncGenericFunction>loop_D_dD__As_fF_F
- ufunc_eval_chebys_loops[3] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_eval_chebys_loops[4] = <np.PyUFuncGenericFunction>loop_D_dD__As_dD_D
- ufunc_eval_chebys_types[0] = <char>NPY_INTP
- ufunc_eval_chebys_types[1] = <char>NPY_DOUBLE
- ufunc_eval_chebys_types[2] = <char>NPY_DOUBLE
- ufunc_eval_chebys_types[3] = <char>NPY_FLOAT
- ufunc_eval_chebys_types[4] = <char>NPY_FLOAT
- ufunc_eval_chebys_types[5] = <char>NPY_FLOAT
- ufunc_eval_chebys_types[6] = <char>NPY_FLOAT
- ufunc_eval_chebys_types[7] = <char>NPY_CFLOAT
- ufunc_eval_chebys_types[8] = <char>NPY_CFLOAT
- ufunc_eval_chebys_types[9] = <char>NPY_DOUBLE
- ufunc_eval_chebys_types[10] = <char>NPY_DOUBLE
- ufunc_eval_chebys_types[11] = <char>NPY_DOUBLE
- ufunc_eval_chebys_types[12] = <char>NPY_DOUBLE
- ufunc_eval_chebys_types[13] = <char>NPY_CDOUBLE
- ufunc_eval_chebys_types[14] = <char>NPY_CDOUBLE
- ufunc_eval_chebys_ptr[2*0] = <void*>_func_eval_chebys_l
- ufunc_eval_chebys_ptr[2*0+1] = <void*>(<char*>"eval_chebys")
- ufunc_eval_chebys_ptr[2*1] = <void*>_func_eval_chebys[double]
- ufunc_eval_chebys_ptr[2*1+1] = <void*>(<char*>"eval_chebys")
- ufunc_eval_chebys_ptr[2*2] = <void*>_func_eval_chebys[double_complex]
- ufunc_eval_chebys_ptr[2*2+1] = <void*>(<char*>"eval_chebys")
- ufunc_eval_chebys_ptr[2*3] = <void*>_func_eval_chebys[double]
- ufunc_eval_chebys_ptr[2*3+1] = <void*>(<char*>"eval_chebys")
- ufunc_eval_chebys_ptr[2*4] = <void*>_func_eval_chebys[double_complex]
- ufunc_eval_chebys_ptr[2*4+1] = <void*>(<char*>"eval_chebys")
- ufunc_eval_chebys_data[0] = &ufunc_eval_chebys_ptr[2*0]
- ufunc_eval_chebys_data[1] = &ufunc_eval_chebys_ptr[2*1]
- ufunc_eval_chebys_data[2] = &ufunc_eval_chebys_ptr[2*2]
- ufunc_eval_chebys_data[3] = &ufunc_eval_chebys_ptr[2*3]
- ufunc_eval_chebys_data[4] = &ufunc_eval_chebys_ptr[2*4]
- eval_chebys = np.PyUFunc_FromFuncAndData(ufunc_eval_chebys_loops, ufunc_eval_chebys_data, ufunc_eval_chebys_types, 5, 2, 1, 0, 'eval_chebys', ufunc_eval_chebys_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_eval_chebyt_loops[5]
- cdef void *ufunc_eval_chebyt_ptr[10]
- cdef void *ufunc_eval_chebyt_data[5]
- cdef char ufunc_eval_chebyt_types[15]
- cdef char *ufunc_eval_chebyt_doc = (
- "eval_chebyt(n, x, out=None)\n"
- "\n"
- "Evaluate Chebyshev polynomial of the first kind at a point.\n"
- "\n"
- "The Chebyshev polynomials of the first kind can be defined via the\n"
- "Gauss hypergeometric function :math:`{}_2F_1` as\n"
- "\n"
- ".. math::\n"
- "\n"
- " T_n(x) = {}_2F_1(n, -n; 1/2; (1 - x)/2).\n"
- "\n"
- "When :math:`n` is an integer the result is a polynomial of degree\n"
- ":math:`n`. See 22.5.47 in [AS]_ (or equivalently [DLMF]_) for details.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "n : array_like\n"
- " Degree of the polynomial. If not an integer, the result is\n"
- " determined via the relation to the Gauss hypergeometric\n"
- " function.\n"
- "x : array_like\n"
- " Points at which to evaluate the Chebyshev polynomial\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "T : scalar or ndarray\n"
- " Values of the Chebyshev polynomial\n"
- "\n"
- "See Also\n"
- "--------\n"
- "roots_chebyt : roots and quadrature weights of Chebyshev\n"
- " polynomials of the first kind\n"
- "chebyu : Chebychev polynomial object\n"
- "eval_chebyu : evaluate Chebyshev polynomials of the second kind\n"
- "hyp2f1 : Gauss hypergeometric function\n"
- "numpy.polynomial.chebyshev.Chebyshev : Chebyshev series\n"
- "\n"
- "Notes\n"
- "-----\n"
- "This routine is numerically stable for `x` in ``[-1, 1]`` at least\n"
- "up to order ``10000``.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [AS] Milton Abramowitz and Irene A. Stegun, eds.\n"
- " Handbook of Mathematical Functions with Formulas,\n"
- " Graphs, and Mathematical Tables. New York: Dover, 1972.\n"
- ".. [DLMF] NIST Digital Library of Mathematical Functions,\n"
- " https://dlmf.nist.gov/18.5.E11_2")
- ufunc_eval_chebyt_loops[0] = <np.PyUFuncGenericFunction>loop_d_pd__As_pd_d
- ufunc_eval_chebyt_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc_eval_chebyt_loops[2] = <np.PyUFuncGenericFunction>loop_D_dD__As_fF_F
- ufunc_eval_chebyt_loops[3] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_eval_chebyt_loops[4] = <np.PyUFuncGenericFunction>loop_D_dD__As_dD_D
- ufunc_eval_chebyt_types[0] = <char>NPY_INTP
- ufunc_eval_chebyt_types[1] = <char>NPY_DOUBLE
- ufunc_eval_chebyt_types[2] = <char>NPY_DOUBLE
- ufunc_eval_chebyt_types[3] = <char>NPY_FLOAT
- ufunc_eval_chebyt_types[4] = <char>NPY_FLOAT
- ufunc_eval_chebyt_types[5] = <char>NPY_FLOAT
- ufunc_eval_chebyt_types[6] = <char>NPY_FLOAT
- ufunc_eval_chebyt_types[7] = <char>NPY_CFLOAT
- ufunc_eval_chebyt_types[8] = <char>NPY_CFLOAT
- ufunc_eval_chebyt_types[9] = <char>NPY_DOUBLE
- ufunc_eval_chebyt_types[10] = <char>NPY_DOUBLE
- ufunc_eval_chebyt_types[11] = <char>NPY_DOUBLE
- ufunc_eval_chebyt_types[12] = <char>NPY_DOUBLE
- ufunc_eval_chebyt_types[13] = <char>NPY_CDOUBLE
- ufunc_eval_chebyt_types[14] = <char>NPY_CDOUBLE
- ufunc_eval_chebyt_ptr[2*0] = <void*>_func_eval_chebyt_l
- ufunc_eval_chebyt_ptr[2*0+1] = <void*>(<char*>"eval_chebyt")
- ufunc_eval_chebyt_ptr[2*1] = <void*>_func_eval_chebyt[double]
- ufunc_eval_chebyt_ptr[2*1+1] = <void*>(<char*>"eval_chebyt")
- ufunc_eval_chebyt_ptr[2*2] = <void*>_func_eval_chebyt[double_complex]
- ufunc_eval_chebyt_ptr[2*2+1] = <void*>(<char*>"eval_chebyt")
- ufunc_eval_chebyt_ptr[2*3] = <void*>_func_eval_chebyt[double]
- ufunc_eval_chebyt_ptr[2*3+1] = <void*>(<char*>"eval_chebyt")
- ufunc_eval_chebyt_ptr[2*4] = <void*>_func_eval_chebyt[double_complex]
- ufunc_eval_chebyt_ptr[2*4+1] = <void*>(<char*>"eval_chebyt")
- ufunc_eval_chebyt_data[0] = &ufunc_eval_chebyt_ptr[2*0]
- ufunc_eval_chebyt_data[1] = &ufunc_eval_chebyt_ptr[2*1]
- ufunc_eval_chebyt_data[2] = &ufunc_eval_chebyt_ptr[2*2]
- ufunc_eval_chebyt_data[3] = &ufunc_eval_chebyt_ptr[2*3]
- ufunc_eval_chebyt_data[4] = &ufunc_eval_chebyt_ptr[2*4]
- eval_chebyt = np.PyUFunc_FromFuncAndData(ufunc_eval_chebyt_loops, ufunc_eval_chebyt_data, ufunc_eval_chebyt_types, 5, 2, 1, 0, 'eval_chebyt', ufunc_eval_chebyt_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_eval_chebyu_loops[5]
- cdef void *ufunc_eval_chebyu_ptr[10]
- cdef void *ufunc_eval_chebyu_data[5]
- cdef char ufunc_eval_chebyu_types[15]
- cdef char *ufunc_eval_chebyu_doc = (
- "eval_chebyu(n, x, out=None)\n"
- "\n"
- "Evaluate Chebyshev polynomial of the second kind at a point.\n"
- "\n"
- "The Chebyshev polynomials of the second kind can be defined via\n"
- "the Gauss hypergeometric function :math:`{}_2F_1` as\n"
- "\n"
- ".. math::\n"
- "\n"
- " U_n(x) = (n + 1) {}_2F_1(-n, n + 2; 3/2; (1 - x)/2).\n"
- "\n"
- "When :math:`n` is an integer the result is a polynomial of degree\n"
- ":math:`n`. See 22.5.48 in [AS]_ (or equivalently [DLMF]_) for details.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "n : array_like\n"
- " Degree of the polynomial. If not an integer, the result is\n"
- " determined via the relation to the Gauss hypergeometric\n"
- " function.\n"
- "x : array_like\n"
- " Points at which to evaluate the Chebyshev polynomial\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "U : scalar or ndarray\n"
- " Values of the Chebyshev polynomial\n"
- "\n"
- "See Also\n"
- "--------\n"
- "roots_chebyu : roots and quadrature weights of Chebyshev\n"
- " polynomials of the second kind\n"
- "chebyu : Chebyshev polynomial object\n"
- "eval_chebyt : evaluate Chebyshev polynomials of the first kind\n"
- "hyp2f1 : Gauss hypergeometric function\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [AS] Milton Abramowitz and Irene A. Stegun, eds.\n"
- " Handbook of Mathematical Functions with Formulas,\n"
- " Graphs, and Mathematical Tables. New York: Dover, 1972.\n"
- ".. [DLMF] NIST Digital Library of Mathematical Functions,\n"
- " https://dlmf.nist.gov/18.5.E11_4")
- ufunc_eval_chebyu_loops[0] = <np.PyUFuncGenericFunction>loop_d_pd__As_pd_d
- ufunc_eval_chebyu_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc_eval_chebyu_loops[2] = <np.PyUFuncGenericFunction>loop_D_dD__As_fF_F
- ufunc_eval_chebyu_loops[3] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_eval_chebyu_loops[4] = <np.PyUFuncGenericFunction>loop_D_dD__As_dD_D
- ufunc_eval_chebyu_types[0] = <char>NPY_INTP
- ufunc_eval_chebyu_types[1] = <char>NPY_DOUBLE
- ufunc_eval_chebyu_types[2] = <char>NPY_DOUBLE
- ufunc_eval_chebyu_types[3] = <char>NPY_FLOAT
- ufunc_eval_chebyu_types[4] = <char>NPY_FLOAT
- ufunc_eval_chebyu_types[5] = <char>NPY_FLOAT
- ufunc_eval_chebyu_types[6] = <char>NPY_FLOAT
- ufunc_eval_chebyu_types[7] = <char>NPY_CFLOAT
- ufunc_eval_chebyu_types[8] = <char>NPY_CFLOAT
- ufunc_eval_chebyu_types[9] = <char>NPY_DOUBLE
- ufunc_eval_chebyu_types[10] = <char>NPY_DOUBLE
- ufunc_eval_chebyu_types[11] = <char>NPY_DOUBLE
- ufunc_eval_chebyu_types[12] = <char>NPY_DOUBLE
- ufunc_eval_chebyu_types[13] = <char>NPY_CDOUBLE
- ufunc_eval_chebyu_types[14] = <char>NPY_CDOUBLE
- ufunc_eval_chebyu_ptr[2*0] = <void*>_func_eval_chebyu_l
- ufunc_eval_chebyu_ptr[2*0+1] = <void*>(<char*>"eval_chebyu")
- ufunc_eval_chebyu_ptr[2*1] = <void*>_func_eval_chebyu[double]
- ufunc_eval_chebyu_ptr[2*1+1] = <void*>(<char*>"eval_chebyu")
- ufunc_eval_chebyu_ptr[2*2] = <void*>_func_eval_chebyu[double_complex]
- ufunc_eval_chebyu_ptr[2*2+1] = <void*>(<char*>"eval_chebyu")
- ufunc_eval_chebyu_ptr[2*3] = <void*>_func_eval_chebyu[double]
- ufunc_eval_chebyu_ptr[2*3+1] = <void*>(<char*>"eval_chebyu")
- ufunc_eval_chebyu_ptr[2*4] = <void*>_func_eval_chebyu[double_complex]
- ufunc_eval_chebyu_ptr[2*4+1] = <void*>(<char*>"eval_chebyu")
- ufunc_eval_chebyu_data[0] = &ufunc_eval_chebyu_ptr[2*0]
- ufunc_eval_chebyu_data[1] = &ufunc_eval_chebyu_ptr[2*1]
- ufunc_eval_chebyu_data[2] = &ufunc_eval_chebyu_ptr[2*2]
- ufunc_eval_chebyu_data[3] = &ufunc_eval_chebyu_ptr[2*3]
- ufunc_eval_chebyu_data[4] = &ufunc_eval_chebyu_ptr[2*4]
- eval_chebyu = np.PyUFunc_FromFuncAndData(ufunc_eval_chebyu_loops, ufunc_eval_chebyu_data, ufunc_eval_chebyu_types, 5, 2, 1, 0, 'eval_chebyu', ufunc_eval_chebyu_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_eval_gegenbauer_loops[5]
- cdef void *ufunc_eval_gegenbauer_ptr[10]
- cdef void *ufunc_eval_gegenbauer_data[5]
- cdef char ufunc_eval_gegenbauer_types[20]
- cdef char *ufunc_eval_gegenbauer_doc = (
- "eval_gegenbauer(n, alpha, x, out=None)\n"
- "\n"
- "Evaluate Gegenbauer polynomial at a point.\n"
- "\n"
- "The Gegenbauer polynomials can be defined via the Gauss\n"
- "hypergeometric function :math:`{}_2F_1` as\n"
- "\n"
- ".. math::\n"
- "\n"
- " C_n^{(\\alpha)} = \\frac{(2\\alpha)_n}{\\Gamma(n + 1)}\n"
- " {}_2F_1(-n, 2\\alpha + n; \\alpha + 1/2; (1 - z)/2).\n"
- "\n"
- "When :math:`n` is an integer the result is a polynomial of degree\n"
- ":math:`n`. See 22.5.46 in [AS]_ (or equivalently [DLMF]_) for details.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "n : array_like\n"
- " Degree of the polynomial. If not an integer, the result is\n"
- " determined via the relation to the Gauss hypergeometric\n"
- " function.\n"
- "alpha : array_like\n"
- " Parameter\n"
- "x : array_like\n"
- " Points at which to evaluate the Gegenbauer polynomial\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "C : scalar or ndarray\n"
- " Values of the Gegenbauer polynomial\n"
- "\n"
- "See Also\n"
- "--------\n"
- "roots_gegenbauer : roots and quadrature weights of Gegenbauer\n"
- " polynomials\n"
- "gegenbauer : Gegenbauer polynomial object\n"
- "hyp2f1 : Gauss hypergeometric function\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [AS] Milton Abramowitz and Irene A. Stegun, eds.\n"
- " Handbook of Mathematical Functions with Formulas,\n"
- " Graphs, and Mathematical Tables. New York: Dover, 1972.\n"
- ".. [DLMF] NIST Digital Library of Mathematical Functions,\n"
- " https://dlmf.nist.gov/18.5.E9")
- ufunc_eval_gegenbauer_loops[0] = <np.PyUFuncGenericFunction>loop_d_pdd__As_pdd_d
- ufunc_eval_gegenbauer_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_fff_f
- ufunc_eval_gegenbauer_loops[2] = <np.PyUFuncGenericFunction>loop_D_ddD__As_ffF_F
- ufunc_eval_gegenbauer_loops[3] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_eval_gegenbauer_loops[4] = <np.PyUFuncGenericFunction>loop_D_ddD__As_ddD_D
- ufunc_eval_gegenbauer_types[0] = <char>NPY_INTP
- ufunc_eval_gegenbauer_types[1] = <char>NPY_DOUBLE
- ufunc_eval_gegenbauer_types[2] = <char>NPY_DOUBLE
- ufunc_eval_gegenbauer_types[3] = <char>NPY_DOUBLE
- ufunc_eval_gegenbauer_types[4] = <char>NPY_FLOAT
- ufunc_eval_gegenbauer_types[5] = <char>NPY_FLOAT
- ufunc_eval_gegenbauer_types[6] = <char>NPY_FLOAT
- ufunc_eval_gegenbauer_types[7] = <char>NPY_FLOAT
- ufunc_eval_gegenbauer_types[8] = <char>NPY_FLOAT
- ufunc_eval_gegenbauer_types[9] = <char>NPY_FLOAT
- ufunc_eval_gegenbauer_types[10] = <char>NPY_CFLOAT
- ufunc_eval_gegenbauer_types[11] = <char>NPY_CFLOAT
- ufunc_eval_gegenbauer_types[12] = <char>NPY_DOUBLE
- ufunc_eval_gegenbauer_types[13] = <char>NPY_DOUBLE
- ufunc_eval_gegenbauer_types[14] = <char>NPY_DOUBLE
- ufunc_eval_gegenbauer_types[15] = <char>NPY_DOUBLE
- ufunc_eval_gegenbauer_types[16] = <char>NPY_DOUBLE
- ufunc_eval_gegenbauer_types[17] = <char>NPY_DOUBLE
- ufunc_eval_gegenbauer_types[18] = <char>NPY_CDOUBLE
- ufunc_eval_gegenbauer_types[19] = <char>NPY_CDOUBLE
- ufunc_eval_gegenbauer_ptr[2*0] = <void*>_func_eval_gegenbauer_l
- ufunc_eval_gegenbauer_ptr[2*0+1] = <void*>(<char*>"eval_gegenbauer")
- ufunc_eval_gegenbauer_ptr[2*1] = <void*>_func_eval_gegenbauer[double]
- ufunc_eval_gegenbauer_ptr[2*1+1] = <void*>(<char*>"eval_gegenbauer")
- ufunc_eval_gegenbauer_ptr[2*2] = <void*>_func_eval_gegenbauer[double_complex]
- ufunc_eval_gegenbauer_ptr[2*2+1] = <void*>(<char*>"eval_gegenbauer")
- ufunc_eval_gegenbauer_ptr[2*3] = <void*>_func_eval_gegenbauer[double]
- ufunc_eval_gegenbauer_ptr[2*3+1] = <void*>(<char*>"eval_gegenbauer")
- ufunc_eval_gegenbauer_ptr[2*4] = <void*>_func_eval_gegenbauer[double_complex]
- ufunc_eval_gegenbauer_ptr[2*4+1] = <void*>(<char*>"eval_gegenbauer")
- ufunc_eval_gegenbauer_data[0] = &ufunc_eval_gegenbauer_ptr[2*0]
- ufunc_eval_gegenbauer_data[1] = &ufunc_eval_gegenbauer_ptr[2*1]
- ufunc_eval_gegenbauer_data[2] = &ufunc_eval_gegenbauer_ptr[2*2]
- ufunc_eval_gegenbauer_data[3] = &ufunc_eval_gegenbauer_ptr[2*3]
- ufunc_eval_gegenbauer_data[4] = &ufunc_eval_gegenbauer_ptr[2*4]
- eval_gegenbauer = np.PyUFunc_FromFuncAndData(ufunc_eval_gegenbauer_loops, ufunc_eval_gegenbauer_data, ufunc_eval_gegenbauer_types, 5, 3, 1, 0, 'eval_gegenbauer', ufunc_eval_gegenbauer_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_eval_genlaguerre_loops[5]
- cdef void *ufunc_eval_genlaguerre_ptr[10]
- cdef void *ufunc_eval_genlaguerre_data[5]
- cdef char ufunc_eval_genlaguerre_types[20]
- cdef char *ufunc_eval_genlaguerre_doc = (
- "eval_genlaguerre(n, alpha, x, out=None)\n"
- "\n"
- "Evaluate generalized Laguerre polynomial at a point.\n"
- "\n"
- "The generalized Laguerre polynomials can be defined via the\n"
- "confluent hypergeometric function :math:`{}_1F_1` as\n"
- "\n"
- ".. math::\n"
- "\n"
- " L_n^{(\\alpha)}(x) = \\binom{n + \\alpha}{n}\n"
- " {}_1F_1(-n, \\alpha + 1, x).\n"
- "\n"
- "When :math:`n` is an integer the result is a polynomial of degree\n"
- ":math:`n`. See 22.5.54 in [AS]_ or [DLMF]_ for details. The Laguerre\n"
- "polynomials are the special case where :math:`\\alpha = 0`.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "n : array_like\n"
- " Degree of the polynomial. If not an integer, the result is\n"
- " determined via the relation to the confluent hypergeometric\n"
- " function.\n"
- "alpha : array_like\n"
- " Parameter; must have ``alpha > -1``\n"
- "x : array_like\n"
- " Points at which to evaluate the generalized Laguerre\n"
- " polynomial\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "L : scalar or ndarray\n"
- " Values of the generalized Laguerre polynomial\n"
- "\n"
- "See Also\n"
- "--------\n"
- "roots_genlaguerre : roots and quadrature weights of generalized\n"
- " Laguerre polynomials\n"
- "genlaguerre : generalized Laguerre polynomial object\n"
- "hyp1f1 : confluent hypergeometric function\n"
- "eval_laguerre : evaluate Laguerre polynomials\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [AS] Milton Abramowitz and Irene A. Stegun, eds.\n"
- " Handbook of Mathematical Functions with Formulas,\n"
- " Graphs, and Mathematical Tables. New York: Dover, 1972.\n"
- ".. [DLMF] NIST Digital Library of Mathematical Functions,\n"
- " https://dlmf.nist.gov/18.5.E12")
- ufunc_eval_genlaguerre_loops[0] = <np.PyUFuncGenericFunction>loop_d_pdd__As_pdd_d
- ufunc_eval_genlaguerre_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_fff_f
- ufunc_eval_genlaguerre_loops[2] = <np.PyUFuncGenericFunction>loop_D_ddD__As_ffF_F
- ufunc_eval_genlaguerre_loops[3] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_eval_genlaguerre_loops[4] = <np.PyUFuncGenericFunction>loop_D_ddD__As_ddD_D
- ufunc_eval_genlaguerre_types[0] = <char>NPY_INTP
- ufunc_eval_genlaguerre_types[1] = <char>NPY_DOUBLE
- ufunc_eval_genlaguerre_types[2] = <char>NPY_DOUBLE
- ufunc_eval_genlaguerre_types[3] = <char>NPY_DOUBLE
- ufunc_eval_genlaguerre_types[4] = <char>NPY_FLOAT
- ufunc_eval_genlaguerre_types[5] = <char>NPY_FLOAT
- ufunc_eval_genlaguerre_types[6] = <char>NPY_FLOAT
- ufunc_eval_genlaguerre_types[7] = <char>NPY_FLOAT
- ufunc_eval_genlaguerre_types[8] = <char>NPY_FLOAT
- ufunc_eval_genlaguerre_types[9] = <char>NPY_FLOAT
- ufunc_eval_genlaguerre_types[10] = <char>NPY_CFLOAT
- ufunc_eval_genlaguerre_types[11] = <char>NPY_CFLOAT
- ufunc_eval_genlaguerre_types[12] = <char>NPY_DOUBLE
- ufunc_eval_genlaguerre_types[13] = <char>NPY_DOUBLE
- ufunc_eval_genlaguerre_types[14] = <char>NPY_DOUBLE
- ufunc_eval_genlaguerre_types[15] = <char>NPY_DOUBLE
- ufunc_eval_genlaguerre_types[16] = <char>NPY_DOUBLE
- ufunc_eval_genlaguerre_types[17] = <char>NPY_DOUBLE
- ufunc_eval_genlaguerre_types[18] = <char>NPY_CDOUBLE
- ufunc_eval_genlaguerre_types[19] = <char>NPY_CDOUBLE
- ufunc_eval_genlaguerre_ptr[2*0] = <void*>_func_eval_genlaguerre_l
- ufunc_eval_genlaguerre_ptr[2*0+1] = <void*>(<char*>"eval_genlaguerre")
- ufunc_eval_genlaguerre_ptr[2*1] = <void*>_func_eval_genlaguerre[double]
- ufunc_eval_genlaguerre_ptr[2*1+1] = <void*>(<char*>"eval_genlaguerre")
- ufunc_eval_genlaguerre_ptr[2*2] = <void*>_func_eval_genlaguerre[double_complex]
- ufunc_eval_genlaguerre_ptr[2*2+1] = <void*>(<char*>"eval_genlaguerre")
- ufunc_eval_genlaguerre_ptr[2*3] = <void*>_func_eval_genlaguerre[double]
- ufunc_eval_genlaguerre_ptr[2*3+1] = <void*>(<char*>"eval_genlaguerre")
- ufunc_eval_genlaguerre_ptr[2*4] = <void*>_func_eval_genlaguerre[double_complex]
- ufunc_eval_genlaguerre_ptr[2*4+1] = <void*>(<char*>"eval_genlaguerre")
- ufunc_eval_genlaguerre_data[0] = &ufunc_eval_genlaguerre_ptr[2*0]
- ufunc_eval_genlaguerre_data[1] = &ufunc_eval_genlaguerre_ptr[2*1]
- ufunc_eval_genlaguerre_data[2] = &ufunc_eval_genlaguerre_ptr[2*2]
- ufunc_eval_genlaguerre_data[3] = &ufunc_eval_genlaguerre_ptr[2*3]
- ufunc_eval_genlaguerre_data[4] = &ufunc_eval_genlaguerre_ptr[2*4]
- eval_genlaguerre = np.PyUFunc_FromFuncAndData(ufunc_eval_genlaguerre_loops, ufunc_eval_genlaguerre_data, ufunc_eval_genlaguerre_types, 5, 3, 1, 0, 'eval_genlaguerre', ufunc_eval_genlaguerre_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_eval_hermite_loops[1]
- cdef void *ufunc_eval_hermite_ptr[2]
- cdef void *ufunc_eval_hermite_data[1]
- cdef char ufunc_eval_hermite_types[3]
- cdef char *ufunc_eval_hermite_doc = (
- "eval_hermite(n, x, out=None)\n"
- "\n"
- "Evaluate physicist's Hermite polynomial at a point.\n"
- "\n"
- "Defined by\n"
- "\n"
- ".. math::\n"
- "\n"
- " H_n(x) = (-1)^n e^{x^2} \\frac{d^n}{dx^n} e^{-x^2};\n"
- "\n"
- ":math:`H_n` is a polynomial of degree :math:`n`. See 22.11.7 in\n"
- "[AS]_ or [DLMF]_ for details.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "n : array_like\n"
- " Degree of the polynomial\n"
- "x : array_like\n"
- " Points at which to evaluate the Hermite polynomial\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "H : scalar or ndarray\n"
- " Values of the Hermite polynomial\n"
- "\n"
- "See Also\n"
- "--------\n"
- "roots_hermite : roots and quadrature weights of physicist's\n"
- " Hermite polynomials\n"
- "hermite : physicist's Hermite polynomial object\n"
- "numpy.polynomial.hermite.Hermite : Physicist's Hermite series\n"
- "eval_hermitenorm : evaluate Probabilist's Hermite polynomials\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [AS] Milton Abramowitz and Irene A. Stegun, eds.\n"
- " Handbook of Mathematical Functions with Formulas,\n"
- " Graphs, and Mathematical Tables. New York: Dover, 1972.\n"
- ".. [DLMF] NIST Digital Library of Mathematical Functions,\n"
- " https://dlmf.nist.gov/18.5.T1")
- ufunc_eval_hermite_loops[0] = <np.PyUFuncGenericFunction>loop_d_pd__As_pd_d
- ufunc_eval_hermite_types[0] = <char>NPY_INTP
- ufunc_eval_hermite_types[1] = <char>NPY_DOUBLE
- ufunc_eval_hermite_types[2] = <char>NPY_DOUBLE
- ufunc_eval_hermite_ptr[2*0] = <void*>_func_eval_hermite
- ufunc_eval_hermite_ptr[2*0+1] = <void*>(<char*>"eval_hermite")
- ufunc_eval_hermite_data[0] = &ufunc_eval_hermite_ptr[2*0]
- eval_hermite = np.PyUFunc_FromFuncAndData(ufunc_eval_hermite_loops, ufunc_eval_hermite_data, ufunc_eval_hermite_types, 1, 2, 1, 0, 'eval_hermite', ufunc_eval_hermite_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_eval_hermitenorm_loops[1]
- cdef void *ufunc_eval_hermitenorm_ptr[2]
- cdef void *ufunc_eval_hermitenorm_data[1]
- cdef char ufunc_eval_hermitenorm_types[3]
- cdef char *ufunc_eval_hermitenorm_doc = (
- "eval_hermitenorm(n, x, out=None)\n"
- "\n"
- "Evaluate probabilist's (normalized) Hermite polynomial at a\n"
- "point.\n"
- "\n"
- "Defined by\n"
- "\n"
- ".. math::\n"
- "\n"
- " He_n(x) = (-1)^n e^{x^2/2} \\frac{d^n}{dx^n} e^{-x^2/2};\n"
- "\n"
- ":math:`He_n` is a polynomial of degree :math:`n`. See 22.11.8 in\n"
- "[AS]_ or [DLMF]_ for details.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "n : array_like\n"
- " Degree of the polynomial\n"
- "x : array_like\n"
- " Points at which to evaluate the Hermite polynomial\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "He : scalar or ndarray\n"
- " Values of the Hermite polynomial\n"
- "\n"
- "See Also\n"
- "--------\n"
- "roots_hermitenorm : roots and quadrature weights of probabilist's\n"
- " Hermite polynomials\n"
- "hermitenorm : probabilist's Hermite polynomial object\n"
- "numpy.polynomial.hermite_e.HermiteE : Probabilist's Hermite series\n"
- "eval_hermite : evaluate physicist's Hermite polynomials\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [AS] Milton Abramowitz and Irene A. Stegun, eds.\n"
- " Handbook of Mathematical Functions with Formulas,\n"
- " Graphs, and Mathematical Tables. New York: Dover, 1972.\n"
- ".. [DLMF] NIST Digital Library of Mathematical Functions,\n"
- " https://dlmf.nist.gov/18.5.T1")
- ufunc_eval_hermitenorm_loops[0] = <np.PyUFuncGenericFunction>loop_d_pd__As_pd_d
- ufunc_eval_hermitenorm_types[0] = <char>NPY_INTP
- ufunc_eval_hermitenorm_types[1] = <char>NPY_DOUBLE
- ufunc_eval_hermitenorm_types[2] = <char>NPY_DOUBLE
- ufunc_eval_hermitenorm_ptr[2*0] = <void*>_func_eval_hermitenorm
- ufunc_eval_hermitenorm_ptr[2*0+1] = <void*>(<char*>"eval_hermitenorm")
- ufunc_eval_hermitenorm_data[0] = &ufunc_eval_hermitenorm_ptr[2*0]
- eval_hermitenorm = np.PyUFunc_FromFuncAndData(ufunc_eval_hermitenorm_loops, ufunc_eval_hermitenorm_data, ufunc_eval_hermitenorm_types, 1, 2, 1, 0, 'eval_hermitenorm', ufunc_eval_hermitenorm_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_eval_jacobi_loops[5]
- cdef void *ufunc_eval_jacobi_ptr[10]
- cdef void *ufunc_eval_jacobi_data[5]
- cdef char ufunc_eval_jacobi_types[25]
- cdef char *ufunc_eval_jacobi_doc = (
- "eval_jacobi(n, alpha, beta, x, out=None)\n"
- "\n"
- "Evaluate Jacobi polynomial at a point.\n"
- "\n"
- "The Jacobi polynomials can be defined via the Gauss hypergeometric\n"
- "function :math:`{}_2F_1` as\n"
- "\n"
- ".. math::\n"
- "\n"
- " P_n^{(\\alpha, \\beta)}(x) = \\frac{(\\alpha + 1)_n}{\\Gamma(n + 1)}\n"
- " {}_2F_1(-n, 1 + \\alpha + \\beta + n; \\alpha + 1; (1 - z)/2)\n"
- "\n"
- "where :math:`(\\cdot)_n` is the Pochhammer symbol; see `poch`. When\n"
- ":math:`n` is an integer the result is a polynomial of degree\n"
- ":math:`n`. See 22.5.42 in [AS]_ or [DLMF]_ for details.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "n : array_like\n"
- " Degree of the polynomial. If not an integer the result is\n"
- " determined via the relation to the Gauss hypergeometric\n"
- " function.\n"
- "alpha : array_like\n"
- " Parameter\n"
- "beta : array_like\n"
- " Parameter\n"
- "x : array_like\n"
- " Points at which to evaluate the polynomial\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "P : scalar or ndarray\n"
- " Values of the Jacobi polynomial\n"
- "\n"
- "See Also\n"
- "--------\n"
- "roots_jacobi : roots and quadrature weights of Jacobi polynomials\n"
- "jacobi : Jacobi polynomial object\n"
- "hyp2f1 : Gauss hypergeometric function\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [AS] Milton Abramowitz and Irene A. Stegun, eds.\n"
- " Handbook of Mathematical Functions with Formulas,\n"
- " Graphs, and Mathematical Tables. New York: Dover, 1972.\n"
- ".. [DLMF] NIST Digital Library of Mathematical Functions,\n"
- " https://dlmf.nist.gov/18.5.E7")
- ufunc_eval_jacobi_loops[0] = <np.PyUFuncGenericFunction>loop_d_pddd__As_pddd_d
- ufunc_eval_jacobi_loops[1] = <np.PyUFuncGenericFunction>loop_d_dddd__As_ffff_f
- ufunc_eval_jacobi_loops[2] = <np.PyUFuncGenericFunction>loop_D_dddD__As_fffF_F
- ufunc_eval_jacobi_loops[3] = <np.PyUFuncGenericFunction>loop_d_dddd__As_dddd_d
- ufunc_eval_jacobi_loops[4] = <np.PyUFuncGenericFunction>loop_D_dddD__As_dddD_D
- ufunc_eval_jacobi_types[0] = <char>NPY_INTP
- ufunc_eval_jacobi_types[1] = <char>NPY_DOUBLE
- ufunc_eval_jacobi_types[2] = <char>NPY_DOUBLE
- ufunc_eval_jacobi_types[3] = <char>NPY_DOUBLE
- ufunc_eval_jacobi_types[4] = <char>NPY_DOUBLE
- ufunc_eval_jacobi_types[5] = <char>NPY_FLOAT
- ufunc_eval_jacobi_types[6] = <char>NPY_FLOAT
- ufunc_eval_jacobi_types[7] = <char>NPY_FLOAT
- ufunc_eval_jacobi_types[8] = <char>NPY_FLOAT
- ufunc_eval_jacobi_types[9] = <char>NPY_FLOAT
- ufunc_eval_jacobi_types[10] = <char>NPY_FLOAT
- ufunc_eval_jacobi_types[11] = <char>NPY_FLOAT
- ufunc_eval_jacobi_types[12] = <char>NPY_FLOAT
- ufunc_eval_jacobi_types[13] = <char>NPY_CFLOAT
- ufunc_eval_jacobi_types[14] = <char>NPY_CFLOAT
- ufunc_eval_jacobi_types[15] = <char>NPY_DOUBLE
- ufunc_eval_jacobi_types[16] = <char>NPY_DOUBLE
- ufunc_eval_jacobi_types[17] = <char>NPY_DOUBLE
- ufunc_eval_jacobi_types[18] = <char>NPY_DOUBLE
- ufunc_eval_jacobi_types[19] = <char>NPY_DOUBLE
- ufunc_eval_jacobi_types[20] = <char>NPY_DOUBLE
- ufunc_eval_jacobi_types[21] = <char>NPY_DOUBLE
- ufunc_eval_jacobi_types[22] = <char>NPY_DOUBLE
- ufunc_eval_jacobi_types[23] = <char>NPY_CDOUBLE
- ufunc_eval_jacobi_types[24] = <char>NPY_CDOUBLE
- ufunc_eval_jacobi_ptr[2*0] = <void*>_func_eval_jacobi_l
- ufunc_eval_jacobi_ptr[2*0+1] = <void*>(<char*>"eval_jacobi")
- ufunc_eval_jacobi_ptr[2*1] = <void*>_func_eval_jacobi[double]
- ufunc_eval_jacobi_ptr[2*1+1] = <void*>(<char*>"eval_jacobi")
- ufunc_eval_jacobi_ptr[2*2] = <void*>_func_eval_jacobi[double_complex]
- ufunc_eval_jacobi_ptr[2*2+1] = <void*>(<char*>"eval_jacobi")
- ufunc_eval_jacobi_ptr[2*3] = <void*>_func_eval_jacobi[double]
- ufunc_eval_jacobi_ptr[2*3+1] = <void*>(<char*>"eval_jacobi")
- ufunc_eval_jacobi_ptr[2*4] = <void*>_func_eval_jacobi[double_complex]
- ufunc_eval_jacobi_ptr[2*4+1] = <void*>(<char*>"eval_jacobi")
- ufunc_eval_jacobi_data[0] = &ufunc_eval_jacobi_ptr[2*0]
- ufunc_eval_jacobi_data[1] = &ufunc_eval_jacobi_ptr[2*1]
- ufunc_eval_jacobi_data[2] = &ufunc_eval_jacobi_ptr[2*2]
- ufunc_eval_jacobi_data[3] = &ufunc_eval_jacobi_ptr[2*3]
- ufunc_eval_jacobi_data[4] = &ufunc_eval_jacobi_ptr[2*4]
- eval_jacobi = np.PyUFunc_FromFuncAndData(ufunc_eval_jacobi_loops, ufunc_eval_jacobi_data, ufunc_eval_jacobi_types, 5, 4, 1, 0, 'eval_jacobi', ufunc_eval_jacobi_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_eval_laguerre_loops[5]
- cdef void *ufunc_eval_laguerre_ptr[10]
- cdef void *ufunc_eval_laguerre_data[5]
- cdef char ufunc_eval_laguerre_types[15]
- cdef char *ufunc_eval_laguerre_doc = (
- "eval_laguerre(n, x, out=None)\n"
- "\n"
- "Evaluate Laguerre polynomial at a point.\n"
- "\n"
- "The Laguerre polynomials can be defined via the confluent\n"
- "hypergeometric function :math:`{}_1F_1` as\n"
- "\n"
- ".. math::\n"
- "\n"
- " L_n(x) = {}_1F_1(-n, 1, x).\n"
- "\n"
- "See 22.5.16 and 22.5.54 in [AS]_ (or equivalently [DLMF1]_ and [DLMF2]_)\n"
- "for details. When :math:`n` is an integer the result is a polynomial\n"
- "of degree :math:`n`.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "n : array_like\n"
- " Degree of the polynomial. If not an integer the result is\n"
- " determined via the relation to the confluent hypergeometric\n"
- " function.\n"
- "x : array_like\n"
- " Points at which to evaluate the Laguerre polynomial\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "L : scalar or ndarray\n"
- " Values of the Laguerre polynomial\n"
- "\n"
- "See Also\n"
- "--------\n"
- "roots_laguerre : roots and quadrature weights of Laguerre\n"
- " polynomials\n"
- "laguerre : Laguerre polynomial object\n"
- "numpy.polynomial.laguerre.Laguerre : Laguerre series\n"
- "eval_genlaguerre : evaluate generalized Laguerre polynomials\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [AS] Milton Abramowitz and Irene A. Stegun, eds.\n"
- " Handbook of Mathematical Functions with Formulas,\n"
- " Graphs, and Mathematical Tables. New York: Dover, 1972.\n"
- ".. [DLMF1] NIST Digital Library of Mathematical Functions,\n"
- " https://dlmf.nist.gov/18.1#I1.ix7.p1\n"
- ".. [DLMF2] NIST Digital Library of Mathematical Functions,\n"
- " https://dlmf.nist.gov/18.5.E12")
- ufunc_eval_laguerre_loops[0] = <np.PyUFuncGenericFunction>loop_d_pd__As_pd_d
- ufunc_eval_laguerre_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc_eval_laguerre_loops[2] = <np.PyUFuncGenericFunction>loop_D_dD__As_fF_F
- ufunc_eval_laguerre_loops[3] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_eval_laguerre_loops[4] = <np.PyUFuncGenericFunction>loop_D_dD__As_dD_D
- ufunc_eval_laguerre_types[0] = <char>NPY_INTP
- ufunc_eval_laguerre_types[1] = <char>NPY_DOUBLE
- ufunc_eval_laguerre_types[2] = <char>NPY_DOUBLE
- ufunc_eval_laguerre_types[3] = <char>NPY_FLOAT
- ufunc_eval_laguerre_types[4] = <char>NPY_FLOAT
- ufunc_eval_laguerre_types[5] = <char>NPY_FLOAT
- ufunc_eval_laguerre_types[6] = <char>NPY_FLOAT
- ufunc_eval_laguerre_types[7] = <char>NPY_CFLOAT
- ufunc_eval_laguerre_types[8] = <char>NPY_CFLOAT
- ufunc_eval_laguerre_types[9] = <char>NPY_DOUBLE
- ufunc_eval_laguerre_types[10] = <char>NPY_DOUBLE
- ufunc_eval_laguerre_types[11] = <char>NPY_DOUBLE
- ufunc_eval_laguerre_types[12] = <char>NPY_DOUBLE
- ufunc_eval_laguerre_types[13] = <char>NPY_CDOUBLE
- ufunc_eval_laguerre_types[14] = <char>NPY_CDOUBLE
- ufunc_eval_laguerre_ptr[2*0] = <void*>_func_eval_laguerre_l
- ufunc_eval_laguerre_ptr[2*0+1] = <void*>(<char*>"eval_laguerre")
- ufunc_eval_laguerre_ptr[2*1] = <void*>_func_eval_laguerre[double]
- ufunc_eval_laguerre_ptr[2*1+1] = <void*>(<char*>"eval_laguerre")
- ufunc_eval_laguerre_ptr[2*2] = <void*>_func_eval_laguerre[double_complex]
- ufunc_eval_laguerre_ptr[2*2+1] = <void*>(<char*>"eval_laguerre")
- ufunc_eval_laguerre_ptr[2*3] = <void*>_func_eval_laguerre[double]
- ufunc_eval_laguerre_ptr[2*3+1] = <void*>(<char*>"eval_laguerre")
- ufunc_eval_laguerre_ptr[2*4] = <void*>_func_eval_laguerre[double_complex]
- ufunc_eval_laguerre_ptr[2*4+1] = <void*>(<char*>"eval_laguerre")
- ufunc_eval_laguerre_data[0] = &ufunc_eval_laguerre_ptr[2*0]
- ufunc_eval_laguerre_data[1] = &ufunc_eval_laguerre_ptr[2*1]
- ufunc_eval_laguerre_data[2] = &ufunc_eval_laguerre_ptr[2*2]
- ufunc_eval_laguerre_data[3] = &ufunc_eval_laguerre_ptr[2*3]
- ufunc_eval_laguerre_data[4] = &ufunc_eval_laguerre_ptr[2*4]
- eval_laguerre = np.PyUFunc_FromFuncAndData(ufunc_eval_laguerre_loops, ufunc_eval_laguerre_data, ufunc_eval_laguerre_types, 5, 2, 1, 0, 'eval_laguerre', ufunc_eval_laguerre_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_eval_legendre_loops[5]
- cdef void *ufunc_eval_legendre_ptr[10]
- cdef void *ufunc_eval_legendre_data[5]
- cdef char ufunc_eval_legendre_types[15]
- cdef char *ufunc_eval_legendre_doc = (
- "eval_legendre(n, x, out=None)\n"
- "\n"
- "Evaluate Legendre polynomial at a point.\n"
- "\n"
- "The Legendre polynomials can be defined via the Gauss\n"
- "hypergeometric function :math:`{}_2F_1` as\n"
- "\n"
- ".. math::\n"
- "\n"
- " P_n(x) = {}_2F_1(-n, n + 1; 1; (1 - x)/2).\n"
- "\n"
- "When :math:`n` is an integer the result is a polynomial of degree\n"
- ":math:`n`. See 22.5.49 in [AS]_ (or equivalently [DLMF]_) for details.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "n : array_like\n"
- " Degree of the polynomial. If not an integer, the result is\n"
- " determined via the relation to the Gauss hypergeometric\n"
- " function.\n"
- "x : array_like\n"
- " Points at which to evaluate the Legendre polynomial\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "P : scalar or ndarray\n"
- " Values of the Legendre polynomial\n"
- "\n"
- "See Also\n"
- "--------\n"
- "roots_legendre : roots and quadrature weights of Legendre\n"
- " polynomials\n"
- "legendre : Legendre polynomial object\n"
- "hyp2f1 : Gauss hypergeometric function\n"
- "numpy.polynomial.legendre.Legendre : Legendre series\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [AS] Milton Abramowitz and Irene A. Stegun, eds.\n"
- " Handbook of Mathematical Functions with Formulas,\n"
- " Graphs, and Mathematical Tables. New York: Dover, 1972.\n"
- ".. [DLMF] NIST Digital Library of Mathematical Functions,\n"
- " https://dlmf.nist.gov/15.9.E7\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> import numpy as np\n"
- ">>> from scipy.special import eval_legendre\n"
- "\n"
- "Evaluate the zero-order Legendre polynomial at x = 0\n"
- "\n"
- ">>> eval_legendre(0, 0)\n"
- "1.0\n"
- "\n"
- "Evaluate the first-order Legendre polynomial between -1 and 1\n"
- "\n"
- ">>> X = np.linspace(-1, 1, 5) # Domain of Legendre polynomials\n"
- ">>> eval_legendre(1, X)\n"
- "array([-1. , -0.5, 0. , 0.5, 1. ])\n"
- "\n"
- "Evaluate Legendre polynomials of order 0 through 4 at x = 0\n"
- "\n"
- ">>> N = range(0, 5)\n"
- ">>> eval_legendre(N, 0)\n"
- "array([ 1. , 0. , -0.5 , 0. , 0.375])\n"
- "\n"
- "Plot Legendre polynomials of order 0 through 4\n"
- "\n"
- ">>> X = np.linspace(-1, 1)\n"
- "\n"
- ">>> import matplotlib.pyplot as plt\n"
- ">>> for n in range(0, 5):\n"
- "... y = eval_legendre(n, X)\n"
- "... plt.plot(X, y, label=r'$P_{}(x)$'.format(n))\n"
- "\n"
- ">>> plt.title(\"Legendre Polynomials\")\n"
- ">>> plt.xlabel(\"x\")\n"
- ">>> plt.ylabel(r'$P_n(x)$')\n"
- ">>> plt.legend(loc='lower right')\n"
- ">>> plt.show()")
- ufunc_eval_legendre_loops[0] = <np.PyUFuncGenericFunction>loop_d_pd__As_pd_d
- ufunc_eval_legendre_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc_eval_legendre_loops[2] = <np.PyUFuncGenericFunction>loop_D_dD__As_fF_F
- ufunc_eval_legendre_loops[3] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_eval_legendre_loops[4] = <np.PyUFuncGenericFunction>loop_D_dD__As_dD_D
- ufunc_eval_legendre_types[0] = <char>NPY_INTP
- ufunc_eval_legendre_types[1] = <char>NPY_DOUBLE
- ufunc_eval_legendre_types[2] = <char>NPY_DOUBLE
- ufunc_eval_legendre_types[3] = <char>NPY_FLOAT
- ufunc_eval_legendre_types[4] = <char>NPY_FLOAT
- ufunc_eval_legendre_types[5] = <char>NPY_FLOAT
- ufunc_eval_legendre_types[6] = <char>NPY_FLOAT
- ufunc_eval_legendre_types[7] = <char>NPY_CFLOAT
- ufunc_eval_legendre_types[8] = <char>NPY_CFLOAT
- ufunc_eval_legendre_types[9] = <char>NPY_DOUBLE
- ufunc_eval_legendre_types[10] = <char>NPY_DOUBLE
- ufunc_eval_legendre_types[11] = <char>NPY_DOUBLE
- ufunc_eval_legendre_types[12] = <char>NPY_DOUBLE
- ufunc_eval_legendre_types[13] = <char>NPY_CDOUBLE
- ufunc_eval_legendre_types[14] = <char>NPY_CDOUBLE
- ufunc_eval_legendre_ptr[2*0] = <void*>_func_eval_legendre_l
- ufunc_eval_legendre_ptr[2*0+1] = <void*>(<char*>"eval_legendre")
- ufunc_eval_legendre_ptr[2*1] = <void*>_func_eval_legendre[double]
- ufunc_eval_legendre_ptr[2*1+1] = <void*>(<char*>"eval_legendre")
- ufunc_eval_legendre_ptr[2*2] = <void*>_func_eval_legendre[double_complex]
- ufunc_eval_legendre_ptr[2*2+1] = <void*>(<char*>"eval_legendre")
- ufunc_eval_legendre_ptr[2*3] = <void*>_func_eval_legendre[double]
- ufunc_eval_legendre_ptr[2*3+1] = <void*>(<char*>"eval_legendre")
- ufunc_eval_legendre_ptr[2*4] = <void*>_func_eval_legendre[double_complex]
- ufunc_eval_legendre_ptr[2*4+1] = <void*>(<char*>"eval_legendre")
- ufunc_eval_legendre_data[0] = &ufunc_eval_legendre_ptr[2*0]
- ufunc_eval_legendre_data[1] = &ufunc_eval_legendre_ptr[2*1]
- ufunc_eval_legendre_data[2] = &ufunc_eval_legendre_ptr[2*2]
- ufunc_eval_legendre_data[3] = &ufunc_eval_legendre_ptr[2*3]
- ufunc_eval_legendre_data[4] = &ufunc_eval_legendre_ptr[2*4]
- eval_legendre = np.PyUFunc_FromFuncAndData(ufunc_eval_legendre_loops, ufunc_eval_legendre_data, ufunc_eval_legendre_types, 5, 2, 1, 0, 'eval_legendre', ufunc_eval_legendre_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_eval_sh_chebyt_loops[5]
- cdef void *ufunc_eval_sh_chebyt_ptr[10]
- cdef void *ufunc_eval_sh_chebyt_data[5]
- cdef char ufunc_eval_sh_chebyt_types[15]
- cdef char *ufunc_eval_sh_chebyt_doc = (
- "eval_sh_chebyt(n, x, out=None)\n"
- "\n"
- "Evaluate shifted Chebyshev polynomial of the first kind at a\n"
- "point.\n"
- "\n"
- "These polynomials are defined as\n"
- "\n"
- ".. math::\n"
- "\n"
- " T_n^*(x) = T_n(2x - 1)\n"
- "\n"
- "where :math:`T_n` is a Chebyshev polynomial of the first kind. See\n"
- "22.5.14 in [AS]_ (or equivalently [DLMF]_) for details.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "n : array_like\n"
- " Degree of the polynomial. If not an integer, the result is\n"
- " determined via the relation to `eval_chebyt`.\n"
- "x : array_like\n"
- " Points at which to evaluate the shifted Chebyshev polynomial\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "T : scalar or ndarray\n"
- " Values of the shifted Chebyshev polynomial\n"
- "\n"
- "See Also\n"
- "--------\n"
- "roots_sh_chebyt : roots and quadrature weights of shifted\n"
- " Chebyshev polynomials of the first kind\n"
- "sh_chebyt : shifted Chebyshev polynomial object\n"
- "eval_chebyt : evaluate Chebyshev polynomials of the first kind\n"
- "numpy.polynomial.chebyshev.Chebyshev : Chebyshev series\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [AS] Milton Abramowitz and Irene A. Stegun, eds.\n"
- " Handbook of Mathematical Functions with Formulas,\n"
- " Graphs, and Mathematical Tables. New York: Dover, 1972.\n"
- ".. [DLMF] NIST Digital Library of Mathematical Functions,\n"
- " https://dlmf.nist.gov/18.7.E7")
- ufunc_eval_sh_chebyt_loops[0] = <np.PyUFuncGenericFunction>loop_d_pd__As_pd_d
- ufunc_eval_sh_chebyt_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc_eval_sh_chebyt_loops[2] = <np.PyUFuncGenericFunction>loop_D_dD__As_fF_F
- ufunc_eval_sh_chebyt_loops[3] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_eval_sh_chebyt_loops[4] = <np.PyUFuncGenericFunction>loop_D_dD__As_dD_D
- ufunc_eval_sh_chebyt_types[0] = <char>NPY_INTP
- ufunc_eval_sh_chebyt_types[1] = <char>NPY_DOUBLE
- ufunc_eval_sh_chebyt_types[2] = <char>NPY_DOUBLE
- ufunc_eval_sh_chebyt_types[3] = <char>NPY_FLOAT
- ufunc_eval_sh_chebyt_types[4] = <char>NPY_FLOAT
- ufunc_eval_sh_chebyt_types[5] = <char>NPY_FLOAT
- ufunc_eval_sh_chebyt_types[6] = <char>NPY_FLOAT
- ufunc_eval_sh_chebyt_types[7] = <char>NPY_CFLOAT
- ufunc_eval_sh_chebyt_types[8] = <char>NPY_CFLOAT
- ufunc_eval_sh_chebyt_types[9] = <char>NPY_DOUBLE
- ufunc_eval_sh_chebyt_types[10] = <char>NPY_DOUBLE
- ufunc_eval_sh_chebyt_types[11] = <char>NPY_DOUBLE
- ufunc_eval_sh_chebyt_types[12] = <char>NPY_DOUBLE
- ufunc_eval_sh_chebyt_types[13] = <char>NPY_CDOUBLE
- ufunc_eval_sh_chebyt_types[14] = <char>NPY_CDOUBLE
- ufunc_eval_sh_chebyt_ptr[2*0] = <void*>_func_eval_sh_chebyt_l
- ufunc_eval_sh_chebyt_ptr[2*0+1] = <void*>(<char*>"eval_sh_chebyt")
- ufunc_eval_sh_chebyt_ptr[2*1] = <void*>_func_eval_sh_chebyt[double]
- ufunc_eval_sh_chebyt_ptr[2*1+1] = <void*>(<char*>"eval_sh_chebyt")
- ufunc_eval_sh_chebyt_ptr[2*2] = <void*>_func_eval_sh_chebyt[double_complex]
- ufunc_eval_sh_chebyt_ptr[2*2+1] = <void*>(<char*>"eval_sh_chebyt")
- ufunc_eval_sh_chebyt_ptr[2*3] = <void*>_func_eval_sh_chebyt[double]
- ufunc_eval_sh_chebyt_ptr[2*3+1] = <void*>(<char*>"eval_sh_chebyt")
- ufunc_eval_sh_chebyt_ptr[2*4] = <void*>_func_eval_sh_chebyt[double_complex]
- ufunc_eval_sh_chebyt_ptr[2*4+1] = <void*>(<char*>"eval_sh_chebyt")
- ufunc_eval_sh_chebyt_data[0] = &ufunc_eval_sh_chebyt_ptr[2*0]
- ufunc_eval_sh_chebyt_data[1] = &ufunc_eval_sh_chebyt_ptr[2*1]
- ufunc_eval_sh_chebyt_data[2] = &ufunc_eval_sh_chebyt_ptr[2*2]
- ufunc_eval_sh_chebyt_data[3] = &ufunc_eval_sh_chebyt_ptr[2*3]
- ufunc_eval_sh_chebyt_data[4] = &ufunc_eval_sh_chebyt_ptr[2*4]
- eval_sh_chebyt = np.PyUFunc_FromFuncAndData(ufunc_eval_sh_chebyt_loops, ufunc_eval_sh_chebyt_data, ufunc_eval_sh_chebyt_types, 5, 2, 1, 0, 'eval_sh_chebyt', ufunc_eval_sh_chebyt_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_eval_sh_chebyu_loops[5]
- cdef void *ufunc_eval_sh_chebyu_ptr[10]
- cdef void *ufunc_eval_sh_chebyu_data[5]
- cdef char ufunc_eval_sh_chebyu_types[15]
- cdef char *ufunc_eval_sh_chebyu_doc = (
- "eval_sh_chebyu(n, x, out=None)\n"
- "\n"
- "Evaluate shifted Chebyshev polynomial of the second kind at a\n"
- "point.\n"
- "\n"
- "These polynomials are defined as\n"
- "\n"
- ".. math::\n"
- "\n"
- " U_n^*(x) = U_n(2x - 1)\n"
- "\n"
- "where :math:`U_n` is a Chebyshev polynomial of the first kind. See\n"
- "22.5.15 in [AS]_ (or equivalently [DLMF]_) for details.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "n : array_like\n"
- " Degree of the polynomial. If not an integer, the result is\n"
- " determined via the relation to `eval_chebyu`.\n"
- "x : array_like\n"
- " Points at which to evaluate the shifted Chebyshev polynomial\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "U : scalar or ndarray\n"
- " Values of the shifted Chebyshev polynomial\n"
- "\n"
- "See Also\n"
- "--------\n"
- "roots_sh_chebyu : roots and quadrature weights of shifted\n"
- " Chebychev polynomials of the second kind\n"
- "sh_chebyu : shifted Chebyshev polynomial object\n"
- "eval_chebyu : evaluate Chebyshev polynomials of the second kind\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [AS] Milton Abramowitz and Irene A. Stegun, eds.\n"
- " Handbook of Mathematical Functions with Formulas,\n"
- " Graphs, and Mathematical Tables. New York: Dover, 1972.\n"
- ".. [DLMF] NIST Digital Library of Mathematical Functions,\n"
- " https://dlmf.nist.gov/18.7.E8")
- ufunc_eval_sh_chebyu_loops[0] = <np.PyUFuncGenericFunction>loop_d_pd__As_pd_d
- ufunc_eval_sh_chebyu_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc_eval_sh_chebyu_loops[2] = <np.PyUFuncGenericFunction>loop_D_dD__As_fF_F
- ufunc_eval_sh_chebyu_loops[3] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_eval_sh_chebyu_loops[4] = <np.PyUFuncGenericFunction>loop_D_dD__As_dD_D
- ufunc_eval_sh_chebyu_types[0] = <char>NPY_INTP
- ufunc_eval_sh_chebyu_types[1] = <char>NPY_DOUBLE
- ufunc_eval_sh_chebyu_types[2] = <char>NPY_DOUBLE
- ufunc_eval_sh_chebyu_types[3] = <char>NPY_FLOAT
- ufunc_eval_sh_chebyu_types[4] = <char>NPY_FLOAT
- ufunc_eval_sh_chebyu_types[5] = <char>NPY_FLOAT
- ufunc_eval_sh_chebyu_types[6] = <char>NPY_FLOAT
- ufunc_eval_sh_chebyu_types[7] = <char>NPY_CFLOAT
- ufunc_eval_sh_chebyu_types[8] = <char>NPY_CFLOAT
- ufunc_eval_sh_chebyu_types[9] = <char>NPY_DOUBLE
- ufunc_eval_sh_chebyu_types[10] = <char>NPY_DOUBLE
- ufunc_eval_sh_chebyu_types[11] = <char>NPY_DOUBLE
- ufunc_eval_sh_chebyu_types[12] = <char>NPY_DOUBLE
- ufunc_eval_sh_chebyu_types[13] = <char>NPY_CDOUBLE
- ufunc_eval_sh_chebyu_types[14] = <char>NPY_CDOUBLE
- ufunc_eval_sh_chebyu_ptr[2*0] = <void*>_func_eval_sh_chebyu_l
- ufunc_eval_sh_chebyu_ptr[2*0+1] = <void*>(<char*>"eval_sh_chebyu")
- ufunc_eval_sh_chebyu_ptr[2*1] = <void*>_func_eval_sh_chebyu[double]
- ufunc_eval_sh_chebyu_ptr[2*1+1] = <void*>(<char*>"eval_sh_chebyu")
- ufunc_eval_sh_chebyu_ptr[2*2] = <void*>_func_eval_sh_chebyu[double_complex]
- ufunc_eval_sh_chebyu_ptr[2*2+1] = <void*>(<char*>"eval_sh_chebyu")
- ufunc_eval_sh_chebyu_ptr[2*3] = <void*>_func_eval_sh_chebyu[double]
- ufunc_eval_sh_chebyu_ptr[2*3+1] = <void*>(<char*>"eval_sh_chebyu")
- ufunc_eval_sh_chebyu_ptr[2*4] = <void*>_func_eval_sh_chebyu[double_complex]
- ufunc_eval_sh_chebyu_ptr[2*4+1] = <void*>(<char*>"eval_sh_chebyu")
- ufunc_eval_sh_chebyu_data[0] = &ufunc_eval_sh_chebyu_ptr[2*0]
- ufunc_eval_sh_chebyu_data[1] = &ufunc_eval_sh_chebyu_ptr[2*1]
- ufunc_eval_sh_chebyu_data[2] = &ufunc_eval_sh_chebyu_ptr[2*2]
- ufunc_eval_sh_chebyu_data[3] = &ufunc_eval_sh_chebyu_ptr[2*3]
- ufunc_eval_sh_chebyu_data[4] = &ufunc_eval_sh_chebyu_ptr[2*4]
- eval_sh_chebyu = np.PyUFunc_FromFuncAndData(ufunc_eval_sh_chebyu_loops, ufunc_eval_sh_chebyu_data, ufunc_eval_sh_chebyu_types, 5, 2, 1, 0, 'eval_sh_chebyu', ufunc_eval_sh_chebyu_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_eval_sh_jacobi_loops[5]
- cdef void *ufunc_eval_sh_jacobi_ptr[10]
- cdef void *ufunc_eval_sh_jacobi_data[5]
- cdef char ufunc_eval_sh_jacobi_types[25]
- cdef char *ufunc_eval_sh_jacobi_doc = (
- "eval_sh_jacobi(n, p, q, x, out=None)\n"
- "\n"
- "Evaluate shifted Jacobi polynomial at a point.\n"
- "\n"
- "Defined by\n"
- "\n"
- ".. math::\n"
- "\n"
- " G_n^{(p, q)}(x)\n"
- " = \\binom{2n + p - 1}{n}^{-1} P_n^{(p - q, q - 1)}(2x - 1),\n"
- "\n"
- "where :math:`P_n^{(\\cdot, \\cdot)}` is the n-th Jacobi polynomial.\n"
- "See 22.5.2 in [AS]_ (or equivalently [DLMF]_) for details.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "n : int\n"
- " Degree of the polynomial. If not an integer, the result is\n"
- " determined via the relation to `binom` and `eval_jacobi`.\n"
- "p : float\n"
- " Parameter\n"
- "q : float\n"
- " Parameter\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "G : scalar or ndarray\n"
- " Values of the shifted Jacobi polynomial.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "roots_sh_jacobi : roots and quadrature weights of shifted Jacobi\n"
- " polynomials\n"
- "sh_jacobi : shifted Jacobi polynomial object\n"
- "eval_jacobi : evaluate Jacobi polynomials\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [AS] Milton Abramowitz and Irene A. Stegun, eds.\n"
- " Handbook of Mathematical Functions with Formulas,\n"
- " Graphs, and Mathematical Tables. New York: Dover, 1972.\n"
- ".. [DLMF] NIST Digital Library of Mathematical Functions,\n"
- " https://dlmf.nist.gov/18.1.E2")
- ufunc_eval_sh_jacobi_loops[0] = <np.PyUFuncGenericFunction>loop_d_pddd__As_pddd_d
- ufunc_eval_sh_jacobi_loops[1] = <np.PyUFuncGenericFunction>loop_d_dddd__As_ffff_f
- ufunc_eval_sh_jacobi_loops[2] = <np.PyUFuncGenericFunction>loop_D_dddD__As_fffF_F
- ufunc_eval_sh_jacobi_loops[3] = <np.PyUFuncGenericFunction>loop_d_dddd__As_dddd_d
- ufunc_eval_sh_jacobi_loops[4] = <np.PyUFuncGenericFunction>loop_D_dddD__As_dddD_D
- ufunc_eval_sh_jacobi_types[0] = <char>NPY_INTP
- ufunc_eval_sh_jacobi_types[1] = <char>NPY_DOUBLE
- ufunc_eval_sh_jacobi_types[2] = <char>NPY_DOUBLE
- ufunc_eval_sh_jacobi_types[3] = <char>NPY_DOUBLE
- ufunc_eval_sh_jacobi_types[4] = <char>NPY_DOUBLE
- ufunc_eval_sh_jacobi_types[5] = <char>NPY_FLOAT
- ufunc_eval_sh_jacobi_types[6] = <char>NPY_FLOAT
- ufunc_eval_sh_jacobi_types[7] = <char>NPY_FLOAT
- ufunc_eval_sh_jacobi_types[8] = <char>NPY_FLOAT
- ufunc_eval_sh_jacobi_types[9] = <char>NPY_FLOAT
- ufunc_eval_sh_jacobi_types[10] = <char>NPY_FLOAT
- ufunc_eval_sh_jacobi_types[11] = <char>NPY_FLOAT
- ufunc_eval_sh_jacobi_types[12] = <char>NPY_FLOAT
- ufunc_eval_sh_jacobi_types[13] = <char>NPY_CFLOAT
- ufunc_eval_sh_jacobi_types[14] = <char>NPY_CFLOAT
- ufunc_eval_sh_jacobi_types[15] = <char>NPY_DOUBLE
- ufunc_eval_sh_jacobi_types[16] = <char>NPY_DOUBLE
- ufunc_eval_sh_jacobi_types[17] = <char>NPY_DOUBLE
- ufunc_eval_sh_jacobi_types[18] = <char>NPY_DOUBLE
- ufunc_eval_sh_jacobi_types[19] = <char>NPY_DOUBLE
- ufunc_eval_sh_jacobi_types[20] = <char>NPY_DOUBLE
- ufunc_eval_sh_jacobi_types[21] = <char>NPY_DOUBLE
- ufunc_eval_sh_jacobi_types[22] = <char>NPY_DOUBLE
- ufunc_eval_sh_jacobi_types[23] = <char>NPY_CDOUBLE
- ufunc_eval_sh_jacobi_types[24] = <char>NPY_CDOUBLE
- ufunc_eval_sh_jacobi_ptr[2*0] = <void*>_func_eval_sh_jacobi_l
- ufunc_eval_sh_jacobi_ptr[2*0+1] = <void*>(<char*>"eval_sh_jacobi")
- ufunc_eval_sh_jacobi_ptr[2*1] = <void*>_func_eval_sh_jacobi[double]
- ufunc_eval_sh_jacobi_ptr[2*1+1] = <void*>(<char*>"eval_sh_jacobi")
- ufunc_eval_sh_jacobi_ptr[2*2] = <void*>_func_eval_sh_jacobi[double_complex]
- ufunc_eval_sh_jacobi_ptr[2*2+1] = <void*>(<char*>"eval_sh_jacobi")
- ufunc_eval_sh_jacobi_ptr[2*3] = <void*>_func_eval_sh_jacobi[double]
- ufunc_eval_sh_jacobi_ptr[2*3+1] = <void*>(<char*>"eval_sh_jacobi")
- ufunc_eval_sh_jacobi_ptr[2*4] = <void*>_func_eval_sh_jacobi[double_complex]
- ufunc_eval_sh_jacobi_ptr[2*4+1] = <void*>(<char*>"eval_sh_jacobi")
- ufunc_eval_sh_jacobi_data[0] = &ufunc_eval_sh_jacobi_ptr[2*0]
- ufunc_eval_sh_jacobi_data[1] = &ufunc_eval_sh_jacobi_ptr[2*1]
- ufunc_eval_sh_jacobi_data[2] = &ufunc_eval_sh_jacobi_ptr[2*2]
- ufunc_eval_sh_jacobi_data[3] = &ufunc_eval_sh_jacobi_ptr[2*3]
- ufunc_eval_sh_jacobi_data[4] = &ufunc_eval_sh_jacobi_ptr[2*4]
- eval_sh_jacobi = np.PyUFunc_FromFuncAndData(ufunc_eval_sh_jacobi_loops, ufunc_eval_sh_jacobi_data, ufunc_eval_sh_jacobi_types, 5, 4, 1, 0, 'eval_sh_jacobi', ufunc_eval_sh_jacobi_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_eval_sh_legendre_loops[5]
- cdef void *ufunc_eval_sh_legendre_ptr[10]
- cdef void *ufunc_eval_sh_legendre_data[5]
- cdef char ufunc_eval_sh_legendre_types[15]
- cdef char *ufunc_eval_sh_legendre_doc = (
- "eval_sh_legendre(n, x, out=None)\n"
- "\n"
- "Evaluate shifted Legendre polynomial at a point.\n"
- "\n"
- "These polynomials are defined as\n"
- "\n"
- ".. math::\n"
- "\n"
- " P_n^*(x) = P_n(2x - 1)\n"
- "\n"
- "where :math:`P_n` is a Legendre polynomial. See 2.2.11 in [AS]_\n"
- "or [DLMF]_ for details.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "n : array_like\n"
- " Degree of the polynomial. If not an integer, the value is\n"
- " determined via the relation to `eval_legendre`.\n"
- "x : array_like\n"
- " Points at which to evaluate the shifted Legendre polynomial\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "P : scalar or ndarray\n"
- " Values of the shifted Legendre polynomial\n"
- "\n"
- "See Also\n"
- "--------\n"
- "roots_sh_legendre : roots and quadrature weights of shifted\n"
- " Legendre polynomials\n"
- "sh_legendre : shifted Legendre polynomial object\n"
- "eval_legendre : evaluate Legendre polynomials\n"
- "numpy.polynomial.legendre.Legendre : Legendre series\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [AS] Milton Abramowitz and Irene A. Stegun, eds.\n"
- " Handbook of Mathematical Functions with Formulas,\n"
- " Graphs, and Mathematical Tables. New York: Dover, 1972.\n"
- ".. [DLMF] NIST Digital Library of Mathematical Functions,\n"
- " https://dlmf.nist.gov/18.7.E10")
- ufunc_eval_sh_legendre_loops[0] = <np.PyUFuncGenericFunction>loop_d_pd__As_pd_d
- ufunc_eval_sh_legendre_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc_eval_sh_legendre_loops[2] = <np.PyUFuncGenericFunction>loop_D_dD__As_fF_F
- ufunc_eval_sh_legendre_loops[3] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_eval_sh_legendre_loops[4] = <np.PyUFuncGenericFunction>loop_D_dD__As_dD_D
- ufunc_eval_sh_legendre_types[0] = <char>NPY_INTP
- ufunc_eval_sh_legendre_types[1] = <char>NPY_DOUBLE
- ufunc_eval_sh_legendre_types[2] = <char>NPY_DOUBLE
- ufunc_eval_sh_legendre_types[3] = <char>NPY_FLOAT
- ufunc_eval_sh_legendre_types[4] = <char>NPY_FLOAT
- ufunc_eval_sh_legendre_types[5] = <char>NPY_FLOAT
- ufunc_eval_sh_legendre_types[6] = <char>NPY_FLOAT
- ufunc_eval_sh_legendre_types[7] = <char>NPY_CFLOAT
- ufunc_eval_sh_legendre_types[8] = <char>NPY_CFLOAT
- ufunc_eval_sh_legendre_types[9] = <char>NPY_DOUBLE
- ufunc_eval_sh_legendre_types[10] = <char>NPY_DOUBLE
- ufunc_eval_sh_legendre_types[11] = <char>NPY_DOUBLE
- ufunc_eval_sh_legendre_types[12] = <char>NPY_DOUBLE
- ufunc_eval_sh_legendre_types[13] = <char>NPY_CDOUBLE
- ufunc_eval_sh_legendre_types[14] = <char>NPY_CDOUBLE
- ufunc_eval_sh_legendre_ptr[2*0] = <void*>_func_eval_sh_legendre_l
- ufunc_eval_sh_legendre_ptr[2*0+1] = <void*>(<char*>"eval_sh_legendre")
- ufunc_eval_sh_legendre_ptr[2*1] = <void*>_func_eval_sh_legendre[double]
- ufunc_eval_sh_legendre_ptr[2*1+1] = <void*>(<char*>"eval_sh_legendre")
- ufunc_eval_sh_legendre_ptr[2*2] = <void*>_func_eval_sh_legendre[double_complex]
- ufunc_eval_sh_legendre_ptr[2*2+1] = <void*>(<char*>"eval_sh_legendre")
- ufunc_eval_sh_legendre_ptr[2*3] = <void*>_func_eval_sh_legendre[double]
- ufunc_eval_sh_legendre_ptr[2*3+1] = <void*>(<char*>"eval_sh_legendre")
- ufunc_eval_sh_legendre_ptr[2*4] = <void*>_func_eval_sh_legendre[double_complex]
- ufunc_eval_sh_legendre_ptr[2*4+1] = <void*>(<char*>"eval_sh_legendre")
- ufunc_eval_sh_legendre_data[0] = &ufunc_eval_sh_legendre_ptr[2*0]
- ufunc_eval_sh_legendre_data[1] = &ufunc_eval_sh_legendre_ptr[2*1]
- ufunc_eval_sh_legendre_data[2] = &ufunc_eval_sh_legendre_ptr[2*2]
- ufunc_eval_sh_legendre_data[3] = &ufunc_eval_sh_legendre_ptr[2*3]
- ufunc_eval_sh_legendre_data[4] = &ufunc_eval_sh_legendre_ptr[2*4]
- eval_sh_legendre = np.PyUFunc_FromFuncAndData(ufunc_eval_sh_legendre_loops, ufunc_eval_sh_legendre_data, ufunc_eval_sh_legendre_types, 5, 2, 1, 0, 'eval_sh_legendre', ufunc_eval_sh_legendre_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_expn_loops[3]
- cdef void *ufunc_expn_ptr[6]
- cdef void *ufunc_expn_data[3]
- cdef char ufunc_expn_types[9]
- cdef char *ufunc_expn_doc = (
- "expn(n, x, out=None)\n"
- "\n"
- "Generalized exponential integral En.\n"
- "\n"
- "For integer :math:`n \\geq 0` and real :math:`x \\geq 0` the\n"
- "generalized exponential integral is defined as [DLMF]_\n"
- "\n"
- ".. math::\n"
- "\n"
- " E_n(x) = x^{n - 1} \\int_x^\\infty \\frac{e^{-t}}{t^n} dt.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "n : array_like\n"
- " Non-negative integers\n"
- "x : array_like\n"
- " Real argument\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray\n"
- " Values of the generalized exponential integral\n"
- "\n"
- "See Also\n"
- "--------\n"
- "exp1 : special case of :math:`E_n` for :math:`n = 1`\n"
- "expi : related to :math:`E_n` when :math:`n = 1`\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [DLMF] Digital Library of Mathematical Functions, 8.19.2\n"
- " https://dlmf.nist.gov/8.19#E2\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> import numpy as np\n"
- ">>> import scipy.special as sc\n"
- "\n"
- "Its domain is nonnegative n and x.\n"
- "\n"
- ">>> sc.expn(-1, 1.0), sc.expn(1, -1.0)\n"
- "(nan, nan)\n"
- "\n"
- "It has a pole at ``x = 0`` for ``n = 1, 2``; for larger ``n`` it\n"
- "is equal to ``1 / (n - 1)``.\n"
- "\n"
- ">>> sc.expn([0, 1, 2, 3, 4], 0)\n"
- "array([ inf, inf, 1. , 0.5 , 0.33333333])\n"
- "\n"
- "For n equal to 0 it reduces to ``exp(-x) / x``.\n"
- "\n"
- ">>> x = np.array([1, 2, 3, 4])\n"
- ">>> sc.expn(0, x)\n"
- "array([0.36787944, 0.06766764, 0.01659569, 0.00457891])\n"
- ">>> np.exp(-x) / x\n"
- "array([0.36787944, 0.06766764, 0.01659569, 0.00457891])\n"
- "\n"
- "For n equal to 1 it reduces to `exp1`.\n"
- "\n"
- ">>> sc.expn(1, x)\n"
- "array([0.21938393, 0.04890051, 0.01304838, 0.00377935])\n"
- ">>> sc.exp1(x)\n"
- "array([0.21938393, 0.04890051, 0.01304838, 0.00377935])")
- ufunc_expn_loops[0] = <np.PyUFuncGenericFunction>loop_d_pd__As_pd_d
- ufunc_expn_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc_expn_loops[2] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_expn_types[0] = <char>NPY_INTP
- ufunc_expn_types[1] = <char>NPY_DOUBLE
- ufunc_expn_types[2] = <char>NPY_DOUBLE
- ufunc_expn_types[3] = <char>NPY_FLOAT
- ufunc_expn_types[4] = <char>NPY_FLOAT
- ufunc_expn_types[5] = <char>NPY_FLOAT
- ufunc_expn_types[6] = <char>NPY_DOUBLE
- ufunc_expn_types[7] = <char>NPY_DOUBLE
- ufunc_expn_types[8] = <char>NPY_DOUBLE
- ufunc_expn_ptr[2*0] = <void*>_func_cephes_expn_wrap
- ufunc_expn_ptr[2*0+1] = <void*>(<char*>"expn")
- ufunc_expn_ptr[2*1] = <void*>_func_expn_unsafe
- ufunc_expn_ptr[2*1+1] = <void*>(<char*>"expn")
- ufunc_expn_ptr[2*2] = <void*>_func_expn_unsafe
- ufunc_expn_ptr[2*2+1] = <void*>(<char*>"expn")
- ufunc_expn_data[0] = &ufunc_expn_ptr[2*0]
- ufunc_expn_data[1] = &ufunc_expn_ptr[2*1]
- ufunc_expn_data[2] = &ufunc_expn_ptr[2*2]
- expn = np.PyUFunc_FromFuncAndData(ufunc_expn_loops, ufunc_expn_data, ufunc_expn_types, 3, 2, 1, 0, 'expn', ufunc_expn_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_fdtr_loops[2]
- cdef void *ufunc_fdtr_ptr[4]
- cdef void *ufunc_fdtr_data[2]
- cdef char ufunc_fdtr_types[8]
- cdef char *ufunc_fdtr_doc = (
- "fdtr(dfn, dfd, x, out=None)\n"
- "\n"
- "F cumulative distribution function.\n"
- "\n"
- "Returns the value of the cumulative distribution function of the\n"
- "F-distribution, also known as Snedecor's F-distribution or the\n"
- "Fisher-Snedecor distribution.\n"
- "\n"
- "The F-distribution with parameters :math:`d_n` and :math:`d_d` is the\n"
- "distribution of the random variable,\n"
- "\n"
- ".. math::\n"
- " X = \\frac{U_n/d_n}{U_d/d_d},\n"
- "\n"
- "where :math:`U_n` and :math:`U_d` are random variables distributed\n"
- ":math:`\\chi^2`, with :math:`d_n` and :math:`d_d` degrees of freedom,\n"
- "respectively.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "dfn : array_like\n"
- " First parameter (positive float).\n"
- "dfd : array_like\n"
- " Second parameter (positive float).\n"
- "x : array_like\n"
- " Argument (nonnegative float).\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "y : scalar or ndarray\n"
- " The CDF of the F-distribution with parameters `dfn` and `dfd` at `x`.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "fdtrc : F distribution survival function\n"
- "fdtri : F distribution inverse cumulative distribution\n"
- "scipy.stats.f : F distribution\n"
- "\n"
- "Notes\n"
- "-----\n"
- "The regularized incomplete beta function is used, according to the\n"
- "formula,\n"
- "\n"
- ".. math::\n"
- " F(d_n, d_d; x) = I_{xd_n/(d_d + xd_n)}(d_n/2, d_d/2).\n"
- "\n"
- "Wrapper for a routine from the Boost Math C++ library [1]_. The\n"
- "F distribution is also available as `scipy.stats.f`. Calling\n"
- "`fdtr` directly can improve performance compared to the ``cdf``\n"
- "method of `scipy.stats.f` (see last example below).\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] The Boost Developers. \"Boost C++ Libraries\". https://www.boost.org/.\n"
- "\n"
- "\n"
- "Examples\n"
- "--------\n"
- "Calculate the function for ``dfn=1`` and ``dfd=2`` at ``x=1``.\n"
- "\n"
- ">>> import numpy as np\n"
- ">>> from scipy.special import fdtr\n"
- ">>> fdtr(1, 2, 1)\n"
- "0.5773502691896258\n"
- "\n"
- "Calculate the function at several points by providing a NumPy array for\n"
- "`x`.\n"
- "\n"
- ">>> x = np.array([0.5, 2., 3.])\n"
- ">>> fdtr(1, 2, x)\n"
- "array([0.4472136 , 0.70710678, 0.77459667])\n"
- "\n"
- "Plot the function for several parameter sets.\n"
- "\n"
- ">>> import matplotlib.pyplot as plt\n"
- ">>> dfn_parameters = [1, 5, 10, 50]\n"
- ">>> dfd_parameters = [1, 1, 2, 3]\n"
- ">>> linestyles = ['solid', 'dashed', 'dotted', 'dashdot']\n"
- ">>> parameters_list = list(zip(dfn_parameters, dfd_parameters,\n"
- "... linestyles))\n"
- ">>> x = np.linspace(0, 30, 1000)\n"
- ">>> fig, ax = plt.subplots()\n"
- ">>> for parameter_set in parameters_list:\n"
- "... dfn, dfd, style = parameter_set\n"
- "... fdtr_vals = fdtr(dfn, dfd, x)\n"
- "... ax.plot(x, fdtr_vals, label=rf\"$d_n={dfn},\\, d_d={dfd}$\",\n"
- "... ls=style)\n"
- ">>> ax.legend()\n"
- ">>> ax.set_xlabel(\"$x$\")\n"
- ">>> ax.set_title(\"F distribution cumulative distribution function\")\n"
- ">>> plt.show()\n"
- "\n"
- "The F distribution is also available as `scipy.stats.f`. Using `fdtr`\n"
- "directly can be much faster than calling the ``cdf`` method of\n"
- "`scipy.stats.f`, especially for small arrays or individual values.\n"
- "To get the same results one must use the following parametrization:\n"
- "``stats.f(dfn, dfd).cdf(x)=fdtr(dfn, dfd, x)``.\n"
- "\n"
- ">>> from scipy.stats import f\n"
- ">>> dfn, dfd = 1, 2\n"
- ">>> x = 1\n"
- ">>> fdtr_res = fdtr(dfn, dfd, x) # this will often be faster than below\n"
- ">>> f_dist_res = f(dfn, dfd).cdf(x)\n"
- ">>> fdtr_res == f_dist_res # test that results are equal\n"
- "True")
- ufunc_fdtr_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc_fdtr_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_fdtr_types[0] = <char>NPY_FLOAT
- ufunc_fdtr_types[1] = <char>NPY_FLOAT
- ufunc_fdtr_types[2] = <char>NPY_FLOAT
- ufunc_fdtr_types[3] = <char>NPY_FLOAT
- ufunc_fdtr_types[4] = <char>NPY_DOUBLE
- ufunc_fdtr_types[5] = <char>NPY_DOUBLE
- ufunc_fdtr_types[6] = <char>NPY_DOUBLE
- ufunc_fdtr_types[7] = <char>NPY_DOUBLE
- ufunc_fdtr_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_f_cdf_float
- ufunc_fdtr_ptr[2*0+1] = <void*>(<char*>"fdtr")
- ufunc_fdtr_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_f_cdf_double
- ufunc_fdtr_ptr[2*1+1] = <void*>(<char*>"fdtr")
- ufunc_fdtr_data[0] = &ufunc_fdtr_ptr[2*0]
- ufunc_fdtr_data[1] = &ufunc_fdtr_ptr[2*1]
- fdtr = np.PyUFunc_FromFuncAndData(ufunc_fdtr_loops, ufunc_fdtr_data, ufunc_fdtr_types, 2, 3, 1, 0, 'fdtr', ufunc_fdtr_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_fdtrc_loops[2]
- cdef void *ufunc_fdtrc_ptr[4]
- cdef void *ufunc_fdtrc_data[2]
- cdef char ufunc_fdtrc_types[8]
- cdef char *ufunc_fdtrc_doc = (
- "fdtrc(dfn, dfd, x, out=None)\n"
- "\n"
- "F survival function.\n"
- "\n"
- "Returns the complemented F-distribution function (the integral of the\n"
- "density from `x` to infinity).\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "dfn : array_like\n"
- " First parameter (positive float).\n"
- "dfd : array_like\n"
- " Second parameter (positive float).\n"
- "x : array_like\n"
- " Argument (nonnegative float).\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "y : scalar or ndarray\n"
- " The complemented F-distribution function with parameters `dfn` and\n"
- " `dfd` at `x`.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "fdtr : F distribution cumulative distribution function\n"
- "fdtri : F distribution inverse cumulative distribution function\n"
- "scipy.stats.f : F distribution\n"
- "\n"
- "Notes\n"
- "-----\n"
- "The regularized incomplete beta function is used, according to the\n"
- "formula,\n"
- "\n"
- ".. math::\n"
- " F(d_n, d_d; x) = I_{d_d/(d_d + xd_n)}(d_d/2, d_n/2).\n"
- "\n"
- "Wrapper for a routine from the Boost Math C++ library [1]_. The\n"
- "F distribution is also available as `scipy.stats.f`. Calling\n"
- "`fdtrc` directly can improve performance compared to the ``sf``\n"
- "method of `scipy.stats.f` (see last example below).\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] The Boost Developers. \"Boost C++ Libraries\". https://www.boost.org/.\n"
- "\n"
- "Examples\n"
- "--------\n"
- "Calculate the function for ``dfn=1`` and ``dfd=2`` at ``x=1``.\n"
- "\n"
- ">>> import numpy as np\n"
- ">>> from scipy.special import fdtrc\n"
- ">>> fdtrc(1, 2, 1)\n"
- "0.42264973081037427\n"
- "\n"
- "Calculate the function at several points by providing a NumPy array for\n"
- "`x`.\n"
- "\n"
- ">>> x = np.array([0.5, 2., 3.])\n"
- ">>> fdtrc(1, 2, x)\n"
- "array([0.5527864 , 0.29289322, 0.22540333])\n"
- "\n"
- "Plot the function for several parameter sets.\n"
- "\n"
- ">>> import matplotlib.pyplot as plt\n"
- ">>> dfn_parameters = [1, 5, 10, 50]\n"
- ">>> dfd_parameters = [1, 1, 2, 3]\n"
- ">>> linestyles = ['solid', 'dashed', 'dotted', 'dashdot']\n"
- ">>> parameters_list = list(zip(dfn_parameters, dfd_parameters,\n"
- "... linestyles))\n"
- ">>> x = np.linspace(0, 30, 1000)\n"
- ">>> fig, ax = plt.subplots()\n"
- ">>> for parameter_set in parameters_list:\n"
- "... dfn, dfd, style = parameter_set\n"
- "... fdtrc_vals = fdtrc(dfn, dfd, x)\n"
- "... ax.plot(x, fdtrc_vals, label=rf\"$d_n={dfn},\\, d_d={dfd}$\",\n"
- "... ls=style)\n"
- ">>> ax.legend()\n"
- ">>> ax.set_xlabel(\"$x$\")\n"
- ">>> ax.set_title(\"F distribution survival function\")\n"
- ">>> plt.show()\n"
- "\n"
- "The F distribution is also available as `scipy.stats.f`. Using `fdtrc`\n"
- "directly can be much faster than calling the ``sf`` method of\n"
- "`scipy.stats.f`, especially for small arrays or individual values.\n"
- "To get the same results one must use the following parametrization:\n"
- "``stats.f(dfn, dfd).sf(x)=fdtrc(dfn, dfd, x)``.\n"
- "\n"
- ">>> from scipy.stats import f\n"
- ">>> dfn, dfd = 1, 2\n"
- ">>> x = 1\n"
- ">>> fdtrc_res = fdtrc(dfn, dfd, x) # this will often be faster than below\n"
- ">>> f_dist_res = f(dfn, dfd).sf(x)\n"
- ">>> f_dist_res == fdtrc_res # test that results are equal\n"
- "True")
- ufunc_fdtrc_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc_fdtrc_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_fdtrc_types[0] = <char>NPY_FLOAT
- ufunc_fdtrc_types[1] = <char>NPY_FLOAT
- ufunc_fdtrc_types[2] = <char>NPY_FLOAT
- ufunc_fdtrc_types[3] = <char>NPY_FLOAT
- ufunc_fdtrc_types[4] = <char>NPY_DOUBLE
- ufunc_fdtrc_types[5] = <char>NPY_DOUBLE
- ufunc_fdtrc_types[6] = <char>NPY_DOUBLE
- ufunc_fdtrc_types[7] = <char>NPY_DOUBLE
- ufunc_fdtrc_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_f_sf_float
- ufunc_fdtrc_ptr[2*0+1] = <void*>(<char*>"fdtrc")
- ufunc_fdtrc_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_f_sf_double
- ufunc_fdtrc_ptr[2*1+1] = <void*>(<char*>"fdtrc")
- ufunc_fdtrc_data[0] = &ufunc_fdtrc_ptr[2*0]
- ufunc_fdtrc_data[1] = &ufunc_fdtrc_ptr[2*1]
- fdtrc = np.PyUFunc_FromFuncAndData(ufunc_fdtrc_loops, ufunc_fdtrc_data, ufunc_fdtrc_types, 2, 3, 1, 0, 'fdtrc', ufunc_fdtrc_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_fdtri_loops[2]
- cdef void *ufunc_fdtri_ptr[4]
- cdef void *ufunc_fdtri_data[2]
- cdef char ufunc_fdtri_types[8]
- cdef char *ufunc_fdtri_doc = (
- "fdtri(dfn, dfd, p, out=None)\n"
- "\n"
- "The `p`-th quantile of the F-distribution.\n"
- "\n"
- "This function is the inverse of the F-distribution CDF, `fdtr`, returning\n"
- "the `x` such that `fdtr(dfn, dfd, x) = p`.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "dfn : array_like\n"
- " First parameter (positive float).\n"
- "dfd : array_like\n"
- " Second parameter (positive float).\n"
- "p : array_like\n"
- " Cumulative probability, in [0, 1].\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "x : scalar or ndarray\n"
- " The quantile corresponding to `p`.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "fdtr : F distribution cumulative distribution function\n"
- "fdtrc : F distribution survival function\n"
- "scipy.stats.f : F distribution\n"
- "\n"
- "Notes\n"
- "-----\n"
- "Wrapper for a routine from the Boost Math C++ library [1]_. The\n"
- "F distribution is also available as `scipy.stats.f`. Calling\n"
- "`fdtri` directly can improve performance compared to the ``ppf``\n"
- "method of `scipy.stats.f` (see last example below).\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] The Boost Developers. \"Boost C++ Libraries\". https://www.boost.org/.\n"
- "\n"
- "Examples\n"
- "--------\n"
- "`fdtri` represents the inverse of the F distribution CDF which is\n"
- "available as `fdtr`. Here, we calculate the CDF for ``df1=1``, ``df2=2``\n"
- "at ``x=3``. `fdtri` then returns ``3`` given the same values for `df1`,\n"
- "`df2` and the computed CDF value.\n"
- "\n"
- ">>> import numpy as np\n"
- ">>> from scipy.special import fdtri, fdtr\n"
- ">>> df1, df2 = 1, 2\n"
- ">>> x = 3\n"
- ">>> cdf_value = fdtr(df1, df2, x)\n"
- ">>> fdtri(df1, df2, cdf_value)\n"
- "3.000000000000006\n"
- "\n"
- "Calculate the function at several points by providing a NumPy array for\n"
- "`x`.\n"
- "\n"
- ">>> x = np.array([0.1, 0.4, 0.7])\n"
- ">>> fdtri(1, 2, x)\n"
- "array([0.02020202, 0.38095238, 1.92156863])\n"
- "\n"
- "Plot the function for several parameter sets.\n"
- "\n"
- ">>> import matplotlib.pyplot as plt\n"
- ">>> dfn_parameters = [50, 10, 1, 50]\n"
- ">>> dfd_parameters = [0.5, 1, 1, 5]\n"
- ">>> linestyles = ['solid', 'dashed', 'dotted', 'dashdot']\n"
- ">>> parameters_list = list(zip(dfn_parameters, dfd_parameters,\n"
- "... linestyles))\n"
- ">>> x = np.linspace(0, 1, 1000)\n"
- ">>> fig, ax = plt.subplots()\n"
- ">>> for parameter_set in parameters_list:\n"
- "... dfn, dfd, style = parameter_set\n"
- "... fdtri_vals = fdtri(dfn, dfd, x)\n"
- "... ax.plot(x, fdtri_vals, label=rf\"$d_n={dfn},\\, d_d={dfd}$\",\n"
- "... ls=style)\n"
- ">>> ax.legend()\n"
- ">>> ax.set_xlabel(\"$x$\")\n"
- ">>> title = \"F distribution inverse cumulative distribution function\"\n"
- ">>> ax.set_title(title)\n"
- ">>> ax.set_ylim(0, 30)\n"
- ">>> plt.show()\n"
- "\n"
- "The F distribution is also available as `scipy.stats.f`. Using `fdtri`\n"
- "directly can be much faster than calling the ``ppf`` method of\n"
- "`scipy.stats.f`, especially for small arrays or individual values.\n"
- "To get the same results one must use the following parametrization:\n"
- "``stats.f(dfn, dfd).ppf(x)=fdtri(dfn, dfd, x)``.\n"
- "\n"
- ">>> from scipy.stats import f\n"
- ">>> dfn, dfd = 1, 2\n"
- ">>> x = 0.7\n"
- ">>> fdtri_res = fdtri(dfn, dfd, x) # this will often be faster than below\n"
- ">>> f_dist_res = f(dfn, dfd).ppf(x)\n"
- ">>> f_dist_res == fdtri_res # test that results are equal\n"
- "True")
- ufunc_fdtri_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc_fdtri_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_fdtri_types[0] = <char>NPY_FLOAT
- ufunc_fdtri_types[1] = <char>NPY_FLOAT
- ufunc_fdtri_types[2] = <char>NPY_FLOAT
- ufunc_fdtri_types[3] = <char>NPY_FLOAT
- ufunc_fdtri_types[4] = <char>NPY_DOUBLE
- ufunc_fdtri_types[5] = <char>NPY_DOUBLE
- ufunc_fdtri_types[6] = <char>NPY_DOUBLE
- ufunc_fdtri_types[7] = <char>NPY_DOUBLE
- ufunc_fdtri_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_f_ppf_float
- ufunc_fdtri_ptr[2*0+1] = <void*>(<char*>"fdtri")
- ufunc_fdtri_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_f_ppf_double
- ufunc_fdtri_ptr[2*1+1] = <void*>(<char*>"fdtri")
- ufunc_fdtri_data[0] = &ufunc_fdtri_ptr[2*0]
- ufunc_fdtri_data[1] = &ufunc_fdtri_ptr[2*1]
- fdtri = np.PyUFunc_FromFuncAndData(ufunc_fdtri_loops, ufunc_fdtri_data, ufunc_fdtri_types, 2, 3, 1, 0, 'fdtri', ufunc_fdtri_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_fdtridfd_loops[2]
- cdef void *ufunc_fdtridfd_ptr[4]
- cdef void *ufunc_fdtridfd_data[2]
- cdef char ufunc_fdtridfd_types[8]
- cdef char *ufunc_fdtridfd_doc = (
- "fdtridfd(dfn, p, x, out=None)\n"
- "\n"
- "Inverse to `fdtr` vs dfd\n"
- "\n"
- "Finds the F density argument dfd such that ``fdtr(dfn, dfd, x) == p``.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "dfn : array_like\n"
- " First parameter (positive float).\n"
- "p : array_like\n"
- " Cumulative probability, in [0, 1].\n"
- "x : array_like\n"
- " Argument (nonnegative float).\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "dfd : scalar or ndarray\n"
- " `dfd` such that ``fdtr(dfn, dfd, x) == p``.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "fdtr : F distribution cumulative distribution function\n"
- "fdtrc : F distribution survival function\n"
- "fdtri : F distribution quantile function\n"
- "scipy.stats.f : F distribution\n"
- "\n"
- "Examples\n"
- "--------\n"
- "Compute the F distribution cumulative distribution function for one\n"
- "parameter set.\n"
- "\n"
- ">>> from scipy.special import fdtridfd, fdtr\n"
- ">>> dfn, dfd, x = 10, 5, 2\n"
- ">>> cdf_value = fdtr(dfn, dfd, x)\n"
- ">>> cdf_value\n"
- "0.7700248806501017\n"
- "\n"
- "Verify that `fdtridfd` recovers the original value for `dfd`:\n"
- "\n"
- ">>> fdtridfd(dfn, cdf_value, x)\n"
- "5.0")
- ufunc_fdtridfd_loops[0] = <np.PyUFuncGenericFunction>loop_d_ddd__As_fff_f
- ufunc_fdtridfd_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_fdtridfd_types[0] = <char>NPY_FLOAT
- ufunc_fdtridfd_types[1] = <char>NPY_FLOAT
- ufunc_fdtridfd_types[2] = <char>NPY_FLOAT
- ufunc_fdtridfd_types[3] = <char>NPY_FLOAT
- ufunc_fdtridfd_types[4] = <char>NPY_DOUBLE
- ufunc_fdtridfd_types[5] = <char>NPY_DOUBLE
- ufunc_fdtridfd_types[6] = <char>NPY_DOUBLE
- ufunc_fdtridfd_types[7] = <char>NPY_DOUBLE
- ufunc_fdtridfd_ptr[2*0] = <void*>_func_fdtridfd
- ufunc_fdtridfd_ptr[2*0+1] = <void*>(<char*>"fdtridfd")
- ufunc_fdtridfd_ptr[2*1] = <void*>_func_fdtridfd
- ufunc_fdtridfd_ptr[2*1+1] = <void*>(<char*>"fdtridfd")
- ufunc_fdtridfd_data[0] = &ufunc_fdtridfd_ptr[2*0]
- ufunc_fdtridfd_data[1] = &ufunc_fdtridfd_ptr[2*1]
- fdtridfd = np.PyUFunc_FromFuncAndData(ufunc_fdtridfd_loops, ufunc_fdtridfd_data, ufunc_fdtridfd_types, 2, 3, 1, 0, 'fdtridfd', ufunc_fdtridfd_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_gdtr_loops[2]
- cdef void *ufunc_gdtr_ptr[4]
- cdef void *ufunc_gdtr_data[2]
- cdef char ufunc_gdtr_types[8]
- cdef char *ufunc_gdtr_doc = (
- "gdtr(a, b, x, out=None)\n"
- "\n"
- "Gamma distribution cumulative distribution function.\n"
- "\n"
- "Returns the integral from zero to `x` of the gamma probability density\n"
- "function,\n"
- "\n"
- ".. math::\n"
- "\n"
- " F = \\int_0^x \\frac{a^b}{\\Gamma(b)} t^{b-1} e^{-at}\\,dt,\n"
- "\n"
- "where :math:`\\Gamma` is the gamma function.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "a : array_like\n"
- " The rate parameter of the gamma distribution, sometimes denoted\n"
- " :math:`\\beta` (float). It is also the reciprocal of the scale\n"
- " parameter :math:`\\theta`.\n"
- "b : array_like\n"
- " The shape parameter of the gamma distribution, sometimes denoted\n"
- " :math:`\\alpha` (float).\n"
- "x : array_like\n"
- " The quantile (upper limit of integration; float).\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "F : scalar or ndarray\n"
- " The CDF of the gamma distribution with parameters `a` and `b`\n"
- " evaluated at `x`.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "gdtrc : 1 - CDF of the gamma distribution.\n"
- "scipy.stats.gamma: Gamma distribution\n"
- "\n"
- "Notes\n"
- "-----\n"
- "The evaluation is carried out using the relation to the incomplete gamma\n"
- "integral (regularized gamma function).\n"
- "\n"
- "Wrapper for the Cephes [1]_ routine `gdtr`. Calling `gdtr` directly can\n"
- "improve performance compared to the ``cdf`` method of `scipy.stats.gamma`\n"
- "(see last example below).\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] Cephes Mathematical Functions Library,\n"
- " http://www.netlib.org/cephes/\n"
- "\n"
- "Examples\n"
- "--------\n"
- "Compute the function for ``a=1``, ``b=2`` at ``x=5``.\n"
- "\n"
- ">>> import numpy as np\n"
- ">>> from scipy.special import gdtr\n"
- ">>> import matplotlib.pyplot as plt\n"
- ">>> gdtr(1., 2., 5.)\n"
- "0.9595723180054873\n"
- "\n"
- "Compute the function for ``a=1`` and ``b=2`` at several points by\n"
- "providing a NumPy array for `x`.\n"
- "\n"
- ">>> xvalues = np.array([1., 2., 3., 4])\n"
- ">>> gdtr(1., 1., xvalues)\n"
- "array([0.63212056, 0.86466472, 0.95021293, 0.98168436])\n"
- "\n"
- "`gdtr` can evaluate different parameter sets by providing arrays with\n"
- "broadcasting compatible shapes for `a`, `b` and `x`. Here we compute the\n"
- "function for three different `a` at four positions `x` and ``b=3``,\n"
- "resulting in a 3x4 array.\n"
- "\n"
- ">>> a = np.array([[0.5], [1.5], [2.5]])\n"
- ">>> x = np.array([1., 2., 3., 4])\n"
- ">>> a.shape, x.shape\n"
- "((3, 1), (4,))\n"
- "\n"
- ">>> gdtr(a, 3., x)\n"
- "array([[0.01438768, 0.0803014 , 0.19115317, 0.32332358],\n"
- " [0.19115317, 0.57680992, 0.82642193, 0.9380312 ],\n"
- " [0.45618688, 0.87534798, 0.97974328, 0.9972306 ]])\n"
- "\n"
- "Plot the function for four different parameter sets.\n"
- "\n"
- ">>> a_parameters = [0.3, 1, 2, 6]\n"
- ">>> b_parameters = [2, 10, 15, 20]\n"
- ">>> linestyles = ['solid', 'dashed', 'dotted', 'dashdot']\n"
- ">>> parameters_list = list(zip(a_parameters, b_parameters, linestyles))\n"
- ">>> x = np.linspace(0, 30, 1000)\n"
- ">>> fig, ax = plt.subplots()\n"
- ">>> for parameter_set in parameters_list:\n"
- "... a, b, style = parameter_set\n"
- "... gdtr_vals = gdtr(a, b, x)\n"
- "... ax.plot(x, gdtr_vals, label=fr\"$a= {a},\\, b={b}$\", ls=style)\n"
- ">>> ax.legend()\n"
- ">>> ax.set_xlabel(\"$x$\")\n"
- ">>> ax.set_title(\"Gamma distribution cumulative distribution function\")\n"
- ">>> plt.show()\n"
- "\n"
- "The gamma distribution is also available as `scipy.stats.gamma`. Using\n"
- "`gdtr` directly can be much faster than calling the ``cdf`` method of\n"
- "`scipy.stats.gamma`, especially for small arrays or individual values.\n"
- "To get the same results one must use the following parametrization:\n"
- "``stats.gamma(b, scale=1/a).cdf(x)=gdtr(a, b, x)``.\n"
- "\n"
- ">>> from scipy.stats import gamma\n"
- ">>> a = 2.\n"
- ">>> b = 3\n"
- ">>> x = 1.\n"
- ">>> gdtr_result = gdtr(a, b, x) # this will often be faster than below\n"
- ">>> gamma_dist_result = gamma(b, scale=1/a).cdf(x)\n"
- ">>> gdtr_result == gamma_dist_result # test that results are equal\n"
- "True")
- ufunc_gdtr_loops[0] = <np.PyUFuncGenericFunction>loop_d_ddd__As_fff_f
- ufunc_gdtr_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_gdtr_types[0] = <char>NPY_FLOAT
- ufunc_gdtr_types[1] = <char>NPY_FLOAT
- ufunc_gdtr_types[2] = <char>NPY_FLOAT
- ufunc_gdtr_types[3] = <char>NPY_FLOAT
- ufunc_gdtr_types[4] = <char>NPY_DOUBLE
- ufunc_gdtr_types[5] = <char>NPY_DOUBLE
- ufunc_gdtr_types[6] = <char>NPY_DOUBLE
- ufunc_gdtr_types[7] = <char>NPY_DOUBLE
- ufunc_gdtr_ptr[2*0] = <void*>_func_xsf_gdtr
- ufunc_gdtr_ptr[2*0+1] = <void*>(<char*>"gdtr")
- ufunc_gdtr_ptr[2*1] = <void*>_func_xsf_gdtr
- ufunc_gdtr_ptr[2*1+1] = <void*>(<char*>"gdtr")
- ufunc_gdtr_data[0] = &ufunc_gdtr_ptr[2*0]
- ufunc_gdtr_data[1] = &ufunc_gdtr_ptr[2*1]
- gdtr = np.PyUFunc_FromFuncAndData(ufunc_gdtr_loops, ufunc_gdtr_data, ufunc_gdtr_types, 2, 3, 1, 0, 'gdtr', ufunc_gdtr_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_gdtrc_loops[2]
- cdef void *ufunc_gdtrc_ptr[4]
- cdef void *ufunc_gdtrc_data[2]
- cdef char ufunc_gdtrc_types[8]
- cdef char *ufunc_gdtrc_doc = (
- "gdtrc(a, b, x, out=None)\n"
- "\n"
- "Gamma distribution survival function.\n"
- "\n"
- "Integral from `x` to infinity of the gamma probability density function,\n"
- "\n"
- ".. math::\n"
- "\n"
- " F = \\int_x^\\infty \\frac{a^b}{\\Gamma(b)} t^{b-1} e^{-at}\\,dt,\n"
- "\n"
- "where :math:`\\Gamma` is the gamma function.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "a : array_like\n"
- " The rate parameter of the gamma distribution, sometimes denoted\n"
- " :math:`\\beta` (float). It is also the reciprocal of the scale\n"
- " parameter :math:`\\theta`.\n"
- "b : array_like\n"
- " The shape parameter of the gamma distribution, sometimes denoted\n"
- " :math:`\\alpha` (float).\n"
- "x : array_like\n"
- " The quantile (lower limit of integration; float).\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "F : scalar or ndarray\n"
- " The survival function of the gamma distribution with parameters `a`\n"
- " and `b` evaluated at `x`.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "gdtr: Gamma distribution cumulative distribution function\n"
- "scipy.stats.gamma: Gamma distribution\n"
- "gdtrix\n"
- "\n"
- "Notes\n"
- "-----\n"
- "The evaluation is carried out using the relation to the incomplete gamma\n"
- "integral (regularized gamma function).\n"
- "\n"
- "Wrapper for the Cephes [1]_ routine `gdtrc`. Calling `gdtrc` directly can\n"
- "improve performance compared to the ``sf`` method of `scipy.stats.gamma`\n"
- "(see last example below).\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] Cephes Mathematical Functions Library,\n"
- " http://www.netlib.org/cephes/\n"
- "\n"
- "Examples\n"
- "--------\n"
- "Compute the function for ``a=1`` and ``b=2`` at ``x=5``.\n"
- "\n"
- ">>> import numpy as np\n"
- ">>> from scipy.special import gdtrc\n"
- ">>> import matplotlib.pyplot as plt\n"
- ">>> gdtrc(1., 2., 5.)\n"
- "0.04042768199451279\n"
- "\n"
- "Compute the function for ``a=1``, ``b=2`` at several points by providing\n"
- "a NumPy array for `x`.\n"
- "\n"
- ">>> xvalues = np.array([1., 2., 3., 4])\n"
- ">>> gdtrc(1., 1., xvalues)\n"
- "array([0.36787944, 0.13533528, 0.04978707, 0.01831564])\n"
- "\n"
- "`gdtrc` can evaluate different parameter sets by providing arrays with\n"
- "broadcasting compatible shapes for `a`, `b` and `x`. Here we compute the\n"
- "function for three different `a` at four positions `x` and ``b=3``,\n"
- "resulting in a 3x4 array.\n"
- "\n"
- ">>> a = np.array([[0.5], [1.5], [2.5]])\n"
- ">>> x = np.array([1., 2., 3., 4])\n"
- ">>> a.shape, x.shape\n"
- "((3, 1), (4,))\n"
- "\n"
- ">>> gdtrc(a, 3., x)\n"
- "array([[0.98561232, 0.9196986 , 0.80884683, 0.67667642],\n"
- " [0.80884683, 0.42319008, 0.17357807, 0.0619688 ],\n"
- " [0.54381312, 0.12465202, 0.02025672, 0.0027694 ]])\n"
- "\n"
- "Plot the function for four different parameter sets.\n"
- "\n"
- ">>> a_parameters = [0.3, 1, 2, 6]\n"
- ">>> b_parameters = [2, 10, 15, 20]\n"
- ">>> linestyles = ['solid', 'dashed', 'dotted', 'dashdot']\n"
- ">>> parameters_list = list(zip(a_parameters, b_parameters, linestyles))\n"
- ">>> x = np.linspace(0, 30, 1000)\n"
- ">>> fig, ax = plt.subplots()\n"
- ">>> for parameter_set in parameters_list:\n"
- "... a, b, style = parameter_set\n"
- "... gdtrc_vals = gdtrc(a, b, x)\n"
- "... ax.plot(x, gdtrc_vals, label=fr\"$a= {a},\\, b={b}$\", ls=style)\n"
- ">>> ax.legend()\n"
- ">>> ax.set_xlabel(\"$x$\")\n"
- ">>> ax.set_title(\"Gamma distribution survival function\")\n"
- ">>> plt.show()\n"
- "\n"
- "The gamma distribution is also available as `scipy.stats.gamma`.\n"
- "Using `gdtrc` directly can be much faster than calling the ``sf`` method\n"
- "of `scipy.stats.gamma`, especially for small arrays or individual\n"
- "values. To get the same results one must use the following parametrization:\n"
- "``stats.gamma(b, scale=1/a).sf(x)=gdtrc(a, b, x)``.\n"
- "\n"
- ">>> from scipy.stats import gamma\n"
- ">>> a = 2\n"
- ">>> b = 3\n"
- ">>> x = 1.\n"
- ">>> gdtrc_result = gdtrc(a, b, x) # this will often be faster than below\n"
- ">>> gamma_dist_result = gamma(b, scale=1/a).sf(x)\n"
- ">>> gdtrc_result == gamma_dist_result # test that results are equal\n"
- "True")
- ufunc_gdtrc_loops[0] = <np.PyUFuncGenericFunction>loop_d_ddd__As_fff_f
- ufunc_gdtrc_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_gdtrc_types[0] = <char>NPY_FLOAT
- ufunc_gdtrc_types[1] = <char>NPY_FLOAT
- ufunc_gdtrc_types[2] = <char>NPY_FLOAT
- ufunc_gdtrc_types[3] = <char>NPY_FLOAT
- ufunc_gdtrc_types[4] = <char>NPY_DOUBLE
- ufunc_gdtrc_types[5] = <char>NPY_DOUBLE
- ufunc_gdtrc_types[6] = <char>NPY_DOUBLE
- ufunc_gdtrc_types[7] = <char>NPY_DOUBLE
- ufunc_gdtrc_ptr[2*0] = <void*>_func_xsf_gdtrc
- ufunc_gdtrc_ptr[2*0+1] = <void*>(<char*>"gdtrc")
- ufunc_gdtrc_ptr[2*1] = <void*>_func_xsf_gdtrc
- ufunc_gdtrc_ptr[2*1+1] = <void*>(<char*>"gdtrc")
- ufunc_gdtrc_data[0] = &ufunc_gdtrc_ptr[2*0]
- ufunc_gdtrc_data[1] = &ufunc_gdtrc_ptr[2*1]
- gdtrc = np.PyUFunc_FromFuncAndData(ufunc_gdtrc_loops, ufunc_gdtrc_data, ufunc_gdtrc_types, 2, 3, 1, 0, 'gdtrc', ufunc_gdtrc_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_gdtria_loops[2]
- cdef void *ufunc_gdtria_ptr[4]
- cdef void *ufunc_gdtria_data[2]
- cdef char ufunc_gdtria_types[8]
- cdef char *ufunc_gdtria_doc = (
- "gdtria(p, b, x, out=None)\n"
- "\n"
- "Inverse of `gdtr` vs a.\n"
- "\n"
- "Returns the inverse with respect to the parameter `a` of ``p =\n"
- "gdtr(a, b, x)``, the cumulative distribution function of the gamma\n"
- "distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "p : array_like\n"
- " Probability values.\n"
- "b : array_like\n"
- " `b` parameter values of `gdtr(a, b, x)`. `b` is the \"shape\" parameter\n"
- " of the gamma distribution.\n"
- "x : array_like\n"
- " Nonnegative real values, from the domain of the gamma distribution.\n"
- "out : ndarray, optional\n"
- " If a fourth argument is given, it must be a numpy.ndarray whose size\n"
- " matches the broadcast result of `a`, `b` and `x`. `out` is then the\n"
- " array returned by the function.\n"
- "\n"
- "Returns\n"
- "-------\n"
- "a : scalar or ndarray\n"
- " Values of the `a` parameter such that ``p = gdtr(a, b, x)`. ``1/a``\n"
- " is the \"scale\" parameter of the gamma distribution.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "gdtr : CDF of the gamma distribution.\n"
- "gdtrib : Inverse with respect to `b` of `gdtr(a, b, x)`.\n"
- "gdtrix : Inverse with respect to `x` of `gdtr(a, b, x)`.\n"
- "\n"
- "Notes\n"
- "-----\n"
- "Wrapper for the CDFLIB [1]_ Fortran routine `cdfgam`.\n"
- "\n"
- "The cumulative distribution function `p` is computed using a routine by\n"
- "DiDinato and Morris [2]_. Computation of `a` involves a search for a value\n"
- "that produces the desired value of `p`. The search relies on the\n"
- "monotonicity of `p` with `a`.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] Barry Brown, James Lovato, and Kathy Russell,\n"
- " CDFLIB: Library of Fortran Routines for Cumulative Distribution\n"
- " Functions, Inverses, and Other Parameters.\n"
- ".. [2] DiDinato, A. R. and Morris, A. H.,\n"
- " Computation of the incomplete gamma function ratios and their\n"
- " inverse. ACM Trans. Math. Softw. 12 (1986), 377-393.\n"
- "\n"
- "Examples\n"
- "--------\n"
- "First evaluate `gdtr`.\n"
- "\n"
- ">>> from scipy.special import gdtr, gdtria\n"
- ">>> p = gdtr(1.2, 3.4, 5.6)\n"
- ">>> print(p)\n"
- "0.94378087442\n"
- "\n"
- "Verify the inverse.\n"
- "\n"
- ">>> gdtria(p, 3.4, 5.6)\n"
- "1.2")
- ufunc_gdtria_loops[0] = <np.PyUFuncGenericFunction>loop_d_ddd__As_fff_f
- ufunc_gdtria_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_gdtria_types[0] = <char>NPY_FLOAT
- ufunc_gdtria_types[1] = <char>NPY_FLOAT
- ufunc_gdtria_types[2] = <char>NPY_FLOAT
- ufunc_gdtria_types[3] = <char>NPY_FLOAT
- ufunc_gdtria_types[4] = <char>NPY_DOUBLE
- ufunc_gdtria_types[5] = <char>NPY_DOUBLE
- ufunc_gdtria_types[6] = <char>NPY_DOUBLE
- ufunc_gdtria_types[7] = <char>NPY_DOUBLE
- ufunc_gdtria_ptr[2*0] = <void*>_func_special_gdtria
- ufunc_gdtria_ptr[2*0+1] = <void*>(<char*>"gdtria")
- ufunc_gdtria_ptr[2*1] = <void*>_func_special_gdtria
- ufunc_gdtria_ptr[2*1+1] = <void*>(<char*>"gdtria")
- ufunc_gdtria_data[0] = &ufunc_gdtria_ptr[2*0]
- ufunc_gdtria_data[1] = &ufunc_gdtria_ptr[2*1]
- gdtria = np.PyUFunc_FromFuncAndData(ufunc_gdtria_loops, ufunc_gdtria_data, ufunc_gdtria_types, 2, 3, 1, 0, 'gdtria', ufunc_gdtria_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_gdtrib_loops[2]
- cdef void *ufunc_gdtrib_ptr[4]
- cdef void *ufunc_gdtrib_data[2]
- cdef char ufunc_gdtrib_types[8]
- cdef char *ufunc_gdtrib_doc = (
- "gdtrib(a, p, x, out=None)\n"
- "\n"
- "Inverse of `gdtr` vs b.\n"
- "\n"
- "Returns the inverse with respect to the parameter `b` of ``p =\n"
- "gdtr(a, b, x)``, the cumulative distribution function of the gamma\n"
- "distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "a : array_like\n"
- " `a` parameter values of ``gdtr(a, b, x)`. ``1/a`` is the \"scale\"\n"
- " parameter of the gamma distribution.\n"
- "p : array_like\n"
- " Probability values.\n"
- "x : array_like\n"
- " Nonnegative real values, from the domain of the gamma distribution.\n"
- "out : ndarray, optional\n"
- " If a fourth argument is given, it must be a numpy.ndarray whose size\n"
- " matches the broadcast result of `a`, `b` and `x`. `out` is then the\n"
- " array returned by the function.\n"
- "\n"
- "Returns\n"
- "-------\n"
- "b : scalar or ndarray\n"
- " Values of the `b` parameter such that `p = gdtr(a, b, x)`. `b` is\n"
- " the \"shape\" parameter of the gamma distribution.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "gdtr : CDF of the gamma distribution.\n"
- "gdtria : Inverse with respect to `a` of `gdtr(a, b, x)`.\n"
- "gdtrix : Inverse with respect to `x` of `gdtr(a, b, x)`.\n"
- "\n"
- "Notes\n"
- "-----\n"
- "\n"
- "The cumulative distribution function `p` is computed using the Cephes [1]_\n"
- "routines `igam` and `igamc`. Computation of `b` involves a search for a value\n"
- "that produces the desired value of `p` using Chandrupatla's bracketing\n"
- "root finding algorithm [2]_.\n"
- "\n"
- "Note that there are some edge cases where `gdtrib` is extended by taking\n"
- "limits where they are uniquely defined. In particular\n"
- "``x == 0`` with ``p > 0`` and ``p == 0`` with ``x > 0``.\n"
- "For these edge cases, a numerical result will be returned for\n"
- "``gdtrib(a, p, x)`` even though ``gdtr(a, gdtrib(a, p, x), x)`` is\n"
- "undefined.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] Cephes Mathematical Functions Library,\n"
- " http://www.netlib.org/cephes/\n"
- ".. [2] Chandrupatla, Tirupathi R.\n"
- " \"A new hybrid quadratic/bisection algorithm for finding the zero of a\n"
- " nonlinear function without using derivatives\".\n"
- " Advances in Engineering Software, 28(3), 145-149.\n"
- " https://doi.org/10.1016/s0965-9978(96)00051-8\n"
- "\n"
- "Examples\n"
- "--------\n"
- "First evaluate `gdtr`.\n"
- "\n"
- ">>> from scipy.special import gdtr, gdtrib\n"
- ">>> p = gdtr(1.2, 3.4, 5.6)\n"
- ">>> print(p)\n"
- "0.94378087442\n"
- "\n"
- "Verify the inverse.\n"
- "\n"
- ">>> gdtrib(1.2, p, 5.6)\n"
- "3.3999999999999995")
- ufunc_gdtrib_loops[0] = <np.PyUFuncGenericFunction>loop_d_ddd__As_fff_f
- ufunc_gdtrib_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_gdtrib_types[0] = <char>NPY_FLOAT
- ufunc_gdtrib_types[1] = <char>NPY_FLOAT
- ufunc_gdtrib_types[2] = <char>NPY_FLOAT
- ufunc_gdtrib_types[3] = <char>NPY_FLOAT
- ufunc_gdtrib_types[4] = <char>NPY_DOUBLE
- ufunc_gdtrib_types[5] = <char>NPY_DOUBLE
- ufunc_gdtrib_types[6] = <char>NPY_DOUBLE
- ufunc_gdtrib_types[7] = <char>NPY_DOUBLE
- ufunc_gdtrib_ptr[2*0] = <void*>_func_xsf_gdtrib
- ufunc_gdtrib_ptr[2*0+1] = <void*>(<char*>"gdtrib")
- ufunc_gdtrib_ptr[2*1] = <void*>_func_xsf_gdtrib
- ufunc_gdtrib_ptr[2*1+1] = <void*>(<char*>"gdtrib")
- ufunc_gdtrib_data[0] = &ufunc_gdtrib_ptr[2*0]
- ufunc_gdtrib_data[1] = &ufunc_gdtrib_ptr[2*1]
- gdtrib = np.PyUFunc_FromFuncAndData(ufunc_gdtrib_loops, ufunc_gdtrib_data, ufunc_gdtrib_types, 2, 3, 1, 0, 'gdtrib', ufunc_gdtrib_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_gdtrix_loops[2]
- cdef void *ufunc_gdtrix_ptr[4]
- cdef void *ufunc_gdtrix_data[2]
- cdef char ufunc_gdtrix_types[8]
- cdef char *ufunc_gdtrix_doc = (
- "gdtrix(a, b, p, out=None)\n"
- "\n"
- "Inverse of `gdtr` vs x.\n"
- "\n"
- "Returns the inverse with respect to the parameter `x` of ``p =\n"
- "gdtr(a, b, x)``, the cumulative distribution function of the gamma\n"
- "distribution. This is also known as the pth quantile of the\n"
- "distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "a : array_like\n"
- " `a` parameter values of ``gdtr(a, b, x)``. ``1/a`` is the \"scale\"\n"
- " parameter of the gamma distribution.\n"
- "b : array_like\n"
- " `b` parameter values of ``gdtr(a, b, x)``. `b` is the \"shape\" parameter\n"
- " of the gamma distribution.\n"
- "p : array_like\n"
- " Probability values.\n"
- "out : ndarray, optional\n"
- " If a fourth argument is given, it must be a numpy.ndarray whose size\n"
- " matches the broadcast result of `a`, `b` and `x`. `out` is then the\n"
- " array returned by the function.\n"
- "\n"
- "Returns\n"
- "-------\n"
- "x : scalar or ndarray\n"
- " Values of the `x` parameter such that `p = gdtr(a, b, x)`.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "gdtr : CDF of the gamma distribution.\n"
- "gdtria : Inverse with respect to `a` of ``gdtr(a, b, x)``.\n"
- "gdtrib : Inverse with respect to `b` of ``gdtr(a, b, x)``.\n"
- "\n"
- "Notes\n"
- "-----\n"
- "Wrapper for the CDFLIB [1]_ Fortran routine `cdfgam`.\n"
- "\n"
- "The cumulative distribution function `p` is computed using a routine by\n"
- "DiDinato and Morris [2]_. Computation of `x` involves a search for a value\n"
- "that produces the desired value of `p`. The search relies on the\n"
- "monotonicity of `p` with `x`.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] Barry Brown, James Lovato, and Kathy Russell,\n"
- " CDFLIB: Library of Fortran Routines for Cumulative Distribution\n"
- " Functions, Inverses, and Other Parameters.\n"
- ".. [2] DiDinato, A. R. and Morris, A. H.,\n"
- " Computation of the incomplete gamma function ratios and their\n"
- " inverse. ACM Trans. Math. Softw. 12 (1986), 377-393.\n"
- "\n"
- "Examples\n"
- "--------\n"
- "First evaluate `gdtr`.\n"
- "\n"
- ">>> from scipy.special import gdtr, gdtrix\n"
- ">>> p = gdtr(1.2, 3.4, 5.6)\n"
- ">>> print(p)\n"
- "0.94378087442\n"
- "\n"
- "Verify the inverse.\n"
- "\n"
- ">>> gdtrix(1.2, 3.4, p)\n"
- "5.5999999999999996")
- ufunc_gdtrix_loops[0] = <np.PyUFuncGenericFunction>loop_d_ddd__As_fff_f
- ufunc_gdtrix_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_gdtrix_types[0] = <char>NPY_FLOAT
- ufunc_gdtrix_types[1] = <char>NPY_FLOAT
- ufunc_gdtrix_types[2] = <char>NPY_FLOAT
- ufunc_gdtrix_types[3] = <char>NPY_FLOAT
- ufunc_gdtrix_types[4] = <char>NPY_DOUBLE
- ufunc_gdtrix_types[5] = <char>NPY_DOUBLE
- ufunc_gdtrix_types[6] = <char>NPY_DOUBLE
- ufunc_gdtrix_types[7] = <char>NPY_DOUBLE
- ufunc_gdtrix_ptr[2*0] = <void*>_func_special_gdtrix
- ufunc_gdtrix_ptr[2*0+1] = <void*>(<char*>"gdtrix")
- ufunc_gdtrix_ptr[2*1] = <void*>_func_special_gdtrix
- ufunc_gdtrix_ptr[2*1+1] = <void*>(<char*>"gdtrix")
- ufunc_gdtrix_data[0] = &ufunc_gdtrix_ptr[2*0]
- ufunc_gdtrix_data[1] = &ufunc_gdtrix_ptr[2*1]
- gdtrix = np.PyUFunc_FromFuncAndData(ufunc_gdtrix_loops, ufunc_gdtrix_data, ufunc_gdtrix_types, 2, 3, 1, 0, 'gdtrix', ufunc_gdtrix_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_huber_loops[2]
- cdef void *ufunc_huber_ptr[4]
- cdef void *ufunc_huber_data[2]
- cdef char ufunc_huber_types[6]
- cdef char *ufunc_huber_doc = (
- "huber(delta, r, out=None)\n"
- "\n"
- "Huber loss function.\n"
- "\n"
- ".. math:: \\text{huber}(\\delta, r) = \\begin{cases} \\infty & \\delta < 0 \\\\\n"
- " \\frac{1}{2}r^2 & 0 \\le \\delta, | r | \\le \\delta \\\\\n"
- " \\delta ( |r| - \\frac{1}{2}\\delta ) & \\text{otherwise} \\end{cases}\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "delta : ndarray\n"
- " Input array, indicating the quadratic vs. linear loss changepoint.\n"
- "r : ndarray\n"
- " Input array, possibly representing residuals.\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray\n"
- " The computed Huber loss function values.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "pseudo_huber : smooth approximation of this function\n"
- "\n"
- "Notes\n"
- "-----\n"
- "`huber` is useful as a loss function in robust statistics or machine\n"
- "learning to reduce the influence of outliers as compared to the common\n"
- "squared error loss, residuals with a magnitude higher than `delta` are\n"
- "not squared [1]_.\n"
- "\n"
- "Typically, `r` represents residuals, the difference\n"
- "between a model prediction and data. Then, for :math:`|r|\\leq\\delta`,\n"
- "`huber` resembles the squared error and for :math:`|r|>\\delta` the\n"
- "absolute error. This way, the Huber loss often achieves\n"
- "a fast convergence in model fitting for small residuals like the squared\n"
- "error loss function and still reduces the influence of outliers\n"
- "(:math:`|r|>\\delta`) like the absolute error loss. As :math:`\\delta` is\n"
- "the cutoff between squared and absolute error regimes, it has\n"
- "to be tuned carefully for each problem. `huber` is also\n"
- "convex, making it suitable for gradient based optimization.\n"
- "\n"
- ".. versionadded:: 0.15.0\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] Peter Huber. \"Robust Estimation of a Location Parameter\",\n"
- " 1964. Annals of Statistics. 53 (1): 73 - 101.\n"
- "\n"
- "Examples\n"
- "--------\n"
- "Import all necessary modules.\n"
- "\n"
- ">>> import numpy as np\n"
- ">>> from scipy.special import huber\n"
- ">>> import matplotlib.pyplot as plt\n"
- "\n"
- "Compute the function for ``delta=1`` at ``r=2``\n"
- "\n"
- ">>> huber(1., 2.)\n"
- "1.5\n"
- "\n"
- "Compute the function for different `delta` by providing a NumPy array or\n"
- "list for `delta`.\n"
- "\n"
- ">>> huber([1., 3., 5.], 4.)\n"
- "array([3.5, 7.5, 8. ])\n"
- "\n"
- "Compute the function at different points by providing a NumPy array or\n"
- "list for `r`.\n"
- "\n"
- ">>> huber(2., np.array([1., 1.5, 3.]))\n"
- "array([0.5 , 1.125, 4. ])\n"
- "\n"
- "The function can be calculated for different `delta` and `r` by\n"
- "providing arrays for both with compatible shapes for broadcasting.\n"
- "\n"
- ">>> r = np.array([1., 2.5, 8., 10.])\n"
- ">>> deltas = np.array([[1.], [5.], [9.]])\n"
- ">>> print(r.shape, deltas.shape)\n"
- "(4,) (3, 1)\n"
- "\n"
- ">>> huber(deltas, r)\n"
- "array([[ 0.5 , 2. , 7.5 , 9.5 ],\n"
- " [ 0.5 , 3.125, 27.5 , 37.5 ],\n"
- " [ 0.5 , 3.125, 32. , 49.5 ]])\n"
- "\n"
- "Plot the function for different `delta`.\n"
- "\n"
- ">>> x = np.linspace(-4, 4, 500)\n"
- ">>> deltas = [1, 2, 3]\n"
- ">>> linestyles = [\"dashed\", \"dotted\", \"dashdot\"]\n"
- ">>> fig, ax = plt.subplots()\n"
- ">>> combined_plot_parameters = list(zip(deltas, linestyles))\n"
- ">>> for delta, style in combined_plot_parameters:\n"
- "... ax.plot(x, huber(delta, x), label=fr\"$\\delta={delta}$\", ls=style)\n"
- ">>> ax.legend(loc=\"upper center\")\n"
- ">>> ax.set_xlabel(\"$x$\")\n"
- ">>> ax.set_title(r\"Huber loss function $h_{\\delta}(x)$\")\n"
- ">>> ax.set_xlim(-4, 4)\n"
- ">>> ax.set_ylim(0, 8)\n"
- ">>> plt.show()")
- ufunc_huber_loops[0] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc_huber_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_huber_types[0] = <char>NPY_FLOAT
- ufunc_huber_types[1] = <char>NPY_FLOAT
- ufunc_huber_types[2] = <char>NPY_FLOAT
- ufunc_huber_types[3] = <char>NPY_DOUBLE
- ufunc_huber_types[4] = <char>NPY_DOUBLE
- ufunc_huber_types[5] = <char>NPY_DOUBLE
- ufunc_huber_ptr[2*0] = <void*>_func_huber
- ufunc_huber_ptr[2*0+1] = <void*>(<char*>"huber")
- ufunc_huber_ptr[2*1] = <void*>_func_huber
- ufunc_huber_ptr[2*1+1] = <void*>(<char*>"huber")
- ufunc_huber_data[0] = &ufunc_huber_ptr[2*0]
- ufunc_huber_data[1] = &ufunc_huber_ptr[2*1]
- huber = np.PyUFunc_FromFuncAndData(ufunc_huber_loops, ufunc_huber_data, ufunc_huber_types, 2, 2, 1, 0, 'huber', ufunc_huber_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_hyp0f1_loops[4]
- cdef void *ufunc_hyp0f1_ptr[8]
- cdef void *ufunc_hyp0f1_data[4]
- cdef char ufunc_hyp0f1_types[12]
- cdef char *ufunc_hyp0f1_doc = (
- "hyp0f1(v, z, out=None)\n"
- "\n"
- "Confluent hypergeometric limit function 0F1.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "v : array_like\n"
- " Real-valued parameter\n"
- "z : array_like\n"
- " Real- or complex-valued argument\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray\n"
- " The confluent hypergeometric limit function\n"
- "\n"
- "Notes\n"
- "-----\n"
- "This function is defined as:\n"
- "\n"
- ".. math:: _0F_1(v, z) = \\sum_{k=0}^{\\infty}\\frac{z^k}{(v)_k k!}.\n"
- "\n"
- "It's also the limit as :math:`q \\to \\infty` of :math:`_1F_1(q; v; z/q)`,\n"
- "and satisfies the differential equation :math:`f''(z) + vf'(z) =\n"
- "f(z)`. See [1]_ for more information.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] Wolfram MathWorld, \"Confluent Hypergeometric Limit Function\",\n"
- " http://mathworld.wolfram.com/ConfluentHypergeometricLimitFunction.html\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> import numpy as np\n"
- ">>> import scipy.special as sc\n"
- "\n"
- "It is one when `z` is zero.\n"
- "\n"
- ">>> sc.hyp0f1(1, 0)\n"
- "1.0\n"
- "\n"
- "It is the limit of the confluent hypergeometric function as `q`\n"
- "goes to infinity.\n"
- "\n"
- ">>> q = np.array([1, 10, 100, 1000])\n"
- ">>> v = 1\n"
- ">>> z = 1\n"
- ">>> sc.hyp1f1(q, v, z / q)\n"
- "array([2.71828183, 2.31481985, 2.28303778, 2.27992985])\n"
- ">>> sc.hyp0f1(v, z)\n"
- "2.2795853023360673\n"
- "\n"
- "It is related to Bessel functions.\n"
- "\n"
- ">>> n = 1\n"
- ">>> x = np.linspace(0, 1, 5)\n"
- ">>> sc.jv(n, x)\n"
- "array([0. , 0.12402598, 0.24226846, 0.3492436 , 0.44005059])\n"
- ">>> (0.5 * x)**n / sc.factorial(n) * sc.hyp0f1(n + 1, -0.25 * x**2)\n"
- "array([0. , 0.12402598, 0.24226846, 0.3492436 , 0.44005059])")
- ufunc_hyp0f1_loops[0] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc_hyp0f1_loops[1] = <np.PyUFuncGenericFunction>loop_D_dD__As_fF_F
- ufunc_hyp0f1_loops[2] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_hyp0f1_loops[3] = <np.PyUFuncGenericFunction>loop_D_dD__As_dD_D
- ufunc_hyp0f1_types[0] = <char>NPY_FLOAT
- ufunc_hyp0f1_types[1] = <char>NPY_FLOAT
- ufunc_hyp0f1_types[2] = <char>NPY_FLOAT
- ufunc_hyp0f1_types[3] = <char>NPY_FLOAT
- ufunc_hyp0f1_types[4] = <char>NPY_CFLOAT
- ufunc_hyp0f1_types[5] = <char>NPY_CFLOAT
- ufunc_hyp0f1_types[6] = <char>NPY_DOUBLE
- ufunc_hyp0f1_types[7] = <char>NPY_DOUBLE
- ufunc_hyp0f1_types[8] = <char>NPY_DOUBLE
- ufunc_hyp0f1_types[9] = <char>NPY_DOUBLE
- ufunc_hyp0f1_types[10] = <char>NPY_CDOUBLE
- ufunc_hyp0f1_types[11] = <char>NPY_CDOUBLE
- ufunc_hyp0f1_ptr[2*0] = <void*>_func__hyp0f1_real
- ufunc_hyp0f1_ptr[2*0+1] = <void*>(<char*>"hyp0f1")
- ufunc_hyp0f1_ptr[2*1] = <void*>_func__hyp0f1_cmplx
- ufunc_hyp0f1_ptr[2*1+1] = <void*>(<char*>"hyp0f1")
- ufunc_hyp0f1_ptr[2*2] = <void*>_func__hyp0f1_real
- ufunc_hyp0f1_ptr[2*2+1] = <void*>(<char*>"hyp0f1")
- ufunc_hyp0f1_ptr[2*3] = <void*>_func__hyp0f1_cmplx
- ufunc_hyp0f1_ptr[2*3+1] = <void*>(<char*>"hyp0f1")
- ufunc_hyp0f1_data[0] = &ufunc_hyp0f1_ptr[2*0]
- ufunc_hyp0f1_data[1] = &ufunc_hyp0f1_ptr[2*1]
- ufunc_hyp0f1_data[2] = &ufunc_hyp0f1_ptr[2*2]
- ufunc_hyp0f1_data[3] = &ufunc_hyp0f1_ptr[2*3]
- hyp0f1 = np.PyUFunc_FromFuncAndData(ufunc_hyp0f1_loops, ufunc_hyp0f1_data, ufunc_hyp0f1_types, 4, 2, 1, 0, 'hyp0f1', ufunc_hyp0f1_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_hyp1f1_loops[4]
- cdef void *ufunc_hyp1f1_ptr[8]
- cdef void *ufunc_hyp1f1_data[4]
- cdef char ufunc_hyp1f1_types[16]
- cdef char *ufunc_hyp1f1_doc = (
- "hyp1f1(a, b, x, out=None)\n"
- "\n"
- "Confluent hypergeometric function 1F1.\n"
- "\n"
- "The confluent hypergeometric function is defined by the series\n"
- "\n"
- ".. math::\n"
- "\n"
- " {}_1F_1(a; b; x) = \\sum_{k = 0}^\\infty \\frac{(a)_k}{(b)_k k!} x^k.\n"
- "\n"
- "See [DLMF]_ for more details. Here :math:`(\\cdot)_k` is the\n"
- "Pochhammer symbol; see `poch`.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "a, b : array_like\n"
- " Real parameters\n"
- "x : array_like\n"
- " Real or complex argument\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray\n"
- " Values of the confluent hypergeometric function\n"
- "\n"
- "See Also\n"
- "--------\n"
- "hyperu : another confluent hypergeometric function\n"
- "hyp0f1 : confluent hypergeometric limit function\n"
- "hyp2f1 : Gaussian hypergeometric function\n"
- "\n"
- "Notes\n"
- "-----\n"
- "For real values, this function uses the ``hyp1f1`` routine from the C++ Boost\n"
- "library [2]_, for complex values a C translation of the specfun\n"
- "Fortran library [3]_.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [DLMF] NIST Digital Library of Mathematical Functions\n"
- " https://dlmf.nist.gov/13.2#E2\n"
- ".. [2] The Boost Developers. \"Boost C++ Libraries\". https://www.boost.org/.\n"
- ".. [3] Zhang, Jin, \"Computation of Special Functions\", John Wiley\n"
- " and Sons, Inc, 1996.\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> import numpy as np\n"
- ">>> import scipy.special as sc\n"
- "\n"
- "It is one when `x` is zero:\n"
- "\n"
- ">>> sc.hyp1f1(0.5, 0.5, 0)\n"
- "1.0\n"
- "\n"
- "It is singular when `b` is a nonpositive integer.\n"
- "\n"
- ">>> sc.hyp1f1(0.5, -1, 0)\n"
- "inf\n"
- "\n"
- "It is a polynomial when `a` is a nonpositive integer.\n"
- "\n"
- ">>> a, b, x = -1, 0.5, np.array([1.0, 2.0, 3.0, 4.0])\n"
- ">>> sc.hyp1f1(a, b, x)\n"
- "array([-1., -3., -5., -7.])\n"
- ">>> 1 + (a / b) * x\n"
- "array([-1., -3., -5., -7.])\n"
- "\n"
- "It reduces to the exponential function when ``a = b``.\n"
- "\n"
- ">>> sc.hyp1f1(2, 2, [1, 2, 3, 4])\n"
- "array([ 2.71828183, 7.3890561 , 20.08553692, 54.59815003])\n"
- ">>> np.exp([1, 2, 3, 4])\n"
- "array([ 2.71828183, 7.3890561 , 20.08553692, 54.59815003])")
- ufunc_hyp1f1_loops[0] = <np.PyUFuncGenericFunction>loop_d_ddd__As_fff_f
- ufunc_hyp1f1_loops[1] = <np.PyUFuncGenericFunction>loop_D_ddD__As_ffF_F
- ufunc_hyp1f1_loops[2] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_hyp1f1_loops[3] = <np.PyUFuncGenericFunction>loop_D_ddD__As_ddD_D
- ufunc_hyp1f1_types[0] = <char>NPY_FLOAT
- ufunc_hyp1f1_types[1] = <char>NPY_FLOAT
- ufunc_hyp1f1_types[2] = <char>NPY_FLOAT
- ufunc_hyp1f1_types[3] = <char>NPY_FLOAT
- ufunc_hyp1f1_types[4] = <char>NPY_FLOAT
- ufunc_hyp1f1_types[5] = <char>NPY_FLOAT
- ufunc_hyp1f1_types[6] = <char>NPY_CFLOAT
- ufunc_hyp1f1_types[7] = <char>NPY_CFLOAT
- ufunc_hyp1f1_types[8] = <char>NPY_DOUBLE
- ufunc_hyp1f1_types[9] = <char>NPY_DOUBLE
- ufunc_hyp1f1_types[10] = <char>NPY_DOUBLE
- ufunc_hyp1f1_types[11] = <char>NPY_DOUBLE
- ufunc_hyp1f1_types[12] = <char>NPY_DOUBLE
- ufunc_hyp1f1_types[13] = <char>NPY_DOUBLE
- ufunc_hyp1f1_types[14] = <char>NPY_CDOUBLE
- ufunc_hyp1f1_types[15] = <char>NPY_CDOUBLE
- ufunc_hyp1f1_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_hyp1f1_double
- ufunc_hyp1f1_ptr[2*0+1] = <void*>(<char*>"hyp1f1")
- ufunc_hyp1f1_ptr[2*1] = <void*>_func_chyp1f1_wrap
- ufunc_hyp1f1_ptr[2*1+1] = <void*>(<char*>"hyp1f1")
- ufunc_hyp1f1_ptr[2*2] = <void*>scipy.special._ufuncs_cxx._export_hyp1f1_double
- ufunc_hyp1f1_ptr[2*2+1] = <void*>(<char*>"hyp1f1")
- ufunc_hyp1f1_ptr[2*3] = <void*>_func_chyp1f1_wrap
- ufunc_hyp1f1_ptr[2*3+1] = <void*>(<char*>"hyp1f1")
- ufunc_hyp1f1_data[0] = &ufunc_hyp1f1_ptr[2*0]
- ufunc_hyp1f1_data[1] = &ufunc_hyp1f1_ptr[2*1]
- ufunc_hyp1f1_data[2] = &ufunc_hyp1f1_ptr[2*2]
- ufunc_hyp1f1_data[3] = &ufunc_hyp1f1_ptr[2*3]
- hyp1f1 = np.PyUFunc_FromFuncAndData(ufunc_hyp1f1_loops, ufunc_hyp1f1_data, ufunc_hyp1f1_types, 4, 3, 1, 0, 'hyp1f1', ufunc_hyp1f1_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_hyperu_loops[2]
- cdef void *ufunc_hyperu_ptr[4]
- cdef void *ufunc_hyperu_data[2]
- cdef char ufunc_hyperu_types[8]
- cdef char *ufunc_hyperu_doc = (
- "hyperu(a, b, x, out=None)\n"
- "\n"
- "Confluent hypergeometric function U\n"
- "\n"
- "It is defined as the solution to the equation\n"
- "\n"
- ".. math::\n"
- "\n"
- " x \\frac{d^2w}{dx^2} + (b - x) \\frac{dw}{dx} - aw = 0\n"
- "\n"
- "which satisfies the property\n"
- "\n"
- ".. math::\n"
- "\n"
- " U(a, b, x) \\sim x^{-a}\n"
- "\n"
- "as :math:`x \\to \\infty`. See [DLMF]_ for more details.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "a, b : array_like\n"
- " Real-valued parameters\n"
- "x : array_like\n"
- " Real-valued argument\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray\n"
- " Values of `U`\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [DLMF] NIST Digital Library of Mathematics Functions\n"
- " https://dlmf.nist.gov/13.2#E6\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> import numpy as np\n"
- ">>> import scipy.special as sc\n"
- "\n"
- "It has a branch cut along the negative `x` axis.\n"
- "\n"
- ">>> x = np.linspace(-0.1, -10, 5)\n"
- ">>> sc.hyperu(1, 1, x)\n"
- "array([nan, nan, nan, nan, nan])\n"
- "\n"
- "It approaches zero as `x` goes to infinity.\n"
- "\n"
- ">>> x = np.array([1, 10, 100])\n"
- ">>> sc.hyperu(1, 1, x)\n"
- "array([0.59634736, 0.09156333, 0.00990194])\n"
- "\n"
- "It satisfies Kummer's transformation.\n"
- "\n"
- ">>> a, b, x = 2, 1, 1\n"
- ">>> sc.hyperu(a, b, x)\n"
- "0.1926947246463881\n"
- ">>> x**(1 - b) * sc.hyperu(a - b + 1, 2 - b, x)\n"
- "0.1926947246463881")
- ufunc_hyperu_loops[0] = <np.PyUFuncGenericFunction>loop_d_ddd__As_fff_f
- ufunc_hyperu_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_hyperu_types[0] = <char>NPY_FLOAT
- ufunc_hyperu_types[1] = <char>NPY_FLOAT
- ufunc_hyperu_types[2] = <char>NPY_FLOAT
- ufunc_hyperu_types[3] = <char>NPY_FLOAT
- ufunc_hyperu_types[4] = <char>NPY_DOUBLE
- ufunc_hyperu_types[5] = <char>NPY_DOUBLE
- ufunc_hyperu_types[6] = <char>NPY_DOUBLE
- ufunc_hyperu_types[7] = <char>NPY_DOUBLE
- ufunc_hyperu_ptr[2*0] = <void*>_func_hyperu
- ufunc_hyperu_ptr[2*0+1] = <void*>(<char*>"hyperu")
- ufunc_hyperu_ptr[2*1] = <void*>_func_hyperu
- ufunc_hyperu_ptr[2*1+1] = <void*>(<char*>"hyperu")
- ufunc_hyperu_data[0] = &ufunc_hyperu_ptr[2*0]
- ufunc_hyperu_data[1] = &ufunc_hyperu_ptr[2*1]
- hyperu = np.PyUFunc_FromFuncAndData(ufunc_hyperu_loops, ufunc_hyperu_data, ufunc_hyperu_types, 2, 3, 1, 0, 'hyperu', ufunc_hyperu_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_inv_boxcox_loops[2]
- cdef void *ufunc_inv_boxcox_ptr[4]
- cdef void *ufunc_inv_boxcox_data[2]
- cdef char ufunc_inv_boxcox_types[6]
- cdef char *ufunc_inv_boxcox_doc = (
- "inv_boxcox(y, lmbda, out=None)\n"
- "\n"
- "Compute the inverse of the Box-Cox transformation.\n"
- "\n"
- "Find ``x`` such that::\n"
- "\n"
- " y = (x**lmbda - 1) / lmbda if lmbda != 0\n"
- " log(x) if lmbda == 0\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "y : array_like\n"
- " Data to be transformed.\n"
- "lmbda : array_like\n"
- " Power parameter of the Box-Cox transform.\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "x : scalar or ndarray\n"
- " Transformed data.\n"
- "\n"
- "Notes\n"
- "-----\n"
- "\n"
- ".. versionadded:: 0.16.0\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> from scipy.special import boxcox, inv_boxcox\n"
- ">>> y = boxcox([1, 4, 10], 2.5)\n"
- ">>> inv_boxcox(y, 2.5)\n"
- "array([1., 4., 10.])")
- ufunc_inv_boxcox_loops[0] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc_inv_boxcox_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_inv_boxcox_types[0] = <char>NPY_FLOAT
- ufunc_inv_boxcox_types[1] = <char>NPY_FLOAT
- ufunc_inv_boxcox_types[2] = <char>NPY_FLOAT
- ufunc_inv_boxcox_types[3] = <char>NPY_DOUBLE
- ufunc_inv_boxcox_types[4] = <char>NPY_DOUBLE
- ufunc_inv_boxcox_types[5] = <char>NPY_DOUBLE
- ufunc_inv_boxcox_ptr[2*0] = <void*>_func_inv_boxcox
- ufunc_inv_boxcox_ptr[2*0+1] = <void*>(<char*>"inv_boxcox")
- ufunc_inv_boxcox_ptr[2*1] = <void*>_func_inv_boxcox
- ufunc_inv_boxcox_ptr[2*1+1] = <void*>(<char*>"inv_boxcox")
- ufunc_inv_boxcox_data[0] = &ufunc_inv_boxcox_ptr[2*0]
- ufunc_inv_boxcox_data[1] = &ufunc_inv_boxcox_ptr[2*1]
- inv_boxcox = np.PyUFunc_FromFuncAndData(ufunc_inv_boxcox_loops, ufunc_inv_boxcox_data, ufunc_inv_boxcox_types, 2, 2, 1, 0, 'inv_boxcox', ufunc_inv_boxcox_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_inv_boxcox1p_loops[2]
- cdef void *ufunc_inv_boxcox1p_ptr[4]
- cdef void *ufunc_inv_boxcox1p_data[2]
- cdef char ufunc_inv_boxcox1p_types[6]
- cdef char *ufunc_inv_boxcox1p_doc = (
- "inv_boxcox1p(y, lmbda, out=None)\n"
- "\n"
- "Compute the inverse of the Box-Cox transformation.\n"
- "\n"
- "Find ``x`` such that::\n"
- "\n"
- " y = ((1+x)**lmbda - 1) / lmbda if lmbda != 0\n"
- " log(1+x) if lmbda == 0\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "y : array_like\n"
- " Data to be transformed.\n"
- "lmbda : array_like\n"
- " Power parameter of the Box-Cox transform.\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "x : scalar or ndarray\n"
- " Transformed data.\n"
- "\n"
- "Notes\n"
- "-----\n"
- "\n"
- ".. versionadded:: 0.16.0\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> from scipy.special import boxcox1p, inv_boxcox1p\n"
- ">>> y = boxcox1p([1, 4, 10], 2.5)\n"
- ">>> inv_boxcox1p(y, 2.5)\n"
- "array([1., 4., 10.])")
- ufunc_inv_boxcox1p_loops[0] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc_inv_boxcox1p_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_inv_boxcox1p_types[0] = <char>NPY_FLOAT
- ufunc_inv_boxcox1p_types[1] = <char>NPY_FLOAT
- ufunc_inv_boxcox1p_types[2] = <char>NPY_FLOAT
- ufunc_inv_boxcox1p_types[3] = <char>NPY_DOUBLE
- ufunc_inv_boxcox1p_types[4] = <char>NPY_DOUBLE
- ufunc_inv_boxcox1p_types[5] = <char>NPY_DOUBLE
- ufunc_inv_boxcox1p_ptr[2*0] = <void*>_func_inv_boxcox1p
- ufunc_inv_boxcox1p_ptr[2*0+1] = <void*>(<char*>"inv_boxcox1p")
- ufunc_inv_boxcox1p_ptr[2*1] = <void*>_func_inv_boxcox1p
- ufunc_inv_boxcox1p_ptr[2*1+1] = <void*>(<char*>"inv_boxcox1p")
- ufunc_inv_boxcox1p_data[0] = &ufunc_inv_boxcox1p_ptr[2*0]
- ufunc_inv_boxcox1p_data[1] = &ufunc_inv_boxcox1p_ptr[2*1]
- inv_boxcox1p = np.PyUFunc_FromFuncAndData(ufunc_inv_boxcox1p_loops, ufunc_inv_boxcox1p_data, ufunc_inv_boxcox1p_types, 2, 2, 1, 0, 'inv_boxcox1p', ufunc_inv_boxcox1p_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_kl_div_loops[2]
- cdef void *ufunc_kl_div_ptr[4]
- cdef void *ufunc_kl_div_data[2]
- cdef char ufunc_kl_div_types[6]
- cdef char *ufunc_kl_div_doc = (
- "kl_div(x, y, out=None)\n"
- "\n"
- "Elementwise function for computing Kullback-Leibler divergence.\n"
- "\n"
- ".. math::\n"
- "\n"
- " \\mathrm{kl\\_div}(x, y) =\n"
- " \\begin{cases}\n"
- " x \\log(x / y) - x + y & x > 0, y > 0 \\\\\n"
- " y & x = 0, y \\ge 0 \\\\\n"
- " \\infty & \\text{otherwise}\n"
- " \\end{cases}\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x, y : array_like\n"
- " Real arguments\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray\n"
- " Values of the Kullback-Liebler divergence.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "entr, rel_entr, scipy.stats.entropy\n"
- "\n"
- "Notes\n"
- "-----\n"
- ".. versionadded:: 0.15.0\n"
- "\n"
- "This function is non-negative and is jointly convex in `x` and `y`.\n"
- "\n"
- "The origin of this function is in convex programming; see [1]_ for\n"
- "details. This is why the function contains the extra :math:`-x\n"
- "+ y` terms over what might be expected from the Kullback-Leibler\n"
- "divergence. For a version of the function without the extra terms,\n"
- "see `rel_entr`.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] Boyd, Stephen and Lieven Vandenberghe. *Convex optimization*.\n"
- " Cambridge University Press, 2004.\n"
- " :doi:`https://doi.org/10.1017/CBO9780511804441`")
- ufunc_kl_div_loops[0] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc_kl_div_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_kl_div_types[0] = <char>NPY_FLOAT
- ufunc_kl_div_types[1] = <char>NPY_FLOAT
- ufunc_kl_div_types[2] = <char>NPY_FLOAT
- ufunc_kl_div_types[3] = <char>NPY_DOUBLE
- ufunc_kl_div_types[4] = <char>NPY_DOUBLE
- ufunc_kl_div_types[5] = <char>NPY_DOUBLE
- ufunc_kl_div_ptr[2*0] = <void*>_func_kl_div
- ufunc_kl_div_ptr[2*0+1] = <void*>(<char*>"kl_div")
- ufunc_kl_div_ptr[2*1] = <void*>_func_kl_div
- ufunc_kl_div_ptr[2*1+1] = <void*>(<char*>"kl_div")
- ufunc_kl_div_data[0] = &ufunc_kl_div_ptr[2*0]
- ufunc_kl_div_data[1] = &ufunc_kl_div_ptr[2*1]
- kl_div = np.PyUFunc_FromFuncAndData(ufunc_kl_div_loops, ufunc_kl_div_data, ufunc_kl_div_types, 2, 2, 1, 0, 'kl_div', ufunc_kl_div_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_kn_loops[3]
- cdef void *ufunc_kn_ptr[6]
- cdef void *ufunc_kn_data[3]
- cdef char ufunc_kn_types[9]
- cdef char *ufunc_kn_doc = (
- "kn(n, x, out=None)\n"
- "\n"
- "Modified Bessel function of the second kind of integer order `n`\n"
- "\n"
- "Returns the modified Bessel function of the second kind for integer order\n"
- "`n` at real `z`.\n"
- "\n"
- "These are also sometimes called functions of the third kind, Basset\n"
- "functions, or Macdonald functions.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "n : array_like of int\n"
- " Order of Bessel functions (floats will truncate with a warning)\n"
- "x : array_like of float\n"
- " Argument at which to evaluate the Bessel functions\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results.\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray\n"
- " Value of the Modified Bessel function of the second kind,\n"
- " :math:`K_n(x)`.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "kv : Same function, but accepts real order and complex argument\n"
- "kvp : Derivative of this function\n"
- "\n"
- "Notes\n"
- "-----\n"
- "Wrapper for AMOS [1]_ routine `zbesk`. For a discussion of the\n"
- "algorithm used, see [2]_ and the references therein.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] Donald E. Amos, \"AMOS, A Portable Package for Bessel Functions\n"
- " of a Complex Argument and Nonnegative Order\",\n"
- " http://netlib.org/amos/\n"
- ".. [2] Donald E. Amos, \"Algorithm 644: A portable package for Bessel\n"
- " functions of a complex argument and nonnegative order\", ACM\n"
- " TOMS Vol. 12 Issue 3, Sept. 1986, p. 265\n"
- "\n"
- "Examples\n"
- "--------\n"
- "Plot the function of several orders for real input:\n"
- "\n"
- ">>> import numpy as np\n"
- ">>> from scipy.special import kn\n"
- ">>> import matplotlib.pyplot as plt\n"
- ">>> x = np.linspace(0, 5, 1000)\n"
- ">>> for N in range(6):\n"
- "... plt.plot(x, kn(N, x), label='$K_{}(x)$'.format(N))\n"
- ">>> plt.ylim(0, 10)\n"
- ">>> plt.legend()\n"
- ">>> plt.title(r'Modified Bessel function of the second kind $K_n(x)$')\n"
- ">>> plt.show()\n"
- "\n"
- "Calculate for a single value at multiple orders:\n"
- "\n"
- ">>> kn([4, 5, 6], 1)\n"
- "array([ 44.23241585, 360.9605896 , 3653.83831186])")
- ufunc_kn_loops[0] = <np.PyUFuncGenericFunction>loop_d_pd__As_pd_d
- ufunc_kn_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc_kn_loops[2] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_kn_types[0] = <char>NPY_INTP
- ufunc_kn_types[1] = <char>NPY_DOUBLE
- ufunc_kn_types[2] = <char>NPY_DOUBLE
- ufunc_kn_types[3] = <char>NPY_FLOAT
- ufunc_kn_types[4] = <char>NPY_FLOAT
- ufunc_kn_types[5] = <char>NPY_FLOAT
- ufunc_kn_types[6] = <char>NPY_DOUBLE
- ufunc_kn_types[7] = <char>NPY_DOUBLE
- ufunc_kn_types[8] = <char>NPY_DOUBLE
- ufunc_kn_ptr[2*0] = <void*>_func_special_cyl_bessel_k_int
- ufunc_kn_ptr[2*0+1] = <void*>(<char*>"kn")
- ufunc_kn_ptr[2*1] = <void*>_func_kn_unsafe
- ufunc_kn_ptr[2*1+1] = <void*>(<char*>"kn")
- ufunc_kn_ptr[2*2] = <void*>_func_kn_unsafe
- ufunc_kn_ptr[2*2+1] = <void*>(<char*>"kn")
- ufunc_kn_data[0] = &ufunc_kn_ptr[2*0]
- ufunc_kn_data[1] = &ufunc_kn_ptr[2*1]
- ufunc_kn_data[2] = &ufunc_kn_ptr[2*2]
- kn = np.PyUFunc_FromFuncAndData(ufunc_kn_loops, ufunc_kn_data, ufunc_kn_types, 3, 2, 1, 0, 'kn', ufunc_kn_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_kolmogi_loops[2]
- cdef void *ufunc_kolmogi_ptr[4]
- cdef void *ufunc_kolmogi_data[2]
- cdef char ufunc_kolmogi_types[4]
- cdef char *ufunc_kolmogi_doc = (
- "kolmogi(p, out=None)\n"
- "\n"
- "Inverse Survival Function of Kolmogorov distribution\n"
- "\n"
- "It is the inverse function to `kolmogorov`.\n"
- "Returns y such that ``kolmogorov(y) == p``.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "p : float array_like\n"
- " Probability\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray\n"
- " The value(s) of kolmogi(p)\n"
- "\n"
- "See Also\n"
- "--------\n"
- "kolmogorov : The Survival Function for the distribution\n"
- "scipy.stats.kstwobign : Provides the functionality as a continuous distribution\n"
- "smirnov, smirnovi : Functions for the one-sided distribution\n"
- "\n"
- "Notes\n"
- "-----\n"
- "`kolmogorov` is used by `stats.kstest` in the application of the\n"
- "Kolmogorov-Smirnov Goodness of Fit test. For historical reasons this\n"
- "function is exposed in `scpy.special`, but the recommended way to achieve\n"
- "the most accurate CDF/SF/PDF/PPF/ISF computations is to use the\n"
- "`stats.kstwobign` distribution.\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> from scipy.special import kolmogi\n"
- ">>> kolmogi([0, 0.1, 0.25, 0.5, 0.75, 0.9, 1.0])\n"
- "array([ inf, 1.22384787, 1.01918472, 0.82757356, 0.67644769,\n"
- " 0.57117327, 0. ])")
- ufunc_kolmogi_loops[0] = <np.PyUFuncGenericFunction>loop_d_d__As_f_f
- ufunc_kolmogi_loops[1] = <np.PyUFuncGenericFunction>loop_d_d__As_d_d
- ufunc_kolmogi_types[0] = <char>NPY_FLOAT
- ufunc_kolmogi_types[1] = <char>NPY_FLOAT
- ufunc_kolmogi_types[2] = <char>NPY_DOUBLE
- ufunc_kolmogi_types[3] = <char>NPY_DOUBLE
- ufunc_kolmogi_ptr[2*0] = <void*>_func_xsf_kolmogi
- ufunc_kolmogi_ptr[2*0+1] = <void*>(<char*>"kolmogi")
- ufunc_kolmogi_ptr[2*1] = <void*>_func_xsf_kolmogi
- ufunc_kolmogi_ptr[2*1+1] = <void*>(<char*>"kolmogi")
- ufunc_kolmogi_data[0] = &ufunc_kolmogi_ptr[2*0]
- ufunc_kolmogi_data[1] = &ufunc_kolmogi_ptr[2*1]
- kolmogi = np.PyUFunc_FromFuncAndData(ufunc_kolmogi_loops, ufunc_kolmogi_data, ufunc_kolmogi_types, 2, 1, 1, 0, 'kolmogi', ufunc_kolmogi_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_kolmogorov_loops[2]
- cdef void *ufunc_kolmogorov_ptr[4]
- cdef void *ufunc_kolmogorov_data[2]
- cdef char ufunc_kolmogorov_types[4]
- cdef char *ufunc_kolmogorov_doc = (
- "kolmogorov(y, out=None)\n"
- "\n"
- "Complementary cumulative distribution (Survival Function) function of\n"
- "Kolmogorov distribution.\n"
- "\n"
- "Returns the complementary cumulative distribution function of\n"
- "Kolmogorov's limiting distribution (``D_n*\\sqrt(n)`` as n goes to infinity)\n"
- "of a two-sided test for equality between an empirical and a theoretical\n"
- "distribution. It is equal to the (limit as n->infinity of the)\n"
- "probability that ``sqrt(n) * max absolute deviation > y``.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "y : float array_like\n"
- " Absolute deviation between the Empirical CDF (ECDF) and the target CDF,\n"
- " multiplied by sqrt(n).\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray\n"
- " The value(s) of kolmogorov(y)\n"
- "\n"
- "See Also\n"
- "--------\n"
- "kolmogi : The Inverse Survival Function for the distribution\n"
- "scipy.stats.kstwobign : Provides the functionality as a continuous distribution\n"
- "smirnov, smirnovi : Functions for the one-sided distribution\n"
- "\n"
- "Notes\n"
- "-----\n"
- "`kolmogorov` is used by `stats.kstest` in the application of the\n"
- "Kolmogorov-Smirnov Goodness of Fit test. For historical reasons this\n"
- "function is exposed in `scpy.special`, but the recommended way to achieve\n"
- "the most accurate CDF/SF/PDF/PPF/ISF computations is to use the\n"
- "`stats.kstwobign` distribution.\n"
- "\n"
- "Examples\n"
- "--------\n"
- "Show the probability of a gap at least as big as 0, 0.5 and 1.0.\n"
- "\n"
- ">>> import numpy as np\n"
- ">>> from scipy.special import kolmogorov\n"
- ">>> from scipy.stats import kstwobign\n"
- ">>> kolmogorov([0, 0.5, 1.0])\n"
- "array([ 1. , 0.96394524, 0.26999967])\n"
- "\n"
- "Compare a sample of size 1000 drawn from a Laplace(0, 1) distribution against\n"
- "the target distribution, a Normal(0, 1) distribution.\n"
- "\n"
- ">>> from scipy.stats import norm, laplace\n"
- ">>> rng = np.random.default_rng()\n"
- ">>> n = 1000\n"
- ">>> lap01 = laplace(0, 1)\n"
- ">>> x = np.sort(lap01.rvs(n, random_state=rng))\n"
- ">>> np.mean(x), np.std(x)\n"
- "(-0.05841730131499543, 1.3968109101997568)\n"
- "\n"
- "Construct the Empirical CDF and the K-S statistic Dn.\n"
- "\n"
- ">>> target = norm(0,1) # Normal mean 0, stddev 1\n"
- ">>> cdfs = target.cdf(x)\n"
- ">>> ecdfs = np.arange(n+1, dtype=float)/n\n"
- ">>> gaps = np.column_stack([cdfs - ecdfs[:n], ecdfs[1:] - cdfs])\n"
- ">>> Dn = np.max(gaps)\n"
- ">>> Kn = np.sqrt(n) * Dn\n"
- ">>> print('Dn=%f, sqrt(n)*Dn=%f' % (Dn, Kn))\n"
- "Dn=0.043363, sqrt(n)*Dn=1.371265\n"
- ">>> print(chr(10).join(['For a sample of size n drawn from a N(0, 1) distribution:',\n"
- "... ' the approximate Kolmogorov probability that sqrt(n)*Dn>=%f is %f' %\n"
- "... (Kn, kolmogorov(Kn)),\n"
- "... ' the approximate Kolmogorov probability that sqrt(n)*Dn<=%f is %f' %\n"
- "... (Kn, kstwobign.cdf(Kn))]))\n"
- "For a sample of size n drawn from a N(0, 1) distribution:\n"
- " the approximate Kolmogorov probability that sqrt(n)*Dn>=1.371265 is 0.046533\n"
- " the approximate Kolmogorov probability that sqrt(n)*Dn<=1.371265 is 0.953467\n"
- "\n"
- "Plot the Empirical CDF against the target N(0, 1) CDF.\n"
- "\n"
- ">>> import matplotlib.pyplot as plt\n"
- ">>> plt.step(np.concatenate([[-3], x]), ecdfs, where='post', label='Empirical CDF')\n"
- ">>> x3 = np.linspace(-3, 3, 100)\n"
- ">>> plt.plot(x3, target.cdf(x3), label='CDF for N(0, 1)')\n"
- ">>> plt.ylim([0, 1]); plt.grid(True); plt.legend();\n"
- ">>> # Add vertical lines marking Dn+ and Dn-\n"
- ">>> iminus, iplus = np.argmax(gaps, axis=0)\n"
- ">>> plt.vlines([x[iminus]], ecdfs[iminus], cdfs[iminus],\n"
- "... color='r', linestyle='dashed', lw=4)\n"
- ">>> plt.vlines([x[iplus]], cdfs[iplus], ecdfs[iplus+1],\n"
- "... color='r', linestyle='dashed', lw=4)\n"
- ">>> plt.show()")
- ufunc_kolmogorov_loops[0] = <np.PyUFuncGenericFunction>loop_d_d__As_f_f
- ufunc_kolmogorov_loops[1] = <np.PyUFuncGenericFunction>loop_d_d__As_d_d
- ufunc_kolmogorov_types[0] = <char>NPY_FLOAT
- ufunc_kolmogorov_types[1] = <char>NPY_FLOAT
- ufunc_kolmogorov_types[2] = <char>NPY_DOUBLE
- ufunc_kolmogorov_types[3] = <char>NPY_DOUBLE
- ufunc_kolmogorov_ptr[2*0] = <void*>_func_xsf_kolmogorov
- ufunc_kolmogorov_ptr[2*0+1] = <void*>(<char*>"kolmogorov")
- ufunc_kolmogorov_ptr[2*1] = <void*>_func_xsf_kolmogorov
- ufunc_kolmogorov_ptr[2*1+1] = <void*>(<char*>"kolmogorov")
- ufunc_kolmogorov_data[0] = &ufunc_kolmogorov_ptr[2*0]
- ufunc_kolmogorov_data[1] = &ufunc_kolmogorov_ptr[2*1]
- kolmogorov = np.PyUFunc_FromFuncAndData(ufunc_kolmogorov_loops, ufunc_kolmogorov_data, ufunc_kolmogorov_types, 2, 1, 1, 0, 'kolmogorov', ufunc_kolmogorov_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_lpmv_loops[2]
- cdef void *ufunc_lpmv_ptr[4]
- cdef void *ufunc_lpmv_data[2]
- cdef char ufunc_lpmv_types[8]
- cdef char *ufunc_lpmv_doc = (
- "lpmv(m, v, x, out=None)\n"
- "\n"
- "Associated Legendre function of integer order and real degree.\n"
- "\n"
- "Defined as\n"
- "\n"
- ".. math::\n"
- "\n"
- " P_v^m = (-1)^m (1 - x^2)^{m/2} \\frac{d^m}{dx^m} P_v(x)\n"
- "\n"
- "where\n"
- "\n"
- ".. math::\n"
- "\n"
- " P_v = \\sum_{k = 0}^\\infty \\frac{(-v)_k (v + 1)_k}{(k!)^2}\n"
- " \\left(\\frac{1 - x}{2}\\right)^k\n"
- "\n"
- "is the Legendre function of the first kind. Here :math:`(\\cdot)_k`\n"
- "is the Pochhammer symbol; see `poch`.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "m : array_like\n"
- " Order (int or float). If passed a float not equal to an\n"
- " integer the function returns NaN.\n"
- "v : array_like\n"
- " Degree (float).\n"
- "x : array_like\n"
- " Argument (float). Must have ``|x| <= 1``.\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "pmv : scalar or ndarray\n"
- " Value of the associated Legendre function.\n"
- "\n"
- "Notes\n"
- "-----\n"
- "Note that this implementation includes the Condon-Shortley phase.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] Zhang, Jin, \"Computation of Special Functions\", John Wiley\n"
- " and Sons, Inc, 1996.")
- ufunc_lpmv_loops[0] = <np.PyUFuncGenericFunction>loop_d_ddd__As_fff_f
- ufunc_lpmv_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_lpmv_types[0] = <char>NPY_FLOAT
- ufunc_lpmv_types[1] = <char>NPY_FLOAT
- ufunc_lpmv_types[2] = <char>NPY_FLOAT
- ufunc_lpmv_types[3] = <char>NPY_FLOAT
- ufunc_lpmv_types[4] = <char>NPY_DOUBLE
- ufunc_lpmv_types[5] = <char>NPY_DOUBLE
- ufunc_lpmv_types[6] = <char>NPY_DOUBLE
- ufunc_lpmv_types[7] = <char>NPY_DOUBLE
- ufunc_lpmv_ptr[2*0] = <void*>_func_pmv_wrap
- ufunc_lpmv_ptr[2*0+1] = <void*>(<char*>"lpmv")
- ufunc_lpmv_ptr[2*1] = <void*>_func_pmv_wrap
- ufunc_lpmv_ptr[2*1+1] = <void*>(<char*>"lpmv")
- ufunc_lpmv_data[0] = &ufunc_lpmv_ptr[2*0]
- ufunc_lpmv_data[1] = &ufunc_lpmv_ptr[2*1]
- lpmv = np.PyUFunc_FromFuncAndData(ufunc_lpmv_loops, ufunc_lpmv_data, ufunc_lpmv_types, 2, 3, 1, 0, 'lpmv', ufunc_lpmv_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_nbdtr_loops[3]
- cdef void *ufunc_nbdtr_ptr[6]
- cdef void *ufunc_nbdtr_data[3]
- cdef char ufunc_nbdtr_types[12]
- cdef char *ufunc_nbdtr_doc = (
- "nbdtr(k, n, p, out=None)\n"
- "\n"
- "Negative binomial cumulative distribution function.\n"
- "\n"
- "Returns the sum of the terms 0 through `k` of the negative binomial\n"
- "distribution probability mass function,\n"
- "\n"
- ".. math::\n"
- "\n"
- " F = \\sum_{j=0}^k {{n + j - 1}\\choose{j}} p^n (1 - p)^j.\n"
- "\n"
- "In a sequence of Bernoulli trials with individual success probabilities\n"
- "`p`, this is the probability that `k` or fewer failures precede the nth\n"
- "success.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "k : array_like\n"
- " The maximum number of allowed failures (nonnegative int).\n"
- "n : array_like\n"
- " The target number of successes (positive int).\n"
- "p : array_like\n"
- " Probability of success in a single event (float).\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "F : scalar or ndarray\n"
- " The probability of `k` or fewer failures before `n` successes in a\n"
- " sequence of events with individual success probability `p`.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "nbdtrc : Negative binomial survival function\n"
- "nbdtrik : Negative binomial quantile function\n"
- "scipy.stats.nbinom : Negative binomial distribution\n"
- "\n"
- "Notes\n"
- "-----\n"
- "If floating point values are passed for `k` or `n`, they will be truncated\n"
- "to integers.\n"
- "\n"
- "The terms are not summed directly; instead the regularized incomplete beta\n"
- "function is employed, according to the formula,\n"
- "\n"
- ".. math::\n"
- " \\mathrm{nbdtr}(k, n, p) = I_{p}(n, k + 1).\n"
- "\n"
- "Wrapper for the Cephes [1]_ routine `nbdtr`.\n"
- "\n"
- "The negative binomial distribution is also available as\n"
- "`scipy.stats.nbinom`. Using `nbdtr` directly can improve performance\n"
- "compared to the ``cdf`` method of `scipy.stats.nbinom` (see last example).\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] Cephes Mathematical Functions Library,\n"
- " http://www.netlib.org/cephes/\n"
- "\n"
- "Examples\n"
- "--------\n"
- "Compute the function for ``k=10`` and ``n=5`` at ``p=0.5``.\n"
- "\n"
- ">>> import numpy as np\n"
- ">>> from scipy.special import nbdtr\n"
- ">>> nbdtr(10, 5, 0.5)\n"
- "0.940765380859375\n"
- "\n"
- "Compute the function for ``n=10`` and ``p=0.5`` at several points by\n"
- "providing a NumPy array or list for `k`.\n"
- "\n"
- ">>> nbdtr([5, 10, 15], 10, 0.5)\n"
- "array([0.15087891, 0.58809853, 0.88523853])\n"
- "\n"
- "Plot the function for four different parameter sets.\n"
- "\n"
- ">>> import matplotlib.pyplot as plt\n"
- ">>> k = np.arange(130)\n"
- ">>> n_parameters = [20, 20, 20, 80]\n"
- ">>> p_parameters = [0.2, 0.5, 0.8, 0.5]\n"
- ">>> linestyles = ['solid', 'dashed', 'dotted', 'dashdot']\n"
- ">>> parameters_list = list(zip(p_parameters, n_parameters,\n"
- "... linestyles))\n"
- ">>> fig, ax = plt.subplots(figsize=(8, 8))\n"
- ">>> for parameter_set in parameters_list:\n"
- "... p, n, style = parameter_set\n"
- "... nbdtr_vals = nbdtr(k, n, p)\n"
- "... ax.plot(k, nbdtr_vals, label=rf\"$n={n},\\, p={p}$\",\n"
- "... ls=style)\n"
- ">>> ax.legend()\n"
- ">>> ax.set_xlabel(\"$k$\")\n"
- ">>> ax.set_title(\"Negative binomial cumulative distribution function\")\n"
- ">>> plt.show()\n"
- "\n"
- "The negative binomial distribution is also available as\n"
- "`scipy.stats.nbinom`. Using `nbdtr` directly can be much faster than\n"
- "calling the ``cdf`` method of `scipy.stats.nbinom`, especially for small\n"
- "arrays or individual values. To get the same results one must use the\n"
- "following parametrization: ``nbinom(n, p).cdf(k)=nbdtr(k, n, p)``.\n"
- "\n"
- ">>> from scipy.stats import nbinom\n"
- ">>> k, n, p = 5, 3, 0.5\n"
- ">>> nbdtr_res = nbdtr(k, n, p) # this will often be faster than below\n"
- ">>> stats_res = nbinom(n, p).cdf(k)\n"
- ">>> stats_res, nbdtr_res # test that results are equal\n"
- "(0.85546875, 0.85546875)\n"
- "\n"
- "`nbdtr` can evaluate different parameter sets by providing arrays with\n"
- "shapes compatible for broadcasting for `k`, `n` and `p`. Here we compute\n"
- "the function for three different `k` at four locations `p`, resulting in\n"
- "a 3x4 array.\n"
- "\n"
- ">>> k = np.array([[5], [10], [15]])\n"
- ">>> p = np.array([0.3, 0.5, 0.7, 0.9])\n"
- ">>> k.shape, p.shape\n"
- "((3, 1), (4,))\n"
- "\n"
- ">>> nbdtr(k, 5, p)\n"
- "array([[0.15026833, 0.62304687, 0.95265101, 0.9998531 ],\n"
- " [0.48450894, 0.94076538, 0.99932777, 0.99999999],\n"
- " [0.76249222, 0.99409103, 0.99999445, 1. ]])")
- ufunc_nbdtr_loops[0] = <np.PyUFuncGenericFunction>loop_d_ppd__As_ppd_d
- ufunc_nbdtr_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_fff_f
- ufunc_nbdtr_loops[2] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_nbdtr_types[0] = <char>NPY_INTP
- ufunc_nbdtr_types[1] = <char>NPY_INTP
- ufunc_nbdtr_types[2] = <char>NPY_DOUBLE
- ufunc_nbdtr_types[3] = <char>NPY_DOUBLE
- ufunc_nbdtr_types[4] = <char>NPY_FLOAT
- ufunc_nbdtr_types[5] = <char>NPY_FLOAT
- ufunc_nbdtr_types[6] = <char>NPY_FLOAT
- ufunc_nbdtr_types[7] = <char>NPY_FLOAT
- ufunc_nbdtr_types[8] = <char>NPY_DOUBLE
- ufunc_nbdtr_types[9] = <char>NPY_DOUBLE
- ufunc_nbdtr_types[10] = <char>NPY_DOUBLE
- ufunc_nbdtr_types[11] = <char>NPY_DOUBLE
- ufunc_nbdtr_ptr[2*0] = <void*>_func_cephes_nbdtr_wrap
- ufunc_nbdtr_ptr[2*0+1] = <void*>(<char*>"nbdtr")
- ufunc_nbdtr_ptr[2*1] = <void*>_func_nbdtr_unsafe
- ufunc_nbdtr_ptr[2*1+1] = <void*>(<char*>"nbdtr")
- ufunc_nbdtr_ptr[2*2] = <void*>_func_nbdtr_unsafe
- ufunc_nbdtr_ptr[2*2+1] = <void*>(<char*>"nbdtr")
- ufunc_nbdtr_data[0] = &ufunc_nbdtr_ptr[2*0]
- ufunc_nbdtr_data[1] = &ufunc_nbdtr_ptr[2*1]
- ufunc_nbdtr_data[2] = &ufunc_nbdtr_ptr[2*2]
- nbdtr = np.PyUFunc_FromFuncAndData(ufunc_nbdtr_loops, ufunc_nbdtr_data, ufunc_nbdtr_types, 3, 3, 1, 0, 'nbdtr', ufunc_nbdtr_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_nbdtrc_loops[3]
- cdef void *ufunc_nbdtrc_ptr[6]
- cdef void *ufunc_nbdtrc_data[3]
- cdef char ufunc_nbdtrc_types[12]
- cdef char *ufunc_nbdtrc_doc = (
- "nbdtrc(k, n, p, out=None)\n"
- "\n"
- "Negative binomial survival function.\n"
- "\n"
- "Returns the sum of the terms `k + 1` to infinity of the negative binomial\n"
- "distribution probability mass function,\n"
- "\n"
- ".. math::\n"
- "\n"
- " F = \\sum_{j=k + 1}^\\infty {{n + j - 1}\\choose{j}} p^n (1 - p)^j.\n"
- "\n"
- "In a sequence of Bernoulli trials with individual success probabilities\n"
- "`p`, this is the probability that more than `k` failures precede the nth\n"
- "success.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "k : array_like\n"
- " The maximum number of allowed failures (nonnegative int).\n"
- "n : array_like\n"
- " The target number of successes (positive int).\n"
- "p : array_like\n"
- " Probability of success in a single event (float).\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "F : scalar or ndarray\n"
- " The probability of `k + 1` or more failures before `n` successes in a\n"
- " sequence of events with individual success probability `p`.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "nbdtr : Negative binomial cumulative distribution function\n"
- "nbdtrik : Negative binomial percentile function\n"
- "scipy.stats.nbinom : Negative binomial distribution\n"
- "\n"
- "Notes\n"
- "-----\n"
- "If floating point values are passed for `k` or `n`, they will be truncated\n"
- "to integers.\n"
- "\n"
- "The terms are not summed directly; instead the regularized incomplete beta\n"
- "function is employed, according to the formula,\n"
- "\n"
- ".. math::\n"
- " \\mathrm{nbdtrc}(k, n, p) = I_{1 - p}(k + 1, n).\n"
- "\n"
- "Wrapper for the Cephes [1]_ routine `nbdtrc`.\n"
- "\n"
- "The negative binomial distribution is also available as\n"
- "`scipy.stats.nbinom`. Using `nbdtrc` directly can improve performance\n"
- "compared to the ``sf`` method of `scipy.stats.nbinom` (see last example).\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] Cephes Mathematical Functions Library,\n"
- " http://www.netlib.org/cephes/\n"
- "\n"
- "Examples\n"
- "--------\n"
- "Compute the function for ``k=10`` and ``n=5`` at ``p=0.5``.\n"
- "\n"
- ">>> import numpy as np\n"
- ">>> from scipy.special import nbdtrc\n"
- ">>> nbdtrc(10, 5, 0.5)\n"
- "0.059234619140624986\n"
- "\n"
- "Compute the function for ``n=10`` and ``p=0.5`` at several points by\n"
- "providing a NumPy array or list for `k`.\n"
- "\n"
- ">>> nbdtrc([5, 10, 15], 10, 0.5)\n"
- "array([0.84912109, 0.41190147, 0.11476147])\n"
- "\n"
- "Plot the function for four different parameter sets.\n"
- "\n"
- ">>> import matplotlib.pyplot as plt\n"
- ">>> k = np.arange(130)\n"
- ">>> n_parameters = [20, 20, 20, 80]\n"
- ">>> p_parameters = [0.2, 0.5, 0.8, 0.5]\n"
- ">>> linestyles = ['solid', 'dashed', 'dotted', 'dashdot']\n"
- ">>> parameters_list = list(zip(p_parameters, n_parameters,\n"
- "... linestyles))\n"
- ">>> fig, ax = plt.subplots(figsize=(8, 8))\n"
- ">>> for parameter_set in parameters_list:\n"
- "... p, n, style = parameter_set\n"
- "... nbdtrc_vals = nbdtrc(k, n, p)\n"
- "... ax.plot(k, nbdtrc_vals, label=rf\"$n={n},\\, p={p}$\",\n"
- "... ls=style)\n"
- ">>> ax.legend()\n"
- ">>> ax.set_xlabel(\"$k$\")\n"
- ">>> ax.set_title(\"Negative binomial distribution survival function\")\n"
- ">>> plt.show()\n"
- "\n"
- "The negative binomial distribution is also available as\n"
- "`scipy.stats.nbinom`. Using `nbdtrc` directly can be much faster than\n"
- "calling the ``sf`` method of `scipy.stats.nbinom`, especially for small\n"
- "arrays or individual values. To get the same results one must use the\n"
- "following parametrization: ``nbinom(n, p).sf(k)=nbdtrc(k, n, p)``.\n"
- "\n"
- ">>> from scipy.stats import nbinom\n"
- ">>> k, n, p = 3, 5, 0.5\n"
- ">>> nbdtr_res = nbdtrc(k, n, p) # this will often be faster than below\n"
- ">>> stats_res = nbinom(n, p).sf(k)\n"
- ">>> stats_res, nbdtr_res # test that results are equal\n"
- "(0.6367187499999999, 0.6367187499999999)\n"
- "\n"
- "`nbdtrc` can evaluate different parameter sets by providing arrays with\n"
- "shapes compatible for broadcasting for `k`, `n` and `p`. Here we compute\n"
- "the function for three different `k` at four locations `p`, resulting in\n"
- "a 3x4 array.\n"
- "\n"
- ">>> k = np.array([[5], [10], [15]])\n"
- ">>> p = np.array([0.3, 0.5, 0.7, 0.9])\n"
- ">>> k.shape, p.shape\n"
- "((3, 1), (4,))\n"
- "\n"
- ">>> nbdtrc(k, 5, p)\n"
- "array([[8.49731667e-01, 3.76953125e-01, 4.73489874e-02, 1.46902600e-04],\n"
- " [5.15491059e-01, 5.92346191e-02, 6.72234070e-04, 9.29610100e-09],\n"
- " [2.37507779e-01, 5.90896606e-03, 5.55025308e-06, 3.26346760e-13]])")
- ufunc_nbdtrc_loops[0] = <np.PyUFuncGenericFunction>loop_d_ppd__As_ppd_d
- ufunc_nbdtrc_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_fff_f
- ufunc_nbdtrc_loops[2] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_nbdtrc_types[0] = <char>NPY_INTP
- ufunc_nbdtrc_types[1] = <char>NPY_INTP
- ufunc_nbdtrc_types[2] = <char>NPY_DOUBLE
- ufunc_nbdtrc_types[3] = <char>NPY_DOUBLE
- ufunc_nbdtrc_types[4] = <char>NPY_FLOAT
- ufunc_nbdtrc_types[5] = <char>NPY_FLOAT
- ufunc_nbdtrc_types[6] = <char>NPY_FLOAT
- ufunc_nbdtrc_types[7] = <char>NPY_FLOAT
- ufunc_nbdtrc_types[8] = <char>NPY_DOUBLE
- ufunc_nbdtrc_types[9] = <char>NPY_DOUBLE
- ufunc_nbdtrc_types[10] = <char>NPY_DOUBLE
- ufunc_nbdtrc_types[11] = <char>NPY_DOUBLE
- ufunc_nbdtrc_ptr[2*0] = <void*>_func_cephes_nbdtrc_wrap
- ufunc_nbdtrc_ptr[2*0+1] = <void*>(<char*>"nbdtrc")
- ufunc_nbdtrc_ptr[2*1] = <void*>_func_nbdtrc_unsafe
- ufunc_nbdtrc_ptr[2*1+1] = <void*>(<char*>"nbdtrc")
- ufunc_nbdtrc_ptr[2*2] = <void*>_func_nbdtrc_unsafe
- ufunc_nbdtrc_ptr[2*2+1] = <void*>(<char*>"nbdtrc")
- ufunc_nbdtrc_data[0] = &ufunc_nbdtrc_ptr[2*0]
- ufunc_nbdtrc_data[1] = &ufunc_nbdtrc_ptr[2*1]
- ufunc_nbdtrc_data[2] = &ufunc_nbdtrc_ptr[2*2]
- nbdtrc = np.PyUFunc_FromFuncAndData(ufunc_nbdtrc_loops, ufunc_nbdtrc_data, ufunc_nbdtrc_types, 3, 3, 1, 0, 'nbdtrc', ufunc_nbdtrc_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_nbdtri_loops[3]
- cdef void *ufunc_nbdtri_ptr[6]
- cdef void *ufunc_nbdtri_data[3]
- cdef char ufunc_nbdtri_types[12]
- cdef char *ufunc_nbdtri_doc = (
- "nbdtri(k, n, y, out=None)\n"
- "\n"
- "Returns the inverse with respect to the parameter `p` of\n"
- "``y = nbdtr(k, n, p)``, the negative binomial cumulative distribution\n"
- "function.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "k : array_like\n"
- " The maximum number of allowed failures (nonnegative int).\n"
- "n : array_like\n"
- " The target number of successes (positive int).\n"
- "y : array_like\n"
- " The probability of `k` or fewer failures before `n` successes (float).\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "p : scalar or ndarray\n"
- " Probability of success in a single event (float) such that\n"
- " `nbdtr(k, n, p) = y`.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "nbdtr : Cumulative distribution function of the negative binomial.\n"
- "nbdtrc : Negative binomial survival function.\n"
- "scipy.stats.nbinom : negative binomial distribution.\n"
- "nbdtrik : Inverse with respect to `k` of `nbdtr(k, n, p)`.\n"
- "nbdtrin : Inverse with respect to `n` of `nbdtr(k, n, p)`.\n"
- "scipy.stats.nbinom : Negative binomial distribution\n"
- "\n"
- "Notes\n"
- "-----\n"
- "Wrapper for the Cephes [1]_ routine `nbdtri`.\n"
- "\n"
- "The negative binomial distribution is also available as\n"
- "`scipy.stats.nbinom`. Using `nbdtri` directly can improve performance\n"
- "compared to the ``ppf`` method of `scipy.stats.nbinom`.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] Cephes Mathematical Functions Library,\n"
- " http://www.netlib.org/cephes/\n"
- "\n"
- "Examples\n"
- "--------\n"
- "`nbdtri` is the inverse of `nbdtr` with respect to `p`.\n"
- "Up to floating point errors the following holds:\n"
- "``nbdtri(k, n, nbdtr(k, n, p))=p``.\n"
- "\n"
- ">>> import numpy as np\n"
- ">>> from scipy.special import nbdtri, nbdtr\n"
- ">>> k, n, y = 5, 10, 0.2\n"
- ">>> cdf_val = nbdtr(k, n, y)\n"
- ">>> nbdtri(k, n, cdf_val)\n"
- "0.20000000000000004\n"
- "\n"
- "Compute the function for ``k=10`` and ``n=5`` at several points by\n"
- "providing a NumPy array or list for `y`.\n"
- "\n"
- ">>> y = np.array([0.1, 0.4, 0.8])\n"
- ">>> nbdtri(3, 5, y)\n"
- "array([0.34462319, 0.51653095, 0.69677416])\n"
- "\n"
- "Plot the function for three different parameter sets.\n"
- "\n"
- ">>> import matplotlib.pyplot as plt\n"
- ">>> n_parameters = [5, 20, 30, 30]\n"
- ">>> k_parameters = [20, 20, 60, 80]\n"
- ">>> linestyles = ['solid', 'dashed', 'dotted', 'dashdot']\n"
- ">>> parameters_list = list(zip(n_parameters, k_parameters, linestyles))\n"
- ">>> cdf_vals = np.linspace(0, 1, 1000)\n"
- ">>> fig, ax = plt.subplots(figsize=(8, 8))\n"
- ">>> for parameter_set in parameters_list:\n"
- "... n, k, style = parameter_set\n"
- "... nbdtri_vals = nbdtri(k, n, cdf_vals)\n"
- "... ax.plot(cdf_vals, nbdtri_vals, label=rf\"$k={k},\\ n={n}$\",\n"
- "... ls=style)\n"
- ">>> ax.legend()\n"
- ">>> ax.set_ylabel(\"$p$\")\n"
- ">>> ax.set_xlabel(\"$CDF$\")\n"
- ">>> title = \"nbdtri: inverse of negative binomial CDF with respect to $p$\"\n"
- ">>> ax.set_title(title)\n"
- ">>> plt.show()\n"
- "\n"
- "`nbdtri` can evaluate different parameter sets by providing arrays with\n"
- "shapes compatible for broadcasting for `k`, `n` and `p`. Here we compute\n"
- "the function for three different `k` at four locations `p`, resulting in\n"
- "a 3x4 array.\n"
- "\n"
- ">>> k = np.array([[5], [10], [15]])\n"
- ">>> y = np.array([0.3, 0.5, 0.7, 0.9])\n"
- ">>> k.shape, y.shape\n"
- "((3, 1), (4,))\n"
- "\n"
- ">>> nbdtri(k, 5, y)\n"
- "array([[0.37258157, 0.45169416, 0.53249956, 0.64578407],\n"
- " [0.24588501, 0.30451981, 0.36778453, 0.46397088],\n"
- " [0.18362101, 0.22966758, 0.28054743, 0.36066188]])")
- ufunc_nbdtri_loops[0] = <np.PyUFuncGenericFunction>loop_d_ppd__As_ppd_d
- ufunc_nbdtri_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_fff_f
- ufunc_nbdtri_loops[2] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_nbdtri_types[0] = <char>NPY_INTP
- ufunc_nbdtri_types[1] = <char>NPY_INTP
- ufunc_nbdtri_types[2] = <char>NPY_DOUBLE
- ufunc_nbdtri_types[3] = <char>NPY_DOUBLE
- ufunc_nbdtri_types[4] = <char>NPY_FLOAT
- ufunc_nbdtri_types[5] = <char>NPY_FLOAT
- ufunc_nbdtri_types[6] = <char>NPY_FLOAT
- ufunc_nbdtri_types[7] = <char>NPY_FLOAT
- ufunc_nbdtri_types[8] = <char>NPY_DOUBLE
- ufunc_nbdtri_types[9] = <char>NPY_DOUBLE
- ufunc_nbdtri_types[10] = <char>NPY_DOUBLE
- ufunc_nbdtri_types[11] = <char>NPY_DOUBLE
- ufunc_nbdtri_ptr[2*0] = <void*>_func_cephes_nbdtri_wrap
- ufunc_nbdtri_ptr[2*0+1] = <void*>(<char*>"nbdtri")
- ufunc_nbdtri_ptr[2*1] = <void*>_func_nbdtri_unsafe
- ufunc_nbdtri_ptr[2*1+1] = <void*>(<char*>"nbdtri")
- ufunc_nbdtri_ptr[2*2] = <void*>_func_nbdtri_unsafe
- ufunc_nbdtri_ptr[2*2+1] = <void*>(<char*>"nbdtri")
- ufunc_nbdtri_data[0] = &ufunc_nbdtri_ptr[2*0]
- ufunc_nbdtri_data[1] = &ufunc_nbdtri_ptr[2*1]
- ufunc_nbdtri_data[2] = &ufunc_nbdtri_ptr[2*2]
- nbdtri = np.PyUFunc_FromFuncAndData(ufunc_nbdtri_loops, ufunc_nbdtri_data, ufunc_nbdtri_types, 3, 3, 1, 0, 'nbdtri', ufunc_nbdtri_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_nbdtrik_loops[2]
- cdef void *ufunc_nbdtrik_ptr[4]
- cdef void *ufunc_nbdtrik_data[2]
- cdef char ufunc_nbdtrik_types[8]
- cdef char *ufunc_nbdtrik_doc = (
- "nbdtrik(y, n, p, out=None)\n"
- "\n"
- "Negative binomial percentile function.\n"
- "\n"
- "Returns the inverse with respect to the parameter `k` of\n"
- "``y = nbdtr(k, n, p)``, the negative binomial cumulative distribution\n"
- "function.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "y : array_like\n"
- " The probability of `k` or fewer failures before `n` successes (float).\n"
- "n : array_like\n"
- " The target number of successes (positive int).\n"
- "p : array_like\n"
- " Probability of success in a single event (float).\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "k : scalar or ndarray\n"
- " The maximum number of allowed failures such that `nbdtr(k, n, p) = y`.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "nbdtr : Cumulative distribution function of the negative binomial.\n"
- "nbdtrc : Survival function of the negative binomial.\n"
- "nbdtri : Inverse with respect to `p` of `nbdtr(k, n, p)`.\n"
- "nbdtrin : Inverse with respect to `n` of `nbdtr(k, n, p)`.\n"
- "scipy.stats.nbinom : Negative binomial distribution\n"
- "\n"
- "Notes\n"
- "-----\n"
- "Wrapper for the CDFLIB [1]_ Fortran routine `cdfnbn`.\n"
- "\n"
- "Formula 26.5.26 of [2]_ or [3]_,\n"
- "\n"
- ".. math::\n"
- " \\sum_{j=k + 1}^\\infty {{n + j - 1}\n"
- " \\choose{j}} p^n (1 - p)^j = I_{1 - p}(k + 1, n),\n"
- "\n"
- "is used to reduce calculation of the cumulative distribution function to\n"
- "that of a regularized incomplete beta :math:`I`.\n"
- "\n"
- "Computation of `k` involves a search for a value that produces the desired\n"
- "value of `y`. The search relies on the monotonicity of `y` with `k`.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] Barry Brown, James Lovato, and Kathy Russell,\n"
- " CDFLIB: Library of Fortran Routines for Cumulative Distribution\n"
- " Functions, Inverses, and Other Parameters.\n"
- ".. [2] Milton Abramowitz and Irene A. Stegun, eds.\n"
- " Handbook of Mathematical Functions with Formulas,\n"
- " Graphs, and Mathematical Tables. New York: Dover, 1972.\n"
- ".. [3] NIST Digital Library of Mathematical Functions\n"
- " https://dlmf.nist.gov/8.17.E24\n"
- "\n"
- "Examples\n"
- "--------\n"
- "Compute the negative binomial cumulative distribution function for an\n"
- "exemplary parameter set.\n"
- "\n"
- ">>> import numpy as np\n"
- ">>> from scipy.special import nbdtr, nbdtrik\n"
- ">>> k, n, p = 5, 2, 0.5\n"
- ">>> cdf_value = nbdtr(k, n, p)\n"
- ">>> cdf_value\n"
- "0.9375\n"
- "\n"
- "Verify that `nbdtrik` recovers the original value for `k`.\n"
- "\n"
- ">>> nbdtrik(cdf_value, n, p)\n"
- "5.0\n"
- "\n"
- "Plot the function for different parameter sets.\n"
- "\n"
- ">>> import matplotlib.pyplot as plt\n"
- ">>> p_parameters = [0.2, 0.5, 0.7, 0.5]\n"
- ">>> n_parameters = [30, 30, 30, 80]\n"
- ">>> linestyles = ['solid', 'dashed', 'dotted', 'dashdot']\n"
- ">>> parameters_list = list(zip(p_parameters, n_parameters, linestyles))\n"
- ">>> cdf_vals = np.linspace(0, 1, 1000)\n"
- ">>> fig, ax = plt.subplots(figsize=(8, 8))\n"
- ">>> for parameter_set in parameters_list:\n"
- "... p, n, style = parameter_set\n"
- "... nbdtrik_vals = nbdtrik(cdf_vals, n, p)\n"
- "... ax.plot(cdf_vals, nbdtrik_vals, label=rf\"$n={n},\\ p={p}$\",\n"
- "... ls=style)\n"
- ">>> ax.legend()\n"
- ">>> ax.set_ylabel(\"$k$\")\n"
- ">>> ax.set_xlabel(\"$CDF$\")\n"
- ">>> ax.set_title(\"Negative binomial percentile function\")\n"
- ">>> plt.show()\n"
- "\n"
- "The negative binomial distribution is also available as\n"
- "`scipy.stats.nbinom`. The percentile function method ``ppf``\n"
- "returns the result of `nbdtrik` rounded up to integers:\n"
- "\n"
- ">>> from scipy.stats import nbinom\n"
- ">>> q, n, p = 0.6, 5, 0.5\n"
- ">>> nbinom.ppf(q, n, p), nbdtrik(q, n, p)\n"
- "(5.0, 4.800428460273882)")
- ufunc_nbdtrik_loops[0] = <np.PyUFuncGenericFunction>loop_d_ddd__As_fff_f
- ufunc_nbdtrik_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_nbdtrik_types[0] = <char>NPY_FLOAT
- ufunc_nbdtrik_types[1] = <char>NPY_FLOAT
- ufunc_nbdtrik_types[2] = <char>NPY_FLOAT
- ufunc_nbdtrik_types[3] = <char>NPY_FLOAT
- ufunc_nbdtrik_types[4] = <char>NPY_DOUBLE
- ufunc_nbdtrik_types[5] = <char>NPY_DOUBLE
- ufunc_nbdtrik_types[6] = <char>NPY_DOUBLE
- ufunc_nbdtrik_types[7] = <char>NPY_DOUBLE
- ufunc_nbdtrik_ptr[2*0] = <void*>_func_nbdtrik
- ufunc_nbdtrik_ptr[2*0+1] = <void*>(<char*>"nbdtrik")
- ufunc_nbdtrik_ptr[2*1] = <void*>_func_nbdtrik
- ufunc_nbdtrik_ptr[2*1+1] = <void*>(<char*>"nbdtrik")
- ufunc_nbdtrik_data[0] = &ufunc_nbdtrik_ptr[2*0]
- ufunc_nbdtrik_data[1] = &ufunc_nbdtrik_ptr[2*1]
- nbdtrik = np.PyUFunc_FromFuncAndData(ufunc_nbdtrik_loops, ufunc_nbdtrik_data, ufunc_nbdtrik_types, 2, 3, 1, 0, 'nbdtrik', ufunc_nbdtrik_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_nbdtrin_loops[2]
- cdef void *ufunc_nbdtrin_ptr[4]
- cdef void *ufunc_nbdtrin_data[2]
- cdef char ufunc_nbdtrin_types[8]
- cdef char *ufunc_nbdtrin_doc = (
- "nbdtrin(k, y, p, out=None)\n"
- "\n"
- "Inverse of `nbdtr` vs `n`.\n"
- "\n"
- "Returns the inverse with respect to the parameter `n` of\n"
- "``y = nbdtr(k, n, p)``, the negative binomial cumulative distribution\n"
- "function.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "k : array_like\n"
- " The maximum number of allowed failures (nonnegative int).\n"
- "y : array_like\n"
- " The probability of `k` or fewer failures before `n` successes (float).\n"
- "p : array_like\n"
- " Probability of success in a single event (float).\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "n : scalar or ndarray\n"
- " The number of successes `n` such that `nbdtr(k, n, p) = y`.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "nbdtr : Cumulative distribution function of the negative binomial.\n"
- "nbdtri : Inverse with respect to `p` of `nbdtr(k, n, p)`.\n"
- "nbdtrik : Inverse with respect to `k` of `nbdtr(k, n, p)`.\n"
- "\n"
- "Notes\n"
- "-----\n"
- "Wrapper for the CDFLIB [1]_ Fortran routine `cdfnbn`.\n"
- "\n"
- "Formula 26.5.26 of [2]_ or [3]_,\n"
- "\n"
- ".. math::\n"
- " \\sum_{j=k + 1}^\\infty {{n + j - 1}\n"
- " \\choose{j}} p^n (1 - p)^j = I_{1 - p}(k + 1, n),\n"
- "\n"
- "is used to reduce calculation of the cumulative distribution function to\n"
- "that of a regularized incomplete beta :math:`I`.\n"
- "\n"
- "Computation of `n` involves a search for a value that produces the desired\n"
- "value of `y`. The search relies on the monotonicity of `y` with `n`.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] Barry Brown, James Lovato, and Kathy Russell,\n"
- " CDFLIB: Library of Fortran Routines for Cumulative Distribution\n"
- " Functions, Inverses, and Other Parameters.\n"
- ".. [2] Milton Abramowitz and Irene A. Stegun, eds.\n"
- " Handbook of Mathematical Functions with Formulas,\n"
- " Graphs, and Mathematical Tables. New York: Dover, 1972.\n"
- ".. [3] NIST Digital Library of Mathematical Functions\n"
- " https://dlmf.nist.gov/8.17.E24\n"
- "\n"
- "Examples\n"
- "--------\n"
- "Compute the negative binomial cumulative distribution function for an\n"
- "exemplary parameter set.\n"
- "\n"
- ">>> from scipy.special import nbdtr, nbdtrin\n"
- ">>> k, n, p = 5, 2, 0.5\n"
- ">>> cdf_value = nbdtr(k, n, p)\n"
- ">>> cdf_value\n"
- "0.9375\n"
- "\n"
- "Verify that `nbdtrin` recovers the original value for `n` up to floating\n"
- "point accuracy.\n"
- "\n"
- ">>> nbdtrin(k, cdf_value, p)\n"
- "1.999999999998137")
- ufunc_nbdtrin_loops[0] = <np.PyUFuncGenericFunction>loop_d_ddd__As_fff_f
- ufunc_nbdtrin_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_nbdtrin_types[0] = <char>NPY_FLOAT
- ufunc_nbdtrin_types[1] = <char>NPY_FLOAT
- ufunc_nbdtrin_types[2] = <char>NPY_FLOAT
- ufunc_nbdtrin_types[3] = <char>NPY_FLOAT
- ufunc_nbdtrin_types[4] = <char>NPY_DOUBLE
- ufunc_nbdtrin_types[5] = <char>NPY_DOUBLE
- ufunc_nbdtrin_types[6] = <char>NPY_DOUBLE
- ufunc_nbdtrin_types[7] = <char>NPY_DOUBLE
- ufunc_nbdtrin_ptr[2*0] = <void*>_func_nbdtrin
- ufunc_nbdtrin_ptr[2*0+1] = <void*>(<char*>"nbdtrin")
- ufunc_nbdtrin_ptr[2*1] = <void*>_func_nbdtrin
- ufunc_nbdtrin_ptr[2*1+1] = <void*>(<char*>"nbdtrin")
- ufunc_nbdtrin_data[0] = &ufunc_nbdtrin_ptr[2*0]
- ufunc_nbdtrin_data[1] = &ufunc_nbdtrin_ptr[2*1]
- nbdtrin = np.PyUFunc_FromFuncAndData(ufunc_nbdtrin_loops, ufunc_nbdtrin_data, ufunc_nbdtrin_types, 2, 3, 1, 0, 'nbdtrin', ufunc_nbdtrin_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_ncfdtr_loops[2]
- cdef void *ufunc_ncfdtr_ptr[4]
- cdef void *ufunc_ncfdtr_data[2]
- cdef char ufunc_ncfdtr_types[10]
- cdef char *ufunc_ncfdtr_doc = (
- "ncfdtr(dfn, dfd, nc, f, out=None)\n"
- "\n"
- "Cumulative distribution function of the non-central F distribution.\n"
- "\n"
- "The non-central F describes the distribution of,\n"
- "\n"
- ".. math::\n"
- " Z = \\frac{X/d_n}{Y/d_d}\n"
- "\n"
- "where :math:`X` and :math:`Y` are independently distributed, with\n"
- ":math:`X` distributed non-central :math:`\\chi^2` with noncentrality\n"
- "parameter `nc` and :math:`d_n` degrees of freedom, and :math:`Y`\n"
- "distributed :math:`\\chi^2` with :math:`d_d` degrees of freedom.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "dfn : array_like\n"
- " Degrees of freedom of the numerator sum of squares. Range (0, inf).\n"
- "dfd : array_like\n"
- " Degrees of freedom of the denominator sum of squares. Range (0, inf).\n"
- "nc : array_like\n"
- " Noncentrality parameter. Range [0, inf).\n"
- "f : array_like\n"
- " Quantiles, i.e. the upper limit of integration.\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "cdf : scalar or ndarray\n"
- " The calculated CDF. If all inputs are scalar, the return will be a\n"
- " float. Otherwise it will be an array.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "ncfdtri : Quantile function; inverse of `ncfdtr` with respect to `f`.\n"
- "ncfdtridfd : Inverse of `ncfdtr` with respect to `dfd`.\n"
- "ncfdtridfn : Inverse of `ncfdtr` with respect to `dfn`.\n"
- "ncfdtrinc : Inverse of `ncfdtr` with respect to `nc`.\n"
- "scipy.stats.ncf : Non-central F distribution.\n"
- "\n"
- "Notes\n"
- "-----\n"
- "This function calculates the CDF of the non-central f distribution using\n"
- "the Boost Math C++ library [1]_.\n"
- "\n"
- "The cumulative distribution function is computed using Formula 26.6.20 of\n"
- "[2]_:\n"
- "\n"
- ".. math::\n"
- " F(d_n, d_d, n_c, f) = \\sum_{j=0}^\\infty e^{-n_c/2}\n"
- " \\frac{(n_c/2)^j}{j!} I_{x}(\\frac{d_n}{2} + j, \\frac{d_d}{2}),\n"
- "\n"
- "where :math:`I` is the regularized incomplete beta function, and\n"
- ":math:`x = f d_n/(f d_n + d_d)`.\n"
- "\n"
- "Note that argument order of `ncfdtr` is different from that of the\n"
- "similar ``cdf`` method of `scipy.stats.ncf`: `f` is the last\n"
- "parameter of `ncfdtr` but the first parameter of ``scipy.stats.ncf.cdf``.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] The Boost Developers. \"Boost C++ Libraries\". https://www.boost.org/.\n"
- ".. [2] Milton Abramowitz and Irene A. Stegun, eds.\n"
- " Handbook of Mathematical Functions with Formulas,\n"
- " Graphs, and Mathematical Tables. New York: Dover, 1972.\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> import numpy as np\n"
- ">>> from scipy import special\n"
- ">>> from scipy import stats\n"
- ">>> import matplotlib.pyplot as plt\n"
- "\n"
- "Plot the CDF of the non-central F distribution, for nc=0. Compare with the\n"
- "F-distribution from scipy.stats:\n"
- "\n"
- ">>> x = np.linspace(-1, 8, num=500)\n"
- ">>> dfn = 3\n"
- ">>> dfd = 2\n"
- ">>> ncf_stats = stats.f.cdf(x, dfn, dfd)\n"
- ">>> ncf_special = special.ncfdtr(dfn, dfd, 0, x)\n"
- "\n"
- ">>> fig = plt.figure()\n"
- ">>> ax = fig.add_subplot(111)\n"
- ">>> ax.plot(x, ncf_stats, 'b-', lw=3)\n"
- ">>> ax.plot(x, ncf_special, 'r-')\n"
- ">>> plt.show()")
- ufunc_ncfdtr_loops[0] = <np.PyUFuncGenericFunction>loop_f_ffff__As_ffff_f
- ufunc_ncfdtr_loops[1] = <np.PyUFuncGenericFunction>loop_d_dddd__As_dddd_d
- ufunc_ncfdtr_types[0] = <char>NPY_FLOAT
- ufunc_ncfdtr_types[1] = <char>NPY_FLOAT
- ufunc_ncfdtr_types[2] = <char>NPY_FLOAT
- ufunc_ncfdtr_types[3] = <char>NPY_FLOAT
- ufunc_ncfdtr_types[4] = <char>NPY_FLOAT
- ufunc_ncfdtr_types[5] = <char>NPY_DOUBLE
- ufunc_ncfdtr_types[6] = <char>NPY_DOUBLE
- ufunc_ncfdtr_types[7] = <char>NPY_DOUBLE
- ufunc_ncfdtr_types[8] = <char>NPY_DOUBLE
- ufunc_ncfdtr_types[9] = <char>NPY_DOUBLE
- ufunc_ncfdtr_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_ncf_cdf_float
- ufunc_ncfdtr_ptr[2*0+1] = <void*>(<char*>"ncfdtr")
- ufunc_ncfdtr_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_ncf_cdf_double
- ufunc_ncfdtr_ptr[2*1+1] = <void*>(<char*>"ncfdtr")
- ufunc_ncfdtr_data[0] = &ufunc_ncfdtr_ptr[2*0]
- ufunc_ncfdtr_data[1] = &ufunc_ncfdtr_ptr[2*1]
- ncfdtr = np.PyUFunc_FromFuncAndData(ufunc_ncfdtr_loops, ufunc_ncfdtr_data, ufunc_ncfdtr_types, 2, 4, 1, 0, 'ncfdtr', ufunc_ncfdtr_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_ncfdtri_loops[2]
- cdef void *ufunc_ncfdtri_ptr[4]
- cdef void *ufunc_ncfdtri_data[2]
- cdef char ufunc_ncfdtri_types[10]
- cdef char *ufunc_ncfdtri_doc = (
- "ncfdtri(dfn, dfd, nc, p, out=None)\n"
- "\n"
- "Inverse with respect to `f` of the CDF of the non-central F distribution.\n"
- "\n"
- "See `ncfdtr` for more details.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "dfn : array_like\n"
- " Degrees of freedom of the numerator sum of squares. Range (0, inf).\n"
- "dfd : array_like\n"
- " Degrees of freedom of the denominator sum of squares. Range (0, inf).\n"
- "nc : array_like\n"
- " Noncentrality parameter. Range [0, inf).\n"
- "p : array_like\n"
- " Value of the cumulative distribution function. Must be in the\n"
- " range [0, 1].\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "f : scalar or ndarray\n"
- " Quantiles, i.e., the upper limit of integration.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "ncfdtr : CDF of the non-central F distribution.\n"
- "ncfdtridfd : Inverse of `ncfdtr` with respect to `dfd`.\n"
- "ncfdtridfn : Inverse of `ncfdtr` with respect to `dfn`.\n"
- "ncfdtrinc : Inverse of `ncfdtr` with respect to `nc`.\n"
- "scipy.stats.ncf : Non-central F distribution.\n"
- "\n"
- "Notes\n"
- "-----\n"
- "This function calculates the Quantile of the non-central f distribution\n"
- "using the Boost Math C++ library [1]_.\n"
- "\n"
- "Note that argument order of `ncfdtri` is different from that of the\n"
- "similar ``ppf`` method of `scipy.stats.ncf`. `p` is the last parameter\n"
- "of `ncfdtri` but the first parameter of ``scipy.stats.ncf.ppf``.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] The Boost Developers. \"Boost C++ Libraries\". https://www.boost.org/.\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> from scipy.special import ncfdtr, ncfdtri\n"
- "\n"
- "Compute the CDF for several values of `f`:\n"
- "\n"
- ">>> f = [0.5, 1, 1.5]\n"
- ">>> p = ncfdtr(2, 3, 1.5, f)\n"
- ">>> p\n"
- "array([ 0.20782291, 0.36107392, 0.47345752])\n"
- "\n"
- "Compute the inverse. We recover the values of `f`, as expected:\n"
- "\n"
- ">>> ncfdtri(2, 3, 1.5, p)\n"
- "array([ 0.5, 1. , 1.5])")
- ufunc_ncfdtri_loops[0] = <np.PyUFuncGenericFunction>loop_f_ffff__As_ffff_f
- ufunc_ncfdtri_loops[1] = <np.PyUFuncGenericFunction>loop_d_dddd__As_dddd_d
- ufunc_ncfdtri_types[0] = <char>NPY_FLOAT
- ufunc_ncfdtri_types[1] = <char>NPY_FLOAT
- ufunc_ncfdtri_types[2] = <char>NPY_FLOAT
- ufunc_ncfdtri_types[3] = <char>NPY_FLOAT
- ufunc_ncfdtri_types[4] = <char>NPY_FLOAT
- ufunc_ncfdtri_types[5] = <char>NPY_DOUBLE
- ufunc_ncfdtri_types[6] = <char>NPY_DOUBLE
- ufunc_ncfdtri_types[7] = <char>NPY_DOUBLE
- ufunc_ncfdtri_types[8] = <char>NPY_DOUBLE
- ufunc_ncfdtri_types[9] = <char>NPY_DOUBLE
- ufunc_ncfdtri_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_ncf_ppf_float
- ufunc_ncfdtri_ptr[2*0+1] = <void*>(<char*>"ncfdtri")
- ufunc_ncfdtri_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_ncf_ppf_double
- ufunc_ncfdtri_ptr[2*1+1] = <void*>(<char*>"ncfdtri")
- ufunc_ncfdtri_data[0] = &ufunc_ncfdtri_ptr[2*0]
- ufunc_ncfdtri_data[1] = &ufunc_ncfdtri_ptr[2*1]
- ncfdtri = np.PyUFunc_FromFuncAndData(ufunc_ncfdtri_loops, ufunc_ncfdtri_data, ufunc_ncfdtri_types, 2, 4, 1, 0, 'ncfdtri', ufunc_ncfdtri_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_ncfdtridfd_loops[2]
- cdef void *ufunc_ncfdtridfd_ptr[4]
- cdef void *ufunc_ncfdtridfd_data[2]
- cdef char ufunc_ncfdtridfd_types[10]
- cdef char *ufunc_ncfdtridfd_doc = (
- "ncfdtridfd(dfn, p, nc, f, out=None)\n"
- "\n"
- "Calculate degrees of freedom (denominator) for the noncentral F-distribution.\n"
- "\n"
- "This is the inverse with respect to `dfd` of `ncfdtr`.\n"
- "See `ncfdtr` for more details.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "dfn : array_like\n"
- " Degrees of freedom of the numerator sum of squares. Range (0, inf).\n"
- "p : array_like\n"
- " Value of the cumulative distribution function. Must be in the\n"
- " range [0, 1].\n"
- "nc : array_like\n"
- " Noncentrality parameter. Should be in range (0, 1e4).\n"
- "f : array_like\n"
- " Quantiles, i.e., the upper limit of integration.\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "dfd : scalar or ndarray\n"
- " Degrees of freedom of the denominator sum of squares.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "ncfdtr : CDF of the non-central F distribution.\n"
- "ncfdtri : Quantile function; inverse of `ncfdtr` with respect to `f`.\n"
- "ncfdtridfn : Inverse of `ncfdtr` with respect to `dfn`.\n"
- "ncfdtrinc : Inverse of `ncfdtr` with respect to `nc`.\n"
- "\n"
- "Notes\n"
- "-----\n"
- "The value of the cumulative noncentral F distribution is not necessarily\n"
- "monotone in either degrees of freedom. There thus may be two values that\n"
- "provide a given CDF value. This routine assumes monotonicity and will\n"
- "find an arbitrary one of the two values.\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> from scipy.special import ncfdtr, ncfdtridfd\n"
- "\n"
- "Compute the CDF for several values of `dfd`:\n"
- "\n"
- ">>> dfd = [1, 2, 3]\n"
- ">>> p = ncfdtr(2, dfd, 0.25, 15)\n"
- ">>> p\n"
- "array([ 0.8097138 , 0.93020416, 0.96787852])\n"
- "\n"
- "Compute the inverse. We recover the values of `dfd`, as expected:\n"
- "\n"
- ">>> ncfdtridfd(2, p, 0.25, 15)\n"
- "array([ 1., 2., 3.])")
- ufunc_ncfdtridfd_loops[0] = <np.PyUFuncGenericFunction>loop_d_dddd__As_ffff_f
- ufunc_ncfdtridfd_loops[1] = <np.PyUFuncGenericFunction>loop_d_dddd__As_dddd_d
- ufunc_ncfdtridfd_types[0] = <char>NPY_FLOAT
- ufunc_ncfdtridfd_types[1] = <char>NPY_FLOAT
- ufunc_ncfdtridfd_types[2] = <char>NPY_FLOAT
- ufunc_ncfdtridfd_types[3] = <char>NPY_FLOAT
- ufunc_ncfdtridfd_types[4] = <char>NPY_FLOAT
- ufunc_ncfdtridfd_types[5] = <char>NPY_DOUBLE
- ufunc_ncfdtridfd_types[6] = <char>NPY_DOUBLE
- ufunc_ncfdtridfd_types[7] = <char>NPY_DOUBLE
- ufunc_ncfdtridfd_types[8] = <char>NPY_DOUBLE
- ufunc_ncfdtridfd_types[9] = <char>NPY_DOUBLE
- ufunc_ncfdtridfd_ptr[2*0] = <void*>_func_ncfdtridfd
- ufunc_ncfdtridfd_ptr[2*0+1] = <void*>(<char*>"ncfdtridfd")
- ufunc_ncfdtridfd_ptr[2*1] = <void*>_func_ncfdtridfd
- ufunc_ncfdtridfd_ptr[2*1+1] = <void*>(<char*>"ncfdtridfd")
- ufunc_ncfdtridfd_data[0] = &ufunc_ncfdtridfd_ptr[2*0]
- ufunc_ncfdtridfd_data[1] = &ufunc_ncfdtridfd_ptr[2*1]
- ncfdtridfd = np.PyUFunc_FromFuncAndData(ufunc_ncfdtridfd_loops, ufunc_ncfdtridfd_data, ufunc_ncfdtridfd_types, 2, 4, 1, 0, 'ncfdtridfd', ufunc_ncfdtridfd_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_ncfdtridfn_loops[2]
- cdef void *ufunc_ncfdtridfn_ptr[4]
- cdef void *ufunc_ncfdtridfn_data[2]
- cdef char ufunc_ncfdtridfn_types[10]
- cdef char *ufunc_ncfdtridfn_doc = (
- "ncfdtridfn(p, dfd, nc, f, out=None)\n"
- "\n"
- "Calculate degrees of freedom (numerator) for the noncentral F-distribution.\n"
- "\n"
- "This is the inverse with respect to `dfn` of `ncfdtr`.\n"
- "See `ncfdtr` for more details.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "p : array_like\n"
- " Value of the cumulative distribution function. Must be in the\n"
- " range [0, 1].\n"
- "dfd : array_like\n"
- " Degrees of freedom of the denominator sum of squares. Range (0, inf).\n"
- "nc : array_like\n"
- " Noncentrality parameter. Should be in range (0, 1e4).\n"
- "f : float\n"
- " Quantiles, i.e., the upper limit of integration.\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "dfn : scalar or ndarray\n"
- " Degrees of freedom of the numerator sum of squares.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "ncfdtr : CDF of the non-central F distribution.\n"
- "ncfdtri : Quantile function; inverse of `ncfdtr` with respect to `f`.\n"
- "ncfdtridfd : Inverse of `ncfdtr` with respect to `dfd`.\n"
- "ncfdtrinc : Inverse of `ncfdtr` with respect to `nc`.\n"
- "\n"
- "Notes\n"
- "-----\n"
- "The value of the cumulative noncentral F distribution is not necessarily\n"
- "monotone in either degrees of freedom. There thus may be two values that\n"
- "provide a given CDF value. This routine assumes monotonicity and will\n"
- "find an arbitrary one of the two values.\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> from scipy.special import ncfdtr, ncfdtridfn\n"
- "\n"
- "Compute the CDF for several values of `dfn`:\n"
- "\n"
- ">>> dfn = [1, 2, 3]\n"
- ">>> p = ncfdtr(dfn, 2, 0.25, 15)\n"
- ">>> p\n"
- "array([ 0.92562363, 0.93020416, 0.93188394])\n"
- "\n"
- "Compute the inverse. We recover the values of `dfn`, as expected:\n"
- "\n"
- ">>> ncfdtridfn(p, 2, 0.25, 15)\n"
- "array([ 1., 2., 3.])")
- ufunc_ncfdtridfn_loops[0] = <np.PyUFuncGenericFunction>loop_d_dddd__As_ffff_f
- ufunc_ncfdtridfn_loops[1] = <np.PyUFuncGenericFunction>loop_d_dddd__As_dddd_d
- ufunc_ncfdtridfn_types[0] = <char>NPY_FLOAT
- ufunc_ncfdtridfn_types[1] = <char>NPY_FLOAT
- ufunc_ncfdtridfn_types[2] = <char>NPY_FLOAT
- ufunc_ncfdtridfn_types[3] = <char>NPY_FLOAT
- ufunc_ncfdtridfn_types[4] = <char>NPY_FLOAT
- ufunc_ncfdtridfn_types[5] = <char>NPY_DOUBLE
- ufunc_ncfdtridfn_types[6] = <char>NPY_DOUBLE
- ufunc_ncfdtridfn_types[7] = <char>NPY_DOUBLE
- ufunc_ncfdtridfn_types[8] = <char>NPY_DOUBLE
- ufunc_ncfdtridfn_types[9] = <char>NPY_DOUBLE
- ufunc_ncfdtridfn_ptr[2*0] = <void*>_func_ncfdtridfn
- ufunc_ncfdtridfn_ptr[2*0+1] = <void*>(<char*>"ncfdtridfn")
- ufunc_ncfdtridfn_ptr[2*1] = <void*>_func_ncfdtridfn
- ufunc_ncfdtridfn_ptr[2*1+1] = <void*>(<char*>"ncfdtridfn")
- ufunc_ncfdtridfn_data[0] = &ufunc_ncfdtridfn_ptr[2*0]
- ufunc_ncfdtridfn_data[1] = &ufunc_ncfdtridfn_ptr[2*1]
- ncfdtridfn = np.PyUFunc_FromFuncAndData(ufunc_ncfdtridfn_loops, ufunc_ncfdtridfn_data, ufunc_ncfdtridfn_types, 2, 4, 1, 0, 'ncfdtridfn', ufunc_ncfdtridfn_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_ncfdtrinc_loops[2]
- cdef void *ufunc_ncfdtrinc_ptr[4]
- cdef void *ufunc_ncfdtrinc_data[2]
- cdef char ufunc_ncfdtrinc_types[10]
- cdef char *ufunc_ncfdtrinc_doc = (
- "ncfdtrinc(dfn, dfd, p, f, out=None)\n"
- "\n"
- "Calculate non-centrality parameter for non-central F distribution.\n"
- "\n"
- "This is the inverse with respect to `nc` of `ncfdtr`.\n"
- "See `ncfdtr` for more details.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "dfn : array_like\n"
- " Degrees of freedom of the numerator sum of squares. Range (0, inf).\n"
- "dfd : array_like\n"
- " Degrees of freedom of the denominator sum of squares. Range (0, inf).\n"
- "p : array_like\n"
- " Value of the cumulative distribution function. Must be in the\n"
- " range [0, 1].\n"
- "f : array_like\n"
- " Quantiles, i.e., the upper limit of integration.\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "nc : scalar or ndarray\n"
- " Noncentrality parameter.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "ncfdtr : CDF of the non-central F distribution.\n"
- "ncfdtri : Quantile function; inverse of `ncfdtr` with respect to `f`.\n"
- "ncfdtridfd : Inverse of `ncfdtr` with respect to `dfd`.\n"
- "ncfdtridfn : Inverse of `ncfdtr` with respect to `dfn`.\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> from scipy.special import ncfdtr, ncfdtrinc\n"
- "\n"
- "Compute the CDF for several values of `nc`:\n"
- "\n"
- ">>> nc = [0.5, 1.5, 2.0]\n"
- ">>> p = ncfdtr(2, 3, nc, 15)\n"
- ">>> p\n"
- "array([ 0.96309246, 0.94327955, 0.93304098])\n"
- "\n"
- "Compute the inverse. We recover the values of `nc`, as expected:\n"
- "\n"
- ">>> ncfdtrinc(2, 3, p, 15)\n"
- "array([ 0.5, 1.5, 2. ])")
- ufunc_ncfdtrinc_loops[0] = <np.PyUFuncGenericFunction>loop_d_dddd__As_ffff_f
- ufunc_ncfdtrinc_loops[1] = <np.PyUFuncGenericFunction>loop_d_dddd__As_dddd_d
- ufunc_ncfdtrinc_types[0] = <char>NPY_FLOAT
- ufunc_ncfdtrinc_types[1] = <char>NPY_FLOAT
- ufunc_ncfdtrinc_types[2] = <char>NPY_FLOAT
- ufunc_ncfdtrinc_types[3] = <char>NPY_FLOAT
- ufunc_ncfdtrinc_types[4] = <char>NPY_FLOAT
- ufunc_ncfdtrinc_types[5] = <char>NPY_DOUBLE
- ufunc_ncfdtrinc_types[6] = <char>NPY_DOUBLE
- ufunc_ncfdtrinc_types[7] = <char>NPY_DOUBLE
- ufunc_ncfdtrinc_types[8] = <char>NPY_DOUBLE
- ufunc_ncfdtrinc_types[9] = <char>NPY_DOUBLE
- ufunc_ncfdtrinc_ptr[2*0] = <void*>_func_ncfdtrinc
- ufunc_ncfdtrinc_ptr[2*0+1] = <void*>(<char*>"ncfdtrinc")
- ufunc_ncfdtrinc_ptr[2*1] = <void*>_func_ncfdtrinc
- ufunc_ncfdtrinc_ptr[2*1+1] = <void*>(<char*>"ncfdtrinc")
- ufunc_ncfdtrinc_data[0] = &ufunc_ncfdtrinc_ptr[2*0]
- ufunc_ncfdtrinc_data[1] = &ufunc_ncfdtrinc_ptr[2*1]
- ncfdtrinc = np.PyUFunc_FromFuncAndData(ufunc_ncfdtrinc_loops, ufunc_ncfdtrinc_data, ufunc_ncfdtrinc_types, 2, 4, 1, 0, 'ncfdtrinc', ufunc_ncfdtrinc_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_nctdtr_loops[2]
- cdef void *ufunc_nctdtr_ptr[4]
- cdef void *ufunc_nctdtr_data[2]
- cdef char ufunc_nctdtr_types[8]
- cdef char *ufunc_nctdtr_doc = (
- "nctdtr(df, nc, t, out=None)\n"
- "\n"
- "Cumulative distribution function of the non-central `t` distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "df : array_like\n"
- " Degrees of freedom of the distribution. Should be in range (0, inf).\n"
- "nc : array_like\n"
- " Noncentrality parameter.\n"
- "t : array_like\n"
- " Quantiles, i.e., the upper limit of integration.\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "cdf : scalar or ndarray\n"
- " The calculated CDF. If all inputs are scalar, the return will be a\n"
- " float. Otherwise, it will be an array.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "nctdtrit : Inverse CDF (iCDF) of the non-central t distribution.\n"
- "nctdtridf : Calculate degrees of freedom, given CDF and iCDF values.\n"
- "nctdtrinc : Calculate non-centrality parameter, given CDF iCDF values.\n"
- "\n"
- "Notes\n"
- "-----\n"
- "This function calculates the CDF of the non-central t distribution using\n"
- "the Boost Math C++ library [1]_.\n"
- "\n"
- "Note that the argument order of `nctdtr` is different from that of the\n"
- "similar ``cdf`` method of `scipy.stats.nct`: `t` is the last\n"
- "parameter of `nctdtr` but the first parameter of ``scipy.stats.nct.cdf``.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] The Boost Developers. \"Boost C++ Libraries\". https://www.boost.org/.\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> import numpy as np\n"
- ">>> from scipy import special\n"
- ">>> from scipy import stats\n"
- ">>> import matplotlib.pyplot as plt\n"
- "\n"
- "Plot the CDF of the non-central t distribution, for nc=0. Compare with the\n"
- "t-distribution from scipy.stats:\n"
- "\n"
- ">>> x = np.linspace(-5, 5, num=500)\n"
- ">>> df = 3\n"
- ">>> nct_stats = stats.t.cdf(x, df)\n"
- ">>> nct_special = special.nctdtr(df, 0, x)\n"
- "\n"
- ">>> fig = plt.figure()\n"
- ">>> ax = fig.add_subplot(111)\n"
- ">>> ax.plot(x, nct_stats, 'b-', lw=3)\n"
- ">>> ax.plot(x, nct_special, 'r-')\n"
- ">>> plt.show()")
- ufunc_nctdtr_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc_nctdtr_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_nctdtr_types[0] = <char>NPY_FLOAT
- ufunc_nctdtr_types[1] = <char>NPY_FLOAT
- ufunc_nctdtr_types[2] = <char>NPY_FLOAT
- ufunc_nctdtr_types[3] = <char>NPY_FLOAT
- ufunc_nctdtr_types[4] = <char>NPY_DOUBLE
- ufunc_nctdtr_types[5] = <char>NPY_DOUBLE
- ufunc_nctdtr_types[6] = <char>NPY_DOUBLE
- ufunc_nctdtr_types[7] = <char>NPY_DOUBLE
- ufunc_nctdtr_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_nct_cdf_float
- ufunc_nctdtr_ptr[2*0+1] = <void*>(<char*>"nctdtr")
- ufunc_nctdtr_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_nct_cdf_double
- ufunc_nctdtr_ptr[2*1+1] = <void*>(<char*>"nctdtr")
- ufunc_nctdtr_data[0] = &ufunc_nctdtr_ptr[2*0]
- ufunc_nctdtr_data[1] = &ufunc_nctdtr_ptr[2*1]
- nctdtr = np.PyUFunc_FromFuncAndData(ufunc_nctdtr_loops, ufunc_nctdtr_data, ufunc_nctdtr_types, 2, 3, 1, 0, 'nctdtr', ufunc_nctdtr_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_nctdtridf_loops[2]
- cdef void *ufunc_nctdtridf_ptr[4]
- cdef void *ufunc_nctdtridf_data[2]
- cdef char ufunc_nctdtridf_types[8]
- cdef char *ufunc_nctdtridf_doc = (
- "nctdtridf(p, nc, t, out=None)\n"
- "\n"
- "Calculate degrees of freedom for non-central t distribution.\n"
- "\n"
- "See `nctdtr` for more details.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "p : array_like\n"
- " CDF values, in range (0, 1].\n"
- "nc : array_like\n"
- " Noncentrality parameter. Should be in range (-1e6, 1e6).\n"
- "t : array_like\n"
- " Quantiles, i.e., the upper limit of integration.\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "df : scalar or ndarray\n"
- " The degrees of freedom. If all inputs are scalar, the return will be a\n"
- " float. Otherwise, it will be an array.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "nctdtr : CDF of the non-central `t` distribution.\n"
- "nctdtrit : Inverse CDF (iCDF) of the non-central t distribution.\n"
- "nctdtrinc : Calculate non-centrality parameter, given CDF iCDF values.\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> from scipy.special import nctdtr, nctdtridf\n"
- "\n"
- "Compute the CDF for several values of `df`:\n"
- "\n"
- ">>> df = [1, 2, 3]\n"
- ">>> p = nctdtr(df, 0.25, 1)\n"
- ">>> p\n"
- "array([0.67491974, 0.716464 , 0.73349456])\n"
- "\n"
- "Compute the inverse. We recover the values of `df`, as expected:\n"
- "\n"
- ">>> nctdtridf(p, 0.25, 1)\n"
- "array([1., 2., 3.])")
- ufunc_nctdtridf_loops[0] = <np.PyUFuncGenericFunction>loop_d_ddd__As_fff_f
- ufunc_nctdtridf_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_nctdtridf_types[0] = <char>NPY_FLOAT
- ufunc_nctdtridf_types[1] = <char>NPY_FLOAT
- ufunc_nctdtridf_types[2] = <char>NPY_FLOAT
- ufunc_nctdtridf_types[3] = <char>NPY_FLOAT
- ufunc_nctdtridf_types[4] = <char>NPY_DOUBLE
- ufunc_nctdtridf_types[5] = <char>NPY_DOUBLE
- ufunc_nctdtridf_types[6] = <char>NPY_DOUBLE
- ufunc_nctdtridf_types[7] = <char>NPY_DOUBLE
- ufunc_nctdtridf_ptr[2*0] = <void*>_func_nctdtridf
- ufunc_nctdtridf_ptr[2*0+1] = <void*>(<char*>"nctdtridf")
- ufunc_nctdtridf_ptr[2*1] = <void*>_func_nctdtridf
- ufunc_nctdtridf_ptr[2*1+1] = <void*>(<char*>"nctdtridf")
- ufunc_nctdtridf_data[0] = &ufunc_nctdtridf_ptr[2*0]
- ufunc_nctdtridf_data[1] = &ufunc_nctdtridf_ptr[2*1]
- nctdtridf = np.PyUFunc_FromFuncAndData(ufunc_nctdtridf_loops, ufunc_nctdtridf_data, ufunc_nctdtridf_types, 2, 3, 1, 0, 'nctdtridf', ufunc_nctdtridf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_nctdtrinc_loops[2]
- cdef void *ufunc_nctdtrinc_ptr[4]
- cdef void *ufunc_nctdtrinc_data[2]
- cdef char ufunc_nctdtrinc_types[8]
- cdef char *ufunc_nctdtrinc_doc = (
- "nctdtrinc(df, p, t, out=None)\n"
- "\n"
- "Calculate non-centrality parameter for non-central t distribution.\n"
- "\n"
- "See `nctdtr` for more details.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "df : array_like\n"
- " Degrees of freedom of the distribution. Should be in range (0, inf).\n"
- "p : array_like\n"
- " CDF values, in range (0, 1].\n"
- "t : array_like\n"
- " Quantiles, i.e., the upper limit of integration.\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "nc : scalar or ndarray\n"
- " Noncentrality parameter\n"
- "\n"
- "See Also\n"
- "--------\n"
- "nctdtr : CDF of the non-central `t` distribution.\n"
- "nctdtrit : Inverse CDF (iCDF) of the non-central t distribution.\n"
- "nctdtridf : Calculate degrees of freedom, given CDF and iCDF values.\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> from scipy.special import nctdtr, nctdtrinc\n"
- "\n"
- "Compute the CDF for several values of `nc`:\n"
- "\n"
- ">>> nc = [0.5, 1.5, 2.5]\n"
- ">>> p = nctdtr(3, nc, 1.5)\n"
- ">>> p\n"
- "array([0.77569497, 0.45524533, 0.1668691 ])\n"
- "\n"
- "Compute the inverse. We recover the values of `nc`, as expected:\n"
- "\n"
- ">>> nctdtrinc(3, p, 1.5)\n"
- "array([0.5, 1.5, 2.5])")
- ufunc_nctdtrinc_loops[0] = <np.PyUFuncGenericFunction>loop_d_ddd__As_fff_f
- ufunc_nctdtrinc_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_nctdtrinc_types[0] = <char>NPY_FLOAT
- ufunc_nctdtrinc_types[1] = <char>NPY_FLOAT
- ufunc_nctdtrinc_types[2] = <char>NPY_FLOAT
- ufunc_nctdtrinc_types[3] = <char>NPY_FLOAT
- ufunc_nctdtrinc_types[4] = <char>NPY_DOUBLE
- ufunc_nctdtrinc_types[5] = <char>NPY_DOUBLE
- ufunc_nctdtrinc_types[6] = <char>NPY_DOUBLE
- ufunc_nctdtrinc_types[7] = <char>NPY_DOUBLE
- ufunc_nctdtrinc_ptr[2*0] = <void*>_func_nctdtrinc
- ufunc_nctdtrinc_ptr[2*0+1] = <void*>(<char*>"nctdtrinc")
- ufunc_nctdtrinc_ptr[2*1] = <void*>_func_nctdtrinc
- ufunc_nctdtrinc_ptr[2*1+1] = <void*>(<char*>"nctdtrinc")
- ufunc_nctdtrinc_data[0] = &ufunc_nctdtrinc_ptr[2*0]
- ufunc_nctdtrinc_data[1] = &ufunc_nctdtrinc_ptr[2*1]
- nctdtrinc = np.PyUFunc_FromFuncAndData(ufunc_nctdtrinc_loops, ufunc_nctdtrinc_data, ufunc_nctdtrinc_types, 2, 3, 1, 0, 'nctdtrinc', ufunc_nctdtrinc_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_nctdtrit_loops[2]
- cdef void *ufunc_nctdtrit_ptr[4]
- cdef void *ufunc_nctdtrit_data[2]
- cdef char ufunc_nctdtrit_types[8]
- cdef char *ufunc_nctdtrit_doc = (
- "nctdtrit(df, nc, p, out=None)\n"
- "\n"
- "Inverse cumulative distribution function of the non-central t distribution.\n"
- "\n"
- "See `nctdtr` for more details.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "df : array_like\n"
- " Degrees of freedom of the distribution. Should be in range (0, inf).\n"
- "nc : array_like\n"
- " Noncentrality parameter.\n"
- "p : array_like\n"
- " CDF values, in range (0, 1].\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "t : scalar or ndarray\n"
- " Quantiles\n"
- "\n"
- "See Also\n"
- "--------\n"
- "nctdtr : CDF of the non-central `t` distribution.\n"
- "nctdtridf : Calculate degrees of freedom, given CDF and iCDF values.\n"
- "nctdtrinc : Calculate non-centrality parameter, given CDF iCDF values.\n"
- "\n"
- "Notes\n"
- "-----\n"
- "This function calculates the quantile of the non-central t distribution using\n"
- "the Boost Math C++ library [1]_.\n"
- "\n"
- "Note that the argument order of `nctdtrit` is different from that of the\n"
- "similar ``ppf`` method of `scipy.stats.nct`: `t` is the last\n"
- "parameter of `nctdtrit` but the first parameter of ``scipy.stats.nct.ppf``.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] The Boost Developers. \"Boost C++ Libraries\". https://www.boost.org/.\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> from scipy.special import nctdtr, nctdtrit\n"
- "\n"
- "Compute the CDF for several values of `t`:\n"
- "\n"
- ">>> t = [0.5, 1, 1.5]\n"
- ">>> p = nctdtr(3, 1, t)\n"
- ">>> p\n"
- "array([0.29811049, 0.46922687, 0.6257559 ])\n"
- "\n"
- "Compute the inverse. We recover the values of `t`, as expected:\n"
- "\n"
- ">>> nctdtrit(3, 1, p)\n"
- "array([0.5, 1. , 1.5])")
- ufunc_nctdtrit_loops[0] = <np.PyUFuncGenericFunction>loop_f_fff__As_fff_f
- ufunc_nctdtrit_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_nctdtrit_types[0] = <char>NPY_FLOAT
- ufunc_nctdtrit_types[1] = <char>NPY_FLOAT
- ufunc_nctdtrit_types[2] = <char>NPY_FLOAT
- ufunc_nctdtrit_types[3] = <char>NPY_FLOAT
- ufunc_nctdtrit_types[4] = <char>NPY_DOUBLE
- ufunc_nctdtrit_types[5] = <char>NPY_DOUBLE
- ufunc_nctdtrit_types[6] = <char>NPY_DOUBLE
- ufunc_nctdtrit_types[7] = <char>NPY_DOUBLE
- ufunc_nctdtrit_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_nct_ppf_float
- ufunc_nctdtrit_ptr[2*0+1] = <void*>(<char*>"nctdtrit")
- ufunc_nctdtrit_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_nct_ppf_double
- ufunc_nctdtrit_ptr[2*1+1] = <void*>(<char*>"nctdtrit")
- ufunc_nctdtrit_data[0] = &ufunc_nctdtrit_ptr[2*0]
- ufunc_nctdtrit_data[1] = &ufunc_nctdtrit_ptr[2*1]
- nctdtrit = np.PyUFunc_FromFuncAndData(ufunc_nctdtrit_loops, ufunc_nctdtrit_data, ufunc_nctdtrit_types, 2, 3, 1, 0, 'nctdtrit', ufunc_nctdtrit_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_ndtri_loops[2]
- cdef void *ufunc_ndtri_ptr[4]
- cdef void *ufunc_ndtri_data[2]
- cdef char ufunc_ndtri_types[4]
- cdef char *ufunc_ndtri_doc = (
- "ndtri(y, out=None)\n"
- "\n"
- "Inverse of `ndtr` vs x\n"
- "\n"
- "Returns the argument x for which the area under the standard normal\n"
- "probability density function (integrated from minus infinity to `x`)\n"
- "is equal to y.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "p : array_like\n"
- " Probability\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "x : scalar or ndarray\n"
- " Value of x such that ``ndtr(x) == p``.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "ndtr : Standard normal cumulative probability distribution\n"
- "ndtri_exp : Inverse of log_ndtr\n"
- "\n"
- "Examples\n"
- "--------\n"
- "`ndtri` is the percentile function of the standard normal distribution.\n"
- "This means it returns the inverse of the cumulative density `ndtr`. First,\n"
- "let us compute a cumulative density value.\n"
- "\n"
- ">>> import numpy as np\n"
- ">>> from scipy.special import ndtri, ndtr\n"
- ">>> cdf_val = ndtr(2)\n"
- ">>> cdf_val\n"
- "0.9772498680518208\n"
- "\n"
- "Verify that `ndtri` yields the original value for `x` up to floating point\n"
- "errors.\n"
- "\n"
- ">>> ndtri(cdf_val)\n"
- "2.0000000000000004\n"
- "\n"
- "Plot the function. For that purpose, we provide a NumPy array as argument.\n"
- "\n"
- ">>> import matplotlib.pyplot as plt\n"
- ">>> x = np.linspace(0.01, 1, 200)\n"
- ">>> fig, ax = plt.subplots()\n"
- ">>> ax.plot(x, ndtri(x))\n"
- ">>> ax.set_title(\"Standard normal percentile function\")\n"
- ">>> plt.show()")
- ufunc_ndtri_loops[0] = <np.PyUFuncGenericFunction>loop_d_d__As_f_f
- ufunc_ndtri_loops[1] = <np.PyUFuncGenericFunction>loop_d_d__As_d_d
- ufunc_ndtri_types[0] = <char>NPY_FLOAT
- ufunc_ndtri_types[1] = <char>NPY_FLOAT
- ufunc_ndtri_types[2] = <char>NPY_DOUBLE
- ufunc_ndtri_types[3] = <char>NPY_DOUBLE
- ufunc_ndtri_ptr[2*0] = <void*>_func_xsf_ndtri
- ufunc_ndtri_ptr[2*0+1] = <void*>(<char*>"ndtri")
- ufunc_ndtri_ptr[2*1] = <void*>_func_xsf_ndtri
- ufunc_ndtri_ptr[2*1+1] = <void*>(<char*>"ndtri")
- ufunc_ndtri_data[0] = &ufunc_ndtri_ptr[2*0]
- ufunc_ndtri_data[1] = &ufunc_ndtri_ptr[2*1]
- ndtri = np.PyUFunc_FromFuncAndData(ufunc_ndtri_loops, ufunc_ndtri_data, ufunc_ndtri_types, 2, 1, 1, 0, 'ndtri', ufunc_ndtri_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_ndtri_exp_loops[2]
- cdef void *ufunc_ndtri_exp_ptr[4]
- cdef void *ufunc_ndtri_exp_data[2]
- cdef char ufunc_ndtri_exp_types[4]
- cdef char *ufunc_ndtri_exp_doc = (
- "ndtri_exp(y, out=None)\n"
- "\n"
- "Inverse of `log_ndtr` vs x. Allows for greater precision than\n"
- "`ndtri` composed with `numpy.exp` for very small values of y and for\n"
- "y close to 0.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "y : array_like of float\n"
- " Function argument\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray\n"
- " Inverse of the log CDF of the standard normal distribution, evaluated\n"
- " at y.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "log_ndtr : log of the standard normal cumulative distribution function\n"
- "ndtr : standard normal cumulative distribution function\n"
- "ndtri : standard normal percentile function\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> import numpy as np\n"
- ">>> import scipy.special as sc\n"
- "\n"
- "`ndtri_exp` agrees with the naive implementation when the latter does\n"
- "not suffer from underflow.\n"
- "\n"
- ">>> sc.ndtri_exp(-1)\n"
- "-0.33747496376420244\n"
- ">>> sc.ndtri(np.exp(-1))\n"
- "-0.33747496376420244\n"
- "\n"
- "For extreme values of y, the naive approach fails\n"
- "\n"
- ">>> sc.ndtri(np.exp(-800))\n"
- "-inf\n"
- ">>> sc.ndtri(np.exp(-1e-20))\n"
- "inf\n"
- "\n"
- "whereas `ndtri_exp` is still able to compute the result to high precision.\n"
- "\n"
- ">>> sc.ndtri_exp(-800)\n"
- "-39.88469483825668\n"
- ">>> sc.ndtri_exp(-1e-20)\n"
- "9.262340089798409")
- ufunc_ndtri_exp_loops[0] = <np.PyUFuncGenericFunction>loop_d_d__As_f_f
- ufunc_ndtri_exp_loops[1] = <np.PyUFuncGenericFunction>loop_d_d__As_d_d
- ufunc_ndtri_exp_types[0] = <char>NPY_FLOAT
- ufunc_ndtri_exp_types[1] = <char>NPY_FLOAT
- ufunc_ndtri_exp_types[2] = <char>NPY_DOUBLE
- ufunc_ndtri_exp_types[3] = <char>NPY_DOUBLE
- ufunc_ndtri_exp_ptr[2*0] = <void*>_func_ndtri_exp
- ufunc_ndtri_exp_ptr[2*0+1] = <void*>(<char*>"ndtri_exp")
- ufunc_ndtri_exp_ptr[2*1] = <void*>_func_ndtri_exp
- ufunc_ndtri_exp_ptr[2*1+1] = <void*>(<char*>"ndtri_exp")
- ufunc_ndtri_exp_data[0] = &ufunc_ndtri_exp_ptr[2*0]
- ufunc_ndtri_exp_data[1] = &ufunc_ndtri_exp_ptr[2*1]
- ndtri_exp = np.PyUFunc_FromFuncAndData(ufunc_ndtri_exp_loops, ufunc_ndtri_exp_data, ufunc_ndtri_exp_types, 2, 1, 1, 0, 'ndtri_exp', ufunc_ndtri_exp_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_nrdtrimn_loops[2]
- cdef void *ufunc_nrdtrimn_ptr[4]
- cdef void *ufunc_nrdtrimn_data[2]
- cdef char ufunc_nrdtrimn_types[8]
- cdef char *ufunc_nrdtrimn_doc = (
- "nrdtrimn(p, std, x, out=None)\n"
- "\n"
- "Calculate mean of normal distribution given other params.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "p : array_like\n"
- " CDF values, in range (0, 1].\n"
- "std : array_like\n"
- " Standard deviation.\n"
- "x : array_like\n"
- " Quantiles, i.e. the upper limit of integration.\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "mn : scalar or ndarray\n"
- " The mean of the normal distribution.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "scipy.stats.norm : Normal distribution\n"
- "ndtr : Standard normal cumulative probability distribution\n"
- "ndtri : Inverse of standard normal CDF with respect to quantile\n"
- "nrdtrisd : Inverse of normal distribution CDF with respect to\n"
- " standard deviation\n"
- "\n"
- "Examples\n"
- "--------\n"
- "`nrdtrimn` can be used to recover the mean of a normal distribution\n"
- "if we know the CDF value `p` for a given quantile `x` and the\n"
- "standard deviation `std`. First, we calculate\n"
- "the normal distribution CDF for an exemplary parameter set.\n"
- "\n"
- ">>> from scipy.stats import norm\n"
- ">>> mean = 3.\n"
- ">>> std = 2.\n"
- ">>> x = 6.\n"
- ">>> p = norm.cdf(x, loc=mean, scale=std)\n"
- ">>> p\n"
- "0.9331927987311419\n"
- "\n"
- "Verify that `nrdtrimn` returns the original value for `mean`.\n"
- "\n"
- ">>> from scipy.special import nrdtrimn\n"
- ">>> nrdtrimn(p, std, x)\n"
- "3.0000000000000004")
- ufunc_nrdtrimn_loops[0] = <np.PyUFuncGenericFunction>loop_d_ddd__As_fff_f
- ufunc_nrdtrimn_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_nrdtrimn_types[0] = <char>NPY_FLOAT
- ufunc_nrdtrimn_types[1] = <char>NPY_FLOAT
- ufunc_nrdtrimn_types[2] = <char>NPY_FLOAT
- ufunc_nrdtrimn_types[3] = <char>NPY_FLOAT
- ufunc_nrdtrimn_types[4] = <char>NPY_DOUBLE
- ufunc_nrdtrimn_types[5] = <char>NPY_DOUBLE
- ufunc_nrdtrimn_types[6] = <char>NPY_DOUBLE
- ufunc_nrdtrimn_types[7] = <char>NPY_DOUBLE
- ufunc_nrdtrimn_ptr[2*0] = <void*>_func_nrdtrimn
- ufunc_nrdtrimn_ptr[2*0+1] = <void*>(<char*>"nrdtrimn")
- ufunc_nrdtrimn_ptr[2*1] = <void*>_func_nrdtrimn
- ufunc_nrdtrimn_ptr[2*1+1] = <void*>(<char*>"nrdtrimn")
- ufunc_nrdtrimn_data[0] = &ufunc_nrdtrimn_ptr[2*0]
- ufunc_nrdtrimn_data[1] = &ufunc_nrdtrimn_ptr[2*1]
- nrdtrimn = np.PyUFunc_FromFuncAndData(ufunc_nrdtrimn_loops, ufunc_nrdtrimn_data, ufunc_nrdtrimn_types, 2, 3, 1, 0, 'nrdtrimn', ufunc_nrdtrimn_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_nrdtrisd_loops[2]
- cdef void *ufunc_nrdtrisd_ptr[4]
- cdef void *ufunc_nrdtrisd_data[2]
- cdef char ufunc_nrdtrisd_types[8]
- cdef char *ufunc_nrdtrisd_doc = (
- "nrdtrisd(mn, p, x, out=None)\n"
- "\n"
- "Calculate standard deviation of normal distribution given other params.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "mn : scalar or ndarray\n"
- " The mean of the normal distribution.\n"
- "p : array_like\n"
- " CDF values, in range (0, 1].\n"
- "x : array_like\n"
- " Quantiles, i.e. the upper limit of integration.\n"
- "\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "std : scalar or ndarray\n"
- " Standard deviation.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "scipy.stats.norm : Normal distribution\n"
- "ndtr : Standard normal cumulative probability distribution\n"
- "ndtri : Inverse of standard normal CDF with respect to quantile\n"
- "nrdtrimn : Inverse of normal distribution CDF with respect to\n"
- " mean\n"
- "\n"
- "Examples\n"
- "--------\n"
- "`nrdtrisd` can be used to recover the standard deviation of a normal\n"
- "distribution if we know the CDF value `p` for a given quantile `x` and\n"
- "the mean `mn`. First, we calculate the normal distribution CDF for an\n"
- "exemplary parameter set.\n"
- "\n"
- ">>> from scipy.stats import norm\n"
- ">>> mean = 3.\n"
- ">>> std = 2.\n"
- ">>> x = 6.\n"
- ">>> p = norm.cdf(x, loc=mean, scale=std)\n"
- ">>> p\n"
- "0.9331927987311419\n"
- "\n"
- "Verify that `nrdtrisd` returns the original value for `std`.\n"
- "\n"
- ">>> from scipy.special import nrdtrisd\n"
- ">>> nrdtrisd(mean, p, x)\n"
- "2.0000000000000004")
- ufunc_nrdtrisd_loops[0] = <np.PyUFuncGenericFunction>loop_d_ddd__As_fff_f
- ufunc_nrdtrisd_loops[1] = <np.PyUFuncGenericFunction>loop_d_ddd__As_ddd_d
- ufunc_nrdtrisd_types[0] = <char>NPY_FLOAT
- ufunc_nrdtrisd_types[1] = <char>NPY_FLOAT
- ufunc_nrdtrisd_types[2] = <char>NPY_FLOAT
- ufunc_nrdtrisd_types[3] = <char>NPY_FLOAT
- ufunc_nrdtrisd_types[4] = <char>NPY_DOUBLE
- ufunc_nrdtrisd_types[5] = <char>NPY_DOUBLE
- ufunc_nrdtrisd_types[6] = <char>NPY_DOUBLE
- ufunc_nrdtrisd_types[7] = <char>NPY_DOUBLE
- ufunc_nrdtrisd_ptr[2*0] = <void*>_func_nrdtrisd
- ufunc_nrdtrisd_ptr[2*0+1] = <void*>(<char*>"nrdtrisd")
- ufunc_nrdtrisd_ptr[2*1] = <void*>_func_nrdtrisd
- ufunc_nrdtrisd_ptr[2*1+1] = <void*>(<char*>"nrdtrisd")
- ufunc_nrdtrisd_data[0] = &ufunc_nrdtrisd_ptr[2*0]
- ufunc_nrdtrisd_data[1] = &ufunc_nrdtrisd_ptr[2*1]
- nrdtrisd = np.PyUFunc_FromFuncAndData(ufunc_nrdtrisd_loops, ufunc_nrdtrisd_data, ufunc_nrdtrisd_types, 2, 3, 1, 0, 'nrdtrisd', ufunc_nrdtrisd_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_owens_t_loops[2]
- cdef void *ufunc_owens_t_ptr[4]
- cdef void *ufunc_owens_t_data[2]
- cdef char ufunc_owens_t_types[6]
- cdef char *ufunc_owens_t_doc = (
- "owens_t(h, a, out=None)\n"
- "\n"
- "Owen's T Function.\n"
- "\n"
- "The function T(h, a) gives the probability of the event\n"
- "(X > h and 0 < Y < a * X) where X and Y are independent\n"
- "standard normal random variables.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "h: array_like\n"
- " Input value.\n"
- "a: array_like\n"
- " Input value.\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "t: scalar or ndarray\n"
- " Probability of the event (X > h and 0 < Y < a * X),\n"
- " where X and Y are independent standard normal random variables.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] M. Patefield and D. Tandy, \"Fast and accurate calculation of\n"
- " Owen's T Function\", Statistical Software vol. 5, pp. 1-25, 2000.\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> from scipy import special\n"
- ">>> a = 3.5\n"
- ">>> h = 0.78\n"
- ">>> special.owens_t(h, a)\n"
- "0.10877216734852274")
- ufunc_owens_t_loops[0] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc_owens_t_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_owens_t_types[0] = <char>NPY_FLOAT
- ufunc_owens_t_types[1] = <char>NPY_FLOAT
- ufunc_owens_t_types[2] = <char>NPY_FLOAT
- ufunc_owens_t_types[3] = <char>NPY_DOUBLE
- ufunc_owens_t_types[4] = <char>NPY_DOUBLE
- ufunc_owens_t_types[5] = <char>NPY_DOUBLE
- ufunc_owens_t_ptr[2*0] = <void*>_func_xsf_owens_t
- ufunc_owens_t_ptr[2*0+1] = <void*>(<char*>"owens_t")
- ufunc_owens_t_ptr[2*1] = <void*>_func_xsf_owens_t
- ufunc_owens_t_ptr[2*1+1] = <void*>(<char*>"owens_t")
- ufunc_owens_t_data[0] = &ufunc_owens_t_ptr[2*0]
- ufunc_owens_t_data[1] = &ufunc_owens_t_ptr[2*1]
- owens_t = np.PyUFunc_FromFuncAndData(ufunc_owens_t_loops, ufunc_owens_t_data, ufunc_owens_t_types, 2, 2, 1, 0, 'owens_t', ufunc_owens_t_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_pdtr_loops[2]
- cdef void *ufunc_pdtr_ptr[4]
- cdef void *ufunc_pdtr_data[2]
- cdef char ufunc_pdtr_types[6]
- cdef char *ufunc_pdtr_doc = (
- "pdtr(k, m, out=None)\n"
- "\n"
- "Poisson cumulative distribution function.\n"
- "\n"
- "Defined as the probability that a Poisson-distributed random\n"
- "variable with event rate :math:`m` is less than or equal to\n"
- ":math:`k`. More concretely, this works out to be [1]_\n"
- "\n"
- ".. math::\n"
- "\n"
- " \\exp(-m) \\sum_{j = 0}^{\\lfloor{k}\\rfloor} \\frac{m^j}{j!}.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "k : array_like\n"
- " Number of occurrences (nonnegative, real)\n"
- "m : array_like\n"
- " Shape parameter (nonnegative, real)\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray\n"
- " Values of the Poisson cumulative distribution function\n"
- "\n"
- "See Also\n"
- "--------\n"
- "pdtrc : Poisson survival function\n"
- "pdtrik : inverse of `pdtr` with respect to `k`\n"
- "pdtri : inverse of `pdtr` with respect to `m`\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] https://en.wikipedia.org/wiki/Poisson_distribution\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> import numpy as np\n"
- ">>> import scipy.special as sc\n"
- "\n"
- "It is a cumulative distribution function, so it converges to 1\n"
- "monotonically as `k` goes to infinity.\n"
- "\n"
- ">>> sc.pdtr([1, 10, 100, np.inf], 1)\n"
- "array([0.73575888, 0.99999999, 1. , 1. ])\n"
- "\n"
- "It is discontinuous at integers and constant between integers.\n"
- "\n"
- ">>> sc.pdtr([1, 1.5, 1.9, 2], 1)\n"
- "array([0.73575888, 0.73575888, 0.73575888, 0.9196986 ])")
- ufunc_pdtr_loops[0] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc_pdtr_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_pdtr_types[0] = <char>NPY_FLOAT
- ufunc_pdtr_types[1] = <char>NPY_FLOAT
- ufunc_pdtr_types[2] = <char>NPY_FLOAT
- ufunc_pdtr_types[3] = <char>NPY_DOUBLE
- ufunc_pdtr_types[4] = <char>NPY_DOUBLE
- ufunc_pdtr_types[5] = <char>NPY_DOUBLE
- ufunc_pdtr_ptr[2*0] = <void*>_func_xsf_pdtr
- ufunc_pdtr_ptr[2*0+1] = <void*>(<char*>"pdtr")
- ufunc_pdtr_ptr[2*1] = <void*>_func_xsf_pdtr
- ufunc_pdtr_ptr[2*1+1] = <void*>(<char*>"pdtr")
- ufunc_pdtr_data[0] = &ufunc_pdtr_ptr[2*0]
- ufunc_pdtr_data[1] = &ufunc_pdtr_ptr[2*1]
- pdtr = np.PyUFunc_FromFuncAndData(ufunc_pdtr_loops, ufunc_pdtr_data, ufunc_pdtr_types, 2, 2, 1, 0, 'pdtr', ufunc_pdtr_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_pdtrc_loops[2]
- cdef void *ufunc_pdtrc_ptr[4]
- cdef void *ufunc_pdtrc_data[2]
- cdef char ufunc_pdtrc_types[6]
- cdef char *ufunc_pdtrc_doc = (
- "pdtrc(k, m, out=None)\n"
- "\n"
- "Poisson survival function\n"
- "\n"
- "Returns the sum of the terms from k+1 to infinity of the Poisson\n"
- "distribution: sum(exp(-m) * m**j / j!, j=k+1..inf) = gammainc(\n"
- "k+1, m). Arguments must both be non-negative doubles.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "k : array_like\n"
- " Number of occurrences (nonnegative, real)\n"
- "m : array_like\n"
- " Shape parameter (nonnegative, real)\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray\n"
- " Values of the Poisson survival function\n"
- "\n"
- "See Also\n"
- "--------\n"
- "pdtr : Poisson cumulative distribution function\n"
- "pdtrik : inverse of `pdtr` with respect to `k`\n"
- "pdtri : inverse of `pdtr` with respect to `m`\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> import numpy as np\n"
- ">>> import scipy.special as sc\n"
- "\n"
- "It is a survival function, so it decreases to 0\n"
- "monotonically as `k` goes to infinity.\n"
- "\n"
- ">>> k = np.array([1, 10, 100, np.inf])\n"
- ">>> sc.pdtrc(k, 1)\n"
- "array([2.64241118e-001, 1.00477664e-008, 3.94147589e-161, 0.00000000e+000])\n"
- "\n"
- "It can be expressed in terms of the lower incomplete gamma\n"
- "function `gammainc`.\n"
- "\n"
- ">>> sc.gammainc(k + 1, 1)\n"
- "array([2.64241118e-001, 1.00477664e-008, 3.94147589e-161, 0.00000000e+000])")
- ufunc_pdtrc_loops[0] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc_pdtrc_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_pdtrc_types[0] = <char>NPY_FLOAT
- ufunc_pdtrc_types[1] = <char>NPY_FLOAT
- ufunc_pdtrc_types[2] = <char>NPY_FLOAT
- ufunc_pdtrc_types[3] = <char>NPY_DOUBLE
- ufunc_pdtrc_types[4] = <char>NPY_DOUBLE
- ufunc_pdtrc_types[5] = <char>NPY_DOUBLE
- ufunc_pdtrc_ptr[2*0] = <void*>_func_xsf_pdtrc
- ufunc_pdtrc_ptr[2*0+1] = <void*>(<char*>"pdtrc")
- ufunc_pdtrc_ptr[2*1] = <void*>_func_xsf_pdtrc
- ufunc_pdtrc_ptr[2*1+1] = <void*>(<char*>"pdtrc")
- ufunc_pdtrc_data[0] = &ufunc_pdtrc_ptr[2*0]
- ufunc_pdtrc_data[1] = &ufunc_pdtrc_ptr[2*1]
- pdtrc = np.PyUFunc_FromFuncAndData(ufunc_pdtrc_loops, ufunc_pdtrc_data, ufunc_pdtrc_types, 2, 2, 1, 0, 'pdtrc', ufunc_pdtrc_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_pdtri_loops[3]
- cdef void *ufunc_pdtri_ptr[6]
- cdef void *ufunc_pdtri_data[3]
- cdef char ufunc_pdtri_types[9]
- cdef char *ufunc_pdtri_doc = (
- "pdtri(k, y, out=None)\n"
- "\n"
- "Inverse to `pdtr` vs m\n"
- "\n"
- "Returns the Poisson variable `m` such that the sum from 0 to `k` of\n"
- "the Poisson density is equal to the given probability `y`:\n"
- "calculated by ``gammaincinv(k + 1, y)``. `k` must be a nonnegative\n"
- "integer and `y` between 0 and 1.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "k : array_like\n"
- " Number of occurrences (nonnegative, real)\n"
- "y : array_like\n"
- " Probability\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray\n"
- " Values of the shape parameter `m` such that ``pdtr(k, m) = p``\n"
- "\n"
- "See Also\n"
- "--------\n"
- "pdtr : Poisson cumulative distribution function\n"
- "pdtrc : Poisson survival function\n"
- "pdtrik : inverse of `pdtr` with respect to `k`\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> import scipy.special as sc\n"
- "\n"
- "Compute the CDF for several values of `m`:\n"
- "\n"
- ">>> m = [0.5, 1, 1.5]\n"
- ">>> p = sc.pdtr(1, m)\n"
- ">>> p\n"
- "array([0.90979599, 0.73575888, 0.5578254 ])\n"
- "\n"
- "Compute the inverse. We recover the values of `m`, as expected:\n"
- "\n"
- ">>> sc.pdtri(1, p)\n"
- "array([0.5, 1. , 1.5])")
- ufunc_pdtri_loops[0] = <np.PyUFuncGenericFunction>loop_d_pd__As_pd_d
- ufunc_pdtri_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc_pdtri_loops[2] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_pdtri_types[0] = <char>NPY_INTP
- ufunc_pdtri_types[1] = <char>NPY_DOUBLE
- ufunc_pdtri_types[2] = <char>NPY_DOUBLE
- ufunc_pdtri_types[3] = <char>NPY_FLOAT
- ufunc_pdtri_types[4] = <char>NPY_FLOAT
- ufunc_pdtri_types[5] = <char>NPY_FLOAT
- ufunc_pdtri_types[6] = <char>NPY_DOUBLE
- ufunc_pdtri_types[7] = <char>NPY_DOUBLE
- ufunc_pdtri_types[8] = <char>NPY_DOUBLE
- ufunc_pdtri_ptr[2*0] = <void*>_func_cephes_pdtri_wrap
- ufunc_pdtri_ptr[2*0+1] = <void*>(<char*>"pdtri")
- ufunc_pdtri_ptr[2*1] = <void*>_func_pdtri_unsafe
- ufunc_pdtri_ptr[2*1+1] = <void*>(<char*>"pdtri")
- ufunc_pdtri_ptr[2*2] = <void*>_func_pdtri_unsafe
- ufunc_pdtri_ptr[2*2+1] = <void*>(<char*>"pdtri")
- ufunc_pdtri_data[0] = &ufunc_pdtri_ptr[2*0]
- ufunc_pdtri_data[1] = &ufunc_pdtri_ptr[2*1]
- ufunc_pdtri_data[2] = &ufunc_pdtri_ptr[2*2]
- pdtri = np.PyUFunc_FromFuncAndData(ufunc_pdtri_loops, ufunc_pdtri_data, ufunc_pdtri_types, 3, 2, 1, 0, 'pdtri', ufunc_pdtri_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_pdtrik_loops[2]
- cdef void *ufunc_pdtrik_ptr[4]
- cdef void *ufunc_pdtrik_data[2]
- cdef char ufunc_pdtrik_types[6]
- cdef char *ufunc_pdtrik_doc = (
- "pdtrik(p, m, out=None)\n"
- "\n"
- "Inverse to `pdtr` vs `k`.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "p : array_like\n"
- " Probability\n"
- "m : array_like\n"
- " Shape parameter (nonnegative, real)\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray\n"
- " The number of occurrences `k` such that ``pdtr(k, m) = p``\n"
- "\n"
- "Notes\n"
- "-----\n"
- "This function relies on the ``gamma_q_inva`` function from the Boost\n"
- "Math C++ library [1]_.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] The Boost Developers. \"Boost C++ Libraries\". https://www.boost.org/.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "pdtr : Poisson cumulative distribution function\n"
- "pdtrc : Poisson survival function\n"
- "pdtri : inverse of `pdtr` with respect to `m`\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> import scipy.special as sc\n"
- "\n"
- "Compute the CDF for several values of `k`:\n"
- "\n"
- ">>> k = [1, 2, 3]\n"
- ">>> p = sc.pdtr(k, 2)\n"
- ">>> p\n"
- "array([0.40600585, 0.67667642, 0.85712346])\n"
- "\n"
- "Compute the inverse. We recover the values of `k`, as expected:\n"
- "\n"
- ">>> sc.pdtrik(p, 2)\n"
- "array([1., 2., 3.])")
- ufunc_pdtrik_loops[0] = <np.PyUFuncGenericFunction>loop_f_ff__As_ff_f
- ufunc_pdtrik_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_pdtrik_types[0] = <char>NPY_FLOAT
- ufunc_pdtrik_types[1] = <char>NPY_FLOAT
- ufunc_pdtrik_types[2] = <char>NPY_FLOAT
- ufunc_pdtrik_types[3] = <char>NPY_DOUBLE
- ufunc_pdtrik_types[4] = <char>NPY_DOUBLE
- ufunc_pdtrik_types[5] = <char>NPY_DOUBLE
- ufunc_pdtrik_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_pdtrik_float
- ufunc_pdtrik_ptr[2*0+1] = <void*>(<char*>"pdtrik")
- ufunc_pdtrik_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_pdtrik_double
- ufunc_pdtrik_ptr[2*1+1] = <void*>(<char*>"pdtrik")
- ufunc_pdtrik_data[0] = &ufunc_pdtrik_ptr[2*0]
- ufunc_pdtrik_data[1] = &ufunc_pdtrik_ptr[2*1]
- pdtrik = np.PyUFunc_FromFuncAndData(ufunc_pdtrik_loops, ufunc_pdtrik_data, ufunc_pdtrik_types, 2, 2, 1, 0, 'pdtrik', ufunc_pdtrik_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_poch_loops[2]
- cdef void *ufunc_poch_ptr[4]
- cdef void *ufunc_poch_data[2]
- cdef char ufunc_poch_types[6]
- cdef char *ufunc_poch_doc = (
- "poch(z, m, out=None)\n"
- "\n"
- "Pochhammer symbol.\n"
- "\n"
- "The Pochhammer symbol (rising factorial) is defined as\n"
- "\n"
- ".. math::\n"
- "\n"
- " (z)_m = \\frac{\\Gamma(z + m)}{\\Gamma(z)}\n"
- "\n"
- "For positive integer `m` it reads\n"
- "\n"
- ".. math::\n"
- "\n"
- " (z)_m = z (z + 1) ... (z + m - 1)\n"
- "\n"
- "See [DLMF]_ for more details.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "z, m : array_like\n"
- " Real-valued arguments.\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray\n"
- " The value of the function.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [DLMF] Nist, Digital Library of Mathematical Functions\n"
- " https://dlmf.nist.gov/5.2#iii\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> import scipy.special as sc\n"
- "\n"
- "It is 1 when m is 0.\n"
- "\n"
- ">>> sc.poch([1, 2, 3, 4], 0)\n"
- "array([1., 1., 1., 1.])\n"
- "\n"
- "For z equal to 1 it reduces to the factorial function.\n"
- "\n"
- ">>> sc.poch(1, 5)\n"
- "120.0\n"
- ">>> 1 * 2 * 3 * 4 * 5\n"
- "120\n"
- "\n"
- "It can be expressed in terms of the gamma function.\n"
- "\n"
- ">>> z, m = 3.7, 2.1\n"
- ">>> sc.poch(z, m)\n"
- "20.529581933776953\n"
- ">>> sc.gamma(z + m) / sc.gamma(z)\n"
- "20.52958193377696")
- ufunc_poch_loops[0] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc_poch_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_poch_types[0] = <char>NPY_FLOAT
- ufunc_poch_types[1] = <char>NPY_FLOAT
- ufunc_poch_types[2] = <char>NPY_FLOAT
- ufunc_poch_types[3] = <char>NPY_DOUBLE
- ufunc_poch_types[4] = <char>NPY_DOUBLE
- ufunc_poch_types[5] = <char>NPY_DOUBLE
- ufunc_poch_ptr[2*0] = <void*>_func_cephes_poch
- ufunc_poch_ptr[2*0+1] = <void*>(<char*>"poch")
- ufunc_poch_ptr[2*1] = <void*>_func_cephes_poch
- ufunc_poch_ptr[2*1+1] = <void*>(<char*>"poch")
- ufunc_poch_data[0] = &ufunc_poch_ptr[2*0]
- ufunc_poch_data[1] = &ufunc_poch_ptr[2*1]
- poch = np.PyUFunc_FromFuncAndData(ufunc_poch_loops, ufunc_poch_data, ufunc_poch_types, 2, 2, 1, 0, 'poch', ufunc_poch_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_powm1_loops[2]
- cdef void *ufunc_powm1_ptr[4]
- cdef void *ufunc_powm1_data[2]
- cdef char ufunc_powm1_types[6]
- cdef char *ufunc_powm1_doc = (
- "powm1(x, y, out=None)\n"
- "\n"
- "Computes ``x**y - 1``.\n"
- "\n"
- "This function is useful when `y` is near 0, or when `x` is near 1.\n"
- "\n"
- "The function is implemented for real types only (unlike ``numpy.power``,\n"
- "which accepts complex inputs).\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " The base. Must be a real type (i.e. integer or float, not complex).\n"
- "y : array_like\n"
- " The exponent. Must be a real type (i.e. integer or float, not complex).\n"
- "\n"
- "Returns\n"
- "-------\n"
- "array_like\n"
- " Result of the calculation\n"
- "\n"
- "Notes\n"
- "-----\n"
- ".. versionadded:: 1.10.0\n"
- "\n"
- "The underlying code is implemented for single precision and double\n"
- "precision floats only. Unlike `numpy.power`, integer inputs to\n"
- "`powm1` are converted to floating point, and complex inputs are\n"
- "not accepted.\n"
- "\n"
- "Note the following edge cases:\n"
- "\n"
- "* ``powm1(x, 0)`` returns 0 for any ``x``, including 0, ``inf``\n"
- " and ``nan``.\n"
- "* ``powm1(1, y)`` returns 0 for any ``y``, including ``nan``\n"
- " and ``inf``.\n"
- "\n"
- "This function wraps the ``powm1`` routine from the\n"
- "Boost Math C++ library [1]_.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] The Boost Developers. \"Boost C++ Libraries\". https://www.boost.org/.\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> import numpy as np\n"
- ">>> from scipy.special import powm1\n"
- "\n"
- ">>> x = np.array([1.2, 10.0, 0.9999999975])\n"
- ">>> y = np.array([1e-9, 1e-11, 0.1875])\n"
- ">>> powm1(x, y)\n"
- "array([ 1.82321557e-10, 2.30258509e-11, -4.68749998e-10])\n"
- "\n"
- "It can be verified that the relative errors in those results\n"
- "are less than 2.5e-16.\n"
- "\n"
- "Compare that to the result of ``x**y - 1``, where the\n"
- "relative errors are all larger than 8e-8:\n"
- "\n"
- ">>> x**y - 1\n"
- "array([ 1.82321491e-10, 2.30258035e-11, -4.68750039e-10])")
- ufunc_powm1_loops[0] = <np.PyUFuncGenericFunction>loop_f_ff__As_ff_f
- ufunc_powm1_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_powm1_types[0] = <char>NPY_FLOAT
- ufunc_powm1_types[1] = <char>NPY_FLOAT
- ufunc_powm1_types[2] = <char>NPY_FLOAT
- ufunc_powm1_types[3] = <char>NPY_DOUBLE
- ufunc_powm1_types[4] = <char>NPY_DOUBLE
- ufunc_powm1_types[5] = <char>NPY_DOUBLE
- ufunc_powm1_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_powm1_float
- ufunc_powm1_ptr[2*0+1] = <void*>(<char*>"powm1")
- ufunc_powm1_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_powm1_double
- ufunc_powm1_ptr[2*1+1] = <void*>(<char*>"powm1")
- ufunc_powm1_data[0] = &ufunc_powm1_ptr[2*0]
- ufunc_powm1_data[1] = &ufunc_powm1_ptr[2*1]
- powm1 = np.PyUFunc_FromFuncAndData(ufunc_powm1_loops, ufunc_powm1_data, ufunc_powm1_types, 2, 2, 1, 0, 'powm1', ufunc_powm1_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_pseudo_huber_loops[2]
- cdef void *ufunc_pseudo_huber_ptr[4]
- cdef void *ufunc_pseudo_huber_data[2]
- cdef char ufunc_pseudo_huber_types[6]
- cdef char *ufunc_pseudo_huber_doc = (
- "pseudo_huber(delta, r, out=None)\n"
- "\n"
- "Pseudo-Huber loss function.\n"
- "\n"
- ".. math:: \\mathrm{pseudo\\_huber}(\\delta, r) =\n"
- " \\delta^2 \\left( \\sqrt{ 1 + \\left( \\frac{r}{\\delta} \\right)^2 } - 1 \\right)\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "delta : array_like\n"
- " Input array, indicating the soft quadratic vs. linear loss changepoint.\n"
- "r : array_like\n"
- " Input array, possibly representing residuals.\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "res : scalar or ndarray\n"
- " The computed Pseudo-Huber loss function values.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "huber: Similar function which this function approximates\n"
- "\n"
- "Notes\n"
- "-----\n"
- "Like `huber`, `pseudo_huber` often serves as a robust loss function\n"
- "in statistics or machine learning to reduce the influence of outliers.\n"
- "Unlike `huber`, `pseudo_huber` is smooth.\n"
- "\n"
- "Typically, `r` represents residuals, the difference\n"
- "between a model prediction and data. Then, for :math:`|r|\\leq\\delta`,\n"
- "`pseudo_huber` resembles the squared error and for :math:`|r|>\\delta` the\n"
- "absolute error. This way, the Pseudo-Huber loss often achieves\n"
- "a fast convergence in model fitting for small residuals like the squared\n"
- "error loss function and still reduces the influence of outliers\n"
- "(:math:`|r|>\\delta`) like the absolute error loss. As :math:`\\delta` is\n"
- "the cutoff between squared and absolute error regimes, it has\n"
- "to be tuned carefully for each problem. `pseudo_huber` is also\n"
- "convex, making it suitable for gradient based optimization. [1]_ [2]_\n"
- "\n"
- ".. versionadded:: 0.15.0\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] Hartley, Zisserman, \"Multiple View Geometry in Computer Vision\".\n"
- " 2003. Cambridge University Press. p. 619\n"
- ".. [2] Charbonnier et al. \"Deterministic edge-preserving regularization\n"
- " in computed imaging\". 1997. IEEE Trans. Image Processing.\n"
- " 6 (2): 298 - 311.\n"
- "\n"
- "Examples\n"
- "--------\n"
- "Import all necessary modules.\n"
- "\n"
- ">>> import numpy as np\n"
- ">>> from scipy.special import pseudo_huber, huber\n"
- ">>> import matplotlib.pyplot as plt\n"
- "\n"
- "Calculate the function for ``delta=1`` at ``r=2``.\n"
- "\n"
- ">>> pseudo_huber(1., 2.)\n"
- "1.2360679774997898\n"
- "\n"
- "Calculate the function at ``r=2`` for different `delta` by providing\n"
- "a list or NumPy array for `delta`.\n"
- "\n"
- ">>> pseudo_huber([1., 2., 4.], 3.)\n"
- "array([2.16227766, 3.21110255, 4. ])\n"
- "\n"
- "Calculate the function for ``delta=1`` at several points by providing\n"
- "a list or NumPy array for `r`.\n"
- "\n"
- ">>> pseudo_huber(2., np.array([1., 1.5, 3., 4.]))\n"
- "array([0.47213595, 1. , 3.21110255, 4.94427191])\n"
- "\n"
- "The function can be calculated for different `delta` and `r` by\n"
- "providing arrays for both with compatible shapes for broadcasting.\n"
- "\n"
- ">>> r = np.array([1., 2.5, 8., 10.])\n"
- ">>> deltas = np.array([[1.], [5.], [9.]])\n"
- ">>> print(r.shape, deltas.shape)\n"
- "(4,) (3, 1)\n"
- "\n"
- ">>> pseudo_huber(deltas, r)\n"
- "array([[ 0.41421356, 1.6925824 , 7.06225775, 9.04987562],\n"
- " [ 0.49509757, 2.95084972, 22.16990566, 30.90169944],\n"
- " [ 0.49846624, 3.06693762, 27.37435121, 40.08261642]])\n"
- "\n"
- "Plot the function for different `delta`.\n"
- "\n"
- ">>> x = np.linspace(-4, 4, 500)\n"
- ">>> deltas = [1, 2, 3]\n"
- ">>> linestyles = [\"dashed\", \"dotted\", \"dashdot\"]\n"
- ">>> fig, ax = plt.subplots()\n"
- ">>> combined_plot_parameters = list(zip(deltas, linestyles))\n"
- ">>> for delta, style in combined_plot_parameters:\n"
- "... ax.plot(x, pseudo_huber(delta, x), label=rf\"$\\delta={delta}$\",\n"
- "... ls=style)\n"
- ">>> ax.legend(loc=\"upper center\")\n"
- ">>> ax.set_xlabel(\"$x$\")\n"
- ">>> ax.set_title(r\"Pseudo-Huber loss function $h_{\\delta}(x)$\")\n"
- ">>> ax.set_xlim(-4, 4)\n"
- ">>> ax.set_ylim(0, 8)\n"
- ">>> plt.show()\n"
- "\n"
- "Finally, illustrate the difference between `huber` and `pseudo_huber` by\n"
- "plotting them and their gradients with respect to `r`. The plot shows\n"
- "that `pseudo_huber` is continuously differentiable while `huber` is not\n"
- "at the points :math:`\\pm\\delta`.\n"
- "\n"
- ">>> def huber_grad(delta, x):\n"
- "... grad = np.copy(x)\n"
- "... linear_area = np.argwhere(np.abs(x) > delta)\n"
- "... grad[linear_area]=delta*np.sign(x[linear_area])\n"
- "... return grad\n"
- ">>> def pseudo_huber_grad(delta, x):\n"
- "... return x* (1+(x/delta)**2)**(-0.5)\n"
- ">>> x=np.linspace(-3, 3, 500)\n"
- ">>> delta = 1.\n"
- ">>> fig, ax = plt.subplots(figsize=(7, 7))\n"
- ">>> ax.plot(x, huber(delta, x), label=\"Huber\", ls=\"dashed\")\n"
- ">>> ax.plot(x, huber_grad(delta, x), label=\"Huber Gradient\", ls=\"dashdot\")\n"
- ">>> ax.plot(x, pseudo_huber(delta, x), label=\"Pseudo-Huber\", ls=\"dotted\")\n"
- ">>> ax.plot(x, pseudo_huber_grad(delta, x), label=\"Pseudo-Huber Gradient\",\n"
- "... ls=\"solid\")\n"
- ">>> ax.legend(loc=\"upper center\")\n"
- ">>> plt.show()")
- ufunc_pseudo_huber_loops[0] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc_pseudo_huber_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_pseudo_huber_types[0] = <char>NPY_FLOAT
- ufunc_pseudo_huber_types[1] = <char>NPY_FLOAT
- ufunc_pseudo_huber_types[2] = <char>NPY_FLOAT
- ufunc_pseudo_huber_types[3] = <char>NPY_DOUBLE
- ufunc_pseudo_huber_types[4] = <char>NPY_DOUBLE
- ufunc_pseudo_huber_types[5] = <char>NPY_DOUBLE
- ufunc_pseudo_huber_ptr[2*0] = <void*>_func_pseudo_huber
- ufunc_pseudo_huber_ptr[2*0+1] = <void*>(<char*>"pseudo_huber")
- ufunc_pseudo_huber_ptr[2*1] = <void*>_func_pseudo_huber
- ufunc_pseudo_huber_ptr[2*1+1] = <void*>(<char*>"pseudo_huber")
- ufunc_pseudo_huber_data[0] = &ufunc_pseudo_huber_ptr[2*0]
- ufunc_pseudo_huber_data[1] = &ufunc_pseudo_huber_ptr[2*1]
- pseudo_huber = np.PyUFunc_FromFuncAndData(ufunc_pseudo_huber_loops, ufunc_pseudo_huber_data, ufunc_pseudo_huber_types, 2, 2, 1, 0, 'pseudo_huber', ufunc_pseudo_huber_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_rel_entr_loops[2]
- cdef void *ufunc_rel_entr_ptr[4]
- cdef void *ufunc_rel_entr_data[2]
- cdef char ufunc_rel_entr_types[6]
- cdef char *ufunc_rel_entr_doc = (
- "rel_entr(x, y, out=None)\n"
- "\n"
- "Elementwise function for computing relative entropy.\n"
- "\n"
- ".. math::\n"
- "\n"
- " \\mathrm{rel\\_entr}(x, y) =\n"
- " \\begin{cases}\n"
- " x \\log(x / y) & x > 0, y > 0 \\\\\n"
- " 0 & x = 0, y \\ge 0 \\\\\n"
- " \\infty & \\text{otherwise}\n"
- " \\end{cases}\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x, y : array_like\n"
- " Input arrays\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray\n"
- " Relative entropy of the inputs\n"
- "\n"
- "See Also\n"
- "--------\n"
- "entr, kl_div, scipy.stats.entropy\n"
- "\n"
- "Notes\n"
- "-----\n"
- ".. versionadded:: 0.15.0\n"
- "\n"
- "This function is jointly convex in x and y.\n"
- "\n"
- "The origin of this function is in convex programming; see\n"
- "[1]_. Given two discrete probability distributions :math:`p_1,\n"
- "\\ldots, p_n` and :math:`q_1, \\ldots, q_n`, the definition of relative\n"
- "entropy in the context of *information theory* is\n"
- "\n"
- ".. math::\n"
- "\n"
- " \\sum_{i = 1}^n \\mathrm{rel\\_entr}(p_i, q_i).\n"
- "\n"
- "To compute the latter quantity, use `scipy.stats.entropy`.\n"
- "\n"
- "See [2]_ for details.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] Boyd, Stephen and Lieven Vandenberghe. *Convex optimization*.\n"
- " Cambridge University Press, 2004.\n"
- " :doi:`https://doi.org/10.1017/CBO9780511804441`\n"
- ".. [2] Kullback-Leibler divergence,\n"
- " https://en.wikipedia.org/wiki/Kullback%E2%80%93Leibler_divergence")
- ufunc_rel_entr_loops[0] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc_rel_entr_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_rel_entr_types[0] = <char>NPY_FLOAT
- ufunc_rel_entr_types[1] = <char>NPY_FLOAT
- ufunc_rel_entr_types[2] = <char>NPY_FLOAT
- ufunc_rel_entr_types[3] = <char>NPY_DOUBLE
- ufunc_rel_entr_types[4] = <char>NPY_DOUBLE
- ufunc_rel_entr_types[5] = <char>NPY_DOUBLE
- ufunc_rel_entr_ptr[2*0] = <void*>_func_rel_entr
- ufunc_rel_entr_ptr[2*0+1] = <void*>(<char*>"rel_entr")
- ufunc_rel_entr_ptr[2*1] = <void*>_func_rel_entr
- ufunc_rel_entr_ptr[2*1+1] = <void*>(<char*>"rel_entr")
- ufunc_rel_entr_data[0] = &ufunc_rel_entr_ptr[2*0]
- ufunc_rel_entr_data[1] = &ufunc_rel_entr_ptr[2*1]
- rel_entr = np.PyUFunc_FromFuncAndData(ufunc_rel_entr_loops, ufunc_rel_entr_data, ufunc_rel_entr_types, 2, 2, 1, 0, 'rel_entr', ufunc_rel_entr_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_round_loops[2]
- cdef void *ufunc_round_ptr[4]
- cdef void *ufunc_round_data[2]
- cdef char ufunc_round_types[4]
- cdef char *ufunc_round_doc = (
- "round(x, out=None)\n"
- "\n"
- "Round to the nearest integer.\n"
- "\n"
- "Returns the nearest integer to `x`. If `x` ends in 0.5 exactly,\n"
- "the nearest even integer is chosen.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Real valued input.\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results.\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray\n"
- " The nearest integers to the elements of `x`. The result is of\n"
- " floating type, not integer type.\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> import scipy.special as sc\n"
- "\n"
- "It rounds to even.\n"
- "\n"
- ">>> sc.round([0.5, 1.5])\n"
- "array([0., 2.])")
- ufunc_round_loops[0] = <np.PyUFuncGenericFunction>loop_d_d__As_f_f
- ufunc_round_loops[1] = <np.PyUFuncGenericFunction>loop_d_d__As_d_d
- ufunc_round_types[0] = <char>NPY_FLOAT
- ufunc_round_types[1] = <char>NPY_FLOAT
- ufunc_round_types[2] = <char>NPY_DOUBLE
- ufunc_round_types[3] = <char>NPY_DOUBLE
- ufunc_round_ptr[2*0] = <void*>_func_cephes_round
- ufunc_round_ptr[2*0+1] = <void*>(<char*>"round")
- ufunc_round_ptr[2*1] = <void*>_func_cephes_round
- ufunc_round_ptr[2*1+1] = <void*>(<char*>"round")
- ufunc_round_data[0] = &ufunc_round_ptr[2*0]
- ufunc_round_data[1] = &ufunc_round_ptr[2*1]
- round = np.PyUFunc_FromFuncAndData(ufunc_round_loops, ufunc_round_data, ufunc_round_types, 2, 1, 1, 0, 'round', ufunc_round_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_shichi_loops[4]
- cdef void *ufunc_shichi_ptr[8]
- cdef void *ufunc_shichi_data[4]
- cdef char ufunc_shichi_types[12]
- cdef char *ufunc_shichi_doc = (
- "shichi(x, out=None)\n"
- "\n"
- "Hyperbolic sine and cosine integrals.\n"
- "\n"
- "The hyperbolic sine integral is\n"
- "\n"
- ".. math::\n"
- "\n"
- " \\int_0^x \\frac{\\sinh{t}}{t}dt\n"
- "\n"
- "and the hyperbolic cosine integral is\n"
- "\n"
- ".. math::\n"
- "\n"
- " \\gamma + \\log(x) + \\int_0^x \\frac{\\cosh{t} - 1}{t} dt\n"
- "\n"
- "where :math:`\\gamma` is Euler's constant and :math:`\\log` is the\n"
- "principal branch of the logarithm [1]_ (see also [2]_).\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Real or complex points at which to compute the hyperbolic sine\n"
- " and cosine integrals.\n"
- "out : tuple of ndarray, optional\n"
- " Optional output arrays for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "si : scalar or ndarray\n"
- " Hyperbolic sine integral at ``x``\n"
- "ci : scalar or ndarray\n"
- " Hyperbolic cosine integral at ``x``\n"
- "\n"
- "See Also\n"
- "--------\n"
- "sici : Sine and cosine integrals.\n"
- "exp1 : Exponential integral E1.\n"
- "expi : Exponential integral Ei.\n"
- "\n"
- "Notes\n"
- "-----\n"
- "For real arguments with ``x < 0``, ``chi`` is the real part of the\n"
- "hyperbolic cosine integral. For such points ``chi(x)`` and ``chi(x\n"
- "+ 0j)`` differ by a factor of ``1j*pi``.\n"
- "\n"
- "For real arguments the function is computed by calling Cephes'\n"
- "[3]_ *shichi* routine. For complex arguments the algorithm is based\n"
- "on Mpmath's [4]_ *shi* and *chi* routines.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] Milton Abramowitz and Irene A. Stegun, eds.\n"
- " Handbook of Mathematical Functions with Formulas,\n"
- " Graphs, and Mathematical Tables. New York: Dover, 1972.\n"
- " (See Section 5.2.)\n"
- ".. [2] NIST Digital Library of Mathematical Functions\n"
- " https://dlmf.nist.gov/6.2.E15 and https://dlmf.nist.gov/6.2.E16\n"
- ".. [3] Cephes Mathematical Functions Library,\n"
- " http://www.netlib.org/cephes/\n"
- ".. [4] Fredrik Johansson and others.\n"
- " \"mpmath: a Python library for arbitrary-precision floating-point\n"
- " arithmetic\" (Version 0.19) http://mpmath.org/\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> import numpy as np\n"
- ">>> import matplotlib.pyplot as plt\n"
- ">>> from scipy.special import shichi, sici\n"
- "\n"
- "`shichi` accepts real or complex input:\n"
- "\n"
- ">>> shichi(0.5)\n"
- "(0.5069967498196671, -0.05277684495649357)\n"
- ">>> shichi(0.5 + 2.5j)\n"
- "((0.11772029666668238+1.831091777729851j),\n"
- " (0.29912435887648825+1.7395351121166562j))\n"
- "\n"
- "The hyperbolic sine and cosine integrals Shi(z) and Chi(z) are\n"
- "related to the sine and cosine integrals Si(z) and Ci(z) by\n"
- "\n"
- "* Shi(z) = -i*Si(i*z)\n"
- "* Chi(z) = Ci(-i*z) + i*pi/2\n"
- "\n"
- ">>> z = 0.25 + 5j\n"
- ">>> shi, chi = shichi(z)\n"
- ">>> shi, -1j*sici(1j*z)[0] # Should be the same.\n"
- "((-0.04834719325101729+1.5469354086921228j),\n"
- " (-0.04834719325101729+1.5469354086921228j))\n"
- ">>> chi, sici(-1j*z)[1] + 1j*np.pi/2 # Should be the same.\n"
- "((-0.19568708973868087+1.556276312103824j),\n"
- " (-0.19568708973868087+1.556276312103824j))\n"
- "\n"
- "Plot the functions evaluated on the real axis:\n"
- "\n"
- ">>> xp = np.geomspace(1e-8, 4.0, 250)\n"
- ">>> x = np.concatenate((-xp[::-1], xp))\n"
- ">>> shi, chi = shichi(x)\n"
- "\n"
- ">>> fig, ax = plt.subplots()\n"
- ">>> ax.plot(x, shi, label='Shi(x)')\n"
- ">>> ax.plot(x, chi, '--', label='Chi(x)')\n"
- ">>> ax.set_xlabel('x')\n"
- ">>> ax.set_title('Hyperbolic Sine and Cosine Integrals')\n"
- ">>> ax.legend(shadow=True, framealpha=1, loc='lower right')\n"
- ">>> ax.grid(True)\n"
- ">>> plt.show()")
- ufunc_shichi_loops[0] = <np.PyUFuncGenericFunction>loop_i_d_dd_As_f_ff
- ufunc_shichi_loops[1] = <np.PyUFuncGenericFunction>loop_i_d_dd_As_d_dd
- ufunc_shichi_loops[2] = <np.PyUFuncGenericFunction>loop_i_D_DD_As_F_FF
- ufunc_shichi_loops[3] = <np.PyUFuncGenericFunction>loop_i_D_DD_As_D_DD
- ufunc_shichi_types[0] = <char>NPY_FLOAT
- ufunc_shichi_types[1] = <char>NPY_FLOAT
- ufunc_shichi_types[2] = <char>NPY_FLOAT
- ufunc_shichi_types[3] = <char>NPY_DOUBLE
- ufunc_shichi_types[4] = <char>NPY_DOUBLE
- ufunc_shichi_types[5] = <char>NPY_DOUBLE
- ufunc_shichi_types[6] = <char>NPY_CFLOAT
- ufunc_shichi_types[7] = <char>NPY_CFLOAT
- ufunc_shichi_types[8] = <char>NPY_CFLOAT
- ufunc_shichi_types[9] = <char>NPY_CDOUBLE
- ufunc_shichi_types[10] = <char>NPY_CDOUBLE
- ufunc_shichi_types[11] = <char>NPY_CDOUBLE
- ufunc_shichi_ptr[2*0] = <void*>_func_xsf_shichi
- ufunc_shichi_ptr[2*0+1] = <void*>(<char*>"shichi")
- ufunc_shichi_ptr[2*1] = <void*>_func_xsf_shichi
- ufunc_shichi_ptr[2*1+1] = <void*>(<char*>"shichi")
- ufunc_shichi_ptr[2*2] = <void*>_func_xsf_cshichi
- ufunc_shichi_ptr[2*2+1] = <void*>(<char*>"shichi")
- ufunc_shichi_ptr[2*3] = <void*>_func_xsf_cshichi
- ufunc_shichi_ptr[2*3+1] = <void*>(<char*>"shichi")
- ufunc_shichi_data[0] = &ufunc_shichi_ptr[2*0]
- ufunc_shichi_data[1] = &ufunc_shichi_ptr[2*1]
- ufunc_shichi_data[2] = &ufunc_shichi_ptr[2*2]
- ufunc_shichi_data[3] = &ufunc_shichi_ptr[2*3]
- shichi = np.PyUFunc_FromFuncAndData(ufunc_shichi_loops, ufunc_shichi_data, ufunc_shichi_types, 4, 1, 2, 0, 'shichi', ufunc_shichi_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_sici_loops[4]
- cdef void *ufunc_sici_ptr[8]
- cdef void *ufunc_sici_data[4]
- cdef char ufunc_sici_types[12]
- cdef char *ufunc_sici_doc = (
- "sici(x, out=None)\n"
- "\n"
- "Sine and cosine integrals.\n"
- "\n"
- "The sine integral is\n"
- "\n"
- ".. math::\n"
- "\n"
- " \\int_0^x \\frac{\\sin{t}}{t}dt\n"
- "\n"
- "and the cosine integral is\n"
- "\n"
- ".. math::\n"
- "\n"
- " \\gamma + \\log(x) + \\int_0^x \\frac{\\cos{t} - 1}{t}dt\n"
- "\n"
- "where :math:`\\gamma` is Euler's constant and :math:`\\log` is the\n"
- "principal branch of the logarithm [1]_ (see also [2]_).\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x : array_like\n"
- " Real or complex points at which to compute the sine and cosine\n"
- " integrals.\n"
- "out : tuple of ndarray, optional\n"
- " Optional output arrays for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "si : scalar or ndarray\n"
- " Sine integral at ``x``\n"
- "ci : scalar or ndarray\n"
- " Cosine integral at ``x``\n"
- "\n"
- "See Also\n"
- "--------\n"
- "shichi : Hyperbolic sine and cosine integrals.\n"
- "exp1 : Exponential integral E1.\n"
- "expi : Exponential integral Ei.\n"
- "\n"
- "Notes\n"
- "-----\n"
- "For real arguments with ``x < 0``, ``ci`` is the real part of the\n"
- "cosine integral. For such points ``ci(x)`` and ``ci(x + 0j)``\n"
- "differ by a factor of ``1j*pi``.\n"
- "\n"
- "For real arguments the function is computed by calling Cephes'\n"
- "[3]_ *sici* routine. For complex arguments the algorithm is based\n"
- "on Mpmath's [4]_ *si* and *ci* routines.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] Milton Abramowitz and Irene A. Stegun, eds.\n"
- " Handbook of Mathematical Functions with Formulas,\n"
- " Graphs, and Mathematical Tables. New York: Dover, 1972.\n"
- " (See Section 5.2.)\n"
- ".. [2] NIST Digital Library of Mathematical Functions\n"
- " https://dlmf.nist.gov/6.2.E9, https://dlmf.nist.gov/6.2.E12,\n"
- " and https://dlmf.nist.gov/6.2.E13\n"
- ".. [3] Cephes Mathematical Functions Library,\n"
- " http://www.netlib.org/cephes/\n"
- ".. [4] Fredrik Johansson and others.\n"
- " \"mpmath: a Python library for arbitrary-precision floating-point\n"
- " arithmetic\" (Version 0.19) http://mpmath.org/\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> import numpy as np\n"
- ">>> import matplotlib.pyplot as plt\n"
- ">>> from scipy.special import sici, exp1\n"
- "\n"
- "`sici` accepts real or complex input:\n"
- "\n"
- ">>> sici(2.5)\n"
- "(1.7785201734438267, 0.2858711963653835)\n"
- ">>> sici(2.5 + 3j)\n"
- "((4.505735874563953+0.06863305018999577j),\n"
- "(0.0793644206906966-2.935510262937543j))\n"
- "\n"
- "For z in the right half plane, the sine and cosine integrals are\n"
- "related to the exponential integral E1 (implemented in SciPy as\n"
- "`scipy.special.exp1`) by\n"
- "\n"
- "* Si(z) = (E1(i*z) - E1(-i*z))/2i + pi/2\n"
- "* Ci(z) = -(E1(i*z) + E1(-i*z))/2\n"
- "\n"
- "See [1]_ (equations 5.2.21 and 5.2.23).\n"
- "\n"
- "We can verify these relations:\n"
- "\n"
- ">>> z = 2 - 3j\n"
- ">>> sici(z)\n"
- "((4.54751388956229-1.3991965806460565j),\n"
- "(1.408292501520851+2.9836177420296055j))\n"
- "\n"
- ">>> (exp1(1j*z) - exp1(-1j*z))/2j + np.pi/2 # Same as sine integral\n"
- "(4.54751388956229-1.3991965806460565j)\n"
- "\n"
- ">>> -(exp1(1j*z) + exp1(-1j*z))/2 # Same as cosine integral\n"
- "(1.408292501520851+2.9836177420296055j)\n"
- "\n"
- "Plot the functions evaluated on the real axis; the dotted horizontal\n"
- "lines are at pi/2 and -pi/2:\n"
- "\n"
- ">>> x = np.linspace(-16, 16, 150)\n"
- ">>> si, ci = sici(x)\n"
- "\n"
- ">>> fig, ax = plt.subplots()\n"
- ">>> ax.plot(x, si, label='Si(x)')\n"
- ">>> ax.plot(x, ci, '--', label='Ci(x)')\n"
- ">>> ax.legend(shadow=True, framealpha=1, loc='upper left')\n"
- ">>> ax.set_xlabel('x')\n"
- ">>> ax.set_title('Sine and Cosine Integrals')\n"
- ">>> ax.axhline(np.pi/2, linestyle=':', alpha=0.5, color='k')\n"
- ">>> ax.axhline(-np.pi/2, linestyle=':', alpha=0.5, color='k')\n"
- ">>> ax.grid(True)\n"
- ">>> plt.show()")
- ufunc_sici_loops[0] = <np.PyUFuncGenericFunction>loop_i_d_dd_As_f_ff
- ufunc_sici_loops[1] = <np.PyUFuncGenericFunction>loop_i_d_dd_As_d_dd
- ufunc_sici_loops[2] = <np.PyUFuncGenericFunction>loop_i_D_DD_As_F_FF
- ufunc_sici_loops[3] = <np.PyUFuncGenericFunction>loop_i_D_DD_As_D_DD
- ufunc_sici_types[0] = <char>NPY_FLOAT
- ufunc_sici_types[1] = <char>NPY_FLOAT
- ufunc_sici_types[2] = <char>NPY_FLOAT
- ufunc_sici_types[3] = <char>NPY_DOUBLE
- ufunc_sici_types[4] = <char>NPY_DOUBLE
- ufunc_sici_types[5] = <char>NPY_DOUBLE
- ufunc_sici_types[6] = <char>NPY_CFLOAT
- ufunc_sici_types[7] = <char>NPY_CFLOAT
- ufunc_sici_types[8] = <char>NPY_CFLOAT
- ufunc_sici_types[9] = <char>NPY_CDOUBLE
- ufunc_sici_types[10] = <char>NPY_CDOUBLE
- ufunc_sici_types[11] = <char>NPY_CDOUBLE
- ufunc_sici_ptr[2*0] = <void*>_func_xsf_sici
- ufunc_sici_ptr[2*0+1] = <void*>(<char*>"sici")
- ufunc_sici_ptr[2*1] = <void*>_func_xsf_sici
- ufunc_sici_ptr[2*1+1] = <void*>(<char*>"sici")
- ufunc_sici_ptr[2*2] = <void*>_func_xsf_csici
- ufunc_sici_ptr[2*2+1] = <void*>(<char*>"sici")
- ufunc_sici_ptr[2*3] = <void*>_func_xsf_csici
- ufunc_sici_ptr[2*3+1] = <void*>(<char*>"sici")
- ufunc_sici_data[0] = &ufunc_sici_ptr[2*0]
- ufunc_sici_data[1] = &ufunc_sici_ptr[2*1]
- ufunc_sici_data[2] = &ufunc_sici_ptr[2*2]
- ufunc_sici_data[3] = &ufunc_sici_ptr[2*3]
- sici = np.PyUFunc_FromFuncAndData(ufunc_sici_loops, ufunc_sici_data, ufunc_sici_types, 4, 1, 2, 0, 'sici', ufunc_sici_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_smirnov_loops[3]
- cdef void *ufunc_smirnov_ptr[6]
- cdef void *ufunc_smirnov_data[3]
- cdef char ufunc_smirnov_types[9]
- cdef char *ufunc_smirnov_doc = (
- "smirnov(n, d, out=None)\n"
- "\n"
- "Kolmogorov-Smirnov complementary cumulative distribution function\n"
- "\n"
- "Returns the exact Kolmogorov-Smirnov complementary cumulative\n"
- "distribution function,(aka the Survival Function) of Dn+ (or Dn-)\n"
- "for a one-sided test of equality between an empirical and a\n"
- "theoretical distribution. It is equal to the probability that the\n"
- "maximum difference between a theoretical distribution and an empirical\n"
- "one based on `n` samples is greater than d.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "n : int\n"
- " Number of samples\n"
- "d : float array_like\n"
- " Deviation between the Empirical CDF (ECDF) and the target CDF.\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray\n"
- " The value(s) of smirnov(n, d), Prob(Dn+ >= d) (Also Prob(Dn- >= d))\n"
- "\n"
- "See Also\n"
- "--------\n"
- "smirnovi : The Inverse Survival Function for the distribution\n"
- "scipy.stats.ksone : Provides the functionality as a continuous distribution\n"
- "kolmogorov, kolmogi : Functions for the two-sided distribution\n"
- "\n"
- "Notes\n"
- "-----\n"
- "`smirnov` is used by `stats.kstest` in the application of the\n"
- "Kolmogorov-Smirnov Goodness of Fit test. For historical reasons this\n"
- "function is exposed in `scpy.special`, but the recommended way to achieve\n"
- "the most accurate CDF/SF/PDF/PPF/ISF computations is to use the\n"
- "`stats.ksone` distribution.\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> import numpy as np\n"
- ">>> from scipy.special import smirnov\n"
- ">>> from scipy.stats import norm\n"
- "\n"
- "Show the probability of a gap at least as big as 0, 0.5 and 1.0 for a\n"
- "sample of size 5.\n"
- "\n"
- ">>> smirnov(5, [0, 0.5, 1.0])\n"
- "array([ 1. , 0.056, 0. ])\n"
- "\n"
- "Compare a sample of size 5 against N(0, 1), the standard normal\n"
- "distribution with mean 0 and standard deviation 1.\n"
- "\n"
- "`x` is the sample.\n"
- "\n"
- ">>> x = np.array([-1.392, -0.135, 0.114, 0.190, 1.82])\n"
- "\n"
- ">>> target = norm(0, 1)\n"
- ">>> cdfs = target.cdf(x)\n"
- ">>> cdfs\n"
- "array([0.0819612 , 0.44630594, 0.5453811 , 0.57534543, 0.9656205 ])\n"
- "\n"
- "Construct the empirical CDF and the K-S statistics (Dn+, Dn-, Dn).\n"
- "\n"
- ">>> n = len(x)\n"
- ">>> ecdfs = np.arange(n+1, dtype=float)/n\n"
- ">>> cols = np.column_stack([x, ecdfs[1:], cdfs, cdfs - ecdfs[:n],\n"
- "... ecdfs[1:] - cdfs])\n"
- ">>> with np.printoptions(precision=3):\n"
- "... print(cols)\n"
- "[[-1.392 0.2 0.082 0.082 0.118]\n"
- " [-0.135 0.4 0.446 0.246 -0.046]\n"
- " [ 0.114 0.6 0.545 0.145 0.055]\n"
- " [ 0.19 0.8 0.575 -0.025 0.225]\n"
- " [ 1.82 1. 0.966 0.166 0.034]]\n"
- ">>> gaps = cols[:, -2:]\n"
- ">>> Dnpm = np.max(gaps, axis=0)\n"
- ">>> print(f'Dn-={Dnpm[0]:f}, Dn+={Dnpm[1]:f}')\n"
- "Dn-=0.246306, Dn+=0.224655\n"
- ">>> probs = smirnov(n, Dnpm)\n"
- ">>> print(f'For a sample of size {n} drawn from N(0, 1):',\n"
- "... f' Smirnov n={n}: Prob(Dn- >= {Dnpm[0]:f}) = {probs[0]:.4f}',\n"
- "... f' Smirnov n={n}: Prob(Dn+ >= {Dnpm[1]:f}) = {probs[1]:.4f}',\n"
- "... sep='\\n')\n"
- "For a sample of size 5 drawn from N(0, 1):\n"
- " Smirnov n=5: Prob(Dn- >= 0.246306) = 0.4711\n"
- " Smirnov n=5: Prob(Dn+ >= 0.224655) = 0.5245\n"
- "\n"
- "Plot the empirical CDF and the standard normal CDF.\n"
- "\n"
- ">>> import matplotlib.pyplot as plt\n"
- ">>> plt.step(np.concatenate(([-2.5], x, [2.5])),\n"
- "... np.concatenate((ecdfs, [1])),\n"
- "... where='post', label='Empirical CDF')\n"
- ">>> xx = np.linspace(-2.5, 2.5, 100)\n"
- ">>> plt.plot(xx, target.cdf(xx), '--', label='CDF for N(0, 1)')\n"
- "\n"
- "Add vertical lines marking Dn+ and Dn-.\n"
- "\n"
- ">>> iminus, iplus = np.argmax(gaps, axis=0)\n"
- ">>> plt.vlines([x[iminus]], ecdfs[iminus], cdfs[iminus], color='r',\n"
- "... alpha=0.5, lw=4)\n"
- ">>> plt.vlines([x[iplus]], cdfs[iplus], ecdfs[iplus+1], color='m',\n"
- "... alpha=0.5, lw=4)\n"
- "\n"
- ">>> plt.grid(True)\n"
- ">>> plt.legend(framealpha=1, shadow=True)\n"
- ">>> plt.show()")
- ufunc_smirnov_loops[0] = <np.PyUFuncGenericFunction>loop_d_pd__As_pd_d
- ufunc_smirnov_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc_smirnov_loops[2] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_smirnov_types[0] = <char>NPY_INTP
- ufunc_smirnov_types[1] = <char>NPY_DOUBLE
- ufunc_smirnov_types[2] = <char>NPY_DOUBLE
- ufunc_smirnov_types[3] = <char>NPY_FLOAT
- ufunc_smirnov_types[4] = <char>NPY_FLOAT
- ufunc_smirnov_types[5] = <char>NPY_FLOAT
- ufunc_smirnov_types[6] = <char>NPY_DOUBLE
- ufunc_smirnov_types[7] = <char>NPY_DOUBLE
- ufunc_smirnov_types[8] = <char>NPY_DOUBLE
- ufunc_smirnov_ptr[2*0] = <void*>_func_cephes_smirnov_wrap
- ufunc_smirnov_ptr[2*0+1] = <void*>(<char*>"smirnov")
- ufunc_smirnov_ptr[2*1] = <void*>_func_smirnov_unsafe
- ufunc_smirnov_ptr[2*1+1] = <void*>(<char*>"smirnov")
- ufunc_smirnov_ptr[2*2] = <void*>_func_smirnov_unsafe
- ufunc_smirnov_ptr[2*2+1] = <void*>(<char*>"smirnov")
- ufunc_smirnov_data[0] = &ufunc_smirnov_ptr[2*0]
- ufunc_smirnov_data[1] = &ufunc_smirnov_ptr[2*1]
- ufunc_smirnov_data[2] = &ufunc_smirnov_ptr[2*2]
- smirnov = np.PyUFunc_FromFuncAndData(ufunc_smirnov_loops, ufunc_smirnov_data, ufunc_smirnov_types, 3, 2, 1, 0, 'smirnov', ufunc_smirnov_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_smirnovi_loops[3]
- cdef void *ufunc_smirnovi_ptr[6]
- cdef void *ufunc_smirnovi_data[3]
- cdef char ufunc_smirnovi_types[9]
- cdef char *ufunc_smirnovi_doc = (
- "smirnovi(n, p, out=None)\n"
- "\n"
- "Inverse to `smirnov`\n"
- "\n"
- "Returns `d` such that ``smirnov(n, d) == p``, the critical value\n"
- "corresponding to `p`.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "n : int\n"
- " Number of samples\n"
- "p : float array_like\n"
- " Probability\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray\n"
- " The value(s) of smirnovi(n, p), the critical values.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "smirnov : The Survival Function (SF) for the distribution\n"
- "scipy.stats.ksone : Provides the functionality as a continuous distribution\n"
- "kolmogorov, kolmogi : Functions for the two-sided distribution\n"
- "scipy.stats.kstwobign : Two-sided Kolmogorov-Smirnov distribution, large n\n"
- "\n"
- "Notes\n"
- "-----\n"
- "`smirnov` is used by `stats.kstest` in the application of the\n"
- "Kolmogorov-Smirnov Goodness of Fit test. For historical reasons this\n"
- "function is exposed in `scpy.special`, but the recommended way to achieve\n"
- "the most accurate CDF/SF/PDF/PPF/ISF computations is to use the\n"
- "`stats.ksone` distribution.\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> from scipy.special import smirnovi, smirnov\n"
- "\n"
- ">>> n = 24\n"
- ">>> deviations = [0.1, 0.2, 0.3]\n"
- "\n"
- "Use `smirnov` to compute the complementary CDF of the Smirnov\n"
- "distribution for the given number of samples and deviations.\n"
- "\n"
- ">>> p = smirnov(n, deviations)\n"
- ">>> p\n"
- "array([0.58105083, 0.12826832, 0.01032231])\n"
- "\n"
- "The inverse function ``smirnovi(n, p)`` returns ``deviations``.\n"
- "\n"
- ">>> smirnovi(n, p)\n"
- "array([0.1, 0.2, 0.3])")
- ufunc_smirnovi_loops[0] = <np.PyUFuncGenericFunction>loop_d_pd__As_pd_d
- ufunc_smirnovi_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc_smirnovi_loops[2] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_smirnovi_types[0] = <char>NPY_INTP
- ufunc_smirnovi_types[1] = <char>NPY_DOUBLE
- ufunc_smirnovi_types[2] = <char>NPY_DOUBLE
- ufunc_smirnovi_types[3] = <char>NPY_FLOAT
- ufunc_smirnovi_types[4] = <char>NPY_FLOAT
- ufunc_smirnovi_types[5] = <char>NPY_FLOAT
- ufunc_smirnovi_types[6] = <char>NPY_DOUBLE
- ufunc_smirnovi_types[7] = <char>NPY_DOUBLE
- ufunc_smirnovi_types[8] = <char>NPY_DOUBLE
- ufunc_smirnovi_ptr[2*0] = <void*>_func_cephes_smirnovi_wrap
- ufunc_smirnovi_ptr[2*0+1] = <void*>(<char*>"smirnovi")
- ufunc_smirnovi_ptr[2*1] = <void*>_func_smirnovi_unsafe
- ufunc_smirnovi_ptr[2*1+1] = <void*>(<char*>"smirnovi")
- ufunc_smirnovi_ptr[2*2] = <void*>_func_smirnovi_unsafe
- ufunc_smirnovi_ptr[2*2+1] = <void*>(<char*>"smirnovi")
- ufunc_smirnovi_data[0] = &ufunc_smirnovi_ptr[2*0]
- ufunc_smirnovi_data[1] = &ufunc_smirnovi_ptr[2*1]
- ufunc_smirnovi_data[2] = &ufunc_smirnovi_ptr[2*2]
- smirnovi = np.PyUFunc_FromFuncAndData(ufunc_smirnovi_loops, ufunc_smirnovi_data, ufunc_smirnovi_types, 3, 2, 1, 0, 'smirnovi', ufunc_smirnovi_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_spence_loops[4]
- cdef void *ufunc_spence_ptr[8]
- cdef void *ufunc_spence_data[4]
- cdef char ufunc_spence_types[8]
- cdef char *ufunc_spence_doc = (
- "spence(z, out=None)\n"
- "\n"
- "Spence's function, also known as the dilogarithm.\n"
- "\n"
- "It is defined to be\n"
- "\n"
- ".. math::\n"
- " \\int_1^z \\frac{\\log(t)}{1 - t}dt\n"
- "\n"
- "for complex :math:`z`, where the contour of integration is taken\n"
- "to avoid the branch cut of the logarithm. Spence's function is\n"
- "analytic everywhere except the negative real axis where it has a\n"
- "branch cut.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "z : array_like\n"
- " Points at which to evaluate Spence's function\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "s : scalar or ndarray\n"
- " Computed values of Spence's function\n"
- "\n"
- "Notes\n"
- "-----\n"
- "There is a different convention which defines Spence's function by\n"
- "the integral\n"
- "\n"
- ".. math::\n"
- " -\\int_0^z \\frac{\\log(1 - t)}{t}dt;\n"
- "\n"
- "this is our ``spence(1 - z)``.\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> import numpy as np\n"
- ">>> from scipy.special import spence\n"
- ">>> import matplotlib.pyplot as plt\n"
- "\n"
- "The function is defined for complex inputs:\n"
- "\n"
- ">>> spence([1-1j, 1.5+2j, 3j, -10-5j])\n"
- "array([-0.20561676+0.91596559j, -0.86766909-1.39560134j,\n"
- " -0.59422064-2.49129918j, -1.14044398+6.80075924j])\n"
- "\n"
- "For complex inputs on the branch cut, which is the negative real axis,\n"
- "the function returns the limit for ``z`` with positive imaginary part.\n"
- "For example, in the following, note the sign change of the imaginary\n"
- "part of the output for ``z = -2`` and ``z = -2 - 1e-8j``:\n"
- "\n"
- ">>> spence([-2 + 1e-8j, -2, -2 - 1e-8j])\n"
- "array([2.32018041-3.45139229j, 2.32018042-3.4513923j ,\n"
- " 2.32018041+3.45139229j])\n"
- "\n"
- "The function returns ``nan`` for real inputs on the branch cut:\n"
- "\n"
- ">>> spence(-1.5)\n"
- "nan\n"
- "\n"
- "Verify some particular values: ``spence(0) = pi**2/6``,\n"
- "``spence(1) = 0`` and ``spence(2) = -pi**2/12``.\n"
- "\n"
- ">>> spence([0, 1, 2])\n"
- "array([ 1.64493407, 0. , -0.82246703])\n"
- ">>> np.pi**2/6, -np.pi**2/12\n"
- "(1.6449340668482264, -0.8224670334241132)\n"
- "\n"
- "Verify the identity::\n"
- "\n"
- " spence(z) + spence(1 - z) = pi**2/6 - log(z)*log(1 - z)\n"
- "\n"
- ">>> z = 3 + 4j\n"
- ">>> spence(z) + spence(1 - z)\n"
- "(-2.6523186143876067+1.8853470951513935j)\n"
- ">>> np.pi**2/6 - np.log(z)*np.log(1 - z)\n"
- "(-2.652318614387606+1.885347095151394j)\n"
- "\n"
- "Plot the function for positive real input.\n"
- "\n"
- ">>> fig, ax = plt.subplots()\n"
- ">>> x = np.linspace(0, 6, 400)\n"
- ">>> ax.plot(x, spence(x))\n"
- ">>> ax.grid()\n"
- ">>> ax.set_xlabel('x')\n"
- ">>> ax.set_title('spence(x)')\n"
- ">>> plt.show()")
- ufunc_spence_loops[0] = <np.PyUFuncGenericFunction>loop_d_d__As_f_f
- ufunc_spence_loops[1] = <np.PyUFuncGenericFunction>loop_d_d__As_d_d
- ufunc_spence_loops[2] = <np.PyUFuncGenericFunction>loop_D_D__As_F_F
- ufunc_spence_loops[3] = <np.PyUFuncGenericFunction>loop_D_D__As_D_D
- ufunc_spence_types[0] = <char>NPY_FLOAT
- ufunc_spence_types[1] = <char>NPY_FLOAT
- ufunc_spence_types[2] = <char>NPY_DOUBLE
- ufunc_spence_types[3] = <char>NPY_DOUBLE
- ufunc_spence_types[4] = <char>NPY_CFLOAT
- ufunc_spence_types[5] = <char>NPY_CFLOAT
- ufunc_spence_types[6] = <char>NPY_CDOUBLE
- ufunc_spence_types[7] = <char>NPY_CDOUBLE
- ufunc_spence_ptr[2*0] = <void*>_func_cephes_spence
- ufunc_spence_ptr[2*0+1] = <void*>(<char*>"spence")
- ufunc_spence_ptr[2*1] = <void*>_func_cephes_spence
- ufunc_spence_ptr[2*1+1] = <void*>(<char*>"spence")
- ufunc_spence_ptr[2*2] = <void*>_func_cspence
- ufunc_spence_ptr[2*2+1] = <void*>(<char*>"spence")
- ufunc_spence_ptr[2*3] = <void*>_func_cspence
- ufunc_spence_ptr[2*3+1] = <void*>(<char*>"spence")
- ufunc_spence_data[0] = &ufunc_spence_ptr[2*0]
- ufunc_spence_data[1] = &ufunc_spence_ptr[2*1]
- ufunc_spence_data[2] = &ufunc_spence_ptr[2*2]
- ufunc_spence_data[3] = &ufunc_spence_ptr[2*3]
- spence = np.PyUFunc_FromFuncAndData(ufunc_spence_loops, ufunc_spence_data, ufunc_spence_types, 4, 1, 1, 0, 'spence', ufunc_spence_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_stdtr_loops[2]
- cdef void *ufunc_stdtr_ptr[4]
- cdef void *ufunc_stdtr_data[2]
- cdef char ufunc_stdtr_types[6]
- cdef char *ufunc_stdtr_doc = (
- "stdtr(df, t, out=None)\n"
- "\n"
- "Student t distribution cumulative distribution function\n"
- "\n"
- "Returns the integral:\n"
- "\n"
- ".. math::\n"
- " \\frac{\\Gamma((df+1)/2)}{\\sqrt{\\pi df} \\Gamma(df/2)}\n"
- " \\int_{-\\infty}^t (1+x^2/df)^{-(df+1)/2}\\, dx\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "df : array_like\n"
- " Degrees of freedom\n"
- "t : array_like\n"
- " Upper bound of the integral\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "scalar or ndarray\n"
- " Value of the Student t CDF at t\n"
- "\n"
- "See Also\n"
- "--------\n"
- "stdtridf : inverse of stdtr with respect to `df`\n"
- "stdtrit : inverse of stdtr with respect to `t`\n"
- "scipy.stats.t : student t distribution\n"
- "\n"
- "Notes\n"
- "-----\n"
- "The student t distribution is also available as `scipy.stats.t`.\n"
- "Calling `stdtr` directly can improve performance compared to the\n"
- "``cdf`` method of `scipy.stats.t` (see last example below).\n"
- "\n"
- "The function is computed using the Boost Math library [1]_, which\n"
- "relies on the incomplete beta function.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] Boost C++ Libraries, http://www.boost.org/\n"
- "\n"
- "Examples\n"
- "--------\n"
- "Calculate the function for ``df=3`` at ``t=1``.\n"
- "\n"
- ">>> import numpy as np\n"
- ">>> from scipy.special import stdtr\n"
- ">>> import matplotlib.pyplot as plt\n"
- ">>> stdtr(3, 1)\n"
- "0.8044988905221148\n"
- "\n"
- "Plot the function for three different degrees of freedom.\n"
- "\n"
- ">>> x = np.linspace(-10, 10, 1000)\n"
- ">>> fig, ax = plt.subplots()\n"
- ">>> parameters = [(1, \"solid\"), (3, \"dashed\"), (10, \"dotted\")]\n"
- ">>> for (df, linestyle) in parameters:\n"
- "... ax.plot(x, stdtr(df, x), ls=linestyle, label=f\"$df={df}$\")\n"
- ">>> ax.legend()\n"
- ">>> ax.set_title(\"Student t distribution cumulative distribution function\")\n"
- ">>> plt.show()\n"
- "\n"
- "The function can be computed for several degrees of freedom at the same\n"
- "time by providing a NumPy array or list for `df`:\n"
- "\n"
- ">>> stdtr([1, 2, 3], 1)\n"
- "array([0.75 , 0.78867513, 0.80449889])\n"
- "\n"
- "It is possible to calculate the function at several points for several\n"
- "different degrees of freedom simultaneously by providing arrays for `df`\n"
- "and `t` with shapes compatible for broadcasting. Compute `stdtr` at\n"
- "4 points for 3 degrees of freedom resulting in an array of shape 3x4.\n"
- "\n"
- ">>> dfs = np.array([[1], [2], [3]])\n"
- ">>> t = np.array([2, 4, 6, 8])\n"
- ">>> dfs.shape, t.shape\n"
- "((3, 1), (4,))\n"
- "\n"
- ">>> stdtr(dfs, t)\n"
- "array([[0.85241638, 0.92202087, 0.94743154, 0.96041658],\n"
- " [0.90824829, 0.97140452, 0.98666426, 0.99236596],\n"
- " [0.93033702, 0.98599577, 0.99536364, 0.99796171]])\n"
- "\n"
- "The t distribution is also available as `scipy.stats.t`. Calling `stdtr`\n"
- "directly can be much faster than calling the ``cdf`` method of\n"
- "`scipy.stats.t`. To get the same results, one must use the following\n"
- "parametrization: ``scipy.stats.t(df).cdf(x) = stdtr(df, x)``.\n"
- "\n"
- ">>> from scipy.stats import t\n"
- ">>> df, x = 3, 1\n"
- ">>> stdtr_result = stdtr(df, x) # this can be faster than below\n"
- ">>> stats_result = t(df).cdf(x)\n"
- ">>> stats_result == stdtr_result # test that results are equal\n"
- "True")
- ufunc_stdtr_loops[0] = <np.PyUFuncGenericFunction>loop_f_ff__As_ff_f
- ufunc_stdtr_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_stdtr_types[0] = <char>NPY_FLOAT
- ufunc_stdtr_types[1] = <char>NPY_FLOAT
- ufunc_stdtr_types[2] = <char>NPY_FLOAT
- ufunc_stdtr_types[3] = <char>NPY_DOUBLE
- ufunc_stdtr_types[4] = <char>NPY_DOUBLE
- ufunc_stdtr_types[5] = <char>NPY_DOUBLE
- ufunc_stdtr_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_t_cdf_float
- ufunc_stdtr_ptr[2*0+1] = <void*>(<char*>"stdtr")
- ufunc_stdtr_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_t_cdf_double
- ufunc_stdtr_ptr[2*1+1] = <void*>(<char*>"stdtr")
- ufunc_stdtr_data[0] = &ufunc_stdtr_ptr[2*0]
- ufunc_stdtr_data[1] = &ufunc_stdtr_ptr[2*1]
- stdtr = np.PyUFunc_FromFuncAndData(ufunc_stdtr_loops, ufunc_stdtr_data, ufunc_stdtr_types, 2, 2, 1, 0, 'stdtr', ufunc_stdtr_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_stdtridf_loops[2]
- cdef void *ufunc_stdtridf_ptr[4]
- cdef void *ufunc_stdtridf_data[2]
- cdef char ufunc_stdtridf_types[6]
- cdef char *ufunc_stdtridf_doc = (
- "stdtridf(p, t, out=None)\n"
- "\n"
- "Inverse of `stdtr` vs df\n"
- "\n"
- "Returns the argument df such that stdtr(df, t) is equal to `p`.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "p : array_like\n"
- " Probability\n"
- "t : array_like\n"
- " Upper bound of the integral\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "df : scalar or ndarray\n"
- " Value of `df` such that ``stdtr(df, t) == p``\n"
- "\n"
- "See Also\n"
- "--------\n"
- "stdtr : Student t CDF\n"
- "stdtrit : inverse of stdtr with respect to `t`\n"
- "scipy.stats.t : Student t distribution\n"
- "\n"
- "Examples\n"
- "--------\n"
- "Compute the student t cumulative distribution function for one\n"
- "parameter set.\n"
- "\n"
- ">>> from scipy.special import stdtr, stdtridf\n"
- ">>> df, x = 5, 2\n"
- ">>> cdf_value = stdtr(df, x)\n"
- ">>> cdf_value\n"
- "0.9490302605850709\n"
- "\n"
- "Verify that `stdtridf` recovers the original value for `df` given\n"
- "the CDF value and `x`.\n"
- "\n"
- ">>> stdtridf(cdf_value, x)\n"
- "5.0")
- ufunc_stdtridf_loops[0] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc_stdtridf_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_stdtridf_types[0] = <char>NPY_FLOAT
- ufunc_stdtridf_types[1] = <char>NPY_FLOAT
- ufunc_stdtridf_types[2] = <char>NPY_FLOAT
- ufunc_stdtridf_types[3] = <char>NPY_DOUBLE
- ufunc_stdtridf_types[4] = <char>NPY_DOUBLE
- ufunc_stdtridf_types[5] = <char>NPY_DOUBLE
- ufunc_stdtridf_ptr[2*0] = <void*>_func_stdtridf
- ufunc_stdtridf_ptr[2*0+1] = <void*>(<char*>"stdtridf")
- ufunc_stdtridf_ptr[2*1] = <void*>_func_stdtridf
- ufunc_stdtridf_ptr[2*1+1] = <void*>(<char*>"stdtridf")
- ufunc_stdtridf_data[0] = &ufunc_stdtridf_ptr[2*0]
- ufunc_stdtridf_data[1] = &ufunc_stdtridf_ptr[2*1]
- stdtridf = np.PyUFunc_FromFuncAndData(ufunc_stdtridf_loops, ufunc_stdtridf_data, ufunc_stdtridf_types, 2, 2, 1, 0, 'stdtridf', ufunc_stdtridf_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_stdtrit_loops[2]
- cdef void *ufunc_stdtrit_ptr[4]
- cdef void *ufunc_stdtrit_data[2]
- cdef char ufunc_stdtrit_types[6]
- cdef char *ufunc_stdtrit_doc = (
- "stdtrit(df, p, out=None)\n"
- "\n"
- "The `p`-th quantile of the student t distribution.\n"
- "\n"
- "This function is the inverse of the student t distribution cumulative\n"
- "distribution function (CDF), returning `t` such that `stdtr(df, t) = p`.\n"
- "\n"
- "Returns the argument `t` such that stdtr(df, t) is equal to `p`.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "df : array_like\n"
- " Degrees of freedom\n"
- "p : array_like\n"
- " Probability\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "t : scalar or ndarray\n"
- " Value of `t` such that ``stdtr(df, t) == p``\n"
- "\n"
- "See Also\n"
- "--------\n"
- "stdtr : Student t CDF\n"
- "stdtridf : inverse of stdtr with respect to `df`\n"
- "scipy.stats.t : Student t distribution\n"
- "\n"
- "Notes\n"
- "-----\n"
- "The student t distribution is also available as `scipy.stats.t`. Calling\n"
- "`stdtrit` directly can improve performance compared to the ``ppf``\n"
- "method of `scipy.stats.t` (see last example below).\n"
- "\n"
- "The function is computed using the Boost Math library [1]_, which\n"
- "relies on the incomplete beta function.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] Boost C++ Libraries, http://www.boost.org/\n"
- "\n"
- "Examples\n"
- "--------\n"
- "`stdtrit` represents the inverse of the student t distribution CDF which\n"
- "is available as `stdtr`. Here, we calculate the CDF for ``df`` at\n"
- "``x=1``. `stdtrit` then returns ``1`` up to floating point errors\n"
- "given the same value for `df` and the computed CDF value.\n"
- "\n"
- ">>> import numpy as np\n"
- ">>> from scipy.special import stdtr, stdtrit\n"
- ">>> import matplotlib.pyplot as plt\n"
- ">>> df = 3\n"
- ">>> x = 1\n"
- ">>> cdf_value = stdtr(df, x)\n"
- ">>> stdtrit(df, cdf_value)\n"
- "0.9999999994418539\n"
- "\n"
- "Plot the function for three different degrees of freedom.\n"
- "\n"
- ">>> x = np.linspace(0, 1, 1000)\n"
- ">>> parameters = [(1, \"solid\"), (2, \"dashed\"), (5, \"dotted\")]\n"
- ">>> fig, ax = plt.subplots()\n"
- ">>> for (df, linestyle) in parameters:\n"
- "... ax.plot(x, stdtrit(df, x), ls=linestyle, label=f\"$df={df}$\")\n"
- ">>> ax.legend()\n"
- ">>> ax.set_ylim(-10, 10)\n"
- ">>> ax.set_title(\"Student t distribution quantile function\")\n"
- ">>> plt.show()\n"
- "\n"
- "The function can be computed for several degrees of freedom at the same\n"
- "time by providing a NumPy array or list for `df`:\n"
- "\n"
- ">>> stdtrit([1, 2, 3], 0.7)\n"
- "array([0.72654253, 0.6172134 , 0.58438973])\n"
- "\n"
- "It is possible to calculate the function at several points for several\n"
- "different degrees of freedom simultaneously by providing arrays for `df`\n"
- "and `p` with shapes compatible for broadcasting. Compute `stdtrit` at\n"
- "4 points for 3 degrees of freedom resulting in an array of shape 3x4.\n"
- "\n"
- ">>> dfs = np.array([[1], [2], [3]])\n"
- ">>> p = np.array([0.2, 0.4, 0.7, 0.8])\n"
- ">>> dfs.shape, p.shape\n"
- "((3, 1), (4,))\n"
- "\n"
- ">>> stdtrit(dfs, p)\n"
- "array([[-1.37638192, -0.3249197 , 0.72654253, 1.37638192],\n"
- " [-1.06066017, -0.28867513, 0.6172134 , 1.06066017],\n"
- " [-0.97847231, -0.27667066, 0.58438973, 0.97847231]])\n"
- "\n"
- "The t distribution is also available as `scipy.stats.t`. Calling `stdtrit`\n"
- "directly can be much faster than calling the ``ppf`` method of\n"
- "`scipy.stats.t`. To get the same results, one must use the following\n"
- "parametrization: ``scipy.stats.t(df).ppf(x) = stdtrit(df, x)``.\n"
- "\n"
- ">>> from scipy.stats import t\n"
- ">>> df, x = 3, 0.5\n"
- ">>> stdtrit_result = stdtrit(df, x) # this can be faster than below\n"
- ">>> stats_result = t(df).ppf(x)\n"
- ">>> stats_result == stdtrit_result # test that results are equal\n"
- "True")
- ufunc_stdtrit_loops[0] = <np.PyUFuncGenericFunction>loop_f_ff__As_ff_f
- ufunc_stdtrit_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_stdtrit_types[0] = <char>NPY_FLOAT
- ufunc_stdtrit_types[1] = <char>NPY_FLOAT
- ufunc_stdtrit_types[2] = <char>NPY_FLOAT
- ufunc_stdtrit_types[3] = <char>NPY_DOUBLE
- ufunc_stdtrit_types[4] = <char>NPY_DOUBLE
- ufunc_stdtrit_types[5] = <char>NPY_DOUBLE
- ufunc_stdtrit_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_t_ppf_float
- ufunc_stdtrit_ptr[2*0+1] = <void*>(<char*>"stdtrit")
- ufunc_stdtrit_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_t_ppf_double
- ufunc_stdtrit_ptr[2*1+1] = <void*>(<char*>"stdtrit")
- ufunc_stdtrit_data[0] = &ufunc_stdtrit_ptr[2*0]
- ufunc_stdtrit_data[1] = &ufunc_stdtrit_ptr[2*1]
- stdtrit = np.PyUFunc_FromFuncAndData(ufunc_stdtrit_loops, ufunc_stdtrit_data, ufunc_stdtrit_types, 2, 2, 1, 0, 'stdtrit', ufunc_stdtrit_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_tklmbda_loops[2]
- cdef void *ufunc_tklmbda_ptr[4]
- cdef void *ufunc_tklmbda_data[2]
- cdef char ufunc_tklmbda_types[6]
- cdef char *ufunc_tklmbda_doc = (
- "tklmbda(x, lmbda, out=None)\n"
- "\n"
- "Cumulative distribution function of the Tukey lambda distribution.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "x, lmbda : array_like\n"
- " Parameters\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "cdf : scalar or ndarray\n"
- " Value of the Tukey lambda CDF\n"
- "\n"
- "See Also\n"
- "--------\n"
- "scipy.stats.tukeylambda : Tukey lambda distribution\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> import numpy as np\n"
- ">>> import matplotlib.pyplot as plt\n"
- ">>> from scipy.special import tklmbda, expit\n"
- "\n"
- "Compute the cumulative distribution function (CDF) of the Tukey lambda\n"
- "distribution at several ``x`` values for `lmbda` = -1.5.\n"
- "\n"
- ">>> x = np.linspace(-2, 2, 9)\n"
- ">>> x\n"
- "array([-2. , -1.5, -1. , -0.5, 0. , 0.5, 1. , 1.5, 2. ])\n"
- ">>> tklmbda(x, -1.5)\n"
- "array([0.34688734, 0.3786554 , 0.41528805, 0.45629737, 0.5 ,\n"
- " 0.54370263, 0.58471195, 0.6213446 , 0.65311266])\n"
- "\n"
- "When `lmbda` is 0, the function is the logistic sigmoid function,\n"
- "which is implemented in `scipy.special` as `expit`.\n"
- "\n"
- ">>> tklmbda(x, 0)\n"
- "array([0.11920292, 0.18242552, 0.26894142, 0.37754067, 0.5 ,\n"
- " 0.62245933, 0.73105858, 0.81757448, 0.88079708])\n"
- ">>> expit(x)\n"
- "array([0.11920292, 0.18242552, 0.26894142, 0.37754067, 0.5 ,\n"
- " 0.62245933, 0.73105858, 0.81757448, 0.88079708])\n"
- "\n"
- "When `lmbda` is 1, the Tukey lambda distribution is uniform on the\n"
- "interval [-1, 1], so the CDF increases linearly.\n"
- "\n"
- ">>> t = np.linspace(-1, 1, 9)\n"
- ">>> tklmbda(t, 1)\n"
- "array([0. , 0.125, 0.25 , 0.375, 0.5 , 0.625, 0.75 , 0.875, 1. ])\n"
- "\n"
- "In the following, we generate plots for several values of `lmbda`.\n"
- "\n"
- "The first figure shows graphs for `lmbda` <= 0.\n"
- "\n"
- ">>> styles = ['-', '-.', '--', ':']\n"
- ">>> fig, ax = plt.subplots()\n"
- ">>> x = np.linspace(-12, 12, 500)\n"
- ">>> for k, lmbda in enumerate([-1.0, -0.5, 0.0]):\n"
- "... y = tklmbda(x, lmbda)\n"
- "... ax.plot(x, y, styles[k], label=rf'$\\lambda$ = {lmbda:-4.1f}')\n"
- "\n"
- ">>> ax.set_title(r'tklmbda(x, $\\lambda$)')\n"
- ">>> ax.set_label('x')\n"
- ">>> ax.legend(framealpha=1, shadow=True)\n"
- ">>> ax.grid(True)\n"
- "\n"
- "The second figure shows graphs for `lmbda` > 0. The dots in the\n"
- "graphs show the bounds of the support of the distribution.\n"
- "\n"
- ">>> fig, ax = plt.subplots()\n"
- ">>> x = np.linspace(-4.2, 4.2, 500)\n"
- ">>> lmbdas = [0.25, 0.5, 1.0, 1.5]\n"
- ">>> for k, lmbda in enumerate(lmbdas):\n"
- "... y = tklmbda(x, lmbda)\n"
- "... ax.plot(x, y, styles[k], label=fr'$\\lambda$ = {lmbda}')\n"
- "\n"
- ">>> ax.set_prop_cycle(None)\n"
- ">>> for lmbda in lmbdas:\n"
- "... ax.plot([-1/lmbda, 1/lmbda], [0, 1], '.', ms=8)\n"
- "\n"
- ">>> ax.set_title(r'tklmbda(x, $\\lambda$)')\n"
- ">>> ax.set_xlabel('x')\n"
- ">>> ax.legend(framealpha=1, shadow=True)\n"
- ">>> ax.grid(True)\n"
- "\n"
- ">>> plt.tight_layout()\n"
- ">>> plt.show()\n"
- "\n"
- "The CDF of the Tukey lambda distribution is also implemented as the\n"
- "``cdf`` method of `scipy.stats.tukeylambda`. In the following,\n"
- "``tukeylambda.cdf(x, -0.5)`` and ``tklmbda(x, -0.5)`` compute the\n"
- "same values:\n"
- "\n"
- ">>> from scipy.stats import tukeylambda\n"
- ">>> x = np.linspace(-2, 2, 9)\n"
- "\n"
- ">>> tukeylambda.cdf(x, -0.5)\n"
- "array([0.21995157, 0.27093858, 0.33541677, 0.41328161, 0.5 ,\n"
- " 0.58671839, 0.66458323, 0.72906142, 0.78004843])\n"
- "\n"
- ">>> tklmbda(x, -0.5)\n"
- "array([0.21995157, 0.27093858, 0.33541677, 0.41328161, 0.5 ,\n"
- " 0.58671839, 0.66458323, 0.72906142, 0.78004843])\n"
- "\n"
- "The implementation in ``tukeylambda`` also provides location and scale\n"
- "parameters, and other methods such as ``pdf()`` (the probability\n"
- "density function) and ``ppf()`` (the inverse of the CDF), so for\n"
- "working with the Tukey lambda distribution, ``tukeylambda`` is more\n"
- "generally useful. The primary advantage of ``tklmbda`` is that it is\n"
- "significantly faster than ``tukeylambda.cdf``.")
- ufunc_tklmbda_loops[0] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc_tklmbda_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_tklmbda_types[0] = <char>NPY_FLOAT
- ufunc_tklmbda_types[1] = <char>NPY_FLOAT
- ufunc_tklmbda_types[2] = <char>NPY_FLOAT
- ufunc_tklmbda_types[3] = <char>NPY_DOUBLE
- ufunc_tklmbda_types[4] = <char>NPY_DOUBLE
- ufunc_tklmbda_types[5] = <char>NPY_DOUBLE
- ufunc_tklmbda_ptr[2*0] = <void*>_func_xsf_tukeylambdacdf
- ufunc_tklmbda_ptr[2*0+1] = <void*>(<char*>"tklmbda")
- ufunc_tklmbda_ptr[2*1] = <void*>_func_xsf_tukeylambdacdf
- ufunc_tklmbda_ptr[2*1+1] = <void*>(<char*>"tklmbda")
- ufunc_tklmbda_data[0] = &ufunc_tklmbda_ptr[2*0]
- ufunc_tklmbda_data[1] = &ufunc_tklmbda_ptr[2*1]
- tklmbda = np.PyUFunc_FromFuncAndData(ufunc_tklmbda_loops, ufunc_tklmbda_data, ufunc_tklmbda_types, 2, 2, 1, 0, 'tklmbda', ufunc_tklmbda_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_wrightomega_loops[4]
- cdef void *ufunc_wrightomega_ptr[8]
- cdef void *ufunc_wrightomega_data[4]
- cdef char ufunc_wrightomega_types[8]
- cdef char *ufunc_wrightomega_doc = (
- "wrightomega(z, out=None)\n"
- "\n"
- "Wright Omega function.\n"
- "\n"
- "Defined as the solution to\n"
- "\n"
- ".. math::\n"
- "\n"
- " \\omega + \\log(\\omega) = z\n"
- "\n"
- "where :math:`\\log` is the principal branch of the complex logarithm.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "z : array_like\n"
- " Points at which to evaluate the Wright Omega function\n"
- "out : ndarray, optional\n"
- " Optional output array for the function values\n"
- "\n"
- "Returns\n"
- "-------\n"
- "omega : scalar or ndarray\n"
- " Values of the Wright Omega function\n"
- "\n"
- "See Also\n"
- "--------\n"
- "lambertw : The Lambert W function\n"
- "\n"
- "Notes\n"
- "-----\n"
- ".. versionadded:: 0.19.0\n"
- "\n"
- "The function can also be defined as\n"
- "\n"
- ".. math::\n"
- "\n"
- " \\omega(z) = W_{K(z)}(e^z)\n"
- "\n"
- "where :math:`K(z) = \\lceil (\\Im(z) - \\pi)/(2\\pi) \\rceil` is the\n"
- "unwinding number and :math:`W` is the Lambert W function.\n"
- "\n"
- "The implementation here is taken from [1]_.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] Lawrence, Corless, and Jeffrey, \"Algorithm 917: Complex\n"
- " Double-Precision Evaluation of the Wright :math:`\\omega`\n"
- " Function.\" ACM Transactions on Mathematical Software,\n"
- " 2012. :doi:`10.1145/2168773.2168779`.\n"
- "\n"
- "Examples\n"
- "--------\n"
- ">>> import numpy as np\n"
- ">>> from scipy.special import wrightomega, lambertw\n"
- "\n"
- ">>> wrightomega([-2, -1, 0, 1, 2])\n"
- "array([0.12002824, 0.27846454, 0.56714329, 1. , 1.5571456 ])\n"
- "\n"
- "Complex input:\n"
- "\n"
- ">>> wrightomega(3 + 5j)\n"
- "(1.5804428632097158+3.8213626783287937j)\n"
- "\n"
- "Verify that ``wrightomega(z)`` satisfies ``w + log(w) = z``:\n"
- "\n"
- ">>> w = -5 + 4j\n"
- ">>> wrightomega(w + np.log(w))\n"
- "(-5+4j)\n"
- "\n"
- "Verify the connection to ``lambertw``:\n"
- "\n"
- ">>> z = 0.5 + 3j\n"
- ">>> wrightomega(z)\n"
- "(0.0966015889280649+1.4937828458191993j)\n"
- ">>> lambertw(np.exp(z))\n"
- "(0.09660158892806493+1.4937828458191993j)\n"
- "\n"
- ">>> z = 0.5 + 4j\n"
- ">>> wrightomega(z)\n"
- "(-0.3362123489037213+2.282986001579032j)\n"
- ">>> lambertw(np.exp(z), k=1)\n"
- "(-0.33621234890372115+2.282986001579032j)")
- ufunc_wrightomega_loops[0] = <np.PyUFuncGenericFunction>loop_d_d__As_f_f
- ufunc_wrightomega_loops[1] = <np.PyUFuncGenericFunction>loop_d_d__As_d_d
- ufunc_wrightomega_loops[2] = <np.PyUFuncGenericFunction>loop_D_D__As_F_F
- ufunc_wrightomega_loops[3] = <np.PyUFuncGenericFunction>loop_D_D__As_D_D
- ufunc_wrightomega_types[0] = <char>NPY_FLOAT
- ufunc_wrightomega_types[1] = <char>NPY_FLOAT
- ufunc_wrightomega_types[2] = <char>NPY_DOUBLE
- ufunc_wrightomega_types[3] = <char>NPY_DOUBLE
- ufunc_wrightomega_types[4] = <char>NPY_CFLOAT
- ufunc_wrightomega_types[5] = <char>NPY_CFLOAT
- ufunc_wrightomega_types[6] = <char>NPY_CDOUBLE
- ufunc_wrightomega_types[7] = <char>NPY_CDOUBLE
- ufunc_wrightomega_ptr[2*0] = <void*>scipy.special._ufuncs_cxx._export_wrightomega_real
- ufunc_wrightomega_ptr[2*0+1] = <void*>(<char*>"wrightomega")
- ufunc_wrightomega_ptr[2*1] = <void*>scipy.special._ufuncs_cxx._export_wrightomega_real
- ufunc_wrightomega_ptr[2*1+1] = <void*>(<char*>"wrightomega")
- ufunc_wrightomega_ptr[2*2] = <void*>scipy.special._ufuncs_cxx._export_wrightomega
- ufunc_wrightomega_ptr[2*2+1] = <void*>(<char*>"wrightomega")
- ufunc_wrightomega_ptr[2*3] = <void*>scipy.special._ufuncs_cxx._export_wrightomega
- ufunc_wrightomega_ptr[2*3+1] = <void*>(<char*>"wrightomega")
- ufunc_wrightomega_data[0] = &ufunc_wrightomega_ptr[2*0]
- ufunc_wrightomega_data[1] = &ufunc_wrightomega_ptr[2*1]
- ufunc_wrightomega_data[2] = &ufunc_wrightomega_ptr[2*2]
- ufunc_wrightomega_data[3] = &ufunc_wrightomega_ptr[2*3]
- wrightomega = np.PyUFunc_FromFuncAndData(ufunc_wrightomega_loops, ufunc_wrightomega_data, ufunc_wrightomega_types, 4, 1, 1, 0, 'wrightomega', ufunc_wrightomega_doc, 0)
- cdef np.PyUFuncGenericFunction ufunc_yn_loops[3]
- cdef void *ufunc_yn_ptr[6]
- cdef void *ufunc_yn_data[3]
- cdef char ufunc_yn_types[9]
- cdef char *ufunc_yn_doc = (
- "yn(n, x, out=None)\n"
- "\n"
- "Bessel function of the second kind of integer order and real argument.\n"
- "\n"
- "Parameters\n"
- "----------\n"
- "n : array_like\n"
- " Order (integer).\n"
- "x : array_like\n"
- " Argument (float).\n"
- "out : ndarray, optional\n"
- " Optional output array for the function results\n"
- "\n"
- "Returns\n"
- "-------\n"
- "Y : scalar or ndarray\n"
- " Value of the Bessel function, :math:`Y_n(x)`.\n"
- "\n"
- "See Also\n"
- "--------\n"
- "yv : For real order and real or complex argument.\n"
- "y0: faster implementation of this function for order 0\n"
- "y1: faster implementation of this function for order 1\n"
- "\n"
- "Notes\n"
- "-----\n"
- "Wrapper for the Cephes [1]_ routine `yn`.\n"
- "\n"
- "The function is evaluated by forward recurrence on `n`, starting with\n"
- "values computed by the Cephes routines `y0` and `y1`. If ``n = 0`` or 1,\n"
- "the routine for `y0` or `y1` is called directly.\n"
- "\n"
- "References\n"
- "----------\n"
- ".. [1] Cephes Mathematical Functions Library,\n"
- " http://www.netlib.org/cephes/\n"
- "\n"
- "Examples\n"
- "--------\n"
- "Evaluate the function of order 0 at one point.\n"
- "\n"
- ">>> from scipy.special import yn\n"
- ">>> yn(0, 1.)\n"
- "0.08825696421567697\n"
- "\n"
- "Evaluate the function at one point for different orders.\n"
- "\n"
- ">>> yn(0, 1.), yn(1, 1.), yn(2, 1.)\n"
- "(0.08825696421567697, -0.7812128213002888, -1.6506826068162546)\n"
- "\n"
- "The evaluation for different orders can be carried out in one call by\n"
- "providing a list or NumPy array as argument for the `v` parameter:\n"
- "\n"
- ">>> yn([0, 1, 2], 1.)\n"
- "array([ 0.08825696, -0.78121282, -1.65068261])\n"
- "\n"
- "Evaluate the function at several points for order 0 by providing an\n"
- "array for `z`.\n"
- "\n"
- ">>> import numpy as np\n"
- ">>> points = np.array([0.5, 3., 8.])\n"
- ">>> yn(0, points)\n"
- "array([-0.44451873, 0.37685001, 0.22352149])\n"
- "\n"
- "If `z` is an array, the order parameter `v` must be broadcastable to\n"
- "the correct shape if different orders shall be computed in one call.\n"
- "To calculate the orders 0 and 1 for a 1D array:\n"
- "\n"
- ">>> orders = np.array([[0], [1]])\n"
- ">>> orders.shape\n"
- "(2, 1)\n"
- "\n"
- ">>> yn(orders, points)\n"
- "array([[-0.44451873, 0.37685001, 0.22352149],\n"
- " [-1.47147239, 0.32467442, -0.15806046]])\n"
- "\n"
- "Plot the functions of order 0 to 3 from 0 to 10.\n"
- "\n"
- ">>> import matplotlib.pyplot as plt\n"
- ">>> fig, ax = plt.subplots()\n"
- ">>> x = np.linspace(0., 10., 1000)\n"
- ">>> for i in range(4):\n"
- "... ax.plot(x, yn(i, x), label=f'$Y_{i!r}$')\n"
- ">>> ax.set_ylim(-3, 1)\n"
- ">>> ax.legend()\n"
- ">>> plt.show()")
- ufunc_yn_loops[0] = <np.PyUFuncGenericFunction>loop_d_pd__As_pd_d
- ufunc_yn_loops[1] = <np.PyUFuncGenericFunction>loop_d_dd__As_ff_f
- ufunc_yn_loops[2] = <np.PyUFuncGenericFunction>loop_d_dd__As_dd_d
- ufunc_yn_types[0] = <char>NPY_INTP
- ufunc_yn_types[1] = <char>NPY_DOUBLE
- ufunc_yn_types[2] = <char>NPY_DOUBLE
- ufunc_yn_types[3] = <char>NPY_FLOAT
- ufunc_yn_types[4] = <char>NPY_FLOAT
- ufunc_yn_types[5] = <char>NPY_FLOAT
- ufunc_yn_types[6] = <char>NPY_DOUBLE
- ufunc_yn_types[7] = <char>NPY_DOUBLE
- ufunc_yn_types[8] = <char>NPY_DOUBLE
- ufunc_yn_ptr[2*0] = <void*>_func_cephes_yn_wrap
- ufunc_yn_ptr[2*0+1] = <void*>(<char*>"yn")
- ufunc_yn_ptr[2*1] = <void*>_func_yn_unsafe
- ufunc_yn_ptr[2*1+1] = <void*>(<char*>"yn")
- ufunc_yn_ptr[2*2] = <void*>_func_yn_unsafe
- ufunc_yn_ptr[2*2+1] = <void*>(<char*>"yn")
- ufunc_yn_data[0] = &ufunc_yn_ptr[2*0]
- ufunc_yn_data[1] = &ufunc_yn_ptr[2*1]
- ufunc_yn_data[2] = &ufunc_yn_ptr[2*2]
- yn = np.PyUFunc_FromFuncAndData(ufunc_yn_loops, ufunc_yn_data, ufunc_yn_types, 3, 2, 1, 0, 'yn', ufunc_yn_doc, 0)
- from ._special_ufuncs import (_cospi, _gen_harmonic, _lambertw, _normalized_gen_harmonic, _scaled_exp1, _sinpi, _spherical_jn, _spherical_jn_d, _spherical_yn, _spherical_yn_d, _spherical_in, _spherical_in_d, _spherical_kn, _spherical_kn_d, airy, airye, bei, beip, ber, berp, binom, exp1, expi, expit, exprel, gamma, gammaln, hankel1, hankel1e, hankel2, hankel2e, hyp2f1, it2i0k0, it2j0y0, it2struve0, itairy, iti0k0, itj0y0, itmodstruve0, itstruve0, iv, _iv_ratio, _iv_ratio_c, ive, jv, jve, kei, keip, kelvin, ker, kerp, kv, kve, log_expit, log_wright_bessel, loggamma, logit, mathieu_a, mathieu_b, mathieu_cem, mathieu_modcem1, mathieu_modcem2, mathieu_modsem1, mathieu_modsem2, mathieu_sem, modfresnelm, modfresnelp, obl_ang1, obl_ang1_cv, obl_cv, obl_rad1, obl_rad1_cv, obl_rad2, obl_rad2_cv, pbdv, pbvv, pbwa, pro_ang1, pro_ang1_cv, pro_cv, pro_rad1, pro_rad1_cv, pro_rad2, pro_rad2_cv, psi, rgamma, wright_bessel, yv, yve, zetac, _zeta, sindg, cosdg, tandg, cotdg, i0, i0e, i1, i1e, k0, k0e, k1, k1e, y0, y1, j0, j1, struve, modstruve, beta, betaln, besselpoly, gammaln, gammasgn, cbrt, radian, cosm1, gammainc, gammaincinv, gammaincc, gammainccinv, fresnel, ellipe, ellipeinc, ellipk, ellipkinc, ellipkm1, ellipj, _riemann_zeta, erf, erfc, erfcx, erfi, voigt_profile, wofz, dawsn, ndtr, log_ndtr, exp2, exp10, expm1, log1p, xlogy, xlog1py, _log1pmx, _log1mexp)
- #
- # Aliases
- #
- jn = jv
|