| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387 |
- !===============================================================================
- ! Copyright 2020-2022 Intel Corporation.
- !
- ! This software and the related documents are Intel copyrighted materials, and
- ! your use of them is governed by the express license under which they were
- ! provided to you (License). Unless the License provides otherwise, you may not
- ! use, modify, copy, publish, distribute, disclose or transmit this software or
- ! the related documents without Intel's prior written permission.
- !
- ! This software and the related documents are provided as is, with no express
- ! or implied warranties, other than those that are expressly stated in the
- ! License.
- !===============================================================================
- ! Content:
- ! oneMKL Library FORTRAN interface for VSL OpenMP offload
- !*******************************************************************************
- include "mkl_vsl_omp_variant.f90"
- module onemkl_vsl_omp_offload
- use onemkl_vsl_omp_variant
- !++
- ! VSL CONTINUOUS DISTRIBUTION GENERATOR FUNCTION INTERFACES.
- !--
- ! Uniform distribution
- interface
- integer function vsrnguniform(method, stream, n, r, a, b)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=4),intent(out) :: r(n)
- real(kind=4),intent(in) :: a
- real(kind=4),intent(in) :: b
- !$omp declare variant( vsrnguniform:mkl_vsl_vsrnguniform_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vsrnguniform:mkl_vsl_vsrnguniform_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vsrnguniform
- end interface
- interface
- integer function vdrnguniform (method, stream, n, r, a, b)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=8),intent(out) :: r(n)
- real(kind=8),intent(in) :: a
- real(kind=8),intent(in) :: b
- !$omp declare variant( vdrnguniform:mkl_vsl_vdrnguniform_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vdrnguniform:mkl_vsl_vdrnguniform_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vdrnguniform
- end interface
-
- ! Gaussian distribution
- interface
- integer function vsrnggaussian (method, stream, n, r, a, sigma)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=4),intent(out) :: r(n)
- real(kind=4),intent(in) :: a
- real(kind=4),intent(in) :: sigma
- !$omp declare variant( vsrnggaussian:mkl_vsl_vsrnggaussian_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vsrnggaussian:mkl_vsl_vsrnggaussian_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vsrnggaussian
- end interface
- interface
- integer function vdrnggaussian (method, stream, n, r, a, sigma)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=8),intent(out) :: r(n)
- real(kind=8),intent(in) :: a
- real(kind=8),intent(in) :: sigma
- !$omp declare variant( vdrnggaussian:mkl_vsl_vdrnggaussian_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vdrnggaussian:mkl_vsl_vdrnggaussian_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vdrnggaussian
- end interface
- ! GaussianMV distribution
- interface
- integer function vsrnggaussianmv (method, stream, n, r, dimen, mstorage, a, t)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- integer, intent(in) :: dimen
- real(kind=4),intent(out) :: r(dimen,n)
- integer, intent(in) :: mstorage
- real(kind=4),intent(in) :: a(dimen)
- real(kind=4),intent(in) :: t(dimen,dimen)
- !$omp declare variant( vsrnggaussianmv:mkl_vsl_vsrnggaussianmv_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vsrnggaussianmv:mkl_vsl_vsrnggaussianmv_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vsrnggaussianmv
- end interface
- interface
- integer function vdrnggaussianmv (method, stream, n, r, dimen, mstorage, a, t)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- integer, intent(in) :: dimen
- real(kind=8),intent(out) :: r(dimen,n)
- integer, intent(in) :: mstorage
- real(kind=8),intent(in) :: a(dimen)
- real(kind=8),intent(in) :: t(dimen,dimen)
- !$omp declare variant( vdrnggaussianmv:mkl_vsl_vdrnggaussianmv_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vdrnggaussianmv:mkl_vsl_vdrnggaussianmv_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vdrnggaussianmv
- end interface
- ! Multinomial distribution
- interface
- integer function virngmultinomial (method, stream, n, r, ntrial, k, p)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- integer(kind=4),intent(out) :: r(n)
- integer, intent(in) :: ntrial
- integer, intent(in) :: k
- real(kind=8),intent(in) :: p(k)
- !$omp declare variant( virngmultinomial:mkl_vsl_virngmultinomial_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( virngmultinomial:mkl_vsl_virngmultinomial_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function virngmultinomial
- end interface
- ! PoissonV distribution
- interface
- integer function virngpoissonv (method, stream, n, r, ntrial, k, lambda)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- integer(kind=4),intent(out) :: r(n)
- real(kind=8),intent(in) :: lambda(n)
- !$omp declare variant( virngpoissonv:mkl_vsl_virngpoissonv_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( virngpoissonv:mkl_vsl_virngpoissonv_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function virngpoissonv
- end interface
- ! Exponential distribution
- interface
- integer function vsrngexponential (method, stream, n, r, a, beta)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=4),intent(out) :: r(n)
- real(kind=4),intent(in) :: a
- real(kind=4),intent(in) :: beta
- !$omp declare variant( vsrngexponential:mkl_vsl_vsrngexponential_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vsrngexponential:mkl_vsl_vsrngexponential_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vsrngexponential
- end interface
- interface
- integer function vdrngexponential (method, stream, n, r, a, beta)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=8),intent(out) :: r(n)
- real(kind=8),intent(in) :: a
- real(kind=8),intent(in) :: beta
- !$omp declare variant( vdrngexponential:mkl_vsl_vdrngexponential_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vdrngexponential:mkl_vsl_vdrngexponential_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vdrngexponential
- end interface
- ! Laplace distribution
- interface
- integer function vsrnglaplace (method, stream, n, r, a, beta)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=4),intent(out) :: r(n)
- real(kind=4),intent(in) :: a
- real(kind=4),intent(in) :: beta
- !$omp declare variant( vsrnglaplace:mkl_vsl_vsrnglaplace_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vsrnglaplace:mkl_vsl_vsrnglaplace_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vsrnglaplace
- end interface
- interface
- integer function vdrnglaplace (method, stream, n, r, a, beta)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=8),intent(out) :: r(n)
- real(kind=8),intent(in) :: a
- real(kind=8),intent(in) :: beta
- !$omp declare variant( vdrnglaplace:mkl_vsl_vdrnglaplace_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vdrnglaplace:mkl_vsl_vdrnglaplace_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vdrnglaplace
- end interface
- ! Weibull distribution
- interface
- integer function vsrngweibull (method, stream, n, r, alpha, a, beta)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=4),intent(out) :: r(n)
- real(kind=4),intent(in) :: alpha
- real(kind=4),intent(in) :: a
- real(kind=4),intent(in) :: beta
- !$omp declare variant( vsrngweibull:mkl_vsl_vsrngweibull_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vsrngweibull:mkl_vsl_vsrngweibull_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vsrngweibull
- end interface
- interface
- integer function vdrngweibull (method, stream, n, r, alpha, a, beta)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=8),intent(out) :: r(n)
- real(kind=8),intent(in) :: alpha
- real(kind=8),intent(in) :: a
- real(kind=8),intent(in) :: beta
- !$omp declare variant( vdrngweibull:mkl_vsl_vdrngweibull_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vdrngweibull:mkl_vsl_vdrngweibull_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vdrngweibull
- end interface
- ! Cauchy distribution
- interface
- integer function vsrngcauchy (method, stream, n, r, a, beta)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=4),intent(out) :: r(n)
- real(kind=4),intent(in) :: a
- real(kind=4),intent(in) :: beta
- !$omp declare variant( vsrngcauchy:mkl_vsl_vsrngcauchy_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vsrngcauchy:mkl_vsl_vsrngcauchy_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vsrngcauchy
- end interface
- interface
- integer function vdrngcauchy (method, stream, n, r, a, beta)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=8),intent(out) :: r(n)
- real(kind=8),intent(in) :: a
- real(kind=8),intent(in) :: beta
- !$omp declare variant( vdrngcauchy:mkl_vsl_vdrngcauchy_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vdrngcauchy:mkl_vsl_vdrngcauchy_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vdrngcauchy
- end interface
- ! Rayleigh distribution
- interface
- integer function vsrngrayleigh (method, stream, n, r, a, beta)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=4),intent(out) :: r(n)
- real(kind=4),intent(in) :: a
- real(kind=4),intent(in) :: beta
- !$omp declare variant( vsrngrayleigh:mkl_vsl_vsrngrayleigh_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vsrngrayleigh:mkl_vsl_vsrngrayleigh_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vsrngrayleigh
- end interface
- interface
- integer function vdrngrayleigh (method, stream, n, r, a, beta)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=8),intent(out) :: r(n)
- real(kind=8),intent(in) :: a
- real(kind=8),intent(in) :: beta
- !$omp declare variant( vdrngrayleigh:mkl_vsl_vdrngrayleigh_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vdrngrayleigh:mkl_vsl_vdrngrayleigh_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vdrngrayleigh
- end interface
- ! Lognormal distribution
- interface
- integer function vsrnglognormal (method, stream, n, r, a, sigma, b, beta)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=4),intent(out) :: r(n)
- real(kind=4),intent(in) :: a
- real(kind=4),intent(in) :: sigma
- real(kind=4),intent(in) :: b
- real(kind=4),intent(in) :: beta
- !$omp declare variant( vsrnglognormal:mkl_vsl_vsrnglognormal_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vsrnglognormal:mkl_vsl_vsrnglognormal_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vsrnglognormal
- end interface
- interface
- integer function vdrnglognormal (method, stream, n, r, a, sigma, b, beta)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=8),intent(out) :: r(n)
- real(kind=8),intent(in) :: a
- real(kind=8),intent(in) :: sigma
- real(kind=8),intent(in) :: b
- real(kind=8),intent(in) :: beta
- !$omp declare variant( vdrnglognormal:mkl_vsl_vdrnglognormal_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vdrnglognormal:mkl_vsl_vdrnglognormal_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vdrnglognormal
- end interface
- ! Gumbel distribution
- interface
- integer function vsrnggumbel (method, stream, n, r, a, beta)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=4),intent(out) :: r(n)
- real(kind=4),intent(in) :: a
- real(kind=4),intent(in) :: beta
- !$omp declare variant( vsrnggumbel:mkl_vsl_vsrnggumbel_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vsrnggumbel:mkl_vsl_vsrnggumbel_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vsrnggumbel
- end interface
- interface
- integer function vdrnggumbel (method, stream, n, r, a, beta)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=8),intent(out) :: r(n)
- real(kind=8),intent(in) :: a
- real(kind=8),intent(in) :: beta
- !$omp declare variant( vdrnggumbel:mkl_vsl_vdrnggumbel_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vdrnggumbel:mkl_vsl_vdrnggumbel_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vdrnggumbel
- end interface
- ! Beta distribution
- interface
- integer function vsrngbeta (method, stream, n, r, p, q, a, beta)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=4),intent(out) :: r(n)
- real(kind=4),intent(in) :: p
- real(kind=4),intent(in) :: q
- real(kind=4),intent(in) :: a
- real(kind=4),intent(in) :: beta
- !$omp declare variant( vsrngbeta:mkl_vsl_vsrngbeta_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vsrngbeta:mkl_vsl_vsrngbeta_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vsrngbeta
- end interface
- interface
- integer function vdrngbeta (method, stream, n, r, p, q, a, beta)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=8),intent(out) :: r(n)
- real(kind=8),intent(in) :: p
- real(kind=8),intent(in) :: q
- real(kind=8),intent(in) :: a
- real(kind=8),intent(in) :: beta
- !$omp declare variant( vdrngbeta:mkl_vsl_vdrngbeta_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vdrngbeta:mkl_vsl_vdrngbeta_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vdrngbeta
- end interface
- ! Gamma distribution
- interface
- integer function vsrnggamma (method, stream, n, r, alpha, a, beta)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=4),intent(out) :: r(n)
- real(kind=4),intent(in) :: alpha
- real(kind=4),intent(in) :: a
- real(kind=4),intent(in) :: beta
- !$omp declare variant( vsrnggamma:mkl_vsl_vsrnggamma_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vsrnggamma:mkl_vsl_vsrnggamma_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vsrnggamma
- end interface
- interface
- integer function vdrnggamma (method, stream, n, r, alpha, a, beta)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=8),intent(out) :: r(n)
- real(kind=8),intent(in) :: alpha
- real(kind=8),intent(in) :: a
- real(kind=8),intent(in) :: beta
- !$omp declare variant( vdrnggamma:mkl_vsl_vdrnggamma_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vdrnggamma:mkl_vsl_vdrnggamma_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vdrnggamma
- end interface
- ! ChiSquare distribution
- interface
- integer function vsrngchisquare (method, stream, n, r,v)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=4),intent(out) :: r(n)
- integer,intent(in) :: v
- !$omp declare variant( vsrngchisquare:mkl_vsl_vsrngchisquare_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vsrngchisquare:mkl_vsl_vsrngchisquare_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vsrngchisquare
- end interface
- interface
- integer function vdrngchisquare (method, stream, n, r, v)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=8),intent(out) :: r(n)
- integer,intent(in) :: v
- !$omp declare variant( vdrngchisquare:mkl_vsl_vdrngchisquare_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vdrngchisquare:mkl_vsl_vdrngchisquare_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vdrngchisquare
- end interface
- !++
- ! VSL DISCRETE DISTRIBUTION GENERATOR FUNCTION INTERFACES.
- !--
- ! Uniform distribution
- interface
- integer function virnguniform (method, stream, n, r, a, b)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- integer(kind=4),intent(out) :: r(n)
- integer(kind=4),intent(in) :: a
- integer(kind=4),intent(in) :: b
- !$omp declare variant( virnguniform:mkl_vsl_virnguniform_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( virnguniform:mkl_vsl_virnguniform_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function virnguniform
- end interface
- ! UniformBits distribution
- interface
- integer function virnguniformbits (method, stream, n, r)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- integer(kind=4),intent(out) :: r(n)
- !$omp declare variant( virnguniformbits:mkl_vsl_virnguniformbits_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( virnguniformbits:mkl_vsl_virnguniformbits_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function virnguniformbits
- end interface
- ! UniformBits32 distribution
- interface
- integer function virnguniformbits32 (method, stream, n, r)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- integer(kind=4),intent(out) :: r(n)
- !$omp declare variant( virnguniformbits32:mkl_vsl_virnguniformbits32_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( virnguniformbits32:mkl_vsl_virnguniformbits32_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function virnguniformbits32
- end interface
- ! UniformBits64 distribution
- interface
- integer function virnguniformbits64 (method, stream, n, r)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- integer(kind=8),intent(out) :: r(n)
- !$omp declare variant( virnguniformbits64:mkl_vsl_virnguniformbits64_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( virnguniformbits64:mkl_vsl_virnguniformbits64_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function virnguniformbits64
- end interface
- ! Bernoulli distribution
- interface
- integer function virngbernoulli (method, stream, n, r, p)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- integer(kind=4),intent(out) :: r(n)
- real(kind=8),intent(in) :: p
- !$omp declare variant( virngbernoulli:mkl_vsl_virngbernoulli_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( virngbernoulli:mkl_vsl_virngbernoulli_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function virngbernoulli
- end interface
- ! Geometric distribution
- interface
- integer function virnggeometric (method, stream, n, r, p)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- integer(kind=4),intent(out) :: r(n)
- real(kind=8),intent(in) :: p
- !$omp declare variant( virnggeometric:mkl_vsl_virnggeometric_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( virnggeometric:mkl_vsl_virnggeometric_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function virnggeometric
- end interface
- ! Hypergeometric distribution
- interface
- integer function virnghypergeometric (method, stream, n, r, l, s, m)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- integer(kind=4),intent(out) :: r(n)
- integer(kind=4),intent(in) :: l
- integer(kind=4),intent(in) :: s
- integer(kind=4),intent(in) :: m
- !$omp declare variant( virnghypergeometric:mkl_vsl_virnghypergeometric_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( virnghypergeometric:mkl_vsl_virnghypergeometric_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function virnghypergeometric
- end interface
- ! Binomial distribution
- interface
- integer function virngbinomial (method, stream, n, r, ntrial, p)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- integer(kind=4),intent(out) :: r(n)
- integer(kind=4),intent(in) :: ntrial
- real(kind=8),intent(in) :: p
- !$omp declare variant( virngbinomial:mkl_vsl_virngbinomial_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( virngbinomial:mkl_vsl_virngbinomial_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function virngbinomial
- end interface
- ! Negbinomial distribution
- interface
- integer function virngnegbinomial (method, stream, n, r, a, p)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- integer(kind=4),intent(out) :: r(n)
- real(kind=8),intent(in) :: a
- real(kind=8),intent(in) :: p
- !$omp declare variant( virngnegbinomial:mkl_vsl_virngnegbinomial_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( virngnegbinomial:mkl_vsl_virngnegbinomial_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function virngnegbinomial
- end interface
- ! Poisson distribution
- interface
- integer function virngpoisson (method, stream, n, r, lambda)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- integer(kind=4),intent(out) :: r(n)
- real(kind=8),intent(in) :: lambda
- !$omp declare variant( virngpoisson:mkl_vsl_virngpoisson_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( virngpoisson:mkl_vsl_virngpoisson_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function virngpoisson
- end interface
- !++
- ! VSL SERVICE FUNCTION INTERFACES.
- !--
- ! NewStream - stream creation/initialization
- interface
- integer function vslnewstream( stream, brng, seed )
- import :: VSL_STREAM_STATE
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: brng
- integer,intent(in) :: seed
- end function
- end interface
- ! NewStreamEx - advanced stream creation/initialization
- interface
- integer function vslnewstreamex( stream, brng, n, params )
- import :: VSL_STREAM_STATE
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: brng
- integer,intent(in) :: n
- integer(kind=4),intent(in) :: params(n)
- end function
- end interface
- ! DeleteStream - delete stream
- interface
- integer function vsldeletestream( stream )
- import :: VSL_STREAM_STATE
- type(VSL_STREAM_STATE) :: stream
- end function
- end interface
- ! CopyStream - copy all stream information
- interface
- integer function vslcopystream( newstream, srcstream )
- import :: VSL_STREAM_STATE
- type(VSL_STREAM_STATE) :: newstream
- type(VSL_STREAM_STATE) :: srcstream
- end function
- end interface
- ! CopyStreamState - copy stream state only
- interface
- integer function vslcopystreamstate( deststream, srcstream )
- import :: VSL_STREAM_STATE
- type(VSL_STREAM_STATE) :: deststream
- type(VSL_STREAM_STATE) :: srcstream
- end function
- end interface
- ! LeapfrogStream - leapfrog method
- interface
- integer function vslleapfrogstream( stream, k, nstreams )
- import :: VSL_STREAM_STATE
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: k
- integer,intent(in) :: nstreams
- end function
- end interface
- ! SkipAheadStream - skip-ahead method
- interface
- integer function vslskipaheadstream( stream, nskip )
- import :: VSL_STREAM_STATE
- type(VSL_STREAM_STATE) :: stream
- integer(kind=8),intent(in) :: nskip
- end function
- end interface
- ! SkipAheadStreamEx - skip-ahead extended method
- interface
- integer function vslskipaheadstreamex( stream, n, params )
- import :: VSL_STREAM_STATE
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- integer(kind=8),intent(in) :: params(n)
- end function
- end interface
- ! GetBrngProperties - get BRNG properties
- interface
- integer function vslgetbrngproperties( brng, properties )
- import :: VSL_BRNG_PROPERTIES
- integer(kind=4),intent(in) :: brng
- type(VSL_BRNG_PROPERTIES),intent(out) :: properties
- end function
- end interface
- ! GetStreamStateBrng - get BRNG associated with given stream
- interface
- integer function vslgetstreamstatebrng( stream )
- import :: VSL_STREAM_STATE
- type(VSL_STREAM_STATE) :: stream
- end function
- end interface
- ! SaveStreamF - save stream to file
- interface
- integer function vslsavestreamf( stream, fname )
- import :: VSL_STREAM_STATE
- character(*) :: fname
- type(VSL_STREAM_STATE) :: stream
- end function
- end interface
- ! LoadStreamF - save stream to file
- interface
- integer function vslloadstreamf( stream, fname )
- import :: VSL_STREAM_STATE
- character(*) :: fname
- type(VSL_STREAM_STATE) :: stream
- end function
- end interface
- ! SaveStreamM - save stream to memory
- interface
- integer function vslsavestreamm( stream, memptr )
- import :: VSL_STREAM_STATE
- integer(kind=1),dimension(*),intent(out)::memptr
- type(VSL_STREAM_STATE),intent(in) :: stream
- end function
- end interface
- ! LoadStreamM - load stream from memory
- interface
- integer function vslloadstreamm( stream, memptr )
- import :: VSL_STREAM_STATE
- integer(kind=1),dimension(*),intent(in)::memptr
- type(VSL_STREAM_STATE),intent(out) ::stream
- end function
- end interface
- ! GetStreamSize - get size of random stream
- interface
- integer function vslgetstreamsize( stream )
- import :: VSL_STREAM_STATE
- type(VSL_STREAM_STATE),intent(in) :: stream
- end function
- end interface
- !++
- ! SUMMARY STATISTICS LIBRARY ROUTINES
- !--
- ! Compute routines
- interface
- integer function vsldsscompute(task, estimates, method)
- import :: VSL_SS_TASK
- type(VSL_SS_TASK) :: task
- integer(kind=8),intent(in) :: estimates
- integer,intent(in) :: method
- !$omp declare variant( vsldsscompute:mkl_vsl_dsscompute_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vsldsscompute:mkl_vsl_dsscompute_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync))
- end function
- end interface
- interface
- integer function vslssscompute(task, estimates, method)
- import :: VSL_SS_TASK
- type(VSL_SS_TASK) :: task
- integer(kind=8),intent(in) :: estimates
- integer,intent(in) :: method
- !$omp declare variant( vslssscompute:mkl_vsl_ssscompute_omp_offload ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vslssscompute:mkl_vsl_ssscompute_omp_offload ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync))
- end function
- end interface
- ! Task constructors
- INTERFACE
- INTEGER FUNCTION vsldssnewtask(task,p,n,x_storage,x,w,indices)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- INTEGER,INTENT(IN) :: p
- INTEGER,INTENT(IN) :: n
- INTEGER,INTENT(IN) :: x_storage
- REAL(KIND=8),INTENT(IN) :: x(n,p)
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL:: w
- INTEGER,DIMENSION(*),INTENT(IN),OPTIONAL:: indices
- end function
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION vslsssnewtask(task,p,n,x_storage,x,w,indices)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- INTEGER,INTENT(IN) :: p
- INTEGER,INTENT(IN) :: n
- INTEGER,INTENT(IN) :: x_storage
- REAL(KIND=4),INTENT(IN) :: x(n,p)
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL:: w
- INTEGER,DIMENSION(*),INTENT(IN),OPTIONAL:: indices
- end function
- END INTERFACE
- ! Task editors
- ! Editor to modify a task parameter
- INTERFACE
- INTEGER FUNCTION vsldssedittask(task,parameter,par_addr)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- INTEGER,INTENT(IN) :: parameter
- REAL(KIND=8),DIMENSION(*),INTENT(IN) :: par_addr
- end function
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION vslsssedittask(task,parameter,par_addr)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- INTEGER,INTENT(IN) :: parameter
- REAL(KIND=4),DIMENSION(*),INTENT(IN) :: par_addr
- end function
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION vslissedittask(task,parameter,par_addr)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- INTEGER,INTENT(IN) :: parameter
- INTEGER,INTENT(IN) :: par_addr
- end function
- END INTERFACE
- ! Task specific editors
- ! Editors to modify moments related parameters
- INTERFACE
- INTEGER FUNCTION vsldsseditmoments(task, mean, r2m, r3m, r4m, &
- & c2m, c3m, c4m)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- REAL(KIND=8),DIMENSION(*),INTENT(IN) :: mean
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: r2m
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: r3m
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: r4m
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: c2m
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: c3m
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: c4m
- end function
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION vslssseditmoments(task, mean, r2m, r3m, r4m, &
- & c2m, c3m, c4m)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- REAL(KIND=4),DIMENSION(*),INTENT(IN) :: mean
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: r2m
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: r3m
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: r4m
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: c2m
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: c3m
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: c4m
- end function
- END INTERFACE
- ! Editors to modify sums related parameters
- INTERFACE
- INTEGER FUNCTION vsldsseditsums(task, sum, r2s, r3s, r4s, &
- & c2s, c3s, c4s)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- REAL(KIND=8),DIMENSION(*),INTENT(IN) :: sum
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: r2s
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: r3s
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: r4s
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: c2s
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: c3s
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: c4s
- end function
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION vslssseditsums(task, sum, r2s, r3s, r4s, &
- & c2s, c3s, c4s)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- REAL(KIND=4),DIMENSION(*),INTENT(IN) :: sum
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: r2s
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: r3s
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: r4s
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: c2s
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: c3s
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: c4s
- end function
- END INTERFACE
- ! Editors to modify variance-covariance/correlation matrix
- ! related parameters
- INTERFACE
- INTEGER FUNCTION vsldsseditcovcor(task, mean,cov, cov_storage, &
- & cor, cor_storage)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- REAL(KIND=8),DIMENSION(*),INTENT(IN) :: mean
- REAL(KIND=8),DIMENSION(*),INTENT(IN), OPTIONAL :: cov
- INTEGER,INTENT(IN), OPTIONAL :: cov_storage
- REAL(KIND=8),DIMENSION(*),INTENT(IN), OPTIONAL :: cor
- INTEGER,INTENT(IN), OPTIONAL :: cor_storage
- end function
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION vslssseditcovcor(task, mean,cov, cov_storage, &
- & cor, cor_storage)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- REAL(KIND=4),DIMENSION(*),INTENT(IN) :: mean
- REAL(KIND=4),DIMENSION(*),INTENT(IN), OPTIONAL :: cov
- INTEGER,INTENT(IN), OPTIONAL :: cov_storage
- REAL(KIND=4),DIMENSION(*),INTENT(IN), OPTIONAL :: cor
- INTEGER,INTENT(IN), OPTIONAL :: cor_storage
- end function
- END INTERFACE
- ! Editors to modify cross-product matrix
- ! related parameters
- INTERFACE
- INTEGER FUNCTION vsldsseditcp(task, mean, sum, &
- & cp, cp_storage)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- REAL(KIND=8),DIMENSION(*),INTENT(IN) :: mean
- REAL(KIND=8),DIMENSION(*),INTENT(IN), OPTIONAL :: sum
- REAL(KIND=8),DIMENSION(*),INTENT(IN) :: cp
- INTEGER,INTENT(IN) :: cp_storage
- end function
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION vslssseditcp(task, mean, sum, &
- & cp, cp_storage)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- REAL(KIND=4),DIMENSION(*),INTENT(IN) :: mean
- REAL(KIND=4),DIMENSION(*),INTENT(IN), OPTIONAL :: sum
- REAL(KIND=4),DIMENSION(*),INTENT(IN) :: cp
- INTEGER,INTENT(IN) :: cp_storage
- end function
- END INTERFACE
- ! Editors to modify partial variance-covariance matrix
- ! related parameters
- INTERFACE
- INTEGER FUNCTION vsldsseditpartialcovcor(task, p_idx_array, &
- & cov, cov_storage, cor, cor_storage, &
- & p_cov, p_cov_storage, p_cor, p_cor_storage)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- INTEGER,DIMENSION(*),INTENT(IN) :: p_idx_array
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: cov
- INTEGER,INTENT(IN),OPTIONAL :: cov_storage
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: cor
- INTEGER,INTENT(IN),OPTIONAL :: cor_storage
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: p_cov
- INTEGER,INTENT(IN),OPTIONAL :: p_cov_storage
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: p_cor
- INTEGER,INTENT(IN),OPTIONAL :: p_cor_storage
- end function
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION vslssseditpartialcovcor(task, p_idx_array, &
- & cov, cov_storage, cor, cor_storage, &
- & p_cov, p_cov_storage, p_cor, p_cor_storage)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- INTEGER,DIMENSION(*),INTENT(IN) :: p_idx_array
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: cov
- INTEGER,INTENT(IN),OPTIONAL :: cov_storage
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: cor
- INTEGER,INTENT(IN),OPTIONAL :: cor_storage
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: p_cov
- INTEGER,INTENT(IN),OPTIONAL :: p_cov_storage
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: p_cor
- INTEGER,INTENT(IN),OPTIONAL :: p_cor_storage
- end function
- END INTERFACE
- ! Editors to modify quantiles related parameters
- INTERFACE
- INTEGER FUNCTION vsldsseditquantiles(task, quant_order_n, &
- & quant_order,quants, &
- & order_stats, order_stats_storage)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- INTEGER,INTENT(IN),OPTIONAL :: quant_order_n
- REAL(KIND=8),INTENT(IN),dimension(*),OPTIONAL::quant_order
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL::quants
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: &
- & order_stats
- INTEGER,INTENT(IN),OPTIONAL :: order_stats_storage
- end function
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION vslssseditquantiles(task, quant_order_n, &
- & quant_order,quants, &
- & order_stats, order_stats_storage)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- INTEGER,INTENT(IN),OPTIONAL :: quant_order_n
- REAL(KIND=4),INTENT(IN),dimension(*),OPTIONAL::quant_order
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL::quants
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: &
- & order_stats
- INTEGER,INTENT(IN),OPTIONAL :: order_stats_storage
- end function
- END INTERFACE
- ! Editors to modify stream data quantiles related parameters
- INTERFACE
- INTEGER FUNCTION vsldsseditstreamquantiles(task, &
- & quant_order_n, quant_order, quants, nparams, params)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- INTEGER,INTENT(IN) :: quant_order_n
- REAL(KIND=8),INTENT(IN),dimension(*) :: quant_order
- REAL(KIND=8),DIMENSION(*),INTENT(IN) :: quants
- INTEGER,INTENT(IN) :: nparams
- REAL(KIND=8),INTENT(IN), DIMENSION(*) :: params
- end function
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION vslssseditstreamquantiles(task, &
- & quant_order_n, quant_order, quants, nparams, params)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- INTEGER,INTENT(IN) :: quant_order_n
- REAL(KIND=4),INTENT(IN),dimension(*) :: quant_order
- REAL(KIND=4),DIMENSION(*),INTENT(IN) :: quants
- INTEGER,INTENT(IN) :: nparams
- REAL(KIND=4),INTENT(IN), DIMENSION(*) :: params
- end function
- END INTERFACE
- ! Editors to modify pooled/group variance-covariance matrix
- ! related parameters
- INTERFACE
- INTEGER FUNCTION vsldsseditpooledcovariance(task, grp_indices, &
- & pld_mean, pld_cov, grp_cov_indices, grp_means, grp_cov)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- INTEGER,DIMENSION(*),INTENT(IN) :: grp_indices
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: pld_mean
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: pld_cov
- INTEGER,DIMENSION(*),INTENT(IN),OPTIONAL ::grp_cov_indices
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: grp_means
- REAL(KIND=8),DIMENSION(*),INTENT(IN), OPTIONAL :: grp_cov
- end function
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION vslssseditpooledcovariance(task, grp_indices, &
- & pld_mean, pld_cov, grp_cov_indices, grp_means, grp_cov)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- INTEGER,DIMENSION(*),INTENT(IN) :: grp_indices
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: pld_mean
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: pld_cov
- INTEGER,DIMENSION(*),INTENT(IN),OPTIONAL ::grp_cov_indices
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: grp_means
- REAL(KIND=4),DIMENSION(*),INTENT(IN), OPTIONAL :: grp_cov
- end function
- END INTERFACE
- ! Editors to modify robust variance-covariance matrix
- ! related parameters
- INTERFACE
- INTEGER FUNCTION vsldsseditrobustcovariance(task,rcov_storage, &
- & nparams, params,rmean, rcov)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- INTEGER,INTENT(IN) :: rcov_storage
- INTEGER,INTENT(IN) :: nparams
- REAL(KIND=8),INTENT(IN) :: params(nparams)
- REAL(KIND=8),DIMENSION(*),INTENT(IN) :: rmean
- REAL(KIND=8),DIMENSION(*),INTENT(IN) :: rcov
- end function
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION vslssseditrobustcovariance(task,rcov_storage, &
- & nparams, params,rmean, rcov)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- INTEGER,INTENT(IN) :: rcov_storage
- INTEGER,INTENT(IN) :: nparams
- REAL(KIND=4),INTENT(IN) :: params(nparams)
- REAL(KIND=4),DIMENSION(*),INTENT(IN) :: rmean
- REAL(KIND=4),DIMENSION(*),INTENT(IN) :: rcov
- end function
- END INTERFACE
- ! Editors to modify outliers detection parameters
- INTERFACE
- INTEGER FUNCTION vsldsseditoutliersdetection(task, &
- & nparams, params, w)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- INTEGER,INTENT(IN) :: nparams
- REAL(KIND=8),DIMENSION(*),INTENT(IN) :: params(nparams)
- REAL(KIND=8),DIMENSION(*),INTENT(IN) :: w
- end function
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION vslssseditoutliersdetection(task, &
- & nparams, params, w)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- INTEGER,INTENT(IN) :: nparams
- REAL(KIND=4),DIMENSION(*),INTENT(IN) :: params(nparams)
- REAL(KIND=4),DIMENSION(*),INTENT(IN) :: w
- end function
- END INTERFACE
- ! Editors to modify missing values parameters
- INTERFACE
- INTEGER FUNCTION vsldsseditmissingvalues(task, nparams, params, &
- & init_estimates_n, init_estimates, prior_n, prior, &
- & simul_missing_vals_n,simul_missing_vals, &
- & estimates_n, estimates)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- INTEGER,INTENT(IN) :: nparams
- REAL(KIND=8),INTENT(IN) :: params(nparams)
- INTEGER,INTENT(IN),OPTIONAL :: init_estimates_n
- REAL(KIND=8),INTENT(IN), DIMENSION(*),OPTIONAL:: &
- & init_estimates
- INTEGER,INTENT(IN),OPTIONAL :: prior_n
- REAL(KIND=8),INTENT(IN),DIMENSION(*),OPTIONAL :: prior
- INTEGER,INTENT(IN),OPTIONAL :: simul_missing_vals_n
- REAL(KIND=8),INTENT(IN),DIMENSION(*),OPTIONAL :: &
- & simul_missing_vals
- INTEGER,INTENT(IN),OPTIONAL :: estimates_n
- REAL(KIND=8),INTENT(IN), DIMENSION(*), OPTIONAL :: &
- & estimates
- end function
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION vslssseditmissingvalues(task, nparams, params, &
- & init_estimates_n, init_estimates, prior_n, prior, &
- & simul_missing_vals_n,simul_missing_vals, &
- & estimates_n, estimates)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- INTEGER,INTENT(IN) :: nparams
- REAL(KIND=4),INTENT(IN) :: params(nparams)
- INTEGER,INTENT(IN),OPTIONAL :: init_estimates_n
- REAL(KIND=4),INTENT(IN), DIMENSION(*),OPTIONAL:: &
- & init_estimates
- INTEGER,INTENT(IN),OPTIONAL :: prior_n
- REAL(KIND=4),INTENT(IN),DIMENSION(*),OPTIONAL :: prior
- INTEGER,INTENT(IN),OPTIONAL :: simul_missing_vals_n
- REAL(KIND=4),INTENT(IN),DIMENSION(*),OPTIONAL :: &
- & simul_missing_vals
- INTEGER,INTENT(IN),OPTIONAL :: estimates_n
- REAL(KIND=4),INTENT(IN), DIMENSION(*), OPTIONAL :: &
- & estimates
- end function
- END INTERFACE
- ! Editors to modify matrix parameterization
- ! related parameters
- INTERFACE
- INTEGER FUNCTION vsldsseditcorparameterization (task, &
- & cor, cor_storage, pcor, pcor_storage)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- REAL(KIND=8),DIMENSION(*),INTENT(IN) :: cor
- INTEGER,INTENT(IN) :: cor_storage
- REAL(KIND=8),DIMENSION(*),INTENT(IN) :: pcor
- INTEGER,INTENT(IN) :: pcor_storage
- end function
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION vslssseditcorparameterization (task, &
- & cor, cor_storage, pcor, pcor_storage)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- REAL(KIND=4),DIMENSION(*),INTENT(IN) :: cor
- INTEGER,INTENT(IN) :: cor_storage
- REAL(KIND=4),DIMENSION(*),INTENT(IN) :: pcor
- INTEGER,INTENT(IN) :: pcor_storage
- end function
- END INTERFACE
-
- ! Task destructor
- INTERFACE
- INTEGER FUNCTION vslssdeletetask(task)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- end function
- END INTERFACE
- end module onemkl_vsl_omp_offload
- module onemkl_vsl_omp_offload_ilp64
- use onemkl_vsl_omp_offload
- end module onemkl_vsl_omp_offload_ilp64
- module onemkl_vsl_omp_offload_lp64
- use onemkl_vsl_omp_variant_lp64
- !++
- ! VSL CONTINUOUS DISTRIBUTION GENERATOR FUNCTION INTERFACES.
- !--
- ! Uniform distribution
- interface
- integer function vsrnguniform(method, stream, n, r, a, b)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=4),intent(out) :: r(n)
- real(kind=4),intent(in) :: a
- real(kind=4),intent(in) :: b
- !$omp declare variant( vsrnguniform:mkl_vsl_vsrnguniform_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vsrnguniform:mkl_vsl_vsrnguniform_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vsrnguniform
- end interface
- interface
- integer function vdrnguniform (method, stream, n, r, a, b)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=8),intent(out) :: r(n)
- real(kind=8),intent(in) :: a
- real(kind=8),intent(in) :: b
- !$omp declare variant( vdrnguniform:mkl_vsl_vdrnguniform_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vdrnguniform:mkl_vsl_vdrnguniform_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vdrnguniform
- end interface
-
- ! Gaussian distribution
- interface
- integer function vsrnggaussian (method, stream, n, r, a, sigma)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=4),intent(out) :: r(n)
- real(kind=4),intent(in) :: a
- real(kind=4),intent(in) :: sigma
- !$omp declare variant( vsrnggaussian:mkl_vsl_vsrnggaussian_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vsrnggaussian:mkl_vsl_vsrnggaussian_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vsrnggaussian
- end interface
- interface
- integer function vdrnggaussian (method, stream, n, r, a, sigma)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=8),intent(out) :: r(n)
- real(kind=8),intent(in) :: a
- real(kind=8),intent(in) :: sigma
- !$omp declare variant( vdrnggaussian:mkl_vsl_vdrnggaussian_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vdrnggaussian:mkl_vsl_vdrnggaussian_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vdrnggaussian
- end interface
- ! GaussianMV distribution
- interface
- integer function vsrnggaussianmv (method, stream, n, r, dimen, mstorage, a, t)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- integer, intent(in) :: dimen
- real(kind=4),intent(out) :: r(dimen,n)
- integer, intent(in) :: mstorage
- real(kind=4),intent(in) :: a(dimen)
- real(kind=4),intent(in) :: t(dimen,dimen)
- !$omp declare variant( vsrnggaussianmv:mkl_vsl_vsrnggaussianmv_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vsrnggaussianmv:mkl_vsl_vsrnggaussianmv_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vsrnggaussianmv
- end interface
- interface
- integer function vdrnggaussianmv (method, stream, n, r, dimen, mstorage, a, t)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- integer, intent(in) :: dimen
- real(kind=8),intent(out) :: r(dimen,n)
- integer, intent(in) :: mstorage
- real(kind=8),intent(in) :: a(dimen)
- real(kind=8),intent(in) :: t(dimen,dimen)
- !$omp declare variant( vdrnggaussianmv:mkl_vsl_vdrnggaussianmv_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vdrnggaussianmv:mkl_vsl_vdrnggaussianmv_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vdrnggaussianmv
- end interface
- ! Multinomial distribution
- interface
- integer function virngmultinomial (method, stream, n, r, ntrial, k, p)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- integer(kind=4),intent(out) :: r(n)
- integer, intent(in) :: ntrial
- integer, intent(in) :: k
- real(kind=8),intent(in) :: p(k)
- !$omp declare variant( virngmultinomial:mkl_vsl_virngmultinomial_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( virngmultinomial:mkl_vsl_virngmultinomial_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function virngmultinomial
- end interface
- ! PoissonV distribution
- interface
- integer function virngpoissonv (method, stream, n, r, lambda)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- integer(kind=4),intent(out) :: r(n)
- real(kind=8),intent(in) :: lambda(n)
- !$omp declare variant( virngpoissonv:mkl_vsl_virngpoissonv_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( virngpoissonv:mkl_vsl_virngpoissonv_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function virngpoissonv
- end interface
- ! Exponential distribution
- interface
- integer function vsrngexponential (method, stream, n, r, a, beta)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=4),intent(out) :: r(n)
- real(kind=4),intent(in) :: a
- real(kind=4),intent(in) :: beta
- !$omp declare variant( vsrngexponential:mkl_vsl_vsrngexponential_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vsrngexponential:mkl_vsl_vsrngexponential_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vsrngexponential
- end interface
- interface
- integer function vdrngexponential (method, stream, n, r, a, beta)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=8),intent(out) :: r(n)
- real(kind=8),intent(in) :: a
- real(kind=8),intent(in) :: beta
- !$omp declare variant( vdrngexponential:mkl_vsl_vdrngexponential_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vdrngexponential:mkl_vsl_vdrngexponential_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vdrngexponential
- end interface
- ! Laplace distribution
- interface
- integer function vsrnglaplace (method, stream, n, r, a, beta)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=4),intent(out) :: r(n)
- real(kind=4),intent(in) :: a
- real(kind=4),intent(in) :: beta
- !$omp declare variant( vsrnglaplace:mkl_vsl_vsrnglaplace_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vsrnglaplace:mkl_vsl_vsrnglaplace_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vsrnglaplace
- end interface
- interface
- integer function vdrnglaplace (method, stream, n, r, a, beta)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=8),intent(out) :: r(n)
- real(kind=8),intent(in) :: a
- real(kind=8),intent(in) :: beta
- !$omp declare variant( vdrnglaplace:mkl_vsl_vdrnglaplace_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vdrnglaplace:mkl_vsl_vdrnglaplace_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vdrnglaplace
- end interface
- ! Weibull distribution
- interface
- integer function vsrngweibull (method, stream, n, r, alpha, a, beta)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=4),intent(out) :: r(n)
- real(kind=4),intent(in) :: alpha
- real(kind=4),intent(in) :: a
- real(kind=4),intent(in) :: beta
- !$omp declare variant( vsrngweibull:mkl_vsl_vsrngweibull_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vsrngweibull:mkl_vsl_vsrngweibull_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vsrngweibull
- end interface
- interface
- integer function vdrngweibull (method, stream, n, r, alpha, a, beta)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=8),intent(out) :: r(n)
- real(kind=8),intent(in) :: alpha
- real(kind=8),intent(in) :: a
- real(kind=8),intent(in) :: beta
- !$omp declare variant( vdrngweibull:mkl_vsl_vdrngweibull_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vdrngweibull:mkl_vsl_vdrngweibull_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vdrngweibull
- end interface
- ! Cauchy distribution
- interface
- integer function vsrngcauchy (method, stream, n, r, a, beta)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=4),intent(out) :: r(n)
- real(kind=4),intent(in) :: a
- real(kind=4),intent(in) :: beta
- !$omp declare variant( vsrngcauchy:mkl_vsl_vsrngcauchy_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vsrngcauchy:mkl_vsl_vsrngcauchy_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vsrngcauchy
- end interface
- interface
- integer function vdrngcauchy (method, stream, n, r, a, beta)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=8),intent(out) :: r(n)
- real(kind=8),intent(in) :: a
- real(kind=8),intent(in) :: beta
- !$omp declare variant( vdrngcauchy:mkl_vsl_vdrngcauchy_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vdrngcauchy:mkl_vsl_vdrngcauchy_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vdrngcauchy
- end interface
- ! Rayleigh distribution
- interface
- integer function vsrngrayleigh (method, stream, n, r, a, beta)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=4),intent(out) :: r(n)
- real(kind=4),intent(in) :: a
- real(kind=4),intent(in) :: beta
- !$omp declare variant( vsrngrayleigh:mkl_vsl_vsrngrayleigh_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vsrngrayleigh:mkl_vsl_vsrngrayleigh_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vsrngrayleigh
- end interface
- interface
- integer function vdrngrayleigh (method, stream, n, r, a, beta)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=8),intent(out) :: r(n)
- real(kind=8),intent(in) :: a
- real(kind=8),intent(in) :: beta
- !$omp declare variant( vdrngrayleigh:mkl_vsl_vdrngrayleigh_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vdrngrayleigh:mkl_vsl_vdrngrayleigh_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vdrngrayleigh
- end interface
- ! Lognormal distribution
- interface
- integer function vsrnglognormal (method, stream, n, r, a, sigma, b, beta)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=4),intent(out) :: r(n)
- real(kind=4),intent(in) :: a
- real(kind=4),intent(in) :: sigma
- real(kind=4),intent(in) :: b
- real(kind=4),intent(in) :: beta
- !$omp declare variant( vsrnglognormal:mkl_vsl_vsrnglognormal_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vsrnglognormal:mkl_vsl_vsrnglognormal_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vsrnglognormal
- end interface
- interface
- integer function vdrnglognormal (method, stream, n, r, a, sigma, b, beta)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=8),intent(out) :: r(n)
- real(kind=8),intent(in) :: a
- real(kind=8),intent(in) :: sigma
- real(kind=8),intent(in) :: b
- real(kind=8),intent(in) :: beta
- !$omp declare variant( vdrnglognormal:mkl_vsl_vdrnglognormal_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vdrnglognormal:mkl_vsl_vdrnglognormal_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vdrnglognormal
- end interface
- ! Gumbel distribution
- interface
- integer function vsrnggumbel (method, stream, n, r, a, beta)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=4),intent(out) :: r(n)
- real(kind=4),intent(in) :: a
- real(kind=4),intent(in) :: beta
- !$omp declare variant( vsrnggumbel:mkl_vsl_vsrnggumbel_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vsrnggumbel:mkl_vsl_vsrnggumbel_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vsrnggumbel
- end interface
- interface
- integer function vdrnggumbel (method, stream, n, r, a, beta)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=8),intent(out) :: r(n)
- real(kind=8),intent(in) :: a
- real(kind=8),intent(in) :: beta
- !$omp declare variant( vdrnggumbel:mkl_vsl_vdrnggumbel_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vdrnggumbel:mkl_vsl_vdrnggumbel_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vdrnggumbel
- end interface
- ! Beta distribution
- interface
- integer function vsrngbeta (method, stream, n, r, p, q, a, beta)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=4),intent(out) :: r(n)
- real(kind=4),intent(in) :: p
- real(kind=4),intent(in) :: q
- real(kind=4),intent(in) :: a
- real(kind=4),intent(in) :: beta
- !$omp declare variant( vsrngbeta:mkl_vsl_vsrngbeta_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vsrngbeta:mkl_vsl_vsrngbeta_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vsrngbeta
- end interface
- interface
- integer function vdrngbeta (method, stream, n, r, p, q, a, beta)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=8),intent(out) :: r(n)
- real(kind=8),intent(in) :: p
- real(kind=8),intent(in) :: q
- real(kind=8),intent(in) :: a
- real(kind=8),intent(in) :: beta
- !$omp declare variant( vdrngbeta:mkl_vsl_vdrngbeta_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vdrngbeta:mkl_vsl_vdrngbeta_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vdrngbeta
- end interface
- ! Gamma distribution
- interface
- integer function vsrnggamma (method, stream, n, r, alpha, a, beta)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=4),intent(out) :: r(n)
- real(kind=4),intent(in) :: alpha
- real(kind=4),intent(in) :: a
- real(kind=4),intent(in) :: beta
- !$omp declare variant( vsrnggamma:mkl_vsl_vsrnggamma_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vsrnggamma:mkl_vsl_vsrnggamma_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vsrnggamma
- end interface
- interface
- integer function vdrnggamma (method, stream, n, r, alpha, a, beta)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=8),intent(out) :: r(n)
- real(kind=8),intent(in) :: alpha
- real(kind=8),intent(in) :: a
- real(kind=8),intent(in) :: beta
- !$omp declare variant( vdrnggamma:mkl_vsl_vdrnggamma_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vdrnggamma:mkl_vsl_vdrnggamma_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vdrnggamma
- end interface
- ! ChiSquare distribution
- interface
- integer function vsrngchisquare (method, stream, n, r, v)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=4),intent(out) :: r(n)
- integer,intent(in) :: v
- !$omp declare variant( vsrngchisquare:mkl_vsl_vsrngchisquare_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vsrngchisquare:mkl_vsl_vsrngchisquare_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vsrngchisquare
- end interface
- interface
- integer function vdrngchisquare (method, stream, n, r, v)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- real(kind=8),intent(out) :: r(n)
- integer,intent(in) :: v
- !$omp declare variant( vdrngchisquare:mkl_vsl_vdrngchisquare_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vdrngchisquare:mkl_vsl_vdrngchisquare_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function vdrngchisquare
- end interface
- !++
- ! VSL DISCRETE DISTRIBUTION GENERATOR FUNCTION INTERFACES.
- !--
- ! Uniform distribution
- interface
- integer function virnguniform (method, stream, n, r, a, b)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- integer(kind=4),intent(out) :: r(n)
- integer(kind=4),intent(in) :: a
- integer(kind=4),intent(in) :: b
- !$omp declare variant( virnguniform:mkl_vsl_virnguniform_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( virnguniform:mkl_vsl_virnguniform_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function virnguniform
- end interface
- ! UniformBits distribution
- interface
- integer function virnguniformbits (method, stream, n, r)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- integer(kind=4),intent(out) :: r(n)
- !$omp declare variant( virnguniformbits:mkl_vsl_virnguniformbits_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( virnguniformbits:mkl_vsl_virnguniformbits_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function virnguniformbits
- end interface
- ! UniformBits32 distribution
- interface
- integer function virnguniformbits32 (method, stream, n, r)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- integer(kind=4),intent(out) :: r(n)
- !$omp declare variant( virnguniformbits32:mkl_vsl_virnguniformbits32_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( virnguniformbits32:mkl_vsl_virnguniformbits32_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function virnguniformbits32
- end interface
- ! UniformBits64 distribution
- interface
- integer function virnguniformbits64 (method, stream, n, r)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- integer(kind=8),intent(out) :: r(n)
- !$omp declare variant( virnguniformbits64:mkl_vsl_virnguniformbits64_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( virnguniformbits64:mkl_vsl_virnguniformbits64_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function virnguniformbits64
- end interface
- ! Bernoulli distribution
- interface
- integer function virngbernoulli (method, stream, n, r, p)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- integer(kind=4),intent(out) :: r(n)
- real(kind=8),intent(in) :: p
- !$omp declare variant( virngbernoulli:mkl_vsl_virngbernoulli_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( virngbernoulli:mkl_vsl_virngbernoulli_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function virngbernoulli
- end interface
- ! Geometric distribution
- interface
- integer function virnggeometric (method, stream, n, r, p)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- integer(kind=4),intent(out) :: r(n)
- real(kind=8),intent(in) :: p
- !$omp declare variant( virnggeometric:mkl_vsl_virnggeometric_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( virnggeometric:mkl_vsl_virnggeometric_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function virnggeometric
- end interface
- ! Hypergeometric distribution
- interface
- integer function virnghypergeometric (method, stream, n, r, l, s, m)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- integer(kind=4),intent(out) :: r(n)
- integer(kind=4),intent(in) :: l
- integer(kind=4),intent(in) :: s
- integer(kind=4),intent(in) :: m
- !$omp declare variant( virnghypergeometric:mkl_vsl_virnghypergeometric_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( virnghypergeometric:mkl_vsl_virnghypergeometric_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function virnghypergeometric
- end interface
- ! Binomial distribution
- interface
- integer function virngbinomial (method, stream, n, r, ntrial, p)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- integer(kind=4),intent(out) :: r(n)
- integer(kind=4),intent(in) :: ntrial
- real(kind=8),intent(in) :: p
- !$omp declare variant( virngbinomial:mkl_vsl_virngbinomial_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( virngbinomial:mkl_vsl_virngbinomial_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function virngbinomial
- end interface
- ! Negbinomial distribution
- interface
- integer function virngnegbinomial (method, stream, n, r, a, p)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- integer(kind=4),intent(out) :: r(n)
- real(kind=8),intent(in) :: a
- real(kind=8),intent(in) :: p
- !$omp declare variant( virngnegbinomial:mkl_vsl_virngnegbinomial_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( virngnegbinomial:mkl_vsl_virngnegbinomial_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function virngnegbinomial
- end interface
- ! Poisson distribution
- interface
- integer function virngpoisson (method, stream, n, r, lambda)
- import :: VSL_STREAM_STATE
- integer,intent(in) :: method
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- integer(kind=4),intent(out) :: r(n)
- real(kind=8),intent(in) :: lambda
- !$omp declare variant( virngpoisson:mkl_vsl_virngpoisson_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( virngpoisson:mkl_vsl_virngpoisson_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync)) adjust_args(need_device_ptr:r)
- end function virngpoisson
- end interface
- !++
- ! VSL SERVICE FUNCTION INTERFACES.
- !--
- ! NewStream - stream creation/initialization
- interface
- integer function vslnewstream( stream, brng, seed )
- import :: VSL_STREAM_STATE
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: brng
- integer,intent(in) :: seed
- end function
- end interface
- ! NewStreamEx - advanced stream creation/initialization
- interface
- integer function vslnewstreamex( stream, brng, n, params )
- import :: VSL_STREAM_STATE
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: brng
- integer,intent(in) :: n
- integer(kind=4),intent(in) :: params(n)
- end function
- end interface
- ! DeleteStream - delete stream
- interface
- integer function vsldeletestream( stream )
- import :: VSL_STREAM_STATE
- type(VSL_STREAM_STATE) :: stream
- end function
- end interface
- ! CopyStream - copy all stream information
- interface
- integer function vslcopystream( newstream, srcstream )
- import :: VSL_STREAM_STATE
- type(VSL_STREAM_STATE) :: newstream
- type(VSL_STREAM_STATE) :: srcstream
- end function
- end interface
- ! CopyStreamState - copy stream state only
- interface
- integer function vslcopystreamstate( deststream, srcstream )
- import :: VSL_STREAM_STATE
- type(VSL_STREAM_STATE) :: deststream
- type(VSL_STREAM_STATE) :: srcstream
- end function
- end interface
- ! LeapfrogStream - leapfrog method
- interface
- integer function vslleapfrogstream( stream, k, nstreams )
- import :: VSL_STREAM_STATE
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: k
- integer,intent(in) :: nstreams
- end function
- end interface
- ! SkipAheadStream - skip-ahead method
- interface
- integer function vslskipaheadstream( stream, nskip )
- import :: VSL_STREAM_STATE
- type(VSL_STREAM_STATE) :: stream
- integer(kind=8),intent(in) :: nskip
- end function
- end interface
- ! SkipAheadStreamEx - skip-ahead extended method
- interface
- integer function vslskipaheadstreamex( stream, n, params )
- import :: VSL_STREAM_STATE
- type(VSL_STREAM_STATE) :: stream
- integer,intent(in) :: n
- integer(kind=8),intent(in) :: params(n)
- end function
- end interface
- ! GetBrngProperties - get BRNG properties
- interface
- integer function vslgetbrngproperties( brng, properties )
- import :: VSL_BRNG_PROPERTIES
- integer(kind=4),intent(in) :: brng
- type(VSL_BRNG_PROPERTIES),intent(out) :: properties
- end function
- end interface
- ! GetStreamStateBrng - get BRNG associated with given stream
- interface
- integer function vslgetstreamstatebrng( stream )
- import :: VSL_STREAM_STATE
- type(VSL_STREAM_STATE) :: stream
- end function
- end interface
- ! SaveStreamF - save stream to file
- interface
- integer function vslsavestreamf( stream, fname )
- import :: VSL_STREAM_STATE
- character(*) :: fname
- type(VSL_STREAM_STATE) :: stream
- end function
- end interface
- ! LoadStreamF - save stream to file
- interface
- integer function vslloadstreamf( stream, fname )
- import :: VSL_STREAM_STATE
- character(*) :: fname
- type(VSL_STREAM_STATE) :: stream
- end function
- end interface
- ! SaveStreamM - save stream to memory
- interface
- integer function vslsavestreamm( stream, memptr )
- import :: VSL_STREAM_STATE
- integer(kind=1),dimension(*),intent(out)::memptr
- type(VSL_STREAM_STATE),intent(in) :: stream
- end function
- end interface
- ! LoadStreamM - load stream from memory
- interface
- integer function vslloadstreamm( stream, memptr )
- import :: VSL_STREAM_STATE
- integer(kind=1),dimension(*),intent(in)::memptr
- type(VSL_STREAM_STATE),intent(out) ::stream
- end function
- end interface
- ! GetStreamSize - get size of random stream
- interface
- integer function vslgetstreamsize( stream )
- import :: VSL_STREAM_STATE
- type(VSL_STREAM_STATE),intent(in) :: stream
- end function
- end interface
- !++
- ! SUMMARY STATISTICS LIBRARY ROUTINES
- !--
- ! Compute routines
- interface
- integer function vsldsscompute(task, estimates, method)
- import :: VSL_SS_TASK
- type(VSL_SS_TASK) :: task
- integer(kind=8),intent(in) :: estimates
- integer,intent(in) :: method
- !$omp declare variant( vsldsscompute:mkl_vsl_dsscompute_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vsldsscompute:mkl_vsl_dsscompute_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync))
- end function
- end interface
- interface
- integer function vslssscompute(task, estimates, method)
- import :: VSL_SS_TASK
- type(VSL_SS_TASK) :: task
- integer(kind=8),intent(in) :: estimates
- integer,intent(in) :: method
- !$omp declare variant( vslssscompute:mkl_vsl_ssscompute_omp_offload_lp64 ) match( construct={target variant dispatch}, device={arch(gen)} )
- !$omp declare variant( vslssscompute:mkl_vsl_ssscompute_omp_offload_lp64 ) match( construct={dispatch}, device={arch(gen)} ) append_args(interop(targetsync))
- end function
- end interface
- ! Task constructors
- INTERFACE
- INTEGER FUNCTION vsldssnewtask(task,p,n,x_storage,x,w,indices)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- INTEGER,INTENT(IN) :: p
- INTEGER,INTENT(IN) :: n
- INTEGER,INTENT(IN) :: x_storage
- REAL(KIND=8),INTENT(IN) :: x(n,p)
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL:: w
- INTEGER,DIMENSION(*),INTENT(IN),OPTIONAL:: indices
- end function
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION vslsssnewtask(task,p,n,x_storage,x,w,indices)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- INTEGER,INTENT(IN) :: p
- INTEGER,INTENT(IN) :: n
- INTEGER,INTENT(IN) :: x_storage
- REAL(KIND=4),INTENT(IN) :: x(n,p)
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL:: w
- INTEGER,DIMENSION(*),INTENT(IN),OPTIONAL:: indices
- end function
- END INTERFACE
- ! Task editors
- ! Editor to modify a task parameter
- INTERFACE
- INTEGER FUNCTION vsldssedittask(task,parameter,par_addr)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- INTEGER,INTENT(IN) :: parameter
- REAL(KIND=8),DIMENSION(*),INTENT(IN) :: par_addr
- end function
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION vslsssedittask(task,parameter,par_addr)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- INTEGER,INTENT(IN) :: parameter
- REAL(KIND=4),DIMENSION(*),INTENT(IN) :: par_addr
- end function
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION vslissedittask(task,parameter,par_addr)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- INTEGER,INTENT(IN) :: parameter
- INTEGER,INTENT(IN) :: par_addr
- end function
- END INTERFACE
- ! Task specific editors
- ! Editors to modify moments related parameters
- INTERFACE
- INTEGER FUNCTION vsldsseditmoments(task, mean, r2m, r3m, r4m, &
- & c2m, c3m, c4m)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- REAL(KIND=8),DIMENSION(*),INTENT(IN) :: mean
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: r2m
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: r3m
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: r4m
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: c2m
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: c3m
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: c4m
- end function
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION vslssseditmoments(task, mean, r2m, r3m, r4m, &
- & c2m, c3m, c4m)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- REAL(KIND=4),DIMENSION(*),INTENT(IN) :: mean
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: r2m
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: r3m
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: r4m
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: c2m
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: c3m
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: c4m
- end function
- END INTERFACE
- ! Editors to modify sums related parameters
- INTERFACE
- INTEGER FUNCTION vsldsseditsums(task, sum, r2s, r3s, r4s, &
- & c2s, c3s, c4s)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- REAL(KIND=8),DIMENSION(*),INTENT(IN) :: sum
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: r2s
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: r3s
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: r4s
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: c2s
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: c3s
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: c4s
- end function
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION vslssseditsums(task, sum, r2s, r3s, r4s, &
- & c2s, c3s, c4s)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- REAL(KIND=4),DIMENSION(*),INTENT(IN) :: sum
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: r2s
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: r3s
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: r4s
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: c2s
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: c3s
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: c4s
- end function
- END INTERFACE
- ! Editors to modify variance-covariance/correlation matrix
- ! related parameters
- INTERFACE
- INTEGER FUNCTION vsldsseditcovcor(task, mean,cov, cov_storage, &
- & cor, cor_storage)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- REAL(KIND=8),DIMENSION(*),INTENT(IN) :: mean
- REAL(KIND=8),DIMENSION(*),INTENT(IN), OPTIONAL :: cov
- INTEGER,INTENT(IN), OPTIONAL :: cov_storage
- REAL(KIND=8),DIMENSION(*),INTENT(IN), OPTIONAL :: cor
- INTEGER,INTENT(IN), OPTIONAL :: cor_storage
- end function
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION vslssseditcovcor(task, mean,cov, cov_storage, &
- & cor, cor_storage)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- REAL(KIND=4),DIMENSION(*),INTENT(IN) :: mean
- REAL(KIND=4),DIMENSION(*),INTENT(IN), OPTIONAL :: cov
- INTEGER,INTENT(IN), OPTIONAL :: cov_storage
- REAL(KIND=4),DIMENSION(*),INTENT(IN), OPTIONAL :: cor
- INTEGER,INTENT(IN), OPTIONAL :: cor_storage
- end function
- END INTERFACE
- ! Editors to modify cross-product matrix
- ! related parameters
- INTERFACE
- INTEGER FUNCTION vsldsseditcp(task, mean, sum, &
- & cp, cp_storage)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- REAL(KIND=8),DIMENSION(*),INTENT(IN) :: mean
- REAL(KIND=8),DIMENSION(*),INTENT(IN), OPTIONAL :: sum
- REAL(KIND=8),DIMENSION(*),INTENT(IN) :: cp
- INTEGER,INTENT(IN) :: cp_storage
- end function
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION vslssseditcp(task, mean, sum, &
- & cp, cp_storage)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- REAL(KIND=4),DIMENSION(*),INTENT(IN) :: mean
- REAL(KIND=4),DIMENSION(*),INTENT(IN), OPTIONAL :: sum
- REAL(KIND=4),DIMENSION(*),INTENT(IN) :: cp
- INTEGER,INTENT(IN) :: cp_storage
- end function
- END INTERFACE
- ! Editors to modify partial variance-covariance matrix
- ! related parameters
- INTERFACE
- INTEGER FUNCTION vsldsseditpartialcovcor(task, p_idx_array, &
- & cov, cov_storage, cor, cor_storage, &
- & p_cov, p_cov_storage, p_cor, p_cor_storage)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- INTEGER,DIMENSION(*),INTENT(IN) :: p_idx_array
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: cov
- INTEGER,INTENT(IN),OPTIONAL :: cov_storage
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: cor
- INTEGER,INTENT(IN),OPTIONAL :: cor_storage
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: p_cov
- INTEGER,INTENT(IN),OPTIONAL :: p_cov_storage
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: p_cor
- INTEGER,INTENT(IN),OPTIONAL :: p_cor_storage
- end function
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION vslssseditpartialcovcor(task, p_idx_array, &
- & cov, cov_storage, cor, cor_storage, &
- & p_cov, p_cov_storage, p_cor, p_cor_storage)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- INTEGER,DIMENSION(*),INTENT(IN) :: p_idx_array
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: cov
- INTEGER,INTENT(IN),OPTIONAL :: cov_storage
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: cor
- INTEGER,INTENT(IN),OPTIONAL :: cor_storage
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: p_cov
- INTEGER,INTENT(IN),OPTIONAL :: p_cov_storage
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: p_cor
- INTEGER,INTENT(IN),OPTIONAL :: p_cor_storage
- end function
- END INTERFACE
- ! Editors to modify quantiles related parameters
- INTERFACE
- INTEGER FUNCTION vsldsseditquantiles(task, quant_order_n, &
- & quant_order,quants, &
- & order_stats, order_stats_storage)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- INTEGER,INTENT(IN),OPTIONAL :: quant_order_n
- REAL(KIND=8),INTENT(IN),dimension(*),OPTIONAL::quant_order
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL::quants
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: &
- & order_stats
- INTEGER,INTENT(IN),OPTIONAL :: order_stats_storage
- end function
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION vslssseditquantiles(task, quant_order_n, &
- & quant_order,quants, &
- & order_stats, order_stats_storage)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- INTEGER,INTENT(IN),OPTIONAL :: quant_order_n
- REAL(KIND=4),INTENT(IN),dimension(*),OPTIONAL::quant_order
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL::quants
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: &
- & order_stats
- INTEGER,INTENT(IN),OPTIONAL :: order_stats_storage
- end function
- END INTERFACE
- ! Editors to modify stream data quantiles related parameters
- INTERFACE
- INTEGER FUNCTION vsldsseditstreamquantiles(task, &
- & quant_order_n, quant_order, quants, nparams, params)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- INTEGER,INTENT(IN) :: quant_order_n
- REAL(KIND=8),INTENT(IN),dimension(*) :: quant_order
- REAL(KIND=8),DIMENSION(*),INTENT(IN) :: quants
- INTEGER,INTENT(IN) :: nparams
- REAL(KIND=8),INTENT(IN), DIMENSION(*) :: params
- end function
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION vslssseditstreamquantiles(task, &
- & quant_order_n, quant_order, quants, nparams, params)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- INTEGER,INTENT(IN) :: quant_order_n
- REAL(KIND=4),INTENT(IN),dimension(*) :: quant_order
- REAL(KIND=4),DIMENSION(*),INTENT(IN) :: quants
- INTEGER,INTENT(IN) :: nparams
- REAL(KIND=4),INTENT(IN), DIMENSION(*) :: params
- end function
- END INTERFACE
- ! Editors to modify pooled/group variance-covariance matrix
- ! related parameters
- INTERFACE
- INTEGER FUNCTION vsldsseditpooledcovariance(task, grp_indices, &
- & pld_mean, pld_cov, grp_cov_indices, grp_means, grp_cov)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- INTEGER,DIMENSION(*),INTENT(IN) :: grp_indices
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: pld_mean
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: pld_cov
- INTEGER,DIMENSION(*),INTENT(IN),OPTIONAL ::grp_cov_indices
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: grp_means
- REAL(KIND=8),DIMENSION(*),INTENT(IN), OPTIONAL :: grp_cov
- end function
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION vslssseditpooledcovariance(task, grp_indices, &
- & pld_mean, pld_cov, grp_cov_indices, grp_means, grp_cov)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- INTEGER,DIMENSION(*),INTENT(IN) :: grp_indices
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: pld_mean
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: pld_cov
- INTEGER,DIMENSION(*),INTENT(IN),OPTIONAL ::grp_cov_indices
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: grp_means
- REAL(KIND=4),DIMENSION(*),INTENT(IN), OPTIONAL :: grp_cov
- end function
- END INTERFACE
- ! Editors to modify robust variance-covariance matrix
- ! related parameters
- INTERFACE
- INTEGER FUNCTION vsldsseditrobustcovariance(task,rcov_storage, &
- & nparams, params,rmean, rcov)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- INTEGER,INTENT(IN) :: rcov_storage
- INTEGER,INTENT(IN) :: nparams
- REAL(KIND=8),INTENT(IN) :: params(nparams)
- REAL(KIND=8),DIMENSION(*),INTENT(IN) :: rmean
- REAL(KIND=8),DIMENSION(*),INTENT(IN) :: rcov
- end function
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION vslssseditrobustcovariance(task,rcov_storage, &
- & nparams, params,rmean, rcov)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- INTEGER,INTENT(IN) :: rcov_storage
- INTEGER,INTENT(IN) :: nparams
- REAL(KIND=4),INTENT(IN) :: params(nparams)
- REAL(KIND=4),DIMENSION(*),INTENT(IN) :: rmean
- REAL(KIND=4),DIMENSION(*),INTENT(IN) :: rcov
- end function
- END INTERFACE
- ! Editors to modify outliers detection parameters
- INTERFACE
- INTEGER FUNCTION vsldsseditoutliersdetection(task, &
- & nparams, params, w)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- INTEGER,INTENT(IN) :: nparams
- REAL(KIND=8),DIMENSION(*),INTENT(IN) :: params(nparams)
- REAL(KIND=8),DIMENSION(*),INTENT(IN) :: w
- end function
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION vslssseditoutliersdetection(task, &
- & nparams, params, w)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- INTEGER,INTENT(IN) :: nparams
- REAL(KIND=4),DIMENSION(*),INTENT(IN) :: params(nparams)
- REAL(KIND=4),DIMENSION(*),INTENT(IN) :: w
- end function
- END INTERFACE
- ! Editors to modify missing values parameters
- INTERFACE
- INTEGER FUNCTION vsldsseditmissingvalues(task, nparams, params, &
- & init_estimates_n, init_estimates, prior_n, prior, &
- & simul_missing_vals_n,simul_missing_vals, &
- & estimates_n, estimates)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- INTEGER,INTENT(IN) :: nparams
- REAL(KIND=8),INTENT(IN) :: params(nparams)
- INTEGER,INTENT(IN),OPTIONAL :: init_estimates_n
- REAL(KIND=8),INTENT(IN), DIMENSION(*),OPTIONAL:: &
- & init_estimates
- INTEGER,INTENT(IN),OPTIONAL :: prior_n
- REAL(KIND=8),INTENT(IN),DIMENSION(*),OPTIONAL :: prior
- INTEGER,INTENT(IN),OPTIONAL :: simul_missing_vals_n
- REAL(KIND=8),INTENT(IN),DIMENSION(*),OPTIONAL :: &
- & simul_missing_vals
- INTEGER,INTENT(IN),OPTIONAL :: estimates_n
- REAL(KIND=8),INTENT(IN), DIMENSION(*), OPTIONAL :: &
- & estimates
- end function
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION vslssseditmissingvalues(task, nparams, params, &
- & init_estimates_n, init_estimates, prior_n, prior, &
- & simul_missing_vals_n,simul_missing_vals, &
- & estimates_n, estimates)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- INTEGER,INTENT(IN) :: nparams
- REAL(KIND=4),INTENT(IN) :: params(nparams)
- INTEGER,INTENT(IN),OPTIONAL :: init_estimates_n
- REAL(KIND=4),INTENT(IN), DIMENSION(*),OPTIONAL:: &
- & init_estimates
- INTEGER,INTENT(IN),OPTIONAL :: prior_n
- REAL(KIND=4),INTENT(IN),DIMENSION(*),OPTIONAL :: prior
- INTEGER,INTENT(IN),OPTIONAL :: simul_missing_vals_n
- REAL(KIND=4),INTENT(IN),DIMENSION(*),OPTIONAL :: &
- & simul_missing_vals
- INTEGER,INTENT(IN),OPTIONAL :: estimates_n
- REAL(KIND=4),INTENT(IN), DIMENSION(*), OPTIONAL :: &
- & estimates
- end function
- END INTERFACE
- ! Editors to modify matrix parameterization
- ! related parameters
- INTERFACE
- INTEGER FUNCTION vsldsseditcorparameterization (task, &
- & cor, cor_storage, pcor, pcor_storage)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- REAL(KIND=8),DIMENSION(*),INTENT(IN) :: cor
- INTEGER,INTENT(IN) :: cor_storage
- REAL(KIND=8),DIMENSION(*),INTENT(IN) :: pcor
- INTEGER,INTENT(IN) :: pcor_storage
- end function
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION vslssseditcorparameterization (task, &
- & cor, cor_storage, pcor, pcor_storage)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- REAL(KIND=4),DIMENSION(*),INTENT(IN) :: cor
- INTEGER,INTENT(IN) :: cor_storage
- REAL(KIND=4),DIMENSION(*),INTENT(IN) :: pcor
- INTEGER,INTENT(IN) :: pcor_storage
- end function
- END INTERFACE
-
- ! Task destructor
- INTERFACE
- INTEGER FUNCTION vslssdeletetask(task)
- IMPORT :: VSL_SS_TASK
- TYPE(VSL_SS_TASK) :: task
- end function
- END INTERFACE
- end module onemkl_vsl_omp_offload_lp64
|