123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469 |
- <?xml version="1.0" encoding="utf-8" ?>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <!-- This file is generated by Nim. -->
- <html xmlns="https://www.w3.org/1999/xhtml" xml:lang="en" lang="en" data-theme="auto">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>std/math</title>
- <!-- Google fonts -->
- <link href='https://fonts.googleapis.com/css?family=Lato:400,600,900' rel='stylesheet' type='text/css'/>
- <link href='https://fonts.googleapis.com/css?family=Source+Code+Pro:400,500,600' rel='stylesheet' type='text/css'/>
- <!-- Favicon -->
- <link rel="shortcut icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAAAAUAAAAF////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAAAAIAAABbAAAAlQAAAKIAAACbAAAAmwAAAKIAAACVAAAAWwAAAAL///8A////AP///wD///8A////AAAAABQAAADAAAAAYwAAAA3///8A////AP///wD///8AAAAADQAAAGMAAADAAAAAFP///wD///8A////AP///wAAAACdAAAAOv///wD///8A////AP///wD///8A////AP///wD///8AAAAAOgAAAJ3///8A////AP///wAAAAAnAAAAcP///wAAAAAoAAAASv///wD///8A////AP///wAAAABKAAAAKP///wAAAABwAAAAJ////wD///8AAAAAgQAAABwAAACIAAAAkAAAAJMAAACtAAAAFQAAABUAAACtAAAAkwAAAJAAAACIAAAAHAAAAIH///8A////AAAAAKQAAACrAAAAaP///wD///8AAAAARQAAANIAAADSAAAARf///wD///8AAAAAaAAAAKsAAACk////AAAAADMAAACcAAAAnQAAABj///8A////AP///wAAAAAYAAAAGP///wD///8A////AAAAABgAAACdAAAAnAAAADMAAAB1AAAAwwAAAP8AAADpAAAAsQAAAE4AAAAb////AP///wAAAAAbAAAATgAAALEAAADpAAAA/wAAAMMAAAB1AAAAtwAAAOkAAAD/AAAA/wAAAP8AAADvAAAA3gAAAN4AAADeAAAA3gAAAO8AAAD/AAAA/wAAAP8AAADpAAAAtwAAAGUAAAA/AAAA3wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADfAAAAPwAAAGX///8A////AAAAAEgAAADtAAAAvwAAAL0AAADGAAAA7wAAAO8AAADGAAAAvQAAAL8AAADtAAAASP///wD///8A////AP///wD///8AAAAAO////wD///8A////AAAAAIcAAACH////AP///wD///8AAAAAO////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A//8AAP//AAD4HwAA7/cAAN/7AAD//wAAoYUAAJ55AACf+QAAh+EAAAAAAADAAwAA4AcAAP5/AAD//wAA//8AAA=="/>
- <link rel="icon" type="image/png" sizes="32x32" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH4QQQEwksSS9ZWwAAAk1JREFUWMPtll2ITVEUx39nn/O7Y5qR8f05wtCUUr6ZIS++8pEnkZInPImneaCQ5METNdOkeFBKUhMPRIkHKfEuUZSUlGlKPN2TrgfncpvmnntnmlEyq1Z7t89/rf9a6+y99oZxGZf/XeIq61EdtgKXgdXA0xrYAvBjOIF1AI9zvjcC74BSpndrJPkBWDScTF8Aa4E3wDlgHbASaANmVqlcCnwHvgDvgVfAJ+AikAAvgfVZwLnSVZHZaOuKoQi3ZOMi4NkYkpe1p4J7A8BpYAD49hfIy/oqG0+hLomiKP2L5L+1ubn5115S+3OAn4EnwBlgMzCjyt6ZAnQCJ4A7wOs88iRJHvw50HoujuPBoCKwHWiosy8MdfZnAdcHk8dxXFJ3VQbQlCTJvRBCGdRbD4M6uc5glpY3eAihpN5S5w12diSEcCCEcKUO4ljdr15T76ur1FDDLIQQ3qv71EdDOe3Kxj3leRXyk+pxdWnFWod6Wt2bY3de3aSuUHcPBVimHs7mK9WrmeOF6lR1o9qnzskh2ar2qm1qizpfXaPeVGdlmGN5pb09qMxz1Xb1kLqgzn1RyH7JUXW52lr5e/Kqi9qpto7V1atuUzfnARrV7jEib1T76gG2qxdGmXyiekkt1GswPTtek0aBfJp6YySGBfWg2tPQ0FAYgf1stUfdmdcjarbYJEniKIq6gY/Aw+zWHAC+p2labGpqiorFYgGYCEzN7oQdQClN07O1/EfDyGgC0ALMBdYAi4FyK+4H3gLPsxfR1zRNi+NP7nH5J+QntnXe5B5mpfQAAAAASUVORK5CYII=">
- <!-- CSS -->
- <link rel="stylesheet" type="text/css" href="nimdoc.out.css?v=2.3.1">
- <!-- JS -->
- <script type="text/javascript" src="dochack.js?v=2.3.1"></script>
- </head>
- <body>
- <div class="document" id="documentId">
- <div class="container">
- <h1 class="title">std/math</h1>
- <div class="row">
- <div class="three columns">
- <div class="theme-select-wrapper">
- <label for="theme-select">Theme: </label>
- <select id="theme-select" onchange="setTheme(this.value)">
- <option value="auto">🌗 Match OS</option>
- <option value="dark">🌑 Dark</option>
- <option value="light">🌕 Light</option>
- </select>
- </div>
- <div id="global-links">
- <ul class="simple-boot">
- <li><a href="manual.html">Manual</a></li>
- <li><a href="lib.html">Standard library</a></li>
- <li> <a id="indexLink" href="theindex.html">Index</a></li>
- <li><a href="compiler/theindex.html">Compiler docs</a></li>
- <li><a href="https://nim-lang.github.io/fusion/theindex.html">Fusion docs</a></li>
- <li><a href="https://nim-lang.github.io/Nim/">devel</a>, <a href="https://nim-lang.org/documentation.html">stable</a></li>
- </ul>
- </div>
- <div id="searchInputDiv">
- Search: <input type="search" id="searchInput"
- oninput="search()" />
- </div>
-
- <ul class="simple simple-toc" id="toc-list">
- <li><a class="reference" id="see-also_toc" href="#see-also">See also</a></li>
- <li>
- <a class="reference reference-toplevel" href="#6" id="56">Imports</a>
- </li>
- <li>
- <details open>
- <summary><a class="reference reference-toplevel" href="#7" id="57">Types</a></summary>
- <ul class="simple simple-toc-section">
- <li><a class="reference" href="#FloatClass" title="FloatClass = enum
- fcNormal, ## value is an ordinary nonzero floating point value
- fcSubnormal, ## value is a subnormal (a very small) floating point value
- fcZero, ## value is zero
- fcNegZero, ## value is the negative zero
- fcNan, ## value is Not a Number (NaN)
- fcInf, ## value is positive infinity
- fcNegInf ## value is negative infinity">FloatClass</a></li>
- </ul>
- </details>
- </li>
- <li>
- <details open>
- <summary><a class="reference reference-toplevel" href="#10" id="60">Consts</a></summary>
- <ul class="simple simple-toc-section">
- <li><a class="reference" href="#E" title="E = 2.718281828459045">E</a></li>
- <li><a class="reference" href="#MaxFloat32Precision" title="MaxFloat32Precision = 8">MaxFloat32Precision</a></li>
- <li><a class="reference" href="#MaxFloat64Precision" title="MaxFloat64Precision = 16">MaxFloat64Precision</a></li>
- <li><a class="reference" href="#MaxFloatPrecision" title="MaxFloatPrecision = 16">MaxFloatPrecision</a></li>
- <li><a class="reference" href="#MinFloatNormal" title="MinFloatNormal = 2.225073858507201e-308">MinFloatNormal</a></li>
- <li><a class="reference" href="#PI" title="PI = 3.141592653589793">PI</a></li>
- <li><a class="reference" href="#TAU" title="TAU = 6.283185307179586">TAU</a></li>
- </ul>
- </details>
- </li>
- <li>
- <details open>
- <summary><a class="reference reference-toplevel" href="#12" id="62">Procs</a></summary>
- <ul class="simple simple-toc-section">
- <ul class="simple nested-toc-section">^
- <li><a class="reference" href="#%5E%2CT%2CU" title="`^`[T: SomeNumber; U: SomeFloat](x: T; y: U): float">`^`[T: SomeNumber; U: SomeFloat](x: T; y: U): float</a></li>
- <li><a class="reference" href="#%5E%2CT%2CNatural" title="`^`[T: SomeNumber](x: T; y: Natural): T">`^`[T: SomeNumber](x: T; y: Natural): T</a></li>
- </ul>
- <ul class="simple nested-toc-section">almostEqual
- <li><a class="reference" href="#almostEqual%2CT%2CT%2CNatural" title="almostEqual[T: SomeFloat](x, y: T; unitsInLastPlace: Natural = 4): bool">almostEqual[T: SomeFloat](x, y: T; unitsInLastPlace: Natural = 4): bool</a></li>
- </ul>
- <ul class="simple nested-toc-section">arccos
- <li><a class="reference" href="#arccos%2Cfloat32" title="arccos(x: float32): float32">arccos(x: float32): float32</a></li>
- <li><a class="reference" href="#arccos%2Cfloat64" title="arccos(x: float64): float64">arccos(x: float64): float64</a></li>
- </ul>
- <ul class="simple nested-toc-section">arccosh
- <li><a class="reference" href="#arccosh%2Cfloat32" title="arccosh(x: float32): float32">arccosh(x: float32): float32</a></li>
- <li><a class="reference" href="#arccosh%2Cfloat64" title="arccosh(x: float64): float64">arccosh(x: float64): float64</a></li>
- </ul>
- <ul class="simple nested-toc-section">arccot
- <li><a class="reference" href="#arccot%2CT" title="arccot[T: float32 | float64](x: T): T">arccot[T: float32 | float64](x: T): T</a></li>
- </ul>
- <ul class="simple nested-toc-section">arccoth
- <li><a class="reference" href="#arccoth%2CT" title="arccoth[T: float32 | float64](x: T): T">arccoth[T: float32 | float64](x: T): T</a></li>
- </ul>
- <ul class="simple nested-toc-section">arccsc
- <li><a class="reference" href="#arccsc%2CT" title="arccsc[T: float32 | float64](x: T): T">arccsc[T: float32 | float64](x: T): T</a></li>
- </ul>
- <ul class="simple nested-toc-section">arccsch
- <li><a class="reference" href="#arccsch%2CT" title="arccsch[T: float32 | float64](x: T): T">arccsch[T: float32 | float64](x: T): T</a></li>
- </ul>
- <ul class="simple nested-toc-section">arcsec
- <li><a class="reference" href="#arcsec%2CT" title="arcsec[T: float32 | float64](x: T): T">arcsec[T: float32 | float64](x: T): T</a></li>
- </ul>
- <ul class="simple nested-toc-section">arcsech
- <li><a class="reference" href="#arcsech%2CT" title="arcsech[T: float32 | float64](x: T): T">arcsech[T: float32 | float64](x: T): T</a></li>
- </ul>
- <ul class="simple nested-toc-section">arcsin
- <li><a class="reference" href="#arcsin%2Cfloat32" title="arcsin(x: float32): float32">arcsin(x: float32): float32</a></li>
- <li><a class="reference" href="#arcsin%2Cfloat64" title="arcsin(x: float64): float64">arcsin(x: float64): float64</a></li>
- </ul>
- <ul class="simple nested-toc-section">arcsinh
- <li><a class="reference" href="#arcsinh%2Cfloat32" title="arcsinh(x: float32): float32">arcsinh(x: float32): float32</a></li>
- <li><a class="reference" href="#arcsinh%2Cfloat64" title="arcsinh(x: float64): float64">arcsinh(x: float64): float64</a></li>
- </ul>
- <ul class="simple nested-toc-section">arctan
- <li><a class="reference" href="#arctan%2Cfloat32" title="arctan(x: float32): float32">arctan(x: float32): float32</a></li>
- <li><a class="reference" href="#arctan%2Cfloat64" title="arctan(x: float64): float64">arctan(x: float64): float64</a></li>
- </ul>
- <ul class="simple nested-toc-section">arctan2
- <li><a class="reference" href="#arctan2%2Cfloat32%2Cfloat32" title="arctan2(y, x: float32): float32">arctan2(y, x: float32): float32</a></li>
- <li><a class="reference" href="#arctan2%2Cfloat64%2Cfloat64" title="arctan2(y, x: float64): float64">arctan2(y, x: float64): float64</a></li>
- </ul>
- <ul class="simple nested-toc-section">arctanh
- <li><a class="reference" href="#arctanh%2Cfloat32" title="arctanh(x: float32): float32">arctanh(x: float32): float32</a></li>
- <li><a class="reference" href="#arctanh%2Cfloat64" title="arctanh(x: float64): float64">arctanh(x: float64): float64</a></li>
- </ul>
- <ul class="simple nested-toc-section">binom
- <li><a class="reference" href="#binom%2Cint%2Cint" title="binom(n, k: int): int">binom(n, k: int): int</a></li>
- </ul>
- <ul class="simple nested-toc-section">cbrt
- <li><a class="reference" href="#cbrt%2Cfloat32" title="cbrt(x: float32): float32">cbrt(x: float32): float32</a></li>
- <li><a class="reference" href="#cbrt%2Cfloat64" title="cbrt(x: float64): float64">cbrt(x: float64): float64</a></li>
- </ul>
- <ul class="simple nested-toc-section">ceil
- <li><a class="reference" href="#ceil%2Cfloat32" title="ceil(x: float32): float32">ceil(x: float32): float32</a></li>
- <li><a class="reference" href="#ceil%2Cfloat64" title="ceil(x: float64): float64">ceil(x: float64): float64</a></li>
- </ul>
- <ul class="simple nested-toc-section">ceilDiv
- <li><a class="reference" href="#ceilDiv%2CT%2CT" title="ceilDiv[T: SomeInteger](x, y: T): T">ceilDiv[T: SomeInteger](x, y: T): T</a></li>
- </ul>
- <ul class="simple nested-toc-section">clamp
- <li><a class="reference" href="#clamp%2CT%2CSlice%5BT%5D" title="clamp[T](val: T; bounds: Slice[T]): T">clamp[T](val: T; bounds: Slice[T]): T</a></li>
- </ul>
- <ul class="simple nested-toc-section">classify
- <li><a class="reference" href="#classify%2Cfloat" title="classify(x: float): FloatClass">classify(x: float): FloatClass</a></li>
- </ul>
- <ul class="simple nested-toc-section">copySign
- <li><a class="reference" href="#copySign%2CT%2CT" title="copySign[T: SomeFloat](x, y: T): T">copySign[T: SomeFloat](x, y: T): T</a></li>
- </ul>
- <ul class="simple nested-toc-section">cos
- <li><a class="reference" href="#cos%2Cfloat32" title="cos(x: float32): float32">cos(x: float32): float32</a></li>
- <li><a class="reference" href="#cos%2Cfloat64" title="cos(x: float64): float64">cos(x: float64): float64</a></li>
- </ul>
- <ul class="simple nested-toc-section">cosh
- <li><a class="reference" href="#cosh%2Cfloat32" title="cosh(x: float32): float32">cosh(x: float32): float32</a></li>
- <li><a class="reference" href="#cosh%2Cfloat64" title="cosh(x: float64): float64">cosh(x: float64): float64</a></li>
- </ul>
- <ul class="simple nested-toc-section">cot
- <li><a class="reference" href="#cot%2CT" title="cot[T: float32 | float64](x: T): T">cot[T: float32 | float64](x: T): T</a></li>
- </ul>
- <ul class="simple nested-toc-section">coth
- <li><a class="reference" href="#coth%2CT" title="coth[T: float32 | float64](x: T): T">coth[T: float32 | float64](x: T): T</a></li>
- </ul>
- <ul class="simple nested-toc-section">csc
- <li><a class="reference" href="#csc%2CT" title="csc[T: float32 | float64](x: T): T">csc[T: float32 | float64](x: T): T</a></li>
- </ul>
- <ul class="simple nested-toc-section">csch
- <li><a class="reference" href="#csch%2CT" title="csch[T: float32 | float64](x: T): T">csch[T: float32 | float64](x: T): T</a></li>
- </ul>
- <ul class="simple nested-toc-section">cumprod
- <li><a class="reference" href="#cumprod%2CopenArray%5BT%5D" title="cumprod[T](x: var openArray[T])">cumprod[T](x: var openArray[T])</a></li>
- </ul>
- <ul class="simple nested-toc-section">cumproded
- <li><a class="reference" href="#cumproded%2CopenArray%5BT%5D" title="cumproded[T](x: openArray[T]): seq[T]">cumproded[T](x: openArray[T]): seq[T]</a></li>
- </ul>
- <ul class="simple nested-toc-section">cumsum
- <li><a class="reference" href="#cumsum%2CopenArray%5BT%5D" title="cumsum[T](x: var openArray[T])">cumsum[T](x: var openArray[T])</a></li>
- </ul>
- <ul class="simple nested-toc-section">cumsummed
- <li><a class="reference" href="#cumsummed%2CopenArray%5BT%5D" title="cumsummed[T](x: openArray[T]): seq[T]">cumsummed[T](x: openArray[T]): seq[T]</a></li>
- </ul>
- <ul class="simple nested-toc-section">degToRad
- <li><a class="reference" href="#degToRad%2CT" title="degToRad[T: float32 | float64](d: T): T">degToRad[T: float32 | float64](d: T): T</a></li>
- </ul>
- <ul class="simple nested-toc-section">divmod
- <li><a class="reference" href="#divmod%2CT%2CT" title="divmod[T: SomeInteger](x, y: T): (T, T)">divmod[T: SomeInteger](x, y: T): (T, T)</a></li>
- </ul>
- <ul class="simple nested-toc-section">erf
- <li><a class="reference" href="#erf%2Cfloat32" title="erf(x: float32): float32">erf(x: float32): float32</a></li>
- <li><a class="reference" href="#erf%2Cfloat64" title="erf(x: float64): float64">erf(x: float64): float64</a></li>
- </ul>
- <ul class="simple nested-toc-section">erfc
- <li><a class="reference" href="#erfc%2Cfloat32" title="erfc(x: float32): float32">erfc(x: float32): float32</a></li>
- <li><a class="reference" href="#erfc%2Cfloat64" title="erfc(x: float64): float64">erfc(x: float64): float64</a></li>
- </ul>
- <ul class="simple nested-toc-section">euclDiv
- <li><a class="reference" href="#euclDiv%2CT%2CT" title="euclDiv[T: SomeInteger](x, y: T): T">euclDiv[T: SomeInteger](x, y: T): T</a></li>
- </ul>
- <ul class="simple nested-toc-section">euclMod
- <li><a class="reference" href="#euclMod%2CT%2CT" title="euclMod[T: SomeNumber](x, y: T): T">euclMod[T: SomeNumber](x, y: T): T</a></li>
- </ul>
- <ul class="simple nested-toc-section">exp
- <li><a class="reference" href="#exp%2Cfloat32" title="exp(x: float32): float32">exp(x: float32): float32</a></li>
- <li><a class="reference" href="#exp%2Cfloat64" title="exp(x: float64): float64">exp(x: float64): float64</a></li>
- </ul>
- <ul class="simple nested-toc-section">fac
- <li><a class="reference" href="#fac%2Cint" title="fac(n: int): int">fac(n: int): int</a></li>
- </ul>
- <ul class="simple nested-toc-section">floor
- <li><a class="reference" href="#floor%2Cfloat32" title="floor(x: float32): float32">floor(x: float32): float32</a></li>
- <li><a class="reference" href="#floor%2Cfloat64" title="floor(x: float64): float64">floor(x: float64): float64</a></li>
- </ul>
- <ul class="simple nested-toc-section">floorDiv
- <li><a class="reference" href="#floorDiv%2CT%2CT" title="floorDiv[T: SomeInteger](x, y: T): T">floorDiv[T: SomeInteger](x, y: T): T</a></li>
- </ul>
- <ul class="simple nested-toc-section">floorMod
- <li><a class="reference" href="#floorMod%2CT%2CT" title="floorMod[T: SomeNumber](x, y: T): T">floorMod[T: SomeNumber](x, y: T): T</a></li>
- </ul>
- <ul class="simple nested-toc-section">frexp
- <li><a class="reference" href="#frexp%2CT" title="frexp[T: float32 | float64](x: T): tuple[frac: T, exp: int]">frexp[T: float32 | float64](x: T): tuple[frac: T, exp: int]</a></li>
- <li><a class="reference" href="#frexp%2CT%2Cint" title="frexp[T: float32 | float64](x: T; exponent: var int): T">frexp[T: float32 | float64](x: T; exponent: var int): T</a></li>
- </ul>
- <ul class="simple nested-toc-section">gamma
- <li><a class="reference" href="#gamma%2Cfloat32" title="gamma(x: float32): float32">gamma(x: float32): float32</a></li>
- <li><a class="reference" href="#gamma%2Cfloat64" title="gamma(x: float64): float64">gamma(x: float64): float64</a></li>
- </ul>
- <ul class="simple nested-toc-section">gcd
- <li><a class="reference" href="#gcd%2CSomeInteger%2CSomeInteger" title="gcd(x, y: SomeInteger): SomeInteger">gcd(x, y: SomeInteger): SomeInteger</a></li>
- <li><a class="reference" href="#gcd%2CT%2CT" title="gcd[T](x, y: T): T">gcd[T](x, y: T): T</a></li>
- <li><a class="reference" href="#gcd%2CopenArray%5BT%5D" title="gcd[T](x: openArray[T]): T">gcd[T](x: openArray[T]): T</a></li>
- </ul>
- <ul class="simple nested-toc-section">hypot
- <li><a class="reference" href="#hypot%2Cfloat32%2Cfloat32" title="hypot(x, y: float32): float32">hypot(x, y: float32): float32</a></li>
- <li><a class="reference" href="#hypot%2Cfloat64%2Cfloat64" title="hypot(x, y: float64): float64">hypot(x, y: float64): float64</a></li>
- </ul>
- <ul class="simple nested-toc-section">isNaN
- <li><a class="reference" href="#isNaN%2CSomeFloat" title="isNaN(x: SomeFloat): bool">isNaN(x: SomeFloat): bool</a></li>
- </ul>
- <ul class="simple nested-toc-section">isPowerOfTwo
- <li><a class="reference" href="#isPowerOfTwo%2Cint" title="isPowerOfTwo(x: int): bool">isPowerOfTwo(x: int): bool</a></li>
- </ul>
- <ul class="simple nested-toc-section">lcm
- <li><a class="reference" href="#lcm%2CT%2CT" title="lcm[T](x, y: T): T">lcm[T](x, y: T): T</a></li>
- <li><a class="reference" href="#lcm%2CopenArray%5BT%5D" title="lcm[T](x: openArray[T]): T">lcm[T](x: openArray[T]): T</a></li>
- </ul>
- <ul class="simple nested-toc-section">lgamma
- <li><a class="reference" href="#lgamma%2Cfloat32" title="lgamma(x: float32): float32">lgamma(x: float32): float32</a></li>
- <li><a class="reference" href="#lgamma%2Cfloat64" title="lgamma(x: float64): float64">lgamma(x: float64): float64</a></li>
- </ul>
- <ul class="simple nested-toc-section">ln
- <li><a class="reference" href="#ln%2Cfloat32" title="ln(x: float32): float32">ln(x: float32): float32</a></li>
- <li><a class="reference" href="#ln%2Cfloat64" title="ln(x: float64): float64">ln(x: float64): float64</a></li>
- </ul>
- <ul class="simple nested-toc-section">log
- <li><a class="reference" href="#log%2CT%2CT" title="log[T: SomeFloat](x, base: T): T">log[T: SomeFloat](x, base: T): T</a></li>
- </ul>
- <ul class="simple nested-toc-section">log2
- <li><a class="reference" href="#log2%2Cfloat32" title="log2(x: float32): float32">log2(x: float32): float32</a></li>
- <li><a class="reference" href="#log2%2Cfloat64" title="log2(x: float64): float64">log2(x: float64): float64</a></li>
- </ul>
- <ul class="simple nested-toc-section">log10
- <li><a class="reference" href="#log10%2Cfloat32" title="log10(x: float32): float32">log10(x: float32): float32</a></li>
- <li><a class="reference" href="#log10%2Cfloat64" title="log10(x: float64): float64">log10(x: float64): float64</a></li>
- </ul>
- <ul class="simple nested-toc-section">mod
- <li><a class="reference" href="#mod%2Cfloat32%2Cfloat32" title="`mod`(x, y: float32): float32">`mod`(x, y: float32): float32</a></li>
- <li><a class="reference" href="#mod%2Cfloat64%2Cfloat64" title="`mod`(x, y: float64): float64">`mod`(x, y: float64): float64</a></li>
- </ul>
- <ul class="simple nested-toc-section">nextPowerOfTwo
- <li><a class="reference" href="#nextPowerOfTwo%2Cint" title="nextPowerOfTwo(x: int): int">nextPowerOfTwo(x: int): int</a></li>
- </ul>
- <ul class="simple nested-toc-section">pow
- <li><a class="reference" href="#pow%2Cfloat32%2Cfloat32" title="pow(x, y: float32): float32">pow(x, y: float32): float32</a></li>
- <li><a class="reference" href="#pow%2Cfloat64%2Cfloat64" title="pow(x, y: float64): float64">pow(x, y: float64): float64</a></li>
- </ul>
- <ul class="simple nested-toc-section">prod
- <li><a class="reference" href="#prod%2CopenArray%5BT%5D" title="prod[T](x: openArray[T]): T">prod[T](x: openArray[T]): T</a></li>
- </ul>
- <ul class="simple nested-toc-section">radToDeg
- <li><a class="reference" href="#radToDeg%2CT" title="radToDeg[T: float32 | float64](d: T): T">radToDeg[T: float32 | float64](d: T): T</a></li>
- </ul>
- <ul class="simple nested-toc-section">round
- <li><a class="reference" href="#round%2Cfloat32" title="round(x: float32): float32">round(x: float32): float32</a></li>
- <li><a class="reference" href="#round%2Cfloat64" title="round(x: float64): float64">round(x: float64): float64</a></li>
- <li><a class="reference" href="#round%2CT%2Cint" title="round[T: float32 | float64](x: T; places: int): T">round[T: float32 | float64](x: T; places: int): T</a></li>
- </ul>
- <ul class="simple nested-toc-section">sec
- <li><a class="reference" href="#sec%2CT" title="sec[T: float32 | float64](x: T): T">sec[T: float32 | float64](x: T): T</a></li>
- </ul>
- <ul class="simple nested-toc-section">sech
- <li><a class="reference" href="#sech%2CT" title="sech[T: float32 | float64](x: T): T">sech[T: float32 | float64](x: T): T</a></li>
- </ul>
- <ul class="simple nested-toc-section">sgn
- <li><a class="reference" href="#sgn%2CT" title="sgn[T: SomeNumber](x: T): int">sgn[T: SomeNumber](x: T): int</a></li>
- </ul>
- <ul class="simple nested-toc-section">signbit
- <li><a class="reference" href="#signbit%2CSomeFloat" title="signbit(x: SomeFloat): bool">signbit(x: SomeFloat): bool</a></li>
- </ul>
- <ul class="simple nested-toc-section">sin
- <li><a class="reference" href="#sin%2Cfloat32" title="sin(x: float32): float32">sin(x: float32): float32</a></li>
- <li><a class="reference" href="#sin%2Cfloat64" title="sin(x: float64): float64">sin(x: float64): float64</a></li>
- </ul>
- <ul class="simple nested-toc-section">sinh
- <li><a class="reference" href="#sinh%2Cfloat32" title="sinh(x: float32): float32">sinh(x: float32): float32</a></li>
- <li><a class="reference" href="#sinh%2Cfloat64" title="sinh(x: float64): float64">sinh(x: float64): float64</a></li>
- </ul>
- <ul class="simple nested-toc-section">splitDecimal
- <li><a class="reference" href="#splitDecimal%2CT" title="splitDecimal[T: float32 | float64](x: T): tuple[intpart: T, floatpart: T]">splitDecimal[T: float32 | float64](x: T): tuple[intpart: T, floatpart: T]</a></li>
- </ul>
- <ul class="simple nested-toc-section">sqrt
- <li><a class="reference" href="#sqrt%2Cfloat32" title="sqrt(x: float32): float32">sqrt(x: float32): float32</a></li>
- <li><a class="reference" href="#sqrt%2Cfloat64" title="sqrt(x: float64): float64">sqrt(x: float64): float64</a></li>
- </ul>
- <ul class="simple nested-toc-section">sum
- <li><a class="reference" href="#sum%2CopenArray%5BT%5D" title="sum[T](x: openArray[T]): T">sum[T](x: openArray[T]): T</a></li>
- </ul>
- <ul class="simple nested-toc-section">tan
- <li><a class="reference" href="#tan%2Cfloat32" title="tan(x: float32): float32">tan(x: float32): float32</a></li>
- <li><a class="reference" href="#tan%2Cfloat64" title="tan(x: float64): float64">tan(x: float64): float64</a></li>
- </ul>
- <ul class="simple nested-toc-section">tanh
- <li><a class="reference" href="#tanh%2Cfloat32" title="tanh(x: float32): float32">tanh(x: float32): float32</a></li>
- <li><a class="reference" href="#tanh%2Cfloat64" title="tanh(x: float64): float64">tanh(x: float64): float64</a></li>
- </ul>
- <ul class="simple nested-toc-section">trunc
- <li><a class="reference" href="#trunc%2Cfloat32" title="trunc(x: float32): float32">trunc(x: float32): float32</a></li>
- <li><a class="reference" href="#trunc%2Cfloat64" title="trunc(x: float64): float64">trunc(x: float64): float64</a></li>
- </ul>
- </ul>
- </details>
- </li>
- </ul>
- </div>
- <div class="nine columns" id="content">
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L1" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L1" class="link-seesrc" target="_blank" >Edit</a>
- <div id="tocRoot"></div>
-
- <p class="module-desc"><p><em>Constructive mathematics is naturally typed.</em> -- Simon Thompson</p>
- <p>Basic math routines for Nim.</p>
- <p>Note that the trigonometric functions naturally operate on radians. The helper functions <a class="reference external" href="#degToRad,T">degToRad</a> and <a class="reference external" href="#radToDeg,T">radToDeg</a> provide conversion between radians and degrees.</p>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">math</span>
- <span class="Keyword">from</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">fenv</span> <span class="Keyword">import</span> <span class="Identifier">epsilon</span>
- <span class="Keyword">from</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">random</span> <span class="Keyword">import</span> <span class="Identifier">rand</span>
- <span class="Keyword">proc</span> <span class="Identifier">generateGaussianNoise</span><span class="Punctuation">(</span><span class="Identifier">mu</span><span class="Punctuation">:</span> <span class="Identifier">float</span> <span class="Operator">=</span> <span class="FloatNumber">0.0</span><span class="Punctuation">,</span> <span class="Identifier">sigma</span><span class="Punctuation">:</span> <span class="Identifier">float</span> <span class="Operator">=</span> <span class="FloatNumber">1.0</span><span class="Punctuation">)</span><span class="Punctuation">:</span> <span class="Punctuation">(</span><span class="Identifier">float</span><span class="Punctuation">,</span> <span class="Identifier">float</span><span class="Punctuation">)</span> <span class="Operator">=</span>
- <span class="Comment"># Generates values from a normal distribution.</span>
- <span class="Comment"># Translated from https://en.wikipedia.org/wiki/Box%E2%80%93Muller_transform#Implementation.</span>
- <span class="Keyword">var</span> <span class="Identifier">u1</span><span class="Punctuation">:</span> <span class="Identifier">float</span>
- <span class="Keyword">var</span> <span class="Identifier">u2</span><span class="Punctuation">:</span> <span class="Identifier">float</span>
- <span class="Keyword">while</span> <span class="Identifier">true</span><span class="Punctuation">:</span>
- <span class="Identifier">u1</span> <span class="Operator">=</span> <span class="Identifier">rand</span><span class="Punctuation">(</span><span class="FloatNumber">1.0</span><span class="Punctuation">)</span>
- <span class="Identifier">u2</span> <span class="Operator">=</span> <span class="Identifier">rand</span><span class="Punctuation">(</span><span class="FloatNumber">1.0</span><span class="Punctuation">)</span>
- <span class="Keyword">if</span> <span class="Identifier">u1</span> <span class="Operator">></span> <span class="Identifier">epsilon</span><span class="Punctuation">(</span><span class="Identifier">float</span><span class="Punctuation">)</span><span class="Punctuation">:</span> <span class="Keyword">break</span>
- <span class="Keyword">let</span> <span class="Identifier">mag</span> <span class="Operator">=</span> <span class="Identifier">sigma</span> <span class="Operator">*</span> <span class="Identifier">sqrt</span><span class="Punctuation">(</span><span class="Operator">-</span><span class="DecNumber">2</span> <span class="Operator">*</span> <span class="Identifier">ln</span><span class="Punctuation">(</span><span class="Identifier">u1</span><span class="Punctuation">)</span><span class="Punctuation">)</span>
- <span class="Keyword">let</span> <span class="Identifier">z0</span> <span class="Operator">=</span> <span class="Identifier">mag</span> <span class="Operator">*</span> <span class="Identifier">cos</span><span class="Punctuation">(</span><span class="DecNumber">2</span> <span class="Operator">*</span> <span class="Identifier">PI</span> <span class="Operator">*</span> <span class="Identifier">u2</span><span class="Punctuation">)</span> <span class="Operator">+</span> <span class="Identifier">mu</span>
- <span class="Keyword">let</span> <span class="Identifier">z1</span> <span class="Operator">=</span> <span class="Identifier">mag</span> <span class="Operator">*</span> <span class="Identifier">sin</span><span class="Punctuation">(</span><span class="DecNumber">2</span> <span class="Operator">*</span> <span class="Identifier">PI</span> <span class="Operator">*</span> <span class="Identifier">u2</span><span class="Punctuation">)</span> <span class="Operator">+</span> <span class="Identifier">mu</span>
- <span class="Punctuation">(</span><span class="Identifier">z0</span><span class="Punctuation">,</span> <span class="Identifier">z1</span><span class="Punctuation">)</span>
- <span class="Identifier">echo</span> <span class="Identifier">generateGaussianNoise</span><span class="Punctuation">(</span><span class="Punctuation">)</span></pre>This module is available for the <a class="reference external" href="backends.html#backends-the-javascript-target">JavaScript target</a>.
- <h1><a class="toc-backref" id="see-also" href="#see-also">See also</a></h1><ul class="simple"><li><a class="reference external" href="complex.html">complex module</a> for complex numbers and their mathematical operations</li>
- <li><a class="reference external" href="rationals.html">rationals module</a> for rational numbers and their mathematical operations</li>
- <li><a class="reference external" href="fenv.html">fenv module</a> for handling of floating-point rounding and exceptions (overflow, zero-divide, etc.)</li>
- <li><a class="reference external" href="random.html">random module</a> for a fast and tiny random number generator</li>
- <li><a class="reference external" href="stats.html">stats module</a> for statistical analysis</li>
- <li><a class="reference external" href="strformat.html">strformat module</a> for formatting floats for printing</li>
- <li><a class="reference external" href="system.html">system module</a> for some very basic and trivial math operators (<tt class="docutils literal"><span class="pre"><span class="Keyword">shr</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Keyword">shl</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Keyword">xor</span></span></tt>, <tt class="docutils literal"><span class="pre"><span class="Identifier">clamp</span></span></tt>, etc.)</li>
- </ul>
- this func uses bitwise comparisons from C compilers, which are not always available.</p>
- <div class="section" id="6">
- <h1><a class="toc-backref" href="#6">Imports</a></h1>
- <dl class="item">
- <a class="reference external" href="since.html">since</a>, <a class="reference external" href="bitops.html">bitops</a>, <a class="reference external" href="fenv.html">fenv</a>, <a class="reference external" href="countbits_impl.html">countbits_impl</a>, <a class="reference external" href="assertions.html">assertions</a>
- </dl>
- </div>
- <div class="section" id="7">
- <h1><a class="toc-backref" href="#7">Types</a></h1>
- <dl class="item">
- <div id="FloatClass">
- <dt><pre><a href="math.html#FloatClass"><span class="Identifier">FloatClass</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
- <span class="Identifier">fcNormal</span><span class="Other">,</span> <span class="Comment">## value is an ordinary nonzero floating point value</span>
- <span class="Identifier">fcSubnormal</span><span class="Other">,</span> <span class="Comment">## value is a subnormal (a very small) floating point value</span>
- <span class="Identifier">fcZero</span><span class="Other">,</span> <span class="Comment">## value is zero</span>
- <span class="Identifier">fcNegZero</span><span class="Other">,</span> <span class="Comment">## value is the negative zero</span>
- <span class="Identifier">fcNan</span><span class="Other">,</span> <span class="Comment">## value is Not a Number (NaN)</span>
- <span class="Identifier">fcInf</span><span class="Other">,</span> <span class="Comment">## value is positive infinity</span>
- <span class="Identifier">fcNegInf</span> <span class="Comment">## value is negative infinity</span></pre></dt>
- <dd>
-
- Describes the class a floating point value belongs to. This is the type that is returned by the <a class="reference external" href="#classify,float">classify func</a>.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L182" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L182" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </dl>
- </div>
- <div class="section" id="10">
- <h1><a class="toc-backref" href="#10">Consts</a></h1>
- <dl class="item">
- <div id="E">
- <dt><pre><a href="math.html#E"><span class="Identifier">E</span></a> <span class="Other">=</span> <span class="FloatNumber">2.718281828459045</span></pre></dt>
- <dd>
-
- Euler's number.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L165" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L165" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="MaxFloat32Precision">
- <dt><pre><a href="math.html#MaxFloat32Precision"><span class="Identifier">MaxFloat32Precision</span></a> <span class="Other">=</span> <span class="DecNumber">8</span></pre></dt>
- <dd>
-
- Maximum number of meaningful digits after the decimal point for Nim's <tt class="docutils literal"><span class="pre"><span class="Identifier">float32</span></span></tt> type.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L170" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L170" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="MaxFloat64Precision">
- <dt><pre><a href="math.html#MaxFloat64Precision"><span class="Identifier">MaxFloat64Precision</span></a> <span class="Other">=</span> <span class="DecNumber">16</span></pre></dt>
- <dd>
-
- Maximum number of meaningful digits after the decimal point for Nim's <tt class="docutils literal"><span class="pre"><span class="Identifier">float64</span></span></tt> type.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L167" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L167" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="MaxFloatPrecision">
- <dt><pre><a href="math.html#MaxFloatPrecision"><span class="Identifier">MaxFloatPrecision</span></a> <span class="Other">=</span> <span class="DecNumber">16</span></pre></dt>
- <dd>
-
- Maximum number of meaningful digits after the decimal point for Nim's <tt class="docutils literal"><span class="pre"><span class="Identifier">float</span></span></tt> type.
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L173" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L173" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="MinFloatNormal">
- <dt><pre><a href="math.html#MinFloatNormal"><span class="Identifier">MinFloatNormal</span></a> <span class="Other">=</span> <span class="FloatNumber">2.225073858507201e-308</span></pre></dt>
- <dd>
-
- Smallest normal number for Nim's <tt class="docutils literal"><span class="pre"><span class="Identifier">float</span></span></tt> type (= 2^-1022).
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L177" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L177" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="PI">
- <dt><pre><a href="math.html#PI"><span class="Identifier">PI</span></a> <span class="Other">=</span> <span class="FloatNumber">3.141592653589793</span></pre></dt>
- <dd>
-
- The circle constant PI (Ludolph's number).
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L163" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L163" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="TAU">
- <dt><pre><a href="math.html#TAU"><span class="Identifier">TAU</span></a> <span class="Other">=</span> <span class="FloatNumber">6.283185307179586</span></pre></dt>
- <dd>
-
- The circle constant TAU (= 2 * PI).
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L164" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L164" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </dl>
- </div>
- <div class="section" id="12">
- <h1><a class="toc-backref" href="#12">Procs</a></h1>
- <dl class="item">
- <div id="^-procs-all">
- <div id="^,T,U">
- <dt><pre><span class="Keyword">func</span> <a href="#%5E%2CT%2CU"><span class="Identifier">`^`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#SomeNumber"><span class="Identifier">SomeNumber</span></a><span class="Other">;</span> <span class="Identifier">U</span><span class="Other">:</span> <a href="system.html#SomeFloat"><span class="Identifier">SomeFloat</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">U</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float"><span class="Identifier">float</span></a></pre></dt>
- <dd>
-
- <p>Computes <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> to the power of <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt>.</p>
- <p>Error handling follows the C++ specification even for the JS backend <a class="reference external" href="https://en.cppreference.com/w/cpp/numeric/math/pow">https://en.cppreference.com/w/cpp/numeric/math/pow</a></p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#^,T,Natural">^ func</a></li>
- <li><a class="reference external" href="#pow,float64,float64">pow func</a> for <tt class="docutils literal"><span class="pre"><span class="Identifier">float32</span></span></tt> or <tt class="docutils literal"><span class="pre"><span class="Identifier">float64</span></span></tt> output</li>
- <li><a class="reference external" href="#sqrt,float64">sqrt func</a></li>
- <li><a class="reference external" href="#cbrt,float64">cbrt func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="FloatNumber">5.5</span> <span class="Operator">^</span> <span class="FloatNumber">2.2</span><span class="Punctuation">,</span> <span class="FloatNumber">42.540042248725975</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="FloatNumber">1.0</span> <span class="Operator">^</span> <span class="Identifier">Inf</span> <span class="Operator">==</span> <span class="FloatNumber">1.0</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L1248" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L1248" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="^,T,Natural">
- <dt><pre><span class="Keyword">func</span> <a href="#%5E%2CT%2CNatural"><span class="Identifier">`^`</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#SomeNumber"><span class="Identifier">SomeNumber</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span></pre></dt>
- <dd>
-
- <p>Computes <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> to the power of <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt>.</p>
- <p>The exponent <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt> must be non-negative, use <a class="reference external" href="#pow,float64,float64">pow</a> for negative exponents.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#^,T,U">^ func</a> for negative exponent or floats</li>
- <li><a class="reference external" href="#pow,float64,float64">pow func</a> for <tt class="docutils literal"><span class="pre"><span class="Identifier">float32</span></span></tt> or <tt class="docutils literal"><span class="pre"><span class="Identifier">float64</span></span></tt> output</li>
- <li><a class="reference external" href="#sqrt,float64">sqrt func</a></li>
- <li><a class="reference external" href="#cbrt,float64">cbrt func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Operator">-</span><span class="DecNumber">3</span> <span class="Operator">^</span> <span class="DecNumber">0</span> <span class="Operator">==</span> <span class="DecNumber">1</span>
- <span class="Identifier">doAssert</span> <span class="Operator">-</span><span class="DecNumber">3</span> <span class="Operator">^</span> <span class="DecNumber">1</span> <span class="Operator">==</span> <span class="Operator">-</span><span class="DecNumber">3</span>
- <span class="Identifier">doAssert</span> <span class="Operator">-</span><span class="DecNumber">3</span> <span class="Operator">^</span> <span class="DecNumber">2</span> <span class="Operator">==</span> <span class="DecNumber">9</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L1212" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L1212" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="almostEqual-procs-all">
- <div id="almostEqual,T,T,Natural">
- <dt><pre><span class="Keyword">func</span> <a href="#almostEqual%2CT%2CT%2CNatural"><span class="Identifier">almostEqual</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#SomeFloat"><span class="Identifier">SomeFloat</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">;</span> <span class="Identifier">unitsInLastPlace</span><span class="Other">:</span> <a href="system.html#Natural"><span class="Identifier">Natural</span></a> <span class="Other">=</span> <span class="DecNumber">4</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> {.
- <span class="Identifier">inline</span>.}</pre></dt>
- <dd>
-
- <p>Checks if two float values are almost equal, using the <a class="reference external" href="https://en.wikipedia.org/wiki/Machine_epsilon">machine epsilon</a>.</p>
- <p><tt class="docutils literal"><span class="pre"><span class="Identifier">unitsInLastPlace</span></span></tt> is the max number of <a class="reference external" href="https://en.wikipedia.org/wiki/Unit_in_the_last_place">units in the last place</a> difference tolerated when comparing two numbers. The larger the value, the more error is allowed. A <tt class="docutils literal"><span class="pre"><span class="DecNumber">0</span></span></tt> value means that two numbers must be exactly the same to be considered equal.</p>
- <p>The machine epsilon has to be scaled to the magnitude of the values used and multiplied by the desired precision in ULPs unless the difference is subnormal. </p>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">PI</span><span class="Punctuation">,</span> <span class="FloatNumber">3.14159265358979</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">Inf</span><span class="Punctuation">,</span> <span class="Identifier">Inf</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Keyword">not</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">NaN</span><span class="Punctuation">,</span> <span class="Identifier">NaN</span><span class="Punctuation">)</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L295" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L295" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="arccos-procs-all">
- <div id="arccos,float32">
- <dt><pre><span class="Keyword">func</span> <a href="#arccos%2Cfloat32"><span class="Identifier">arccos</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"acosf"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L513" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L513" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="arccos,float64">
- <dt><pre><span class="Keyword">func</span> <a href="#arccos%2Cfloat64"><span class="Identifier">arccos</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"acos"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <p>Computes the arc cosine of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#cos,float64">cos func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">radToDeg</span><span class="Punctuation">(</span><span class="Identifier">arccos</span><span class="Punctuation">(</span><span class="FloatNumber">0.0</span><span class="Punctuation">)</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="FloatNumber">90.0</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">radToDeg</span><span class="Punctuation">(</span><span class="Identifier">arccos</span><span class="Punctuation">(</span><span class="FloatNumber">1.0</span><span class="Punctuation">)</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="FloatNumber">0.0</span><span class="Punctuation">)</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L514" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L514" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="arccosh-procs-all">
- <div id="arccosh,float32">
- <dt><pre><span class="Keyword">func</span> <a href="#arccosh%2Cfloat32"><span class="Identifier">arccosh</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"acoshf"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L550" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L550" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="arccosh,float64">
- <dt><pre><span class="Keyword">func</span> <a href="#arccosh%2Cfloat64"><span class="Identifier">arccosh</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"acosh"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <p>Computes the inverse hyperbolic cosine of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#cosh,float64">cosh func</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L551" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L551" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="arccot-procs-all">
- <div id="arccot,T">
- <dt><pre><span class="Keyword">func</span> <a href="#arccot%2CT"><span class="Identifier">arccot</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> <span class="Operator">|</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span></pre></dt>
- <dd>
-
- Computes the inverse cotangent of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> (<tt class="docutils literal"><span class="pre"><span class="Identifier">arctan</span><span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Operator">/</span><span class="Identifier">x</span><span class="Punctuation">)</span></span></tt>).
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L604" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L604" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="arccoth-procs-all">
- <div id="arccoth,T">
- <dt><pre><span class="Keyword">func</span> <a href="#arccoth%2CT"><span class="Identifier">arccoth</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> <span class="Operator">|</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span></pre></dt>
- <dd>
-
- Computes the inverse hyperbolic cotangent of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> (<tt class="docutils literal"><span class="pre"><span class="Identifier">arctanh</span><span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Operator">/</span><span class="Identifier">x</span><span class="Punctuation">)</span></span></tt>).
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L611" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L611" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="arccsc-procs-all">
- <div id="arccsc,T">
- <dt><pre><span class="Keyword">func</span> <a href="#arccsc%2CT"><span class="Identifier">arccsc</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> <span class="Operator">|</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span></pre></dt>
- <dd>
-
- Computes the inverse cosecant of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> (<tt class="docutils literal"><span class="pre"><span class="Identifier">arcsin</span><span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Operator">/</span><span class="Identifier">x</span><span class="Punctuation">)</span></span></tt>).
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L608" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L608" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="arccsch-procs-all">
- <div id="arccsch,T">
- <dt><pre><span class="Keyword">func</span> <a href="#arccsch%2CT"><span class="Identifier">arccsch</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> <span class="Operator">|</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span></pre></dt>
- <dd>
-
- Computes the inverse hyperbolic cosecant of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> (<tt class="docutils literal"><span class="pre"><span class="Identifier">arcsinh</span><span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Operator">/</span><span class="Identifier">x</span><span class="Punctuation">)</span></span></tt>).
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L615" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L615" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="arcsec-procs-all">
- <div id="arcsec,T">
- <dt><pre><span class="Keyword">func</span> <a href="#arcsec%2CT"><span class="Identifier">arcsec</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> <span class="Operator">|</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span></pre></dt>
- <dd>
-
- Computes the inverse secant of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> (<tt class="docutils literal"><span class="pre"><span class="Identifier">arccos</span><span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Operator">/</span><span class="Identifier">x</span><span class="Punctuation">)</span></span></tt>).
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L606" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L606" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="arcsech-procs-all">
- <div id="arcsech,T">
- <dt><pre><span class="Keyword">func</span> <a href="#arcsech%2CT"><span class="Identifier">arcsech</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> <span class="Operator">|</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span></pre></dt>
- <dd>
-
- Computes the inverse hyperbolic secant of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> (<tt class="docutils literal"><span class="pre"><span class="Identifier">arccosh</span><span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Operator">/</span><span class="Identifier">x</span><span class="Punctuation">)</span></span></tt>).
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L613" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L613" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="arcsin-procs-all">
- <div id="arcsin,float32">
- <dt><pre><span class="Keyword">func</span> <a href="#arcsin%2Cfloat32"><span class="Identifier">arcsin</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"asinf"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L504" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L504" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="arcsin,float64">
- <dt><pre><span class="Keyword">func</span> <a href="#arcsin%2Cfloat64"><span class="Identifier">arcsin</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"asin"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <p>Computes the arc sine of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#sin,float64">sin func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">radToDeg</span><span class="Punctuation">(</span><span class="Identifier">arcsin</span><span class="Punctuation">(</span><span class="FloatNumber">0.0</span><span class="Punctuation">)</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="FloatNumber">0.0</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">radToDeg</span><span class="Punctuation">(</span><span class="Identifier">arcsin</span><span class="Punctuation">(</span><span class="FloatNumber">1.0</span><span class="Punctuation">)</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="FloatNumber">90.0</span><span class="Punctuation">)</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L505" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L505" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="arcsinh-procs-all">
- <div id="arcsinh,float32">
- <dt><pre><span class="Keyword">func</span> <a href="#arcsinh%2Cfloat32"><span class="Identifier">arcsinh</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"asinhf"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L544" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L544" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="arcsinh,float64">
- <dt><pre><span class="Keyword">func</span> <a href="#arcsinh%2Cfloat64"><span class="Identifier">arcsinh</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"asinh"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <p>Computes the inverse hyperbolic sine of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#sinh,float64">sinh func</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L545" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L545" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="arctan-procs-all">
- <div id="arctan,float32">
- <dt><pre><span class="Keyword">func</span> <a href="#arctan%2Cfloat32"><span class="Identifier">arctan</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"atanf"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L522" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L522" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="arctan,float64">
- <dt><pre><span class="Keyword">func</span> <a href="#arctan%2Cfloat64"><span class="Identifier">arctan</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"atan"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <p>Calculate the arc tangent of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#arctan2,float64,float64">arctan2 func</a></li>
- <li><a class="reference external" href="#tan,float64">tan func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">arctan</span><span class="Punctuation">(</span><span class="FloatNumber">1.0</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="FloatNumber">0.7853981633974483</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">radToDeg</span><span class="Punctuation">(</span><span class="Identifier">arctan</span><span class="Punctuation">(</span><span class="FloatNumber">1.0</span><span class="Punctuation">)</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="FloatNumber">45.0</span><span class="Punctuation">)</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L523" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L523" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="arctan2-procs-all">
- <div id="arctan2,float32,float32">
- <dt><pre><span class="Keyword">func</span> <a href="#arctan2%2Cfloat32%2Cfloat32"><span class="Identifier">arctan2</span></a><span class="Other">(</span><span class="Identifier">y</span><span class="Other">,</span> <span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"atan2f"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L532" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L532" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="arctan2,float64,float64">
- <dt><pre><span class="Keyword">func</span> <a href="#arctan2%2Cfloat64%2Cfloat64"><span class="Identifier">arctan2</span></a><span class="Other">(</span><span class="Identifier">y</span><span class="Other">,</span> <span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"atan2"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <p>Calculate the arc tangent of <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span><span class="Operator">/</span><span class="Identifier">x</span></span></tt>.</p>
- <p>It produces correct results even when the resulting angle is near <tt class="docutils literal"><span class="pre"><span class="Identifier">PI</span><span class="Operator">/</span><span class="DecNumber">2</span></span></tt> or <tt class="docutils literal"><span class="pre"><span class="Operator">-</span><span class="Identifier">PI</span><span class="Operator">/</span><span class="DecNumber">2</span></span></tt> (<tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> near 0).</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#arctan,float64">arctan func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">arctan2</span><span class="Punctuation">(</span><span class="FloatNumber">1.0</span><span class="Punctuation">,</span> <span class="FloatNumber">0.0</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="Identifier">PI</span> <span class="Operator">/</span> <span class="FloatNumber">2.0</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">radToDeg</span><span class="Punctuation">(</span><span class="Identifier">arctan2</span><span class="Punctuation">(</span><span class="FloatNumber">1.0</span><span class="Punctuation">,</span> <span class="FloatNumber">0.0</span><span class="Punctuation">)</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="FloatNumber">90.0</span><span class="Punctuation">)</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L533" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L533" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="arctanh-procs-all">
- <div id="arctanh,float32">
- <dt><pre><span class="Keyword">func</span> <a href="#arctanh%2Cfloat32"><span class="Identifier">arctanh</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"atanhf"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L556" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L556" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="arctanh,float64">
- <dt><pre><span class="Keyword">func</span> <a href="#arctanh%2Cfloat64"><span class="Identifier">arctanh</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"atanh"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <p>Computes the inverse hyperbolic tangent of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#tanh,float64">tanh func</a></li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L557" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L557" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="binom-procs-all">
- <div id="binom,int,int">
- <dt><pre><span class="Keyword">func</span> <a href="#binom%2Cint%2Cint"><span class="Identifier">binom</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">,</span> <span class="Identifier">k</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- Computes the <a class="reference external" href="https://en.wikipedia.org/wiki/Binomial_coefficient">binomial coefficient</a>.
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">binom</span><span class="Punctuation">(</span><span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">15</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">binom</span><span class="Punctuation">(</span><span class="Operator">-</span><span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">1</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">binom</span><span class="Punctuation">(</span><span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">0</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">1</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L117" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L117" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="cbrt-procs-all">
- <div id="cbrt,float32">
- <dt><pre><span class="Keyword">func</span> <a href="#cbrt%2Cfloat32"><span class="Identifier">cbrt</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"cbrtf"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L377" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L377" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="cbrt,float64">
- <dt><pre><span class="Keyword">func</span> <a href="#cbrt%2Cfloat64"><span class="Identifier">cbrt</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"cbrt"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <p>Computes the cube root of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#sqrt,float64">sqrt func</a> for the square root</li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">cbrt</span><span class="Punctuation">(</span><span class="FloatNumber">8.0</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="FloatNumber">2.0</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">cbrt</span><span class="Punctuation">(</span><span class="FloatNumber">2.197</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="FloatNumber">1.3</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">cbrt</span><span class="Punctuation">(</span><span class="Operator">-</span><span class="FloatNumber">27.0</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="Operator">-</span><span class="FloatNumber">3.0</span><span class="Punctuation">)</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L378" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L378" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="ceil-procs-all">
- <div id="ceil,float32">
- <dt><pre><span class="Keyword">func</span> <a href="#ceil%2Cfloat32"><span class="Identifier">ceil</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"ceilf"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L688" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L688" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="ceil,float64">
- <dt><pre><span class="Keyword">func</span> <a href="#ceil%2Cfloat64"><span class="Identifier">ceil</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"ceil"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <p>Computes the ceiling function (i.e. the smallest integer not smaller than <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>).</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#floor,float64">floor func</a></li>
- <li><a class="reference external" href="#round,float64">round func</a></li>
- <li><a class="reference external" href="#trunc,float64">trunc func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">ceil</span><span class="Punctuation">(</span><span class="FloatNumber">2.1</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="FloatNumber">3.0</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">ceil</span><span class="Punctuation">(</span><span class="FloatNumber">2.9</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="FloatNumber">3.0</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">ceil</span><span class="Punctuation">(</span><span class="Operator">-</span><span class="FloatNumber">2.1</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">-</span><span class="FloatNumber">2.0</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L689" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L689" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="ceilDiv-procs-all">
- <div id="ceilDiv,T,T">
- <dt><pre><span class="Keyword">func</span> <a href="#ceilDiv%2CT%2CT"><span class="Identifier">ceilDiv</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span> {.<span class="Identifier">inline</span>.}</pre></dt>
- <dd>
-
- <p>Ceil division is conceptually defined as <tt class="docutils literal"><span class="pre"><span class="Identifier">ceil</span><span class="Punctuation">(</span><span class="Identifier">x</span> <span class="Operator">/</span> <span class="Identifier">y</span><span class="Punctuation">)</span></span></tt>.</p>
- <p>Assumes <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span> <span class="Operator">>=</span> <span class="DecNumber">0</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span> <span class="Operator">></span> <span class="DecNumber">0</span></span></tt> (and <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span> <span class="Operator">+</span> <span class="Identifier">y</span> <span class="Operator">-</span> <span class="DecNumber">1</span> <span class="Operator"><=</span> <span class="Identifier">high</span><span class="Punctuation">(</span><span class="Identifier">T</span><span class="Punctuation">)</span></span></tt> if T is SomeUnsignedInt).</p>
- <p>This is different from the <a class="reference external" href="system.html#div,int,int">system.div</a> operator, which works like <tt class="docutils literal"><span class="pre"><span class="Identifier">trunc</span><span class="Punctuation">(</span><span class="Identifier">x</span> <span class="Operator">/</span> <span class="Identifier">y</span><span class="Punctuation">)</span></span></tt>. That is, <tt class="docutils literal"><span class="pre"><span class="Keyword">div</span></span></tt> rounds towards <tt class="docutils literal"><span class="pre"><span class="DecNumber">0</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">ceilDiv</span></span></tt> rounds up.</p>
- <p>This function has the above input limitation, because that allows the compiler to generate faster code and it is rarely used with negative values or unsigned integers close to <tt class="docutils literal"><span class="pre"><span class="Identifier">high</span><span class="Punctuation">(</span><span class="Identifier">T</span><span class="Punctuation">)</span><span class="Operator">/</span><span class="DecNumber">2</span></span></tt>. If you need a <tt class="docutils literal"><span class="pre"><span class="Identifier">ceilDiv</span></span></tt> that works with any input, see: <a class="reference external" href="https://github.com/demotomohiro/divmath">https://github.com/demotomohiro/divmath</a>.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="system.html#div,int,int">system.div proc</a> for integer division</li>
- <li><a class="reference external" href="#floorDiv,T,T">floorDiv func</a> for integer division which rounds down.</li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">assert</span> <span class="Identifier">ceilDiv</span><span class="Punctuation">(</span><span class="DecNumber">12</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">4</span>
- <span class="Identifier">assert</span> <span class="Identifier">ceilDiv</span><span class="Punctuation">(</span><span class="DecNumber">13</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">5</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L925" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L925" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="clamp-procs-all">
- <div id="clamp,T,Slice[T]">
- <dt><pre><span class="Keyword">func</span> <a href="#clamp%2CT%2CSlice%5BT%5D"><span class="Identifier">clamp</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">val</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">;</span> <span class="Identifier">bounds</span><span class="Other">:</span> <a href="system.html#Slice"><span class="Identifier">Slice</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span> {.<span class="Identifier">inline</span>.}</pre></dt>
- <dd>
-
- Like <tt class="docutils literal"><span class="pre"><span class="Identifier">system</span><span class="Operator">.</span><span class="Identifier">clamp</span></span></tt>, but takes a slice, so you can easily clamp within a range.
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">assert</span> <span class="Identifier">clamp</span><span class="Punctuation">(</span><span class="DecNumber">10</span><span class="Punctuation">,</span> <span class="DecNumber">1</span> <span class="Operator">..</span> <span class="DecNumber">5</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">5</span>
- <span class="Identifier">assert</span> <span class="Identifier">clamp</span><span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">1</span> <span class="Operator">..</span> <span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">1</span>
- <span class="Keyword">type</span> <span class="Identifier">A</span> <span class="Operator">=</span> <span class="Keyword">enum</span> <span class="Identifier">a0</span><span class="Punctuation">,</span> <span class="Identifier">a1</span><span class="Punctuation">,</span> <span class="Identifier">a2</span><span class="Punctuation">,</span> <span class="Identifier">a3</span><span class="Punctuation">,</span> <span class="Identifier">a4</span><span class="Punctuation">,</span> <span class="Identifier">a5</span>
- <span class="Identifier">assert</span> <span class="Identifier">a1</span><span class="Operator">.</span><span class="Identifier">clamp</span><span class="Punctuation">(</span><span class="Identifier">a2</span><span class="Operator">..</span><span class="Identifier">a4</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Identifier">a2</span>
- <span class="Identifier">assert</span> <span class="Identifier">clamp</span><span class="Punctuation">(</span><span class="Punctuation">(</span><span class="DecNumber">3</span><span class="Punctuation">,</span> <span class="DecNumber">0</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">0</span><span class="Punctuation">)</span> <span class="Operator">..</span> <span class="Punctuation">(</span><span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">9</span><span class="Punctuation">)</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Punctuation">(</span><span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">9</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssertRaises</span><span class="Punctuation">(</span><span class="Identifier">AssertionDefect</span><span class="Punctuation">)</span><span class="Punctuation">:</span> <span class="Keyword">discard</span> <span class="Identifier">clamp</span><span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="FloatNumber">3.</span><span class="Operator">.</span><span class="DecNumber">2</span><span class="Punctuation">)</span> <span class="Comment"># invalid bounds</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L1364" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L1364" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="classify-procs-all">
- <div id="classify,float">
- <dt><pre><span class="Keyword">func</span> <a href="#classify%2Cfloat"><span class="Identifier">classify</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float"><span class="Identifier">float</span></a><span class="Other">)</span><span class="Other">:</span> <a href="math.html#FloatClass"><span class="Identifier">FloatClass</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <p>Classifies a floating point value.</p>
- <p>Returns <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>'s class as specified by the <a class="reference external" href="#FloatClass">FloatClass enum</a>.</p>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">classify</span><span class="Punctuation">(</span><span class="FloatNumber">0.3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Identifier">fcNormal</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">classify</span><span class="Punctuation">(</span><span class="FloatNumber">0.0</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Identifier">fcZero</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">classify</span><span class="Punctuation">(</span><span class="FloatNumber">0.3</span> <span class="Operator">/</span> <span class="FloatNumber">0.0</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Identifier">fcInf</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">classify</span><span class="Punctuation">(</span><span class="Operator">-</span><span class="FloatNumber">0.3</span> <span class="Operator">/</span> <span class="FloatNumber">0.0</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Identifier">fcNegInf</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">classify</span><span class="Punctuation">(</span><span class="FloatNumber">5.0e-324</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Identifier">fcSubnormal</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L270" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L270" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="copySign-procs-all">
- <div id="copySign,T,T">
- <dt><pre><span class="Keyword">func</span> <a href="#copySign%2CT%2CT"><span class="Identifier">copySign</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#SomeFloat"><span class="Identifier">SomeFloat</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span> {.<span class="Identifier">inline</span>.}</pre></dt>
- <dd>
-
- Returns a value with the magnitude of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> and the sign of <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt>; this works even if x or y are NaN, infinity or zero, all of which can carry a sign.
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">copySign</span><span class="Punctuation">(</span><span class="FloatNumber">10.0</span><span class="Punctuation">,</span> <span class="FloatNumber">1.0</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="FloatNumber">10.0</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">copySign</span><span class="Punctuation">(</span><span class="FloatNumber">10.0</span><span class="Punctuation">,</span> <span class="Operator">-</span><span class="FloatNumber">1.0</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">-</span><span class="FloatNumber">10.0</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">copySign</span><span class="Punctuation">(</span><span class="Operator">-</span><span class="Identifier">Inf</span><span class="Punctuation">,</span> <span class="Operator">-</span><span class="FloatNumber">0.0</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">-</span><span class="Identifier">Inf</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">copySign</span><span class="Punctuation">(</span><span class="Identifier">NaN</span><span class="Punctuation">,</span> <span class="FloatNumber">1.0</span><span class="Punctuation">)</span><span class="Operator">.</span><span class="Identifier">isNaN</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">copySign</span><span class="Punctuation">(</span><span class="FloatNumber">1.0</span><span class="Punctuation">,</span> <span class="Identifier">copySign</span><span class="Punctuation">(</span><span class="Identifier">NaN</span><span class="Punctuation">,</span> <span class="Operator">-</span><span class="FloatNumber">1.0</span><span class="Punctuation">)</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">-</span><span class="FloatNumber">1.0</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L245" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L245" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="cos-procs-all">
- <div id="cos,float32">
- <dt><pre><span class="Keyword">func</span> <a href="#cos%2Cfloat32"><span class="Identifier">cos</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"cosf"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L459" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L459" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="cos,float64">
- <dt><pre><span class="Keyword">func</span> <a href="#cos%2Cfloat64"><span class="Identifier">cos</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"cos"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <p>Computes the cosine of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#arccos,float64">arccos func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">cos</span><span class="Punctuation">(</span><span class="DecNumber">2</span> <span class="Operator">*</span> <span class="Identifier">PI</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="FloatNumber">1.0</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">cos</span><span class="Punctuation">(</span><span class="Identifier">degToRad</span><span class="Punctuation">(</span><span class="FloatNumber">60.0</span><span class="Punctuation">)</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="FloatNumber">0.5</span><span class="Punctuation">)</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L460" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L460" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="cosh-procs-all">
- <div id="cosh,float32">
- <dt><pre><span class="Keyword">func</span> <a href="#cosh%2Cfloat32"><span class="Identifier">cosh</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"coshf"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L486" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L486" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="cosh,float64">
- <dt><pre><span class="Keyword">func</span> <a href="#cosh%2Cfloat64"><span class="Identifier">cosh</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"cosh"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <p>Computes the <a class="reference external" href="https://en.wikipedia.org/wiki/Hyperbolic_function#Definitions">hyperbolic cosine</a> of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#arccosh,float64">arccosh func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">cosh</span><span class="Punctuation">(</span><span class="FloatNumber">0.0</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="FloatNumber">1.0</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">cosh</span><span class="Punctuation">(</span><span class="FloatNumber">1.0</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="FloatNumber">1.543080634815244</span><span class="Punctuation">)</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L487" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L487" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="cot-procs-all">
- <div id="cot,T">
- <dt><pre><span class="Keyword">func</span> <a href="#cot%2CT"><span class="Identifier">cot</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> <span class="Operator">|</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span></pre></dt>
- <dd>
-
- Computes the cotangent of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> (<tt class="docutils literal"><span class="pre"><span class="DecNumber">1</span><span class="Operator">/</span><span class="Identifier">tan</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Punctuation">)</span></span></tt>).
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L590" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L590" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="coth-procs-all">
- <div id="coth,T">
- <dt><pre><span class="Keyword">func</span> <a href="#coth%2CT"><span class="Identifier">coth</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> <span class="Operator">|</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span></pre></dt>
- <dd>
-
- Computes the hyperbolic cotangent of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> (<tt class="docutils literal"><span class="pre"><span class="DecNumber">1</span><span class="Operator">/</span><span class="Identifier">tanh</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Punctuation">)</span></span></tt>).
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L597" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L597" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="csc-procs-all">
- <div id="csc,T">
- <dt><pre><span class="Keyword">func</span> <a href="#csc%2CT"><span class="Identifier">csc</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> <span class="Operator">|</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span></pre></dt>
- <dd>
-
- Computes the cosecant of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> (<tt class="docutils literal"><span class="pre"><span class="DecNumber">1</span><span class="Operator">/</span><span class="Identifier">sin</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Punctuation">)</span></span></tt>).
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L594" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L594" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="csch-procs-all">
- <div id="csch,T">
- <dt><pre><span class="Keyword">func</span> <a href="#csch%2CT"><span class="Identifier">csch</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> <span class="Operator">|</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span></pre></dt>
- <dd>
-
- Computes the hyperbolic cosecant of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> (<tt class="docutils literal"><span class="pre"><span class="DecNumber">1</span><span class="Operator">/</span><span class="Identifier">sinh</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Punctuation">)</span></span></tt>).
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L601" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L601" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="cumprod-procs-all">
- <div id="cumprod,openArray[T]">
- <dt><pre><span class="Keyword">func</span> <a href="#cumprod%2CopenArray%5BT%5D"><span class="Identifier">cumprod</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span></pre></dt>
- <dd>
-
- <p>Transforms <tt class="docutils literal"><span class="pre">x</span></tt> in-place (must be declared as <tt class="docutils literal"><span class="pre"><span class="Keyword">var</span></span></tt>) into its product.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#sum,openArray[T]">prod proc</a></li>
- <li><a class="reference external" href="#cumproded,openArray[T]">cumproded proc</a> for a version which returns cumproded sequence</li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">]</span>
- <span class="Identifier">cumprod</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">24</span><span class="Punctuation">]</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L1148" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L1148" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="cumproded-procs-all">
- <div id="cumproded,openArray[T]">
- <dt><pre><span class="Keyword">func</span> <a href="#cumproded%2CopenArray%5BT%5D"><span class="Identifier">cumproded</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span></pre></dt>
- <dd>
-
- <p>Return cumulative (aka prefix) product of <tt class="docutils literal"><span class="pre">x</span></tt>.</p>
- <p>See also:</p>
- <ul class="simple"><li><a class="reference external" href="#prod,openArray[T]">prod proc</a></li>
- <li><a class="reference external" href="#cumprod,openArray[T]">cumprod proc</a> for the in-place version</li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">]</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">cumproded</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">24</span><span class="Punctuation">]</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L1162" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L1162" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="cumsum-procs-all">
- <div id="cumsum,openArray[T]">
- <dt><pre><span class="Keyword">func</span> <a href="#cumsum%2CopenArray%5BT%5D"><span class="Identifier">cumsum</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span></pre></dt>
- <dd>
-
- <p>Transforms <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> in-place (must be declared as <tt class="docutils literal"><span class="pre"><span class="Keyword">var</span></span></tt>) into its cumulative (aka prefix) summation.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#sum,openArray[T]">sum func</a></li>
- <li><a class="reference external" href="#cumsummed,openArray[T]">cumsummed func</a> for a version which returns a cumsummed sequence</li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">]</span>
- <span class="Identifier">cumsum</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">10</span><span class="Punctuation">]</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L1197" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L1197" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="cumsummed-procs-all">
- <div id="cumsummed,openArray[T]">
- <dt><pre><span class="Keyword">func</span> <a href="#cumsummed%2CopenArray%5BT%5D"><span class="Identifier">cumsummed</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#seq"><span class="Identifier">seq</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span></pre></dt>
- <dd>
-
- <p>Returns the cumulative (aka prefix) summation of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
- <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> is empty, <tt class="docutils literal"><span class="pre"><span class="Operator">@</span><span class="Punctuation">[</span><span class="Punctuation">]</span></span></tt> is returned.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#sum,openArray[T]">sum func</a></li>
- <li><a class="reference external" href="#cumsum,openArray[T]">cumsum func</a> for the in-place version</li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">cumsummed</span><span class="Punctuation">(</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">]</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">10</span><span class="Punctuation">]</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L1179" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L1179" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="degToRad-procs-all">
- <div id="degToRad,T">
- <dt><pre><span class="Keyword">func</span> <a href="#degToRad%2CT"><span class="Identifier">degToRad</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> <span class="Operator">|</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">d</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span> {.<span class="Identifier">inline</span>.}</pre></dt>
- <dd>
-
- <p>Converts from degrees to radians.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#radToDeg,T">radToDeg func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">degToRad</span><span class="Punctuation">(</span><span class="FloatNumber">180.0</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="Identifier">PI</span><span class="Punctuation">)</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L1081" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L1081" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="divmod-procs-all">
- <div id="divmod,T,T">
- <dt><pre><span class="Keyword">func</span> <a href="#divmod%2CT%2CT"><span class="Identifier">divmod</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span><span class="Identifier">T</span><span class="Other">,</span> <span class="Identifier">T</span><span class="Other">)</span> {.<span class="Identifier">inline</span>.}</pre></dt>
- <dd>
-
- Specialized instructions for computing both division and modulus. Return structure is: (quotient, remainder)
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">divmod</span><span class="Punctuation">(</span><span class="DecNumber">5</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Punctuation">(</span><span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">1</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">divmod</span><span class="Punctuation">(</span><span class="DecNumber">5</span><span class="Punctuation">,</span> <span class="Operator">-</span><span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Punctuation">(</span><span class="Operator">-</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">)</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L98" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L98" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="erf-procs-all">
- <div id="erf,float32">
- <dt><pre><span class="Keyword">func</span> <a href="#erf%2Cfloat32"><span class="Identifier">erf</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"erff"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L644" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L644" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="erf,float64">
- <dt><pre><span class="Keyword">func</span> <a href="#erf%2Cfloat64"><span class="Identifier">erf</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"erf"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <p>Computes the <a class="reference external" href="https://en.wikipedia.org/wiki/Error_function">error function</a> for <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
- <p><strong>Note:</strong> Not available for the JS backend.</p>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L645" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L645" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="erfc-procs-all">
- <div id="erfc,float32">
- <dt><pre><span class="Keyword">func</span> <a href="#erfc%2Cfloat32"><span class="Identifier">erfc</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"erfcf"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L649" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L649" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="erfc,float64">
- <dt><pre><span class="Keyword">func</span> <a href="#erfc%2Cfloat64"><span class="Identifier">erfc</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"erfc"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <p>Computes the <a class="reference external" href="https://en.wikipedia.org/wiki/Error_function#Complementary_error_function">complementary error function</a> for <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
- <p><strong>Note:</strong> Not available for the JS backend.</p>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L650" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L650" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="euclDiv-procs-all">
- <div id="euclDiv,T,T">
- <dt><pre><span class="Keyword">func</span> <a href="#euclDiv%2CT%2CT"><span class="Identifier">euclDiv</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span></pre></dt>
- <dd>
-
- Returns euclidean division of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> by <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt>.
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">euclDiv</span><span class="Punctuation">(</span><span class="DecNumber">13</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">4</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">euclDiv</span><span class="Punctuation">(</span><span class="Operator">-</span><span class="DecNumber">13</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">-</span><span class="DecNumber">5</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">euclDiv</span><span class="Punctuation">(</span><span class="DecNumber">13</span><span class="Punctuation">,</span> <span class="Operator">-</span><span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">-</span><span class="DecNumber">4</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">euclDiv</span><span class="Punctuation">(</span><span class="Operator">-</span><span class="DecNumber">13</span><span class="Punctuation">,</span> <span class="Operator">-</span><span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">5</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L897" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L897" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="euclMod-procs-all">
- <div id="euclMod,T,T">
- <dt><pre><span class="Keyword">func</span> <a href="#euclMod%2CT%2CT"><span class="Identifier">euclMod</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#SomeNumber"><span class="Identifier">SomeNumber</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span></pre></dt>
- <dd>
-
- Returns euclidean modulo of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> by <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt>. <tt class="docutils literal"><span class="pre"><span class="Identifier">euclMod</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Punctuation">,</span> <span class="Identifier">y</span><span class="Punctuation">)</span></span></tt> is non-negative.
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">euclMod</span><span class="Punctuation">(</span><span class="DecNumber">13</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">1</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">euclMod</span><span class="Punctuation">(</span><span class="Operator">-</span><span class="DecNumber">13</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">2</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">euclMod</span><span class="Punctuation">(</span><span class="DecNumber">13</span><span class="Punctuation">,</span> <span class="Operator">-</span><span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">1</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">euclMod</span><span class="Punctuation">(</span><span class="Operator">-</span><span class="DecNumber">13</span><span class="Punctuation">,</span> <span class="Operator">-</span><span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">2</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L912" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L912" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="exp-procs-all">
- <div id="exp,float32">
- <dt><pre><span class="Keyword">func</span> <a href="#exp%2Cfloat32"><span class="Identifier">exp</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"expf"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L440" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L440" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="exp,float64">
- <dt><pre><span class="Keyword">func</span> <a href="#exp%2Cfloat64"><span class="Identifier">exp</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"exp"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <p>Computes the exponential function of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> (<tt class="docutils literal"><span class="pre"><span class="Identifier">e</span><span class="Operator">^</span><span class="Identifier">x</span></span></tt>).</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#ln,float64">ln func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">exp</span><span class="Punctuation">(</span><span class="FloatNumber">1.0</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="Identifier">E</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">ln</span><span class="Punctuation">(</span><span class="Identifier">exp</span><span class="Punctuation">(</span><span class="FloatNumber">4.0</span><span class="Punctuation">)</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="FloatNumber">4.0</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">exp</span><span class="Punctuation">(</span><span class="FloatNumber">0.0</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="FloatNumber">1.0</span><span class="Punctuation">)</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L441" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L441" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="fac-procs-all">
- <div id="fac,int">
- <dt><pre><span class="Keyword">func</span> <a href="#fac%2Cint"><span class="Identifier">fac</span></a><span class="Other">(</span><span class="Identifier">n</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <p>Computes the <a class="reference external" href="https://en.wikipedia.org/wiki/Factorial">factorial</a> of a non-negative integer <tt class="docutils literal"><span class="pre"><span class="Identifier">n</span></span></tt>.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#prod,openArray[T]">prod func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">fac</span><span class="Punctuation">(</span><span class="DecNumber">0</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">1</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">fac</span><span class="Punctuation">(</span><span class="DecNumber">4</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">24</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">fac</span><span class="Punctuation">(</span><span class="DecNumber">10</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">3628800</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L135" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L135" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="floor-procs-all">
- <div id="floor,float32">
- <dt><pre><span class="Keyword">func</span> <a href="#floor%2Cfloat32"><span class="Identifier">floor</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"floorf"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L675" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L675" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="floor,float64">
- <dt><pre><span class="Keyword">func</span> <a href="#floor%2Cfloat64"><span class="Identifier">floor</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"floor"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <p>Computes the floor function (i.e. the largest integer not greater than <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>).</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#ceil,float64">ceil func</a></li>
- <li><a class="reference external" href="#round,float64">round func</a></li>
- <li><a class="reference external" href="#trunc,float64">trunc func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">floor</span><span class="Punctuation">(</span><span class="FloatNumber">2.1</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="FloatNumber">2.0</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">floor</span><span class="Punctuation">(</span><span class="FloatNumber">2.9</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="FloatNumber">2.0</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">floor</span><span class="Punctuation">(</span><span class="Operator">-</span><span class="FloatNumber">3.5</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">-</span><span class="FloatNumber">4.0</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L676" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L676" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="floorDiv-procs-all">
- <div id="floorDiv,T,T">
- <dt><pre><span class="Keyword">func</span> <a href="#floorDiv%2CT%2CT"><span class="Identifier">floorDiv</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span></pre></dt>
- <dd>
-
- <p>Floor division is conceptually defined as <tt class="docutils literal"><span class="pre"><span class="Identifier">floor</span><span class="Punctuation">(</span><span class="Identifier">x</span> <span class="Operator">/</span> <span class="Identifier">y</span><span class="Punctuation">)</span></span></tt>.</p>
- <p>This is different from the <a class="reference external" href="system.html#div,int,int">system.div</a> operator, which is defined as <tt class="docutils literal"><span class="pre"><span class="Identifier">trunc</span><span class="Punctuation">(</span><span class="Identifier">x</span> <span class="Operator">/</span> <span class="Identifier">y</span><span class="Punctuation">)</span></span></tt>. That is, <tt class="docutils literal"><span class="pre"><span class="Keyword">div</span></span></tt> rounds towards <tt class="docutils literal"><span class="pre"><span class="DecNumber">0</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">floorDiv</span></span></tt> rounds down.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="system.html#div,int,int">system.div proc</a> for integer division</li>
- <li><a class="reference external" href="#floorMod,T,T">floorMod func</a> for Python-like (<tt class="docutils literal"><span class="pre"><span class="Operator">%</span></span></tt> operator) behavior</li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">floorDiv</span><span class="Punctuation">(</span> <span class="DecNumber">13</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">4</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">floorDiv</span><span class="Punctuation">(</span><span class="Operator">-</span><span class="DecNumber">13</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">-</span><span class="DecNumber">5</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">floorDiv</span><span class="Punctuation">(</span> <span class="DecNumber">13</span><span class="Punctuation">,</span> <span class="Operator">-</span><span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">-</span><span class="DecNumber">5</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">floorDiv</span><span class="Punctuation">(</span><span class="Operator">-</span><span class="DecNumber">13</span><span class="Punctuation">,</span> <span class="Operator">-</span><span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">4</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L860" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L860" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="floorMod-procs-all">
- <div id="floorMod,T,T">
- <dt><pre><span class="Keyword">func</span> <a href="#floorMod%2CT%2CT"><span class="Identifier">floorMod</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#SomeNumber"><span class="Identifier">SomeNumber</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span></pre></dt>
- <dd>
-
- <p>Floor modulo is conceptually defined as <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span> <span class="Operator">-</span> <span class="Punctuation">(</span><span class="Identifier">floorDiv</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Punctuation">,</span> <span class="Identifier">y</span><span class="Punctuation">)</span> <span class="Operator">*</span> <span class="Identifier">y</span><span class="Punctuation">)</span></span></tt>.</p>
- <p>This func behaves the same as the <tt class="docutils literal"><span class="pre"><span class="Operator">%</span></span></tt> operator in Python.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#mod,float64,float64">mod func</a></li>
- <li><a class="reference external" href="#floorDiv,T,T">floorDiv func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">floorMod</span><span class="Punctuation">(</span> <span class="DecNumber">13</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">1</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">floorMod</span><span class="Punctuation">(</span><span class="Operator">-</span><span class="DecNumber">13</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">2</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">floorMod</span><span class="Punctuation">(</span> <span class="DecNumber">13</span><span class="Punctuation">,</span> <span class="Operator">-</span><span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">-</span><span class="DecNumber">2</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">floorMod</span><span class="Punctuation">(</span><span class="Operator">-</span><span class="DecNumber">13</span><span class="Punctuation">,</span> <span class="Operator">-</span><span class="DecNumber">3</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">-</span><span class="DecNumber">1</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L880" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L880" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="frexp-procs-all">
- <div id="frexp,T">
- <dt><pre><span class="Keyword">func</span> <a href="#frexp%2CT"><span class="Identifier">frexp</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> <span class="Operator">|</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">tuple</span><span class="Other">[</span><span class="Identifier">frac</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">,</span> <span class="Identifier">exp</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">]</span> {.<span class="Identifier">inline</span>.}</pre></dt>
- <dd>
-
- Splits <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> into a normalized fraction <tt class="docutils literal"><span class="pre"><span class="Identifier">frac</span></span></tt> and an integral power of 2 <tt class="docutils literal"><span class="pre"><span class="Identifier">exp</span></span></tt>, such that <tt class="docutils literal"><span class="pre"><span class="Identifier">abs</span><span class="Punctuation">(</span><span class="Identifier">frac</span><span class="Punctuation">)</span> <span class="Keyword">in</span> <span class="FloatNumber">0.5</span><span class="Operator">..<</span><span class="DecNumber">1</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span> <span class="Operator">==</span> <span class="Identifier">frac</span> <span class="Operator">*</span> <span class="DecNumber">2</span> <span class="Operator">^</span> <span class="Identifier">exp</span></span></tt>, except for special cases shown below.
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">frexp</span><span class="Punctuation">(</span><span class="FloatNumber">8.0</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Punctuation">(</span><span class="FloatNumber">0.5</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">frexp</span><span class="Punctuation">(</span><span class="Operator">-</span><span class="FloatNumber">8.0</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Punctuation">(</span><span class="Operator">-</span><span class="FloatNumber">0.5</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">frexp</span><span class="Punctuation">(</span><span class="FloatNumber">0.0</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Punctuation">(</span><span class="FloatNumber">0.0</span><span class="Punctuation">,</span> <span class="DecNumber">0</span><span class="Punctuation">)</span>
- <span class="Comment"># special cases:</span>
- <span class="Keyword">when</span> <span class="Identifier">sizeof</span><span class="Punctuation">(</span><span class="Identifier">int</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">8</span><span class="Punctuation">:</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">frexp</span><span class="Punctuation">(</span><span class="Operator">-</span><span class="FloatNumber">0.0</span><span class="Punctuation">)</span><span class="Operator">.</span><span class="Identifier">frac</span><span class="Operator">.</span><span class="Identifier">signbit</span> <span class="Comment"># signbit preserved for +-0</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">frexp</span><span class="Punctuation">(</span><span class="Identifier">Inf</span><span class="Punctuation">)</span><span class="Operator">.</span><span class="Identifier">frac</span> <span class="Operator">==</span> <span class="Identifier">Inf</span> <span class="Comment"># +- Inf preserved</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">frexp</span><span class="Punctuation">(</span><span class="Identifier">NaN</span><span class="Punctuation">)</span><span class="Operator">.</span><span class="Identifier">frac</span><span class="Operator">.</span><span class="Identifier">isNaN</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L977" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L977" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="frexp,T,int">
- <dt><pre><span class="Keyword">func</span> <a href="#frexp%2CT%2Cint"><span class="Identifier">frexp</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> <span class="Operator">|</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">;</span> <span class="Identifier">exponent</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span> {.<span class="Identifier">inline</span>.}</pre></dt>
- <dd>
-
- Overload of <tt class="docutils literal"><span class="pre"><span class="Identifier">frexp</span></span></tt> that calls <tt class="docutils literal"><span class="pre"><span class="Punctuation">(</span><span class="Identifier">result</span><span class="Punctuation">,</span> <span class="Identifier">exponent</span><span class="Punctuation">)</span> <span class="Operator">=</span> <span class="Identifier">frexp</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Punctuation">)</span></span></tt>.
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Keyword">var</span> <span class="Identifier">x</span><span class="Punctuation">:</span> <span class="Identifier">int</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">frexp</span><span class="Punctuation">(</span><span class="FloatNumber">5.0</span><span class="Punctuation">,</span> <span class="Identifier">x</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="FloatNumber">0.625</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">x</span> <span class="Operator">==</span> <span class="DecNumber">3</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L1019" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L1019" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="gamma-procs-all">
- <div id="gamma,float32">
- <dt><pre><span class="Keyword">func</span> <a href="#gamma%2Cfloat32"><span class="Identifier">gamma</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"tgammaf"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L654" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L654" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="gamma,float64">
- <dt><pre><span class="Keyword">func</span> <a href="#gamma%2Cfloat64"><span class="Identifier">gamma</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"tgamma"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <p>Computes the <a class="reference external" href="https://en.wikipedia.org/wiki/Gamma_function">gamma function</a> for <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
- <p><strong>Note:</strong> Not available for the JS backend.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#lgamma,float64">lgamma func</a> for the natural logarithm of the gamma function</li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">gamma</span><span class="Punctuation">(</span><span class="FloatNumber">1.0</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="FloatNumber">1.0</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">gamma</span><span class="Punctuation">(</span><span class="FloatNumber">4.0</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="FloatNumber">6.0</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">gamma</span><span class="Punctuation">(</span><span class="FloatNumber">11.0</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="FloatNumber">3628800.0</span><span class="Punctuation">)</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L655" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L655" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="gcd-procs-all">
- <div id="gcd,SomeInteger,SomeInteger">
- <dt><pre><span class="Keyword">func</span> <a href="#gcd%2CSomeInteger%2CSomeInteger"><span class="Identifier">gcd</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#SomeInteger"><span class="Identifier">SomeInteger</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">SomeInteger</span></pre></dt>
- <dd>
-
- <p>Computes the greatest common (positive) divisor of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt>, using the binary GCD (aka Stein's) algorithm.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#gcd,T,T">gcd func</a> for a float version</li>
- <li><a class="reference external" href="#lcm,T,T">lcm func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">gcd</span><span class="Punctuation">(</span><span class="DecNumber">12</span><span class="Punctuation">,</span> <span class="DecNumber">8</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">4</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">gcd</span><span class="Punctuation">(</span><span class="DecNumber">17</span><span class="Punctuation">,</span> <span class="DecNumber">63</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">1</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L1307" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L1307" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="gcd,T,T">
- <dt><pre><span class="Keyword">func</span> <a href="#gcd%2CT%2CT"><span class="Identifier">gcd</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span></pre></dt>
- <dd>
-
- <p>Computes the greatest common (positive) divisor of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt>.</p>
- <p>Note that for floats, the result cannot always be interpreted as "greatest decimal <tt class="docutils literal"><span class="pre"><span class="Identifier">z</span></span></tt> such that <tt class="docutils literal"><span class="pre"><span class="Identifier">z</span><span class="Operator">*</span><span class="Identifier">N</span> <span class="Operator">==</span> <span class="Identifier">x</span> <span class="Keyword">and</span> <span class="Identifier">z</span><span class="Operator">*</span><span class="Identifier">M</span> <span class="Operator">==</span> <span class="Identifier">y</span></span></tt> where N and M are positive integers".</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#gcd,SomeInteger,SomeInteger">gcd func</a> for an integer version</li>
- <li><a class="reference external" href="#lcm,T,T">lcm func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">gcd</span><span class="Punctuation">(</span><span class="FloatNumber">13.5</span><span class="Punctuation">,</span> <span class="FloatNumber">9.0</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="FloatNumber">4.5</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L1286" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L1286" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="gcd,openArray[T]">
- <dt><pre><span class="Keyword">func</span> <a href="#gcd%2CopenArray%5BT%5D"><span class="Identifier">gcd</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span></pre></dt>
- <dd>
-
- <p>Computes the greatest common (positive) divisor of the elements of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#gcd,T,T">gcd func</a> for a version with two arguments</li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">gcd</span><span class="Punctuation">(</span><span class="Operator">@</span><span class="Punctuation">[</span><span class="FloatNumber">13.5</span><span class="Punctuation">,</span> <span class="FloatNumber">9.0</span><span class="Punctuation">]</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="FloatNumber">4.5</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L1341" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L1341" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="hypot-procs-all">
- <div id="hypot,float32,float32">
- <dt><pre><span class="Keyword">func</span> <a href="#hypot%2Cfloat32%2Cfloat32"><span class="Identifier">hypot</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"hypotf"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L621" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L621" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="hypot,float64,float64">
- <dt><pre><span class="Keyword">func</span> <a href="#hypot%2Cfloat64%2Cfloat64"><span class="Identifier">hypot</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"hypot"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- Computes the length of the hypotenuse of a right-angle triangle with <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> as its base and <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt> as its height. Equivalent to <tt class="docutils literal"><span class="pre"><span class="Identifier">sqrt</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Operator">*</span><span class="Identifier">x</span> <span class="Operator">+</span> <span class="Identifier">y</span><span class="Operator">*</span><span class="Identifier">y</span><span class="Punctuation">)</span></span></tt>.
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">hypot</span><span class="Punctuation">(</span><span class="FloatNumber">3.0</span><span class="Punctuation">,</span> <span class="FloatNumber">4.0</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="FloatNumber">5.0</span><span class="Punctuation">)</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L622" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L622" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="isNaN-procs-all">
- <div id="isNaN,SomeFloat">
- <dt><pre><span class="Keyword">func</span> <a href="#isNaN%2CSomeFloat"><span class="Identifier">isNaN</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#SomeFloat"><span class="Identifier">SomeFloat</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> {.<span class="Identifier">inline</span>.}</pre></dt>
- <dd>
-
- Returns whether <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> is a <tt class="docutils literal"><span class="pre"><span class="Identifier">NaN</span></span></tt>, more efficiently than via <tt class="docutils literal"><span class="pre"><span class="Identifier">classify</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Identifier">fcNan</span></span></tt>. Works even with <tt class="docutils literal"><span class="pre"><span class="Operator">--</span><span class="Identifier">passc</span><span class="Punctuation">:</span><span class="Operator">-</span><span class="Identifier">ffast</span><span class="Operator">-</span><span class="Identifier">math</span></span></tt>.
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">NaN</span><span class="Operator">.</span><span class="Identifier">isNaN</span>
- <span class="Identifier">doAssert</span> <span class="Keyword">not</span> <span class="Identifier">Inf</span><span class="Operator">.</span><span class="Identifier">isNaN</span>
- <span class="Identifier">doAssert</span> <span class="Keyword">not</span> <span class="Identifier">isNaN</span><span class="Punctuation">(</span><span class="FloatNumber">3.1415926</span><span class="Punctuation">)</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L193" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L193" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="isPowerOfTwo-procs-all">
- <div id="isPowerOfTwo,int">
- <dt><pre><span class="Keyword">func</span> <a href="#isPowerOfTwo%2Cint"><span class="Identifier">isPowerOfTwo</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <p>Returns <tt class="docutils literal"><span class="pre"><span class="Identifier">true</span></span></tt>, if <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> is a power of two, <tt class="docutils literal"><span class="pre"><span class="Identifier">false</span></span></tt> otherwise.</p>
- <p>Zero and negative numbers are not a power of two.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#nextPowerOfTwo,int">nextPowerOfTwo func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">isPowerOfTwo</span><span class="Punctuation">(</span><span class="DecNumber">16</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Keyword">not</span> <span class="Identifier">isPowerOfTwo</span><span class="Punctuation">(</span><span class="DecNumber">5</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Keyword">not</span> <span class="Identifier">isPowerOfTwo</span><span class="Punctuation">(</span><span class="DecNumber">0</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Keyword">not</span> <span class="Identifier">isPowerOfTwo</span><span class="Punctuation">(</span><span class="Operator">-</span><span class="DecNumber">16</span><span class="Punctuation">)</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L324" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L324" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="lcm-procs-all">
- <div id="lcm,T,T">
- <dt><pre><span class="Keyword">func</span> <a href="#lcm%2CT%2CT"><span class="Identifier">lcm</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span></pre></dt>
- <dd>
-
- <p>Computes the least common multiple of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt>.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#gcd,T,T">gcd func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">lcm</span><span class="Punctuation">(</span><span class="DecNumber">24</span><span class="Punctuation">,</span> <span class="DecNumber">30</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">120</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">lcm</span><span class="Punctuation">(</span><span class="DecNumber">13</span><span class="Punctuation">,</span> <span class="DecNumber">39</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">39</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L1353" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L1353" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="lcm,openArray[T]">
- <dt><pre><span class="Keyword">func</span> <a href="#lcm%2CopenArray%5BT%5D"><span class="Identifier">lcm</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span></pre></dt>
- <dd>
-
- <p>Computes the least common multiple of the elements of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#lcm,T,T">lcm func</a> for a version with two arguments</li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">lcm</span><span class="Punctuation">(</span><span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">24</span><span class="Punctuation">,</span> <span class="DecNumber">30</span><span class="Punctuation">]</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">120</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L1376" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L1376" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="lgamma-procs-all">
- <div id="lgamma,float32">
- <dt><pre><span class="Keyword">func</span> <a href="#lgamma%2Cfloat32"><span class="Identifier">lgamma</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"lgammaf"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L666" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L666" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="lgamma,float64">
- <dt><pre><span class="Keyword">func</span> <a href="#lgamma%2Cfloat64"><span class="Identifier">lgamma</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"lgamma"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <p>Computes the natural logarithm of the gamma function for <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
- <p><strong>Note:</strong> Not available for the JS backend.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#gamma,float64">gamma func</a> for gamma function</li>
- </ul>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L667" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L667" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="ln-procs-all">
- <div id="ln,float32">
- <dt><pre><span class="Keyword">func</span> <a href="#ln%2Cfloat32"><span class="Identifier">ln</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"logf"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L387" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L387" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="ln,float64">
- <dt><pre><span class="Keyword">func</span> <a href="#ln%2Cfloat64"><span class="Identifier">ln</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"log"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <p>Computes the <a class="reference external" href="https://en.wikipedia.org/wiki/Natural_logarithm">natural logarithm</a> of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#log,T,T">log func</a></li>
- <li><a class="reference external" href="#log10,float64">log10 func</a></li>
- <li><a class="reference external" href="#log2,float64">log2 func</a></li>
- <li><a class="reference external" href="#exp,float64">exp func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">ln</span><span class="Punctuation">(</span><span class="Identifier">exp</span><span class="Punctuation">(</span><span class="FloatNumber">4.0</span><span class="Punctuation">)</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="FloatNumber">4.0</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">ln</span><span class="Punctuation">(</span><span class="FloatNumber">1.0</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="FloatNumber">0.0</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">ln</span><span class="Punctuation">(</span><span class="FloatNumber">0.0</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="Operator">-</span><span class="Identifier">Inf</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">ln</span><span class="Punctuation">(</span><span class="Operator">-</span><span class="FloatNumber">7.0</span><span class="Punctuation">)</span><span class="Operator">.</span><span class="Identifier">isNaN</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L388" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L388" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="log-procs-all">
- <div id="log,T,T">
- <dt><pre><span class="Keyword">func</span> <a href="#log%2CT%2CT"><span class="Identifier">log</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#SomeFloat"><span class="Identifier">SomeFloat</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">base</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span></pre></dt>
- <dd>
-
- <p>Computes the logarithm of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> to base <tt class="docutils literal"><span class="pre"><span class="Identifier">base</span></span></tt>.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#ln,float64">ln func</a></li>
- <li><a class="reference external" href="#log10,float64">log10 func</a></li>
- <li><a class="reference external" href="#log2,float64">log2 func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">log</span><span class="Punctuation">(</span><span class="FloatNumber">9.0</span><span class="Punctuation">,</span> <span class="FloatNumber">3.0</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="FloatNumber">2.0</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">log</span><span class="Punctuation">(</span><span class="FloatNumber">0.0</span><span class="Punctuation">,</span> <span class="FloatNumber">2.0</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="Operator">-</span><span class="Identifier">Inf</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">log</span><span class="Punctuation">(</span><span class="Operator">-</span><span class="FloatNumber">7.0</span><span class="Punctuation">,</span> <span class="FloatNumber">4.0</span><span class="Punctuation">)</span><span class="Operator">.</span><span class="Identifier">isNaN</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">log</span><span class="Punctuation">(</span><span class="FloatNumber">8.0</span><span class="Punctuation">,</span> <span class="Operator">-</span><span class="FloatNumber">2.0</span><span class="Punctuation">)</span><span class="Operator">.</span><span class="Identifier">isNaN</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L412" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L412" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="log2-procs-all">
- <div id="log2,float32">
- <dt><pre><span class="Keyword">func</span> <a href="#log2%2Cfloat32"><span class="Identifier">log2</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"log2f"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L1047" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L1047" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="log2,float64">
- <dt><pre><span class="Keyword">func</span> <a href="#log2%2Cfloat64"><span class="Identifier">log2</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"log2"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <p>Computes the binary logarithm (base 2) of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#log,T,T">log func</a></li>
- <li><a class="reference external" href="#log10,float64">log10 func</a></li>
- <li><a class="reference external" href="#ln,float64">ln func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">log2</span><span class="Punctuation">(</span><span class="FloatNumber">8.0</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="FloatNumber">3.0</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">log2</span><span class="Punctuation">(</span><span class="FloatNumber">1.0</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="FloatNumber">0.0</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">log2</span><span class="Punctuation">(</span><span class="FloatNumber">0.0</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="Operator">-</span><span class="Identifier">Inf</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">log2</span><span class="Punctuation">(</span><span class="Operator">-</span><span class="FloatNumber">2.0</span><span class="Punctuation">)</span><span class="Operator">.</span><span class="Identifier">isNaN</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L1048" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L1048" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="log10-procs-all">
- <div id="log10,float32">
- <dt><pre><span class="Keyword">func</span> <a href="#log10%2Cfloat32"><span class="Identifier">log10</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"log10f"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L428" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L428" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="log10,float64">
- <dt><pre><span class="Keyword">func</span> <a href="#log10%2Cfloat64"><span class="Identifier">log10</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"log10"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <p>Computes the common logarithm (base 10) of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#ln,float64">ln func</a></li>
- <li><a class="reference external" href="#log,T,T">log func</a></li>
- <li><a class="reference external" href="#log2,float64">log2 func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">log10</span><span class="Punctuation">(</span><span class="FloatNumber">100.0</span><span class="Punctuation">)</span> <span class="Punctuation">,</span> <span class="FloatNumber">2.0</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">log10</span><span class="Punctuation">(</span><span class="FloatNumber">0.0</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="Operator">-</span><span class="Identifier">Inf</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">log10</span><span class="Punctuation">(</span><span class="Operator">-</span><span class="FloatNumber">100.0</span><span class="Punctuation">)</span><span class="Operator">.</span><span class="Identifier">isNaN</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L429" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L429" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="mod-procs-all">
- <div id="mod,float32,float32">
- <dt><pre><span class="Keyword">func</span> <a href="#mod%2Cfloat32%2Cfloat32"><span class="Identifier">`mod`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"fmodf"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L788" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L788" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="mod,float64,float64">
- <dt><pre><span class="Keyword">func</span> <a href="#mod%2Cfloat64%2Cfloat64"><span class="Identifier">`mod`</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"fmod"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <p>Computes the modulo operation for float values (the remainder of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> divided by <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt>).</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#floorMod,T,T">floorMod func</a> for Python-like (<tt class="docutils literal"><span class="pre"><span class="Operator">%</span></span></tt> operator) behavior</li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="FloatNumber">6.5</span> <span class="Keyword">mod</span> <span class="FloatNumber">2.5</span> <span class="Operator">==</span> <span class="FloatNumber">1.5</span>
- <span class="Identifier">doAssert</span> <span class="Operator">-</span><span class="FloatNumber">6.5</span> <span class="Keyword">mod</span> <span class="FloatNumber">2.5</span> <span class="Operator">==</span> <span class="Operator">-</span><span class="FloatNumber">1.5</span>
- <span class="Identifier">doAssert</span> <span class="FloatNumber">6.5</span> <span class="Keyword">mod</span> <span class="Operator">-</span><span class="FloatNumber">2.5</span> <span class="Operator">==</span> <span class="FloatNumber">1.5</span>
- <span class="Identifier">doAssert</span> <span class="Operator">-</span><span class="FloatNumber">6.5</span> <span class="Keyword">mod</span> <span class="Operator">-</span><span class="FloatNumber">2.5</span> <span class="Operator">==</span> <span class="Operator">-</span><span class="FloatNumber">1.5</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L789" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L789" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="nextPowerOfTwo-procs-all">
- <div id="nextPowerOfTwo,int">
- <dt><pre><span class="Keyword">func</span> <a href="#nextPowerOfTwo%2Cint"><span class="Identifier">nextPowerOfTwo</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <p>Returns <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> rounded up to the nearest power of two.</p>
- <p>Zero and negative numbers get rounded up to 1.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#isPowerOfTwo,int">isPowerOfTwo func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">nextPowerOfTwo</span><span class="Punctuation">(</span><span class="DecNumber">16</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">16</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">nextPowerOfTwo</span><span class="Punctuation">(</span><span class="DecNumber">5</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">8</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">nextPowerOfTwo</span><span class="Punctuation">(</span><span class="DecNumber">0</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">1</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">nextPowerOfTwo</span><span class="Punctuation">(</span><span class="Operator">-</span><span class="DecNumber">16</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">1</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L339" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L339" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="pow-procs-all">
- <div id="pow,float32,float32">
- <dt><pre><span class="Keyword">func</span> <a href="#pow%2Cfloat32%2Cfloat32"><span class="Identifier">pow</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"powf"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L627" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L627" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="pow,float64,float64">
- <dt><pre><span class="Keyword">func</span> <a href="#pow%2Cfloat64%2Cfloat64"><span class="Identifier">pow</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"pow"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <p>Computes <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> raised to the power of <tt class="docutils literal"><span class="pre"><span class="Identifier">y</span></span></tt>.</p>
- <p>You may use the <a class="reference external" href="#^, T, U">^ func</a> instead.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#^,T,Natural">^ (SomeNumber, Natural) func</a></li>
- <li><a class="reference external" href="#^,T,U">^ (SomeNumber, SomeFloat) func</a></li>
- <li><a class="reference external" href="#sqrt,float64">sqrt func</a></li>
- <li><a class="reference external" href="#cbrt,float64">cbrt func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">pow</span><span class="Punctuation">(</span><span class="DecNumber">100</span><span class="Punctuation">,</span> <span class="FloatNumber">1.5</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="FloatNumber">1000.0</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">pow</span><span class="Punctuation">(</span><span class="FloatNumber">16.0</span><span class="Punctuation">,</span> <span class="FloatNumber">0.5</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="FloatNumber">4.0</span><span class="Punctuation">)</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L628" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L628" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="prod-procs-all">
- <div id="prod,openArray[T]">
- <dt><pre><span class="Keyword">func</span> <a href="#prod%2CopenArray%5BT%5D"><span class="Identifier">prod</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span></pre></dt>
- <dd>
-
- <p>Computes the product of the elements in <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
- <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> is empty, 1 is returned.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#sum,openArray[T]">sum func</a></li>
- <li><a class="reference external" href="#fac,int">fac func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">prod</span><span class="Punctuation">(</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">]</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">24</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">prod</span><span class="Punctuation">(</span><span class="Punctuation">[</span><span class="Operator">-</span><span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">]</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">-</span><span class="DecNumber">60</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L1133" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L1133" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="radToDeg-procs-all">
- <div id="radToDeg,T">
- <dt><pre><span class="Keyword">func</span> <a href="#radToDeg%2CT"><span class="Identifier">radToDeg</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> <span class="Operator">|</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">d</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span> {.<span class="Identifier">inline</span>.}</pre></dt>
- <dd>
-
- <p>Converts from radians to degrees.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#degToRad,T">degToRad func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">radToDeg</span><span class="Punctuation">(</span><span class="DecNumber">2</span> <span class="Operator">*</span> <span class="Identifier">PI</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="FloatNumber">360.0</span><span class="Punctuation">)</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L1091" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L1091" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="round-procs-all">
- <div id="round,float32">
- <dt><pre><span class="Keyword">func</span> <a href="#round%2Cfloat32"><span class="Identifier">round</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"roundf"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L758" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L758" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="round,float64">
- <dt><pre><span class="Keyword">func</span> <a href="#round%2Cfloat64"><span class="Identifier">round</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"round"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <p>Rounds a float to zero decimal places.</p>
- <p>Used internally by the <a class="reference external" href="#round,T,int">round func</a> when the specified number of places is 0.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#round,T,int">round func</a> for rounding to the specific number of decimal places</li>
- <li><a class="reference external" href="#floor,float64">floor func</a></li>
- <li><a class="reference external" href="#ceil,float64">ceil func</a></li>
- <li><a class="reference external" href="#trunc,float64">trunc func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">round</span><span class="Punctuation">(</span><span class="FloatNumber">3.4</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="FloatNumber">3.0</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">round</span><span class="Punctuation">(</span><span class="FloatNumber">3.5</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="FloatNumber">4.0</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">round</span><span class="Punctuation">(</span><span class="FloatNumber">4.5</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="FloatNumber">5.0</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L759" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L759" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="round,T,int">
- <dt><pre><span class="Keyword">func</span> <a href="#round%2CT%2Cint"><span class="Identifier">round</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> <span class="Operator">|</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">;</span> <span class="Identifier">places</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span></pre></dt>
- <dd>
-
- <p>Decimal rounding on a binary floating point number.</p>
- <p>This function is NOT reliable. Floating point numbers cannot hold non integer decimals precisely. If <tt class="docutils literal"><span class="pre"><span class="Identifier">places</span></span></tt> is 0 (or omitted), round to the nearest integral value following normal mathematical rounding rules (e.g. <tt class="docutils literal"><span class="pre"><span class="Identifier">round</span><span class="Punctuation">(</span><span class="FloatNumber">54.5</span><span class="Punctuation">)</span> <span class="Operator">-></span> <span class="FloatNumber">55.0</span></span></tt>). If <tt class="docutils literal"><span class="pre"><span class="Identifier">places</span></span></tt> is greater than 0, round to the given number of decimal places, e.g. <tt class="docutils literal"><span class="pre"><span class="Identifier">round</span><span class="Punctuation">(</span><span class="FloatNumber">54.346</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">)</span> <span class="Operator">-></span> <span class="FloatNumber">54.350000000000001421</span><span class="Identifier">…</span></span></tt>. If <tt class="docutils literal"><span class="pre"><span class="Identifier">places</span></span></tt> is negative, round to the left of the decimal place, e.g. <tt class="docutils literal"><span class="pre"><span class="Identifier">round</span><span class="Punctuation">(</span><span class="FloatNumber">537.345</span><span class="Punctuation">,</span> <span class="Operator">-</span><span class="DecNumber">1</span><span class="Punctuation">)</span> <span class="Operator">-></span> <span class="FloatNumber">540.0</span></span></tt>.</p>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">round</span><span class="Punctuation">(</span><span class="Identifier">PI</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="FloatNumber">3.14</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">round</span><span class="Punctuation">(</span><span class="Identifier">PI</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="FloatNumber">3.1416</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L840" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L840" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="sec-procs-all">
- <div id="sec,T">
- <dt><pre><span class="Keyword">func</span> <a href="#sec%2CT"><span class="Identifier">sec</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> <span class="Operator">|</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span></pre></dt>
- <dd>
-
- Computes the secant of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> (<tt class="docutils literal"><span class="pre"><span class="DecNumber">1</span><span class="Operator">/</span><span class="Identifier">cos</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Punctuation">)</span></span></tt>).
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L592" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L592" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="sech-procs-all">
- <div id="sech,T">
- <dt><pre><span class="Keyword">func</span> <a href="#sech%2CT"><span class="Identifier">sech</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> <span class="Operator">|</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span></pre></dt>
- <dd>
-
- Computes the hyperbolic secant of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> (<tt class="docutils literal"><span class="pre"><span class="DecNumber">1</span><span class="Operator">/</span><span class="Identifier">cosh</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Punctuation">)</span></span></tt>).
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L599" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L599" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="sgn-procs-all">
- <div id="sgn,T">
- <dt><pre><span class="Keyword">func</span> <a href="#sgn%2CT"><span class="Identifier">sgn</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#SomeNumber"><span class="Identifier">SomeNumber</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> {.<span class="Identifier">inline</span>.}</pre></dt>
- <dd>
-
- <p>Sign function.</p>
- <p>Returns:</p>
- <ul class="simple"><li><tt class="docutils literal"><span class="pre"><span class="Operator">-</span><span class="DecNumber">1</span></span></tt> for negative numbers and <tt class="docutils literal"><span class="pre"><span class="Identifier">NegInf</span></span></tt>,</li>
- <li><tt class="docutils literal"><span class="pre"><span class="DecNumber">1</span></span></tt> for positive numbers and <tt class="docutils literal"><span class="pre"><span class="Identifier">Inf</span></span></tt>,</li>
- <li><tt class="docutils literal"><span class="pre"><span class="DecNumber">0</span></span></tt> for positive zero, negative zero and <tt class="docutils literal"><span class="pre"><span class="Identifier">NaN</span></span></tt></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">sgn</span><span class="Punctuation">(</span><span class="DecNumber">5</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">1</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">sgn</span><span class="Punctuation">(</span><span class="DecNumber">0</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">0</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">sgn</span><span class="Punctuation">(</span><span class="Operator">-</span><span class="FloatNumber">4.1</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">-</span><span class="DecNumber">1</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L1101" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L1101" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="signbit-procs-all">
- <div id="signbit,SomeFloat">
- <dt><pre><span class="Keyword">proc</span> <a href="#signbit%2CSomeFloat"><span class="Identifier">signbit</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#SomeFloat"><span class="Identifier">SomeFloat</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> {.<span class="Identifier">inline</span>.}</pre></dt>
- <dd>
-
- Returns true if <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> is negative, false otherwise.
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Keyword">not</span> <span class="Identifier">signbit</span><span class="Punctuation">(</span><span class="FloatNumber">0.0</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">signbit</span><span class="Punctuation">(</span><span class="Operator">-</span><span class="FloatNumber">0.0</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">signbit</span><span class="Punctuation">(</span><span class="Operator">-</span><span class="FloatNumber">0.1</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Keyword">not</span> <span class="Identifier">signbit</span><span class="Punctuation">(</span><span class="FloatNumber">0.1</span><span class="Punctuation">)</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L231" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L231" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="sin-procs-all">
- <div id="sin,float32">
- <dt><pre><span class="Keyword">func</span> <a href="#sin%2Cfloat32"><span class="Identifier">sin</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"sinf"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L450" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L450" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="sin,float64">
- <dt><pre><span class="Keyword">func</span> <a href="#sin%2Cfloat64"><span class="Identifier">sin</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"sin"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <p>Computes the sine of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#arcsin,float64">arcsin func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">sin</span><span class="Punctuation">(</span><span class="Identifier">PI</span> <span class="Operator">/</span> <span class="DecNumber">6</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="FloatNumber">0.5</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">sin</span><span class="Punctuation">(</span><span class="Identifier">degToRad</span><span class="Punctuation">(</span><span class="FloatNumber">90.0</span><span class="Punctuation">)</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="FloatNumber">1.0</span><span class="Punctuation">)</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L451" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L451" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="sinh-procs-all">
- <div id="sinh,float32">
- <dt><pre><span class="Keyword">func</span> <a href="#sinh%2Cfloat32"><span class="Identifier">sinh</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"sinhf"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L477" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L477" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="sinh,float64">
- <dt><pre><span class="Keyword">func</span> <a href="#sinh%2Cfloat64"><span class="Identifier">sinh</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"sinh"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <p>Computes the <a class="reference external" href="https://en.wikipedia.org/wiki/Hyperbolic_function#Definitions">hyperbolic sine</a> of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#arcsinh,float64">arcsinh func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">sinh</span><span class="Punctuation">(</span><span class="FloatNumber">0.0</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="FloatNumber">0.0</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">sinh</span><span class="Punctuation">(</span><span class="FloatNumber">1.0</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="FloatNumber">1.175201193643801</span><span class="Punctuation">)</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L478" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L478" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="splitDecimal-procs-all">
- <div id="splitDecimal,T">
- <dt><pre><span class="Keyword">func</span> <a href="#splitDecimal%2CT"><span class="Identifier">splitDecimal</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> <span class="Operator">|</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">tuple</span><span class="Other">[</span><span class="Identifier">intpart</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">,</span> <span class="Identifier">floatpart</span><span class="Other">:</span> <span class="Identifier">T</span><span class="Other">]</span></pre></dt>
- <dd>
-
- <p>Breaks <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> into an integer and a fractional part.</p>
- <p>Returns a tuple containing <tt class="docutils literal"><span class="pre"><span class="Identifier">intpart</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">floatpart</span></span></tt>, representing the integer part and the fractional part, respectively.</p>
- <p>Both parts have the same sign as <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>. Analogous to the <tt class="docutils literal"><span class="pre"><span class="Identifier">modf</span></span></tt> function in C.</p>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">splitDecimal</span><span class="Punctuation">(</span><span class="FloatNumber">5.25</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Punctuation">(</span><span class="Identifier">intpart</span><span class="Punctuation">:</span> <span class="FloatNumber">5.0</span><span class="Punctuation">,</span> <span class="Identifier">floatpart</span><span class="Punctuation">:</span> <span class="FloatNumber">0.25</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">splitDecimal</span><span class="Punctuation">(</span><span class="Operator">-</span><span class="FloatNumber">2.73</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Punctuation">(</span><span class="Identifier">intpart</span><span class="Punctuation">:</span> <span class="Operator">-</span><span class="FloatNumber">2.0</span><span class="Punctuation">,</span> <span class="Identifier">floatpart</span><span class="Punctuation">:</span> <span class="Operator">-</span><span class="FloatNumber">0.73</span><span class="Punctuation">)</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L1061" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L1061" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="sqrt-procs-all">
- <div id="sqrt,float32">
- <dt><pre><span class="Keyword">func</span> <a href="#sqrt%2Cfloat32"><span class="Identifier">sqrt</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"sqrtf"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L368" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L368" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="sqrt,float64">
- <dt><pre><span class="Keyword">func</span> <a href="#sqrt%2Cfloat64"><span class="Identifier">sqrt</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"sqrt"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <p>Computes the square root of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#cbrt,float64">cbrt func</a> for the cube root</li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">sqrt</span><span class="Punctuation">(</span><span class="FloatNumber">4.0</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="FloatNumber">2.0</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">sqrt</span><span class="Punctuation">(</span><span class="FloatNumber">1.44</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="FloatNumber">1.2</span><span class="Punctuation">)</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L369" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L369" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="sum-procs-all">
- <div id="sum,openArray[T]">
- <dt><pre><span class="Keyword">func</span> <a href="#sum%2CopenArray%5BT%5D"><span class="Identifier">sum</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><span class="Identifier">T</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">T</span></pre></dt>
- <dd>
-
- <p>Computes the sum of the elements in <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
- <p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> is empty, 0 is returned.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#prod,openArray[T]">prod func</a></li>
- <li><a class="reference external" href="#cumsum,openArray[T]">cumsum func</a></li>
- <li><a class="reference external" href="#cumsummed,openArray[T]">cumsummed func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">sum</span><span class="Punctuation">(</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">]</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">10</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">sum</span><span class="Punctuation">(</span><span class="Punctuation">[</span><span class="Operator">-</span><span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="DecNumber">3</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">]</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">4</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L1118" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L1118" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="tan-procs-all">
- <div id="tan,float32">
- <dt><pre><span class="Keyword">func</span> <a href="#tan%2Cfloat32"><span class="Identifier">tan</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"tanf"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L468" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L468" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="tan,float64">
- <dt><pre><span class="Keyword">func</span> <a href="#tan%2Cfloat64"><span class="Identifier">tan</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"tan"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span> <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
- <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <p>Computes the tangent of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#arctan,float64">arctan func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">tan</span><span class="Punctuation">(</span><span class="Identifier">degToRad</span><span class="Punctuation">(</span><span class="FloatNumber">45.0</span><span class="Punctuation">)</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="FloatNumber">1.0</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">tan</span><span class="Punctuation">(</span><span class="Identifier">PI</span> <span class="Operator">/</span> <span class="DecNumber">4</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="FloatNumber">1.0</span><span class="Punctuation">)</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L469" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L469" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="tanh-procs-all">
- <div id="tanh,float32">
- <dt><pre><span class="Keyword">func</span> <a href="#tanh%2Cfloat32"><span class="Identifier">tanh</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"tanhf"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L495" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L495" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="tanh,float64">
- <dt><pre><span class="Keyword">func</span> <a href="#tanh%2Cfloat64"><span class="Identifier">tanh</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"tanh"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <p>Computes the <a class="reference external" href="https://en.wikipedia.org/wiki/Hyperbolic_function#Definitions">hyperbolic tangent</a> of <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt>.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#arctanh,float64">arctanh func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">tanh</span><span class="Punctuation">(</span><span class="FloatNumber">0.0</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="FloatNumber">0.0</span><span class="Punctuation">)</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">almostEqual</span><span class="Punctuation">(</span><span class="Identifier">tanh</span><span class="Punctuation">(</span><span class="FloatNumber">1.0</span><span class="Punctuation">)</span><span class="Punctuation">,</span> <span class="FloatNumber">0.7615941559557649</span><span class="Punctuation">)</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L496" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L496" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- <div id="trunc-procs-all">
- <div id="trunc,float32">
- <dt><pre><span class="Keyword">func</span> <a href="#trunc%2Cfloat32"><span class="Identifier">trunc</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float32"><span class="Identifier">float32</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"truncf"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
-
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L776" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L776" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- <div id="trunc,float64">
- <dt><pre><span class="Keyword">func</span> <a href="#trunc%2Cfloat64"><span class="Identifier">trunc</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#float64"><span class="Identifier">float64</span></a> {.<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">"trunc"</span><span class="Other">,</span> <span class="Identifier">header</span><span class="Other">:</span> <span class="StringLit">"<math.h>"</span><span class="Other">,</span>
- <span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">forbids</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span>.}</pre></dt>
- <dd>
-
- <p>Truncates <tt class="docutils literal"><span class="pre"><span class="Identifier">x</span></span></tt> to the decimal point.</p>
- <p><strong>See also:</strong></p>
- <ul class="simple"><li><a class="reference external" href="#floor,float64">floor func</a></li>
- <li><a class="reference external" href="#ceil,float64">ceil func</a></li>
- <li><a class="reference external" href="#round,float64">round func</a></li>
- </ul>
- <p><strong class="examples_text">Example:</strong></p>
- <pre class="listing"><span class="Identifier">doAssert</span> <span class="Identifier">trunc</span><span class="Punctuation">(</span><span class="Identifier">PI</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="FloatNumber">3.0</span>
- <span class="Identifier">doAssert</span> <span class="Identifier">trunc</span><span class="Punctuation">(</span><span class="Operator">-</span><span class="FloatNumber">1.85</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">-</span><span class="FloatNumber">1.0</span></pre>
- <a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/math.nim#L777" class="link-seesrc" target="_blank">Source</a>
- <a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/math.nim#L777" class="link-seesrc" target="_blank" >Edit</a>
- </dd>
- </div>
- </div>
- </dl>
- </div>
- </div>
- </div>
- <div class="twelve-columns footer">
- <span class="nim-sprite"></span>
- <br>
- <small style="color: var(--hint);">Made with Nim. Generated: 2025-02-06 22:27:50 UTC</small>
- </div>
- </div>
- </div>
- <script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
-
- </body>
- </html>
|