123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423 |
- #
- # Copyright (C) 2014 The Android Open Source Project
- #
- # Licensed under the Apache License, Version 2.0 (the "License");
- # you may not use this file except in compliance with the License.
- # You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
- #
- header:
- summary: Mathematical Constants and Functions
- description:
- The mathematical functions below can be applied to scalars and vectors. When applied
- to vectors, the returned value is a vector of the function applied to each entry of the input.
- For example:<code><br/>
- float3 a, b;<br/>
- // The following call sets<br/>
- // a.x to sin(b.x),<br/>
- // a.y to sin(b.y), and<br/>
- // a.z to sin(b.z).<br/>
- a = sin(b);<br/>
- </code>
- See <a href='rs_vector_math.html'>Vector Math Functions</a> for functions like @distance() and @length() that interpret
- instead the input as a single vector in n-dimensional space.
- The precision of the mathematical operations on 32 bit floats is affected by the pragmas
- rs_fp_relaxed and rs_fp_full. Under rs_fp_relaxed, subnormal values may be flushed to zero and
- rounding may be done towards zero. In comparison, rs_fp_full requires correct handling of
- subnormal values, i.e. smaller than 1.17549435e-38f. rs_fp_rull also requires round to nearest
- with ties to even.
- Different precision/speed tradeoffs can be achieved by using variants of the common math
- functions. Functions with a name starting with<ul>
- <li>native_: May have custom hardware implementations with weaker precision. Additionally,
- subnormal values may be flushed to zero, rounding towards zero may be used, and NaN and
- infinity input may not be handled correctly.</li>
- <li>half_: May perform internal computations using 16 bit floats. Additionally, subnormal
- values may be flushed to zero, and rounding towards zero may be used.</li>
- </ul>
- end:
- # TODO Add f16 versions of these constants.
- constant: M_1_PI
- value: 0.318309886183790671537767526745028724f
- type: float
- summary: 1 / pi, as a 32 bit float
- description:
- The inverse of pi, as a 32 bit float.
- end:
- constant: M_2_PI
- value: 0.636619772367581343075535053490057448f
- type: float
- summary: 2 / pi, as a 32 bit float
- description:
- 2 divided by pi, as a 32 bit float.
- end:
- constant: M_2_PIl
- value: 0.636619772367581343075535053490057448f
- type: float
- hidden:
- deprecated: 22, Use M_2_PI instead.
- summary: 2 / pi, as a 32 bit float
- description:
- 2 divided by pi, as a 32 bit float.
- end:
- constant: M_2_SQRTPI
- value: 1.128379167095512573896158903121545172f
- type: float
- summary: 2 / sqrt(pi), as a 32 bit float
- description:
- 2 divided by the square root of pi, as a 32 bit float.
- end:
- constant: M_E
- value: 2.718281828459045235360287471352662498f
- type: float
- summary: e, as a 32 bit float
- description:
- The number e, the base of the natural logarithm, as a 32 bit float.
- end:
- constant: M_LN10
- value: 2.302585092994045684017991454684364208f
- type: float
- summary: log_e(10), as a 32 bit float
- description:
- The natural logarithm of 10, as a 32 bit float.
- end:
- constant: M_LN2
- value: 0.693147180559945309417232121458176568f
- type: float
- summary: log_e(2), as a 32 bit float
- description:
- The natural logarithm of 2, as a 32 bit float.
- end:
- constant: M_LOG10E
- value: 0.434294481903251827651128918916605082f
- type: float
- summary: log_10(e), as a 32 bit float
- description:
- The logarithm base 10 of e, as a 32 bit float.
- end:
- constant: M_LOG2E
- value: 1.442695040888963407359924681001892137f
- type: float
- summary: log_2(e), as a 32 bit float
- description:
- The logarithm base 2 of e, as a 32 bit float.
- end:
- constant: M_PI
- value: 3.141592653589793238462643383279502884f
- type: float
- summary: pi, as a 32 bit float
- description:
- The constant pi, as a 32 bit float.
- end:
- constant: M_PI_2
- value: 1.570796326794896619231321691639751442f
- type: float
- summary: pi / 2, as a 32 bit float
- description:
- Pi divided by 2, as a 32 bit float.
- end:
- constant: M_PI_4
- value: 0.785398163397448309615660845819875721f
- type: float
- summary: pi / 4, as a 32 bit float
- description:
- Pi divided by 4, as a 32 bit float.
- end:
- constant: M_SQRT1_2
- value: 0.707106781186547524400844362104849039f
- type: float
- summary: 1 / sqrt(2), as a 32 bit float
- description:
- The inverse of the square root of 2, as a 32 bit float.
- end:
- constant: M_SQRT2
- value: 1.414213562373095048801688724209698079f
- type: float
- summary: sqrt(2), as a 32 bit float
- description:
- The square root of 2, as a 32 bit float.
- end:
- function: abs
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: i8, i16, i32
- ret: u#2#1
- arg: #2#1 v
- summary: Absolute value of an integer
- description:
- Returns the absolute value of an integer.
- For floats, use @fabs().
- end:
- function: acos
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v, range(-1,1)
- summary: Inverse cosine
- description:
- Returns the inverse cosine, in radians.
- See also @native_acos().
- end:
- function: acos
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v, range(-1,1)
- end:
- function: acosh
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Inverse hyperbolic cosine
- description:
- Returns the inverse hyperbolic cosine, in radians.
- See also @native_acosh().
- end:
- function: acosh
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: acospi
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v, range(-1,1)
- summary: Inverse cosine divided by pi
- description:
- Returns the inverse cosine in radians, divided by pi.
- To get an inverse cosine measured in degrees, use <code>acospi(a) * 180.f</code>.
- See also @native_acospi().
- end:
- function: acospi
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v, range(-1,1)
- end:
- function: asin
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v, range(-1,1)
- summary: Inverse sine
- description:
- Returns the inverse sine, in radians.
- See also @native_asin().
- end:
- function: asin
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v, range(-1,1)
- end:
- function: asinh
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Inverse hyperbolic sine
- description:
- Returns the inverse hyperbolic sine, in radians.
- See also @native_asinh().
- end:
- function: asinh
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: asinpi
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v, range(-1,1)
- summary: Inverse sine divided by pi
- description:
- Returns the inverse sine in radians, divided by pi.
- To get an inverse sine measured in degrees, use <code>asinpi(a) * 180.f</code>.
- See also @native_asinpi().
- end:
- function: asinpi
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v, range(-1,1)
- end:
- function: atan
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v, range(-1,1)
- summary: Inverse tangent
- description:
- Returns the inverse tangent, in radians.
- See also @native_atan().
- end:
- function: atan
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v, range(-1,1)
- end:
- function: atan2
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 numerator, "Numerator."
- arg: #2#1 denominator, "Denominator. Can be 0."
- summary: Inverse tangent of a ratio
- description:
- Returns the inverse tangent of <code>(numerator / denominator)</code>, in radians.
- See also @native_atan2().
- end:
- function: atan2
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 numerator
- arg: #2#1 denominator
- end:
- function: atan2pi
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 numerator, "Numerator."
- arg: #2#1 denominator, "Denominator. Can be 0."
- summary: Inverse tangent of a ratio, divided by pi
- description:
- Returns the inverse tangent of <code>(numerator / denominator)</code>, in radians, divided by pi.
- To get an inverse tangent measured in degrees, use <code>atan2pi(n, d) * 180.f</code>.
- See also @native_atan2pi().
- end:
- function: atan2pi
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 numerator
- arg: #2#1 denominator
- end:
- function: atanh
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v, range(-1,1)
- summary: Inverse hyperbolic tangent
- description:
- Returns the inverse hyperbolic tangent, in radians.
- See also @native_atanh().
- end:
- function: atanh
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v, range(-1,1)
- end:
- function: atanpi
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v, range(-1,1)
- summary: Inverse tangent divided by pi
- description:
- Returns the inverse tangent in radians, divided by pi.
- To get an inverse tangent measured in degrees, use <code>atanpi(a) * 180.f</code>.
- See also @native_atanpi().
- end:
- function: atanpi
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v, range(-1,1)
- end:
- function: cbrt
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Cube root
- description:
- Returns the cube root.
- See also @native_cbrt().
- end:
- function: cbrt
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: ceil
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Smallest integer not less than a value
- description:
- Returns the smallest integer not less than a value.
- For example, <code>ceil(1.2f)</code> returns 2.f, and <code>ceil(-1.2f)</code> returns -1.f.
- See also @floor().
- end:
- function: ceil
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: clamp
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 value, "Value to be clamped."
- arg: #2#1 min_value, "Lower bound, a scalar or matching vector."
- arg: #2#1 max_value, above(min_value), "High bound, must match the type of low."
- summary: Restrain a value to a range
- description:
- Clamps a value to a specified high and low bound. clamp() returns min_value
- if value < min_value, max_value if value > max_value, otherwise value.
- There are two variants of clamp: one where the min and max are scalars applied
- to all entries of the value, the other where the min and max are also vectors.
- If min_value is greater than max_value, the results are undefined.
- end:
- function: clamp
- version: 9
- attrib: const
- w: 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 value
- arg: #2 min_value
- arg: #2 max_value, above(min_value)
- end:
- function: clamp
- version: 19
- attrib: const
- w: 1, 2, 3, 4
- t: u8, u16, u32, u64, i8, i16, i32, i64
- ret: #2#1
- arg: #2#1 value
- arg: #2#1 min_value
- arg: #2#1 max_value, above(min_value)
- end:
- function: clamp
- version: 19
- attrib: const
- w: 2, 3, 4
- t: u8, u16, u32, u64, i8, i16, i32, i64
- ret: #2#1
- arg: #2#1 value
- arg: #2 min_value
- arg: #2 max_value, above(min_value)
- end:
- function: clamp
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 value
- arg: #2#1 min_value
- arg: #2#1 max_value, above(min_value)
- end:
- function: clamp
- version: 24
- attrib: const
- w: 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 value
- arg: #2 min_value
- arg: #2 max_value, above(min_value)
- end:
- function: clz
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: u8, u16, u32, i8, i16, i32
- ret: #2#1
- arg: #2#1 value
- summary: Number of leading 0 bits
- description:
- Returns the number of leading 0-bits in a value.
- For example, <code>clz((char)0x03)</code> returns 6.
- end:
- function: copysign
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 magnitude_value
- arg: #2#1 sign_value
- summary: Copies the sign of a number to another
- description:
- Copies the sign from sign_value to magnitude_value.
- The value returned is either magnitude_value or -magnitude_value.
- For example, <code>copysign(4.0f, -2.7f)</code> returns -4.0f and <code>copysign(-4.0f, 2.7f)</code> returns 4.0f.
- end:
- function: copysign
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 magnitude_value
- arg: #2#1 sign_value
- end:
- function: cos
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Cosine
- description:
- Returns the cosine of an angle measured in radians.
- See also @native_cos().
- end:
- function: cos
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: cosh
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Hypebolic cosine
- description:
- Returns the hypebolic cosine of v, where v is measured in radians.
- See also @native_cosh().
- end:
- function: cosh
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: cospi
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Cosine of a number multiplied by pi
- description:
- Returns the cosine of <code>(v * pi)</code>, where <code>(v * pi)</code> is measured in radians.
- To get the cosine of a value measured in degrees, call <code>cospi(v / 180.f)</code>.
- See also @native_cospi().
- end:
- function: cospi
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: degrees
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Converts radians into degrees
- description:
- Converts from radians to degrees.
- end:
- function: degrees
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: erf
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Mathematical error function
- description:
- Returns the error function.
- end:
- function: erf
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: erfc
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Mathematical complementary error function
- description:
- Returns the complementary error function.
- end:
- function: erfc
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: exp
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: e raised to a number
- description:
- Returns e raised to v, i.e. e ^ v.
- See also @native_exp().
- end:
- function: exp
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: exp10
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: 10 raised to a number
- description:
- Returns 10 raised to v, i.e. 10.f ^ v.
- See also @native_exp10().
- end:
- function: exp10
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: exp2
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: 2 raised to a number
- description:
- Returns 2 raised to v, i.e. 2.f ^ v.
- See also @native_exp2().
- end:
- function: exp2
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: expm1
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: e raised to a number minus one
- description:
- Returns e raised to v minus 1, i.e. (e ^ v) - 1.
- See also @native_expm1().
- end:
- function: expm1
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: fabs
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Absolute value of a float
- description:
- Returns the absolute value of the float v.
- For integers, use @abs().
- end:
- function: fabs
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: fdim
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 a
- arg: #2#1 b
- summary: Positive difference between two values
- description:
- Returns the positive difference between two values.
- If a > b, returns (a - b) otherwise returns 0f.
- end:
- function: fdim
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 a
- arg: #2#1 b
- end:
- function: floor
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Smallest integer not greater than a value
- description:
- Returns the smallest integer not greater than a value.
- For example, <code>floor(1.2f)</code> returns 1.f, and <code>floor(-1.2f)</code> returns -2.f.
- See also @ceil().
- end:
- function: floor
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: fma
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 multiplicand1
- arg: #2#1 multiplicand2
- arg: #2#1 offset
- summary: Multiply and add
- description:
- Multiply and add. Returns <code>(multiplicand1 * multiplicand2) + offset</code>.
- This function is similar to @mad(). fma() retains full precision of the multiplied result
- and rounds only after the addition. @mad() rounds after the multiplication and the addition.
- This extra precision is not guaranteed in rs_fp_relaxed mode.
- end:
- function: fma
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 multiplicand1
- arg: #2#1 multiplicand2
- arg: #2#1 offset
- end:
- function: fmax
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 a
- arg: #2#1 b
- summary: Maximum of two floats
- description:
- Returns the maximum of a and b, i.e. <code>(a < b ? b : a)</code>.
- The @max() function returns identical results but can be applied to more data types.
- end:
- function: fmax
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 a
- arg: #2#1 b
- end:
- function: fmax
- version: 9
- attrib: const
- w: 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 a
- arg: #2 b
- end:
- function: fmax
- version: 24
- attrib: const
- w: 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 a
- arg: #2 b
- end:
- function: fmin
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 a
- arg: #2#1 b
- summary: Minimum of two floats
- description:
- Returns the minimum of a and b, i.e. <code>(a > b ? b : a)</code>.
- The @min() function returns identical results but can be applied to more data types.
- end:
- function: fmin
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 a
- arg: #2#1 b
- end:
- function: fmin
- version: 9
- attrib: const
- w: 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 a
- arg: #2 b
- end:
- function: fmin
- version: 24
- attrib: const
- w: 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 a
- arg: #2 b
- end:
- function: fmod
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 numerator
- arg: #2#1 denominator
- summary: Modulo
- description:
- Returns the remainder of (numerator / denominator), where the quotient is rounded towards zero.
- The function @remainder() is similar but rounds toward the closest interger.
- For example, <code>fmod(-3.8f, 2.f)</code> returns -1.8f (-3.8f - -1.f * 2.f)
- while <code>@remainder(-3.8f, 2.f)</code> returns 0.2f (-3.8f - -2.f * 2.f).
- end:
- function: fmod
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 numerator
- arg: #2#1 denominator
- end:
- function: fract
- version: 9
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v, "Input value."
- arg: #2#1* floor, "If floor is not null, *floor will be set to the floor of v."
- summary: Positive fractional part
- description:
- Returns the positive fractional part of v, i.e. <code>v - floor(v)</code>.
- For example, <code>fract(1.3f, &val)</code> returns 0.3f and sets val to 1.f.
- <code>fract(-1.3f, &val)</code> returns 0.7f and sets val to -2.f.
- end:
- function: fract
- version: 9 23
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- inline:
- #2#1 unused;
- return fract(v, &unused);
- end:
- function: fract
- version: 24
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- end:
- function: fract
- version: 24
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- arg: #2#1* floor
- end:
- function: fract
- version: 24
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: frexp
- version: 9
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v, "Input value."
- arg: int#1* exponent, "If exponent is not null, *exponent will be set to the exponent of v."
- summary: Binary mantissa and exponent
- description:
- Returns the binary mantissa and exponent of v, i.e. <code>v == mantissa * 2 ^ exponent</code>.
- The mantissa is always between 0.5 (inclusive) and 1.0 (exclusive).
- See @ldexp() for the reverse operation. See also @logb() and @ilogb().
- end:
- function: frexp
- version: 24
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- arg: int#1* exponent
- test: none
- end:
- function: half_recip
- version: 17
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Reciprocal computed to 16 bit precision
- description:
- Returns the approximate reciprocal of a value.
- The precision is that of a 16 bit floating point value.
- See also @native_recip().
- end:
- function: half_rsqrt
- version: 17
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Reciprocal of a square root computed to 16 bit precision
- description:
- Returns the approximate value of <code>(1.f / sqrt(value))</code>.
- The precision is that of a 16 bit floating point value.
- See also @rsqrt(), @native_rsqrt().
- end:
- function: half_sqrt
- version: 17
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Square root computed to 16 bit precision
- description:
- Returns the approximate square root of a value.
- The precision is that of a 16 bit floating point value.
- See also @sqrt(), @native_sqrt().
- end:
- function: hypot
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 a
- arg: #2#1 b
- summary: Hypotenuse
- description:
- Returns the hypotenuse, i.e. <code>sqrt(a * a + b * b)</code>.
- See also @native_hypot().
- end:
- function: hypot
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 a
- arg: #2#1 b
- end:
- function: ilogb
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: int#1
- arg: float#1 v
- summary: Base two exponent
- description:
- Returns the base two exponent of a value, where the mantissa is between
- 1.f (inclusive) and 2.f (exclusive).
- For example, <code>ilogb(8.5f)</code> returns 3.
- Because of the difference in mantissa, this number is one less than is returned by @frexp().
- @logb() is similar but returns a float.
- test: custom
- end:
- function: ilogb
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: int#1
- arg: half#1 v
- test: none
- end:
- function: ldexp
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- ret: float#1
- arg: float#1 mantissa, "Mantissa."
- arg: int#1 exponent, "Exponent, a single component or matching vector."
- summary: Creates a floating point from mantissa and exponent
- description:
- Returns the floating point created from the mantissa and exponent,
- i.e. (mantissa * 2 ^ exponent).
- See @frexp() for the reverse operation.
- end:
- function: ldexp
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- ret: half#1
- arg: half#1 mantissa
- arg: int#1 exponent
- test: none
- end:
- function: ldexp
- version: 9
- attrib: const
- w: 2, 3, 4
- ret: float#1
- arg: float#1 mantissa
- arg: int exponent
- end:
- function: ldexp
- version: 24
- attrib: const
- w: 2, 3, 4
- ret: half#1
- arg: half#1 mantissa
- arg: int exponent
- test: none
- end:
- function: lgamma
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Natural logarithm of the gamma function
- description:
- Returns the natural logarithm of the absolute value of the gamma function,
- i.e. <code>@log(@fabs(@tgamma(v)))</code>.
- See also @tgamma().
- end:
- function: lgamma
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- test: none
- end:
- function: lgamma
- version: 9
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- arg: int#1* sign_of_gamma, "If sign_of_gamma is not null, *sign_of_gamma will be set to -1.f if the gamma of v is negative, otherwise to 1.f."
- test: custom
- #TODO Temporary until bionic & associated drivers are fixed
- end:
- function: lgamma
- version: 24
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- arg: int#1* sign_of_gamma
- test: none
- end:
- function: log
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Natural logarithm
- description:
- Returns the natural logarithm.
- See also @native_log().
- end:
- function: log
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: log10
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Base 10 logarithm
- description:
- Returns the base 10 logarithm.
- See also @native_log10().
- end:
- function: log10
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: log1p
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Natural logarithm of a value plus 1
- description:
- Returns the natural logarithm of <code>(v + 1.f)</code>.
- See also @native_log1p().
- end:
- function: log1p
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: log2
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Base 2 logarithm
- description:
- Returns the base 2 logarithm.
- See also @native_log2().
- end:
- function: log2
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: logb
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Base two exponent
- description:
- Returns the base two exponent of a value, where the mantissa is between
- 1.f (inclusive) and 2.f (exclusive).
- For example, <code>logb(8.5f)</code> returns 3.f.
- Because of the difference in mantissa, this number is one less than is returned by frexp().
- @ilogb() is similar but returns an integer.
- end:
- function: logb
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: mad
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 multiplicand1
- arg: #2#1 multiplicand2
- arg: #2#1 offset
- summary: Multiply and add
- description:
- Multiply and add. Returns <code>(multiplicand1 * multiplicand2) + offset</code>.
- This function is similar to @fma(). @fma() retains full precision of the multiplied result
- and rounds only after the addition. mad() rounds after the multiplication and the addition.
- In rs_fp_relaxed mode, mad() may not do the rounding after multiplicaiton.
- end:
- function: mad
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 multiplicand1
- arg: #2#1 multiplicand2
- arg: #2#1 offset
- end:
- function: max
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 a
- arg: #2#1 b
- summary: Maximum
- description:
- Returns the maximum value of two arguments.
- end:
- function: max
- version:24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 a
- arg: #2#1 b
- end:
- function: max
- version: 9
- attrib: const
- w: 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 a
- arg: #2 b
- end:
- function: max
- version: 24
- attrib: const
- w: 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 a
- arg: #2 b
- end:
- function: max
- version: 9 20
- attrib: const
- w: 1
- t: i8, i16, i32, u8, u16, u32
- ret: #2#1
- arg: #2#1 a
- arg: #2#1 b
- inline:
- return (a > b ? a : b);
- end:
- function: max
- version: 9 20
- attrib: const
- w: 2
- t: i8, i16, i32, u8, u16, u32
- ret: #2#1
- arg: #2#1 a
- arg: #2#1 b
- inline:
- #2#1 tmp;
- tmp.x = (a.x > b.x ? a.x : b.x);
- tmp.y = (a.y > b.y ? a.y : b.y);
- return tmp;
- end:
- function: max
- version: 9 20
- attrib: const
- w: 3
- t: i8, i16, i32, u8, u16, u32
- ret: #2#1
- arg: #2#1 a
- arg: #2#1 b
- inline:
- #2#1 tmp;
- tmp.x = (a.x > b.x ? a.x : b.x);
- tmp.y = (a.y > b.y ? a.y : b.y);
- tmp.z = (a.z > b.z ? a.z : b.z);
- return tmp;
- end:
- function: max
- version: 9 20
- attrib: const
- w: 4
- t: i8, i16, i32, u8, u16, u32
- ret: #2#1
- arg: #2#1 a
- arg: #2#1 b
- inline:
- #2#1 tmp;
- tmp.x = (a.x > b.x ? a.x : b.x);
- tmp.y = (a.y > b.y ? a.y : b.y);
- tmp.z = (a.z > b.z ? a.z : b.z);
- tmp.w = (a.w > b.w ? a.w : b.w);
- return tmp;
- end:
- function: max
- version: 21
- attrib: const
- w: 1, 2, 3, 4
- t: i8, i16, i32, i64, u8, u16, u32, u64
- ret: #2#1
- arg: #2#1 a
- arg: #2#1 b
- end:
- function: min
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 a
- arg: #2#1 b
- summary: Minimum
- description:
- Returns the minimum value of two arguments.
- end:
- function: min
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 a
- arg: #2#1 b
- end:
- function: min
- version: 9
- attrib: const
- w: 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 a
- arg: #2 b
- end:
- function: min
- version: 24
- attrib: const
- w: 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 a
- arg: #2 b
- end:
- function: min
- version: 9 20
- attrib: const
- w: 1
- t: i8, i16, i32, u8, u16, u32
- ret: #2#1
- arg: #2#1 a
- arg: #2#1 b
- inline:
- return (a < b ? a : b);
- end:
- function: min
- version: 9 20
- attrib: const
- w: 2
- t: i8, i16, i32, u8, u16, u32
- ret: #2#1
- arg: #2#1 a
- arg: #2#1 b
- inline:
- #2#1 tmp;
- tmp.x = (a.x < b.x ? a.x : b.x);
- tmp.y = (a.y < b.y ? a.y : b.y);
- return tmp;
- end:
- function: min
- version: 9 20
- attrib: const
- w: 3
- t: i8, i16, i32, u8, u16, u32
- ret: #2#1
- arg: #2#1 a
- arg: #2#1 b
- inline:
- #2#1 tmp;
- tmp.x = (a.x < b.x ? a.x : b.x);
- tmp.y = (a.y < b.y ? a.y : b.y);
- tmp.z = (a.z < b.z ? a.z : b.z);
- return tmp;
- end:
- function: min
- version: 9 20
- attrib: const
- w: 4
- t: i8, i16, i32, u8, u16, u32
- ret: #2#1
- arg: #2#1 a
- arg: #2#1 b
- inline:
- #2#1 tmp;
- tmp.x = (a.x < b.x ? a.x : b.x);
- tmp.y = (a.y < b.y ? a.y : b.y);
- tmp.z = (a.z < b.z ? a.z : b.z);
- tmp.w = (a.w < b.w ? a.w : b.w);
- return tmp;
- end:
- function: min
- version: 21
- attrib: const
- w: 1, 2, 3, 4
- t: i8, i16, i32, i64, u8, u16, u32, u64
- ret: #2#1
- arg: #2#1 a
- arg: #2#1 b
- end:
- function: mix
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 start
- arg: #2#1 stop
- arg: #2#1 fraction
- summary: Mixes two values
- description:
- Returns start + ((stop - start) * fraction).
- This can be useful for mixing two values. For example, to create a new color that is
- 40% color1 and 60% color2, use <code>mix(color1, color2, 0.6f)</code>.
- end:
- function: mix
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 start
- arg: #2#1 stop
- arg: #2#1 fraction
- end:
- function: mix
- version: 9
- attrib: const
- w: 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 start
- arg: #2#1 stop
- arg: #2 fraction
- end:
- function: mix
- version: 24
- attrib: const
- w: 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 start
- arg: #2#1 stop
- arg: #2 fraction
- end:
- function: modf
- version: 9
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1, "Floating point portion of the value."
- arg: #2#1 v, "Source value."
- arg: #2#1* integral_part, "*integral_part will be set to the integral portion of the number."
- summary: Integral and fractional components
- description:
- Returns the integral and fractional components of a number.
- Both components will have the same sign as x. For example, for an input of -3.72f,
- *integral_part will be set to -3.f and .72f will be returned.
- end:
- function: modf
- version: 24
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- arg: #2#1* integral_part
- test: none
- end:
- function: nan
- version: 9
- attrib: const
- w: 1
- t: f32
- ret: #2#1
- arg: uint#1 v, "Not used."
- #TODO We're not using the argument. Once we do, add this documentation line:
- # The argument is embedded into the return value and can be used to distinguish various NaNs.
- summary: Not a Number
- description:
- Returns a NaN value (Not a Number).
- end:
- function: nan_half
- version: 24
- attrib: const
- t: f16
- ret: #1
- summary: Not a Number
- description:
- Returns a half-precision floating point NaN value (Not a Number).
- end:
- function: native_acos
- version: 21
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v, range(-1,1)
- summary: Approximate inverse cosine
- description:
- Returns the approximate inverse cosine, in radians.
- This function yields undefined results from input values less than -1 or greater than 1.
- See also @acos().
- # TODO Temporary
- test: limited(0.0005)
- end:
- function: native_acos
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v, range(-1,1)
- # Absolute error of 2^-11, i.e. 0.00048828125
- test: limited(0.00048828125)
- end:
- function: native_acosh
- version: 21
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Approximate inverse hyperbolic cosine
- description:
- Returns the approximate inverse hyperbolic cosine, in radians.
- See also @acosh().
- # TODO Temporary
- test: limited(0.0005)
- end:
- function: native_acosh
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: native_acospi
- version: 21
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v, range(-1,1)
- summary: Approximate inverse cosine divided by pi
- description:
- Returns the approximate inverse cosine in radians, divided by pi.
- To get an inverse cosine measured in degrees, use <code>acospi(a) * 180.f</code>.
- This function yields undefined results from input values less than -1 or greater than 1.
- See also @acospi().
- # TODO Temporary
- test: limited(0.0005)
- end:
- function: native_acospi
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v, range(-1,1)
- # Absolute error of 2^-11, i.e. 0.00048828125
- test: limited(0.00048828125)
- end:
- function: native_asin
- version: 21
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v, range(-1,1)
- summary: Approximate inverse sine
- description:
- Returns the approximate inverse sine, in radians.
- This function yields undefined results from input values less than -1 or greater than 1.
- See also @asin().
- # TODO Temporary
- test: limited(0.0005)
- end:
- function: native_asin
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v, range(-1,1)
- # Absolute error of 2^-11, i.e. 0.00048828125
- test: limited(0.00048828125)
- end:
- function: native_asinh
- version: 21
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Approximate inverse hyperbolic sine
- description:
- Returns the approximate inverse hyperbolic sine, in radians.
- See also @asinh().
- # TODO Temporary
- test: limited(0.0005)
- end:
- function: native_asinh
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: native_asinpi
- version: 21
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v, range(-1,1)
- summary: Approximate inverse sine divided by pi
- description:
- Returns the approximate inverse sine in radians, divided by pi.
- To get an inverse sine measured in degrees, use <code>asinpi(a) * 180.f</code>.
- This function yields undefined results from input values less than -1 or greater than 1.
- See also @asinpi().
- # TODO Temporary
- test: limited(0.0005)
- end:
- function: native_asinpi
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v, range(-1,1)
- # Absolute error of 2^-11, i.e. 0.00048828125
- test: limited(0.00048828125)
- end:
- function: native_atan
- version: 21
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v, range(-1,1)
- summary: Approximate inverse tangent
- description:
- Returns the approximate inverse tangent, in radians.
- See also @atan().
- # TODO Temporary
- test: limited(0.0005)
- end:
- function: native_atan
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v, range(-1, 1)
- end:
- function: native_atan2
- version: 21
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 numerator, "Numerator."
- arg: #2#1 denominator, "Denominator. Can be 0."
- summary: Approximate inverse tangent of a ratio
- description:
- Returns the approximate inverse tangent of <code>(numerator / denominator)</code>, in radians.
- See also @atan2().
- # TODO Temporary
- test: limited(0.0005)
- end:
- function: native_atan2
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 numerator
- arg: #2#1 denominator
- end:
- function: native_atan2pi
- version: 21
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 numerator, "Numerator."
- arg: #2#1 denominator, "Denominator. Can be 0."
- summary: Approximate inverse tangent of a ratio, divided by pi
- description:
- Returns the approximate inverse tangent of <code>(numerator / denominator)</code>,
- in radians, divided by pi.
- To get an inverse tangent measured in degrees, use <code>atan2pi(n, d) * 180.f</code>.
- See also @atan2pi().
- # TODO Temporary
- test: limited(0.0005)
- end:
- function: native_atan2pi
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 numerator
- arg: #2#1 denominator
- end:
- function: native_atanh
- version: 21
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v, range(-1,1)
- summary: Approximate inverse hyperbolic tangent
- description:
- Returns the approximate inverse hyperbolic tangent, in radians.
- See also @atanh().
- # TODO Temporary
- test: limited(0.0005)
- end:
- function: native_atanh
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v, range(-1,1)
- end:
- function: native_atanpi
- version: 21
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v, range(-1,1)
- summary: Approximate inverse tangent divided by pi
- description:
- Returns the approximate inverse tangent in radians, divided by pi.
- To get an inverse tangent measured in degrees, use <code>atanpi(a) * 180.f</code>.
- See also @atanpi().
- # TODO Temporary
- test: limited(0.0005)
- end:
- function: native_atanpi
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v, range(-1,1)
- end:
- function: native_cbrt
- version: 21
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Approximate cube root
- description:
- Returns the approximate cubic root.
- See also @cbrt().
- end:
- function: native_cbrt
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: native_cos
- version: 21
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Approximate cosine
- description:
- Returns the approximate cosine of an angle measured in radians.
- See also @cos().
- end:
- function: native_cos
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v, range(-314,314)
- # Absolute error of 2^-11, i.e. 0.00048828125
- test: limited(0.00048828125)
- end:
- function: native_cosh
- version: 21
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Approximate hypebolic cosine
- description:
- Returns the approximate hypebolic cosine.
- See also @cosh().
- end:
- function: native_cosh
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: native_cospi
- version: 21
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Approximate cosine of a number multiplied by pi
- description:
- Returns the approximate cosine of (v * pi), where (v * pi) is measured in radians.
- To get the cosine of a value measured in degrees, call <code>cospi(v / 180.f)</code>.
- See also @cospi().
- end:
- function: native_cospi
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v, range(-100,100)
- # Absolute error of 2^-11, i.e. 0.00048828125
- test: limited(0.00048828125)
- end:
- function: native_divide
- version: 21
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 left_vector
- arg: #2#1 right_vector
- summary: Approximate division
- description:
- Computes the approximate division of two values.
- end:
- function: native_divide
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 left_vector
- arg: #2#1 right_vector
- end:
- function: native_exp
- version: 18
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v, range(-86,86)
- summary: Approximate e raised to a number
- description:
- Fast approximate exp.
- It is valid for inputs from -86.f to 86.f. The precision is no worse than what would be
- expected from using 16 bit floating point values.
- See also @exp().
- test: limited
- end:
- function: native_exp
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v, range(-86,86)
- end:
- function: native_exp10
- version: 18
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v, range(-37,37)
- summary: Approximate 10 raised to a number
- description:
- Fast approximate exp10.
- It is valid for inputs from -37.f to 37.f. The precision is no worse than what would be
- expected from using 16 bit floating point values.
- See also @exp10().
- test: limited
- end:
- function: native_exp10
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v, range(-37,37)
- end:
- function: native_exp2
- version: 18
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v, range(-125,125)
- summary: Approximate 2 raised to a number
- description:
- Fast approximate exp2.
- It is valid for inputs from -125.f to 125.f. The precision is no worse than what would be
- expected from using 16 bit floating point values.
- See also @exp2().
- test: limited
- end:
- function: native_exp2
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v, range(-125,125)
- end:
- function: native_expm1
- version: 21
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Approximate e raised to a number minus one
- description:
- Returns the approximate (e ^ v) - 1.
- See also @expm1().
- end:
- function: native_expm1
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- test: custom
- end:
- function: native_hypot
- version: 21
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 a
- arg: #2#1 b
- summary: Approximate hypotenuse
- description:
- Returns the approximate native_sqrt(a * a + b * b)
- See also @hypot().
- end:
- function: native_hypot
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 a
- arg: #2#1 b
- end:
- function: native_log
- version: 18
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v, range(10e-10,10e10)
- summary: Approximate natural logarithm
- description:
- Fast approximate log.
- It is not accurate for values very close to zero.
- See also @log().
- test: limited
- end:
- function: native_log
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v, range(10e-5,65504)
- end:
- function: native_log10
- version: 18
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v, range(10e-10,10e10)
- summary: Approximate base 10 logarithm
- description:
- Fast approximate log10.
- It is not accurate for values very close to zero.
- See also @log10().
- test: limited
- end:
- function: native_log10
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v, range(10e-5,65504)
- end:
- function: native_log1p
- version: 21
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Approximate natural logarithm of a value plus 1
- description:
- Returns the approximate natural logarithm of (v + 1.0f)
- See also @log1p().
- end:
- function: native_log1p
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: native_log2
- version: 18
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v, range(10e-10,10e10)
- summary: Approximate base 2 logarithm
- description:
- Fast approximate log2.
- It is not accurate for values very close to zero.
- See also @log2().
- test: limited
- end:
- function: native_log2
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v, range(10e-5,65504)
- end:
- function: native_powr
- version: 18
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 base, range(0,256), "Must be between 0.f and 256.f. The function is not accurate for values very close to zero."
- arg: #2#1 exponent, range(-15,15), "Must be between -15.f and 15.f."
- summary: Approximate positive base raised to an exponent
- description:
- Fast approximate (base ^ exponent).
- See also @powr().
- test: limited
- end:
- function: native_powr
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 base, range(0,256)
- arg: #2#1 exponent, range(-15,15)
- end:
- function: native_recip
- version: 21
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Approximate reciprocal
- description:
- Returns the approximate approximate reciprocal of a value.
- See also @half_recip().
- end:
- function: native_recip
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: native_rootn
- version: 21
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- arg: int#1 n
- summary: Approximate nth root
- description:
- Compute the approximate Nth root of a value.
- See also @rootn().
- end:
- function: native_rootn
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- arg: int#1 n
- test: none
- end:
- function: native_rsqrt
- version: 21
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Approximate reciprocal of a square root
- description:
- Returns approximate (1 / sqrt(v)).
- See also @rsqrt(), @half_rsqrt().
- end:
- function: native_rsqrt
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: native_sin
- version: 21
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Approximate sine
- description:
- Returns the approximate sine of an angle measured in radians.
- See also @sin().
- end:
- function: native_sin
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v, range(-314,314)
- # Absolute error of 2^-11, i.e. 0.00048828125
- test: limited(0.00048828125)
- end:
- function: native_sincos
- version: 21
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1, "Sine."
- arg: #2#1 v, "Incoming value in radians."
- arg: #2#1* cos, "*cos will be set to the cosine value."
- summary: Approximate sine and cosine
- description:
- Returns the approximate sine and cosine of a value.
- See also @sincos().
- # TODO Temporary
- test: limited(0.0005)
- end:
- function: native_sincos
- version: 24
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- arg: #2#1* cos, range(-314,314)
- # Absolute error of 2^-11, i.e. 0.00048828125
- test: limited(0.00048828125)
- end:
- function: native_sinh
- version: 21
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Approximate hyperbolic sine
- description:
- Returns the approximate hyperbolic sine of a value specified in radians.
- See also @sinh().
- end:
- function: native_sinh
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: native_sinpi
- version: 21
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Approximate sine of a number multiplied by pi
- description:
- Returns the approximate sine of (v * pi), where (v * pi) is measured in radians.
- To get the sine of a value measured in degrees, call <code>sinpi(v / 180.f)</code>.
- See also @sinpi().
- end:
- function: native_sinpi
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v, range(-100,100)
- # Absolute error of 2^-11, i.e. 0.00048828125
- test: limited(0.00048828125)
- end:
- function: native_sqrt
- version: 21
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Approximate square root
- description:
- Returns the approximate sqrt(v).
- See also @sqrt(), @half_sqrt().
- end:
- function: native_sqrt
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: native_tan
- version: 21
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Approximate tangent
- description:
- Returns the approximate tangent of an angle measured in radians.
- end:
- function: native_tan
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v, range(-314,314)
- test: custom
- end:
- function: native_tanh
- version: 21
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Approximate hyperbolic tangent
- description:
- Returns the approximate hyperbolic tangent of a value.
- See also @tanh().
- end:
- function: native_tanh
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: native_tanpi
- version: 21
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Approximate tangent of a number multiplied by pi
- description:
- Returns the approximate tangent of (v * pi), where (v * pi) is measured in radians.
- To get the tangent of a value measured in degrees, call <code>tanpi(v / 180.f)</code>.
- See also @tanpi().
- end:
- function: native_tanpi
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v, range(-100,100)
- test: custom
- end:
- function: nextafter
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- arg: #2#1 target
- summary: Next floating point number
- description:
- Returns the next representable floating point number from v towards target.
- In rs_fp_relaxed mode, a denormalized input value may not yield the next denormalized
- value, as support of denormalized values is optional in relaxed mode.
- end:
- function: nextafter
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- arg: #2#1 target
- test: none
- end:
- function: pow
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 base
- arg: #2#1 exponent
- summary: Base raised to an exponent
- description:
- Returns base raised to the power exponent, i.e. base ^ exponent.
- @pown() and @powr() are similar. @pown() takes an integer exponent. @powr() assumes the
- base to be non-negative.
- end:
- function: pow
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 base
- arg: #2#1 exponent
- end:
- function: pown
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 base
- arg: int#1 exponent
- summary: Base raised to an integer exponent
- description:
- Returns base raised to the power exponent, i.e. base ^ exponent.
- @pow() and @powr() are similar. The both take a float exponent. @powr() also assumes the
- base to be non-negative.
- end:
- function: pown
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 base
- arg: int#1 exponent
- end:
- function: powr
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 base, range(0,3000)
- arg: #2#1 exponent
- summary: Positive base raised to an exponent
- description:
- Returns base raised to the power exponent, i.e. base ^ exponent. base must be >= 0.
- @pow() and @pown() are similar. They both make no assumptions about the base.
- @pow() takes a float exponent while @pown() take an integer.
- See also @native_powr().
- end:
- function: powr
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 base, range(0,300)
- arg: #2#1 exponent
- end:
- function: radians
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Converts degrees into radians
- description:
- Converts from degrees to radians.
- end:
- function: radians
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: remainder
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 numerator
- arg: #2#1 denominator
- summary: Remainder of a division
- description:
- Returns the remainder of (numerator / denominator), where the quotient is rounded towards
- the nearest integer.
- The function @fmod() is similar but rounds toward the closest interger.
- For example, <code>@fmod(-3.8f, 2.f)</code> returns -1.8f (-3.8f - -1.f * 2.f)
- while <code>remainder(-3.8f, 2.f)</code> returns 0.2f (-3.8f - -2.f * 2.f).
- end:
- function: remainder
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 numerator
- arg: #2#1 denominator
- end:
- function: remquo
- version: 9
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1, "Remainder, precise only for the low three bits."
- arg: #2#1 numerator, "Numerator."
- arg: #2#1 denominator, "Denominator."
- arg: int#1* quotient, "*quotient will be set to the integer quotient."
- summary: Remainder and quotient of a division
- description:
- Returns the quotient and the remainder of (numerator / denominator).
- Only the sign and lowest three bits of the quotient are guaranteed to be accurate.
- This function is useful for implementing periodic functions. The low three bits of the
- quotient gives the quadrant and the remainder the distance within the quadrant.
- For example, an implementation of @sin(x) could call <code>remquo(x, PI / 2.f, &quadrant)</code>
- to reduce very large value of x to something within a limited range.
- Example: <code>remquo(-23.5f, 8.f, &quot)</code> sets the lowest three bits of quot to 3
- and the sign negative. It returns 0.5f.
- test: custom
- end:
- function: remquo
- version: 24
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 numerator
- arg: #2#1 denominator
- arg: int#1* quotient
- test: none
- end:
- function: rint
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Round to even
- description:
- Rounds to the nearest integral value.
- rint() rounds half values to even. For example, <code>rint(0.5f)</code> returns 0.f and
- <code>rint(1.5f)</code> returns 2.f. Similarly, <code>rint(-0.5f)</code> returns -0.f and
- <code>rint(-1.5f)</code> returns -2.f.
- @round() is similar but rounds away from zero. @trunc() truncates the decimal fraction.
- end:
- function: rint
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: rootn
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- arg: int#1 n
- summary: Nth root
- description:
- Compute the Nth root of a value.
- See also @native_rootn().
- end:
- function: rootn
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- arg: int#1 n
- test: none
- end:
- function: round
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Round away from zero
- description:
- Round to the nearest integral value.
- round() rounds half values away from zero. For example, <code>round(0.5f)</code> returns 1.f
- and <code>round(1.5f)</code> returns 2.f. Similarly, <code>round(-0.5f)</code> returns -1.f
- and <code>round(-1.5f)</code> returns -2.f.
- @rint() is similar but rounds half values toward even. @trunc() truncates the decimal fraction.
- end:
- function: round
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: rsqrt
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Reciprocal of a square root
- description:
- Returns (1 / sqrt(v)).
- See also @half_rsqrt(), @native_rsqrt().
- end:
- function: rsqrt
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: sign
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Sign of a value
- description:
- Returns the sign of a value.
- if (v < 0) return -1.f;
- else if (v > 0) return 1.f;
- else return 0.f;
- end:
- function: sign
- version:24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: sin
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Sine
- description:
- Returns the sine of an angle measured in radians.
- See also @native_sin().
- end:
- function: sin
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: sincos
- version: 9
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1, "Sine of v."
- arg: #2#1 v, "Incoming value in radians."
- arg: #2#1* cos, "*cos will be set to the cosine value."
- summary: Sine and cosine
- description:
- Returns the sine and cosine of a value.
- See also @native_sincos().
- end:
- function: sincos
- version: 24
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- arg: #2#1* cos
- end:
- function: sinh
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Hyperbolic sine
- description:
- Returns the hyperbolic sine of v, where v is measured in radians.
- See also @native_sinh().
- end:
- function: sinh
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: sinpi
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Sine of a number multiplied by pi
- description:
- Returns the sine of (v * pi), where (v * pi) is measured in radians.
- To get the sine of a value measured in degrees, call <code>sinpi(v / 180.f)</code>.
- See also @native_sinpi().
- end:
- function: sinpi
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: sqrt
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Square root
- description:
- Returns the square root of a value.
- See also @half_sqrt(), @native_sqrt().
- end:
- function: sqrt
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: step
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 edge
- arg: #2#1 v
- summary: 0 if less than a value, 0 otherwise
- description:
- Returns 0.f if v < edge, 1.f otherwise.
- This can be useful to create conditional computations without using loops and branching
- instructions. For example, instead of computing <code>(a[i] < b[i]) ? 0.f : @atan2(a[i], b[i])</code>
- for the corresponding elements of a vector, you could instead use <code>step(a, b) * @atan2(a, b)</code>.
- end:
- function: step
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 edge
- arg: #2#1 v
- end:
- function: step
- version: 9
- attrib: const
- w: 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 edge
- arg: #2 v
- end:
- function: step
- version: 24
- attrib: const
- w: 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 edge
- arg: #2 v
- end:
- function: step
- version: 21
- attrib: const
- w: 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2 edge
- arg: #2#1 v
- end:
- function: step
- version: 24
- attrib: const
- w: 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2 edge
- arg: #2#1 v
- end:
- function: tan
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Tangent
- description:
- Returns the tangent of an angle measured in radians.
- See also @native_tan().
- end:
- function: tan
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: tanh
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Hyperbolic tangent
- description:
- Returns the hyperbolic tangent of a value.
- See also @native_tanh().
- end:
- function: tanh
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: tanpi
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Tangent of a number multiplied by pi
- description:
- Returns the tangent of (v * pi), where (v * pi) is measured in radians.
- To get the tangent of a value measured in degrees, call <code>tanpi(v / 180.f)</code>.
- See also @native_tanpi().
- end:
- function: tanpi
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: tgamma
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Gamma function
- description:
- Returns the gamma function of a value.
- See also @lgamma().
- end:
- function: tgamma
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: trunc
- version: 9
- attrib: const
- w: 1, 2, 3, 4
- t: f32
- ret: #2#1
- arg: #2#1 v
- summary: Truncates a floating point
- description:
- Rounds to integral using truncation.
- For example, <code>trunc(1.7f)</code> returns 1.f and <code>trunc(-1.7f)</code> returns -1.f.
- See @rint() and @round() for other rounding options.
- end:
- function: trunc
- version: 24
- attrib: const
- w: 1, 2, 3, 4
- t: f16
- ret: #2#1
- arg: #2#1 v
- end:
- function: rsClamp
- attrib: const
- t: i8, i16, i32, u8, u16, u32
- ret: #1
- arg: #1 amount, "Value to clamp."
- arg: #1 low, "Lower bound."
- arg: #1 high, "Upper bound."
- deprecated: 22, Use @clamp() instead.
- summary: Restrain a value to a range
- description:
- Clamp a value between low and high.
- test: none
- end:
- function: rsFrac
- attrib: const
- ret: float
- arg: float v
- deprecated: 22, Use @fract() instead.
- summary: Returns the fractional part of a float
- description:
- Returns the fractional part of a float
- test: none
- end:
- function: rsRand
- ret: int
- arg: int max_value
- summary: Pseudo-random number
- description:
- Return a random value between 0 (or min_value) and max_malue.
- test: none
- end:
- function: rsRand
- ret: int
- arg: int min_value
- arg: int max_value
- test: none
- end:
- function: rsRand
- ret: float
- arg: float max_value
- test: none
- end:
- function: rsRand
- ret: float
- arg: float min_value
- arg: float max_value
- test: none
- end:
|