| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263 |
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
- <head>
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta http-equiv="X-UA-Compatible" content="IE=11"/>
- <meta name="generator" content="Doxygen 1.12.0"/>
- <meta name="viewport" content="width=device-width, initial-scale=1"/>
- <title>Jolt Physics: Jolt/Math/DVec3.inl Source File</title>
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
- <script type="text/javascript" src="jquery.js"></script>
- <script type="text/javascript" src="dynsections.js"></script>
- <script type="text/javascript" src="clipboard.js"></script>
- <link href="navtree.css" rel="stylesheet" type="text/css"/>
- <script type="text/javascript" src="navtreedata.js"></script>
- <script type="text/javascript" src="navtree.js"></script>
- <script type="text/javascript" src="resize.js"></script>
- <script type="text/javascript" src="cookie.js"></script>
- <link href="search/search.css" rel="stylesheet" type="text/css"/>
- <script type="text/javascript" src="search/searchdata.js"></script>
- <script type="text/javascript" src="search/search.js"></script>
- <script type="text/x-mathjax-config">
- MathJax.Hub.Config({
- extensions: ["tex2jax.js"],
- jax: ["input/TeX","output/HTML-CSS"],
- });
- </script>
- <script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js"></script>
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
- </head>
- <body>
- <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
- <div id="titlearea">
- <table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectlogo"><img alt="Logo" src="LogoSmall.png"/></td>
- <td id="projectalign">
- <div id="projectname">Jolt Physics
- </div>
- <div id="projectbrief">A multi core friendly Game Physics Engine</div>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <!-- end header part -->
- <!-- Generated by Doxygen 1.12.0 -->
- <script type="text/javascript">
- /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
- var searchBox = new SearchBox("searchBox", "search/",'.html');
- /* @license-end */
- </script>
- <script type="text/javascript">
- /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
- $(function() { codefold.init(0); });
- /* @license-end */
- </script>
- <script type="text/javascript" src="menudata.js"></script>
- <script type="text/javascript" src="menu.js"></script>
- <script type="text/javascript">
- /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
- $(function() {
- initMenu('',true,false,'search.php','Search',true);
- $(function() { init_search(); });
- });
- /* @license-end */
- </script>
- <div id="main-nav"></div>
- </div><!-- top -->
- <div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
- </div>
- <script type="text/javascript">
- /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
- $(function(){initNavTree('_d_vec3_8inl_source.html',''); initResizable(true); });
- /* @license-end */
- </script>
- <div id="doc-content">
- <!-- window showing the filter options -->
- <div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
- </div>
- <!-- iframe showing the search results (closed by default) -->
- <div id="MSearchResultsWindow">
- <div id="MSearchResults">
- <div class="SRPage">
- <div id="SRIndex">
- <div id="SRResults"></div>
- <div class="SRStatus" id="Loading">Loading...</div>
- <div class="SRStatus" id="Searching">Searching...</div>
- <div class="SRStatus" id="NoMatches">No Matches</div>
- </div>
- </div>
- </div>
- </div>
- <div class="header">
- <div class="headertitle"><div class="title">DVec3.inl</div></div>
- </div><!--header-->
- <div class="contents">
- <a href="_d_vec3_8inl.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">// Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)</span></div>
- <div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment">// SPDX-FileCopyrightText: 2021 Jorrit Rouwe</span></div>
- <div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment">// SPDX-License-Identifier: MIT</span></div>
- <div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span> </div>
- <div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#pragma once</span></div>
- <div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> </div>
- <div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#include <<a class="code" href="_hash_combine_8h.html">Jolt/Core/HashCombine.h</a>></span></div>
- <div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> </div>
- <div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment">// Create a std::hash/JPH::Hash for DVec3</span></div>
- <div class="foldopen" id="foldopen00010" data-start="{" data-end="}">
- <div class="line"><a id="l00010" name="l00010"></a><span class="lineno"><a class="line" href="_d_vec3_8inl.html#ad63a526073dd7f77a10ad035f668caed"> 10</a></span><a class="code hl_define" href="_hash_combine_8h.html#acb214eb23a4f6646330f74bc5f72c938">JPH_MAKE_HASHABLE</a>(JPH::DVec3, t.GetX(), t.GetY(), t.GetZ())</div>
- <div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> </div>
- <div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><a class="code hl_define" href="_core_8h.html#ad14098b68b8c44ea6112601031268405">JPH_NAMESPACE_BEGIN</a></div>
- <div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
- <div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><a class="code hl_class" href="class_d_vec3.html">DVec3</a>::<a class="code hl_class" href="class_d_vec3.html">DVec3</a>(<a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inRHS)</div>
- <div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span>{</div>
- <div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> mValue = _mm256_cvtps_pd(inRHS.mValue);</div>
- <div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> mValue.mLow = _mm_cvtps_pd(inRHS.mValue);</div>
- <div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> mValue.mHigh = _mm_cvtps_pd(_mm_shuffle_ps(inRHS.mValue, inRHS.mValue, _MM_SHUFFLE(2, 2, 2, 2)));</div>
- <div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> mValue.val[0] = vcvt_f64_f32(vget_low_f32(inRHS.mValue));</div>
- <div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> mValue.val[1] = vcvt_high_f64_f32(inRHS.mValue);</div>
- <div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> mF64[0] = (double)inRHS.GetX();</div>
- <div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> mF64[1] = (double)inRHS.GetY();</div>
- <div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> mF64[2] = (double)inRHS.GetZ();</div>
- <div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="preprocessor"> #ifdef JPH_FLOATING_POINT_EXCEPTIONS_ENABLED</span></div>
- <div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> mF64[3] = mF64[2];</div>
- <div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="preprocessor"> #endif</span></div>
- <div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span>}</div>
- </div>
- <div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> </div>
- <div class="foldopen" id="foldopen00034" data-start="{" data-end="}">
- <div class="line"><a id="l00034" name="l00034"></a><span class="lineno"><a class="line" href="class_d_vec3.html#aab5b5eca15f3f129ff6781cb0e2c27a7"> 34</a></span><a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3::DVec3</a>(<a class="code hl_class" href="class_vec4.html">Vec4Arg</a> inRHS) :</div>
- <div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <a class="code hl_class" href="class_d_vec3.html">DVec3</a>(<a class="code hl_class" href="class_vec3.html">Vec3</a>(inRHS))</div>
- <div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span>{</div>
- <div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span>}</div>
- </div>
- <div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> </div>
- <div class="foldopen" id="foldopen00039" data-start="{" data-end="}">
- <div class="line"><a id="l00039" name="l00039"></a><span class="lineno"><a class="line" href="class_d_vec3.html#ac908a3c045ea6d465602de318ccc2423"> 39</a></span><a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3::DVec3</a>(<span class="keywordtype">double</span> inX, <span class="keywordtype">double</span> inY, <span class="keywordtype">double</span> inZ)</div>
- <div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span>{</div>
- <div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a> = _mm256_set_pd(inZ, inZ, inY, inX); <span class="comment">// Assure Z and W are the same</span></div>
- <div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow = _mm_set_pd(inY, inX);</div>
- <div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh = _mm_set1_pd(inZ);</div>
- <div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0] = vcombine_f64(vcreate_f64(<a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<uint64></a>(inX)), vcreate_f64(<a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<uint64></a>(inY)));</div>
- <div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1] = vdupq_n_f64(inZ);</div>
- <div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0] = inX;</div>
- <div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1] = inY;</div>
- <div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2] = inZ;</div>
- <div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span><span class="preprocessor"> #ifdef JPH_FLOATING_POINT_EXCEPTIONS_ENABLED</span></div>
- <div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[3] = <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2];</div>
- <div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span><span class="preprocessor"> #endif</span></div>
- <div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span>}</div>
- </div>
- <div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> </div>
- <div class="foldopen" id="foldopen00059" data-start="{" data-end="}">
- <div class="line"><a id="l00059" name="l00059"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a14bb3fa7ea76c4c32d2ff6066a8e0732"> 59</a></span><a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3::DVec3</a>(<span class="keyword">const</span> <a class="code hl_class" href="class_double3.html">Double3</a> &inV)</div>
- <div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span>{</div>
- <div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <a class="code hl_typedef" href="class_d_vec3.html#ae955a8b286e5daaa80ca018afc4a2f92">Type</a> x = _mm256_castpd128_pd256(_mm_load_sd(&inV.<a class="code hl_variable" href="class_double3.html#ab8e77991d31c9f90c05b78e70e1027f1">x</a>));</div>
- <div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <a class="code hl_typedef" href="class_d_vec3.html#ae955a8b286e5daaa80ca018afc4a2f92">Type</a> y = _mm256_castpd128_pd256(_mm_load_sd(&inV.<a class="code hl_variable" href="class_double3.html#a7cdca7980db4588511c4851369dd9f2c">y</a>));</div>
- <div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <a class="code hl_typedef" href="class_d_vec3.html#ae955a8b286e5daaa80ca018afc4a2f92">Type</a> z = _mm256_broadcast_sd(&inV.<a class="code hl_variable" href="class_double3.html#a06ddc2a509b14e50e6d69acbc07b0bd3">z</a>);</div>
- <div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <a class="code hl_typedef" href="class_d_vec3.html#ae955a8b286e5daaa80ca018afc4a2f92">Type</a> xy = _mm256_unpacklo_pd(x, y);</div>
- <div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a> = _mm256_blend_pd(xy, z, 0b1100); <span class="comment">// Assure Z and W are the same</span></div>
- <div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow = _mm_loadu_pd(&inV.<a class="code hl_variable" href="class_double3.html#ab8e77991d31c9f90c05b78e70e1027f1">x</a>);</div>
- <div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh = _mm_set1_pd(inV.<a class="code hl_variable" href="class_double3.html#a06ddc2a509b14e50e6d69acbc07b0bd3">z</a>);</div>
- <div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0] = vld1q_f64(&inV.<a class="code hl_variable" href="class_double3.html#ab8e77991d31c9f90c05b78e70e1027f1">x</a>);</div>
- <div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1] = vdupq_n_f64(inV.<a class="code hl_variable" href="class_double3.html#a06ddc2a509b14e50e6d69acbc07b0bd3">z</a>);</div>
- <div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0] = inV.<a class="code hl_variable" href="class_double3.html#ab8e77991d31c9f90c05b78e70e1027f1">x</a>;</div>
- <div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1] = inV.<a class="code hl_variable" href="class_double3.html#a7cdca7980db4588511c4851369dd9f2c">y</a>;</div>
- <div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2] = inV.<a class="code hl_variable" href="class_double3.html#a06ddc2a509b14e50e6d69acbc07b0bd3">z</a>;</div>
- <div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span><span class="preprocessor"> #ifdef JPH_FLOATING_POINT_EXCEPTIONS_ENABLED</span></div>
- <div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[3] = <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2];</div>
- <div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span><span class="preprocessor"> #endif</span></div>
- <div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span>}</div>
- </div>
- <div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> </div>
- <div class="foldopen" id="foldopen00083" data-start="{" data-end="}">
- <div class="line"><a id="l00083" name="l00083"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a95c9295adcf9cea2990be8d4c6b71891"> 83</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="class_d_vec3.html#a95c9295adcf9cea2990be8d4c6b71891">DVec3::CheckW</a>()<span class="keyword"> const</span></div>
- <div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span><span class="keyword"></span>{</div>
- <div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span><span class="preprocessor">#ifdef JPH_FLOATING_POINT_EXCEPTIONS_ENABLED</span></div>
- <div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <span class="comment">// Avoid asserts when both components are NaN</span></div>
- <div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <a class="code hl_define" href="_issue_reporting_8h.html#aaf6b1df827e11b7ca5f6f8778bd8f8cd">JPH_ASSERT</a>(<span class="keyword">reinterpret_cast<</span><span class="keyword">const </span><a class="code hl_typedef" href="_core_8h.html#a60e8696a4678cd348e991a1f172e53f7">uint64</a> *<span class="keyword">></span>(<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>)[2] == <span class="keyword">reinterpret_cast<</span><span class="keyword">const </span><a class="code hl_typedef" href="_core_8h.html#a60e8696a4678cd348e991a1f172e53f7">uint64</a> *<span class="keyword">></span>(<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>)[3]);</div>
- <div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span><span class="preprocessor">#endif </span><span class="comment">// JPH_FLOATING_POINT_EXCEPTIONS_ENABLED</span></div>
- <div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span>}</div>
- </div>
- <div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> </div>
- <div class="foldopen" id="foldopen00092" data-start="{" data-end="}">
- <div class="line"><a id="l00092" name="l00092"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a2266a780190160ac4e0dd1747c496fa7"> 92</a></span><a class="code hl_typedef" href="class_d_vec3.html#ae955a8b286e5daaa80ca018afc4a2f92">DVec3::Type</a> <a class="code hl_function" href="class_d_vec3.html#a2266a780190160ac4e0dd1747c496fa7">DVec3::sFixW</a>(<a class="code hl_typedef" href="class_d_vec3.html#a534f0bd3a829454ca3f6c00d60068b27">TypeArg</a> inValue)</div>
- <div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span>{</div>
- <div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span><span class="preprocessor">#ifdef JPH_FLOATING_POINT_EXCEPTIONS_ENABLED</span></div>
- <div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span><span class="preprocessor"> #if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <span class="keywordflow">return</span> _mm256_shuffle_pd(inValue, inValue, 2);</div>
- <div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span><span class="preprocessor"> #elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <a class="code hl_typedef" href="class_d_vec3.html#ae955a8b286e5daaa80ca018afc4a2f92">Type</a> value;</div>
- <div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> value.mLow = inValue.mLow;</div>
- <div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> value.mHigh = _mm_shuffle_pd(inValue.mHigh, inValue.mHigh, 0);</div>
- <div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <span class="keywordflow">return</span> value;</div>
- <div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span><span class="preprocessor"> #elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <a class="code hl_typedef" href="class_d_vec3.html#ae955a8b286e5daaa80ca018afc4a2f92">Type</a> value;</div>
- <div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> value.val[0] = inValue.val[0];</div>
- <div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> value.val[1] = vdupq_laneq_f64(inValue.val[1], 0);</div>
- <div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> <span class="keywordflow">return</span> value;</div>
- <div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span><span class="preprocessor"> #else</span></div>
- <div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <a class="code hl_typedef" href="class_d_vec3.html#ae955a8b286e5daaa80ca018afc4a2f92">Type</a> value;</div>
- <div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> value.mData[0] = inValue.mData[0];</div>
- <div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> value.mData[1] = inValue.mData[1];</div>
- <div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> value.mData[2] = inValue.mData[2];</div>
- <div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> value.mData[3] = inValue.mData[2];</div>
- <div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <span class="keywordflow">return</span> value;</div>
- <div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span><span class="preprocessor"> #endif</span></div>
- <div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> <span class="keywordflow">return</span> inValue;</div>
- <div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span><span class="preprocessor">#endif </span><span class="comment">// JPH_FLOATING_POINT_EXCEPTIONS_ENABLED</span></div>
- <div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span>}</div>
- </div>
- <div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> </div>
- <div class="foldopen" id="foldopen00120" data-start="{" data-end="}">
- <div class="line"><a id="l00120" name="l00120"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a7b43808613023c4439455b887c566246"> 120</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> <a class="code hl_function" href="class_d_vec3.html#a7b43808613023c4439455b887c566246">DVec3::sZero</a>()</div>
- <div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span>{</div>
- <div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <span class="keywordflow">return</span> _mm256_setzero_pd();</div>
- <div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> __m128d zero = _mm_setzero_pd();</div>
- <div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ zero, zero });</div>
- <div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> float64x2_t zero = vdupq_n_f64(0.0);</div>
- <div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ zero, zero });</div>
- <div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>(0, 0, 0);</div>
- <div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span>}</div>
- </div>
- <div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> </div>
- <div class="foldopen" id="foldopen00135" data-start="{" data-end="}">
- <div class="line"><a id="l00135" name="l00135"></a><span class="lineno"><a class="line" href="class_d_vec3.html#aacd317439be46d73edb9c0272b9445d6"> 135</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> <a class="code hl_function" href="class_d_vec3.html#aacd317439be46d73edb9c0272b9445d6">DVec3::sReplicate</a>(<span class="keywordtype">double</span> inV)</div>
- <div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span>{</div>
- <div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> <span class="keywordflow">return</span> _mm256_set1_pd(inV);</div>
- <div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> __m128d value = _mm_set1_pd(inV);</div>
- <div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ value, value });</div>
- <div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> float64x2_t value = vdupq_n_f64(inV);</div>
- <div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ value, value });</div>
- <div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>(inV, inV, inV);</div>
- <div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span>}</div>
- </div>
- <div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> </div>
- <div class="foldopen" id="foldopen00150" data-start="{" data-end="}">
- <div class="line"><a id="l00150" name="l00150"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a35ef19e9f75acca4eae99f2849f347f9"> 150</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> <a class="code hl_function" href="class_d_vec3.html#a35ef19e9f75acca4eae99f2849f347f9">DVec3::sOne</a>()</div>
- <div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span>{</div>
- <div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#aacd317439be46d73edb9c0272b9445d6">sReplicate</a>(1.0);</div>
- <div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span>}</div>
- </div>
- <div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> </div>
- <div class="foldopen" id="foldopen00155" data-start="{" data-end="}">
- <div class="line"><a id="l00155" name="l00155"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a597fd4ed4cbf7af0c17bbd374afb4727"> 155</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> <a class="code hl_function" href="class_d_vec3.html#a597fd4ed4cbf7af0c17bbd374afb4727">DVec3::sNaN</a>()</div>
- <div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span>{</div>
- <div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#aacd317439be46d73edb9c0272b9445d6">sReplicate</a>(numeric_limits<double>::quiet_NaN());</div>
- <div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span>}</div>
- </div>
- <div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> </div>
- <div class="foldopen" id="foldopen00160" data-start="{" data-end="}">
- <div class="line"><a id="l00160" name="l00160"></a><span class="lineno"><a class="line" href="class_d_vec3.html#ac19d415377cf91a317d29cc99d319134"> 160</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> <a class="code hl_function" href="class_d_vec3.html#ac19d415377cf91a317d29cc99d319134">DVec3::sLoadDouble3Unsafe</a>(<span class="keyword">const</span> <a class="code hl_class" href="class_double3.html">Double3</a> &inV)</div>
- <div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span>{</div>
- <div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> <a class="code hl_typedef" href="class_d_vec3.html#ae955a8b286e5daaa80ca018afc4a2f92">Type</a> v = _mm256_loadu_pd(&inV.<a class="code hl_variable" href="class_double3.html#ab8e77991d31c9f90c05b78e70e1027f1">x</a>);</div>
- <div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> <a class="code hl_typedef" href="class_d_vec3.html#ae955a8b286e5daaa80ca018afc4a2f92">Type</a> v;</div>
- <div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> v.mLow = _mm_loadu_pd(&inV.<a class="code hl_variable" href="class_double3.html#ab8e77991d31c9f90c05b78e70e1027f1">x</a>);</div>
- <div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> v.mHigh = _mm_set1_pd(inV.<a class="code hl_variable" href="class_double3.html#a06ddc2a509b14e50e6d69acbc07b0bd3">z</a>);</div>
- <div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> <a class="code hl_typedef" href="class_d_vec3.html#ae955a8b286e5daaa80ca018afc4a2f92">Type</a> v = vld1q_f64_x2(&inV.<a class="code hl_variable" href="class_double3.html#ab8e77991d31c9f90c05b78e70e1027f1">x</a>);</div>
- <div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> <a class="code hl_typedef" href="class_d_vec3.html#ae955a8b286e5daaa80ca018afc4a2f92">Type</a> v = { inV.<a class="code hl_variable" href="class_double3.html#ab8e77991d31c9f90c05b78e70e1027f1">x</a>, inV.<a class="code hl_variable" href="class_double3.html#a7cdca7980db4588511c4851369dd9f2c">y</a>, inV.<a class="code hl_variable" href="class_double3.html#a06ddc2a509b14e50e6d69acbc07b0bd3">z</a> };</div>
- <div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a2266a780190160ac4e0dd1747c496fa7">sFixW</a>(v);</div>
- <div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span>}</div>
- </div>
- <div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> </div>
- <div class="foldopen" id="foldopen00176" data-start="{" data-end="}">
- <div class="line"><a id="l00176" name="l00176"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a660cd286454202510b44fa18c2283d4d"> 176</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="class_d_vec3.html#a660cd286454202510b44fa18c2283d4d">DVec3::StoreDouble3</a>(<a class="code hl_class" href="class_double3.html">Double3</a> *outV)<span class="keyword"> const</span></div>
- <div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span><span class="keyword"></span>{</div>
- <div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> outV-><a class="code hl_variable" href="class_double3.html#ab8e77991d31c9f90c05b78e70e1027f1">x</a> = <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0];</div>
- <div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> outV-><a class="code hl_variable" href="class_double3.html#a7cdca7980db4588511c4851369dd9f2c">y</a> = <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1];</div>
- <div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> outV-><a class="code hl_variable" href="class_double3.html#a06ddc2a509b14e50e6d69acbc07b0bd3">z</a> = <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2];</div>
- <div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span>}</div>
- </div>
- <div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> </div>
- <div class="foldopen" id="foldopen00183" data-start="{" data-end="}">
- <div class="line"><a id="l00183" name="l00183"></a><span class="lineno"><a class="line" href="class_d_vec3.html#aea862e04fd4041a3d10035275fe995e0"> 183</a></span>DVec3::operator <a class="code hl_class" href="class_vec3.html">Vec3</a>()<span class="keyword"> const</span></div>
- <div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span><span class="keyword"></span>{</div>
- <div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> <span class="keywordflow">return</span> _mm256_cvtpd_ps(mValue);</div>
- <div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> __m128 low = _mm_cvtpd_ps(mValue.mLow);</div>
- <div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> __m128 high = _mm_cvtpd_ps(mValue.mHigh);</div>
- <div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> <span class="keywordflow">return</span> _mm_shuffle_ps(low, high, _MM_SHUFFLE(1, 0, 1, 0));</div>
- <div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> <span class="keywordflow">return</span> vcvt_high_f32_f64(vcvtx_f32_f64(mValue.val[0]), mValue.val[1]);</div>
- <div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> <span class="keywordflow">return</span> <a class="code hl_class" href="class_vec3.html">Vec3</a>((<span class="keywordtype">float</span>)GetX(), (<span class="keywordtype">float</span>)GetY(), (<span class="keywordtype">float</span>)GetZ());</div>
- <div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span>}</div>
- </div>
- <div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> </div>
- <div class="foldopen" id="foldopen00198" data-start="{" data-end="}">
- <div class="line"><a id="l00198" name="l00198"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a110aacf67e0556aaf2fdad2e86578715"> 198</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> <a class="code hl_function" href="class_d_vec3.html#a110aacf67e0556aaf2fdad2e86578715">DVec3::sMin</a>(<a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inV1, <a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inV2)</div>
- <div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span>{</div>
- <div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> <span class="keywordflow">return</span> _mm256_min_pd(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>);</div>
- <div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ _mm_min_pd(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow), _mm_min_pd(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh) });</div>
- <div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ vminq_f64(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0], inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0]), vminq_f64(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1], inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1]) });</div>
- <div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>(min(inV1.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0], inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0]),</div>
- <div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> min(inV1.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1], inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1]),</div>
- <div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> min(inV1.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2], inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2]));</div>
- <div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span>}</div>
- </div>
- <div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> </div>
- <div class="foldopen" id="foldopen00213" data-start="{" data-end="}">
- <div class="line"><a id="l00213" name="l00213"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a034bd1560d516612ff248c5b6eb5f245"> 213</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> <a class="code hl_function" href="class_d_vec3.html#a034bd1560d516612ff248c5b6eb5f245">DVec3::sMax</a>(<a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inV1, <a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inV2)</div>
- <div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span>{</div>
- <div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> <span class="keywordflow">return</span> _mm256_max_pd(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>);</div>
- <div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ _mm_max_pd(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow), _mm_max_pd(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh) });</div>
- <div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ vmaxq_f64(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0], inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0]), vmaxq_f64(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1], inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1]) });</div>
- <div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>(max(inV1.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0], inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0]),</div>
- <div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> max(inV1.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1], inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1]),</div>
- <div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> max(inV1.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2], inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2]));</div>
- <div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span>}</div>
- </div>
- <div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> </div>
- <div class="foldopen" id="foldopen00228" data-start="{" data-end="}">
- <div class="line"><a id="l00228" name="l00228"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a10e8bf45f37556208decfad2ff76de67"> 228</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> <a class="code hl_function" href="class_d_vec3.html#a10e8bf45f37556208decfad2ff76de67">DVec3::sClamp</a>(<a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inV, <a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inMin, <a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inMax)</div>
- <div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span>{</div>
- <div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a034bd1560d516612ff248c5b6eb5f245">sMax</a>(<a class="code hl_function" href="class_d_vec3.html#a110aacf67e0556aaf2fdad2e86578715">sMin</a>(inV, inMax), inMin);</div>
- <div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span>}</div>
- </div>
- <div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> </div>
- <div class="foldopen" id="foldopen00233" data-start="{" data-end="}">
- <div class="line"><a id="l00233" name="l00233"></a><span class="lineno"><a class="line" href="class_d_vec3.html#ae56eb5609346a7b025d1c6261baf54b7"> 233</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> <a class="code hl_function" href="class_d_vec3.html#ae56eb5609346a7b025d1c6261baf54b7">DVec3::sEquals</a>(<a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inV1, <a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inV2)</div>
- <div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span>{</div>
- <div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> <span class="keywordflow">return</span> _mm256_cmp_pd(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, _CMP_EQ_OQ);</div>
- <div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ _mm_cmpeq_pd(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow), _mm_cmpeq_pd(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh) });</div>
- <div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ vreinterpretq_f64_u64(vceqq_f64(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0], inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0])), vreinterpretq_f64_u64(vceqq_f64(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1], inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1])) });</div>
- <div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>(inV1.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0] == inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0]? <a class="code hl_variable" href="class_d_vec3.html#a85ae33d3486f8af0b5b95d79f99acc00">cTrue</a> : <a class="code hl_variable" href="class_d_vec3.html#afbee9e9a9f30370826e55f6c81ed9951">cFalse</a>,</div>
- <div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> inV1.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1] == inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1]? <a class="code hl_variable" href="class_d_vec3.html#a85ae33d3486f8af0b5b95d79f99acc00">cTrue</a> : <a class="code hl_variable" href="class_d_vec3.html#afbee9e9a9f30370826e55f6c81ed9951">cFalse</a>,</div>
- <div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> inV1.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2] == inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2]? <a class="code hl_variable" href="class_d_vec3.html#a85ae33d3486f8af0b5b95d79f99acc00">cTrue</a> : <a class="code hl_variable" href="class_d_vec3.html#afbee9e9a9f30370826e55f6c81ed9951">cFalse</a>);</div>
- <div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span>}</div>
- </div>
- <div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> </div>
- <div class="foldopen" id="foldopen00248" data-start="{" data-end="}">
- <div class="line"><a id="l00248" name="l00248"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a0055c9056c703cfb53e306a702843edb"> 248</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> <a class="code hl_function" href="class_d_vec3.html#a0055c9056c703cfb53e306a702843edb">DVec3::sLess</a>(<a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inV1, <a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inV2)</div>
- <div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span>{</div>
- <div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> <span class="keywordflow">return</span> _mm256_cmp_pd(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, _CMP_LT_OQ);</div>
- <div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ _mm_cmplt_pd(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow), _mm_cmplt_pd(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh) });</div>
- <div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ vreinterpretq_f64_u64(vcltq_f64(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0], inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0])), vreinterpretq_f64_u64(vcltq_f64(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1], inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1])) });</div>
- <div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>(inV1.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0] < inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0]? <a class="code hl_variable" href="class_d_vec3.html#a85ae33d3486f8af0b5b95d79f99acc00">cTrue</a> : <a class="code hl_variable" href="class_d_vec3.html#afbee9e9a9f30370826e55f6c81ed9951">cFalse</a>,</div>
- <div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> inV1.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1] < inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1]? <a class="code hl_variable" href="class_d_vec3.html#a85ae33d3486f8af0b5b95d79f99acc00">cTrue</a> : <a class="code hl_variable" href="class_d_vec3.html#afbee9e9a9f30370826e55f6c81ed9951">cFalse</a>,</div>
- <div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> inV1.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2] < inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2]? <a class="code hl_variable" href="class_d_vec3.html#a85ae33d3486f8af0b5b95d79f99acc00">cTrue</a> : <a class="code hl_variable" href="class_d_vec3.html#afbee9e9a9f30370826e55f6c81ed9951">cFalse</a>);</div>
- <div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span>}</div>
- </div>
- <div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> </div>
- <div class="foldopen" id="foldopen00263" data-start="{" data-end="}">
- <div class="line"><a id="l00263" name="l00263"></a><span class="lineno"><a class="line" href="class_d_vec3.html#aaf7417eac9dc51d1786a791ca94f4556"> 263</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> <a class="code hl_function" href="class_d_vec3.html#aaf7417eac9dc51d1786a791ca94f4556">DVec3::sLessOrEqual</a>(<a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inV1, <a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inV2)</div>
- <div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span>{</div>
- <div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> <span class="keywordflow">return</span> _mm256_cmp_pd(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, _CMP_LE_OQ);</div>
- <div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ _mm_cmple_pd(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow), _mm_cmple_pd(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh) });</div>
- <div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ vreinterpretq_f64_u64(vcleq_f64(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0], inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0])), vreinterpretq_f64_u64(vcleq_f64(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1], inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1])) });</div>
- <div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>(inV1.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0] <= inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0]? <a class="code hl_variable" href="class_d_vec3.html#a85ae33d3486f8af0b5b95d79f99acc00">cTrue</a> : <a class="code hl_variable" href="class_d_vec3.html#afbee9e9a9f30370826e55f6c81ed9951">cFalse</a>,</div>
- <div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> inV1.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1] <= inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1]? <a class="code hl_variable" href="class_d_vec3.html#a85ae33d3486f8af0b5b95d79f99acc00">cTrue</a> : <a class="code hl_variable" href="class_d_vec3.html#afbee9e9a9f30370826e55f6c81ed9951">cFalse</a>,</div>
- <div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> inV1.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2] <= inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2]? <a class="code hl_variable" href="class_d_vec3.html#a85ae33d3486f8af0b5b95d79f99acc00">cTrue</a> : <a class="code hl_variable" href="class_d_vec3.html#afbee9e9a9f30370826e55f6c81ed9951">cFalse</a>);</div>
- <div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span>}</div>
- </div>
- <div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> </div>
- <div class="foldopen" id="foldopen00278" data-start="{" data-end="}">
- <div class="line"><a id="l00278" name="l00278"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a60c87539167a77817e6298bd8cdb1386"> 278</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> <a class="code hl_function" href="class_d_vec3.html#a60c87539167a77817e6298bd8cdb1386">DVec3::sGreater</a>(<a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inV1, <a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inV2)</div>
- <div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span>{</div>
- <div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> <span class="keywordflow">return</span> _mm256_cmp_pd(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, _CMP_GT_OQ);</div>
- <div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ _mm_cmpgt_pd(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow), _mm_cmpgt_pd(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh) });</div>
- <div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ vreinterpretq_f64_u64(vcgtq_f64(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0], inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0])), vreinterpretq_f64_u64(vcgtq_f64(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1], inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1])) });</div>
- <div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>(inV1.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0] > inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0]? <a class="code hl_variable" href="class_d_vec3.html#a85ae33d3486f8af0b5b95d79f99acc00">cTrue</a> : <a class="code hl_variable" href="class_d_vec3.html#afbee9e9a9f30370826e55f6c81ed9951">cFalse</a>,</div>
- <div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> inV1.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1] > inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1]? <a class="code hl_variable" href="class_d_vec3.html#a85ae33d3486f8af0b5b95d79f99acc00">cTrue</a> : <a class="code hl_variable" href="class_d_vec3.html#afbee9e9a9f30370826e55f6c81ed9951">cFalse</a>,</div>
- <div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> inV1.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2] > inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2]? <a class="code hl_variable" href="class_d_vec3.html#a85ae33d3486f8af0b5b95d79f99acc00">cTrue</a> : <a class="code hl_variable" href="class_d_vec3.html#afbee9e9a9f30370826e55f6c81ed9951">cFalse</a>);</div>
- <div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span>}</div>
- </div>
- <div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> </div>
- <div class="foldopen" id="foldopen00293" data-start="{" data-end="}">
- <div class="line"><a id="l00293" name="l00293"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a382ba05ac29dcc57d91370768e3fc7de"> 293</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> <a class="code hl_function" href="class_d_vec3.html#a382ba05ac29dcc57d91370768e3fc7de">DVec3::sGreaterOrEqual</a>(<a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inV1, <a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inV2)</div>
- <div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span>{</div>
- <div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> <span class="keywordflow">return</span> _mm256_cmp_pd(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, _CMP_GE_OQ);</div>
- <div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ _mm_cmpge_pd(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow), _mm_cmpge_pd(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh) });</div>
- <div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ vreinterpretq_f64_u64(vcgeq_f64(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0], inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0])), vreinterpretq_f64_u64(vcgeq_f64(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1], inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1])) });</div>
- <div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>(inV1.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0] >= inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0]? <a class="code hl_variable" href="class_d_vec3.html#a85ae33d3486f8af0b5b95d79f99acc00">cTrue</a> : <a class="code hl_variable" href="class_d_vec3.html#afbee9e9a9f30370826e55f6c81ed9951">cFalse</a>,</div>
- <div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span> inV1.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1] >= inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1]? <a class="code hl_variable" href="class_d_vec3.html#a85ae33d3486f8af0b5b95d79f99acc00">cTrue</a> : <a class="code hl_variable" href="class_d_vec3.html#afbee9e9a9f30370826e55f6c81ed9951">cFalse</a>,</div>
- <div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> inV1.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2] >= inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2]? <a class="code hl_variable" href="class_d_vec3.html#a85ae33d3486f8af0b5b95d79f99acc00">cTrue</a> : <a class="code hl_variable" href="class_d_vec3.html#afbee9e9a9f30370826e55f6c81ed9951">cFalse</a>);</div>
- <div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span>}</div>
- </div>
- <div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span> </div>
- <div class="foldopen" id="foldopen00308" data-start="{" data-end="}">
- <div class="line"><a id="l00308" name="l00308"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a204c205724d5eda5fcbdd9b28d4180c1"> 308</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> <a class="code hl_function" href="class_d_vec3.html#a204c205724d5eda5fcbdd9b28d4180c1">DVec3::sFusedMultiplyAdd</a>(<a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inMul1, <a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inMul2, <a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inAdd)</div>
- <div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span>{</div>
- <div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span><span class="preprocessor"> #ifdef JPH_USE_FMADD</span></div>
- <div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span> <span class="keywordflow">return</span> _mm256_fmadd_pd(inMul1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, inMul2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, inAdd.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>);</div>
- <div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span><span class="preprocessor"> #else</span></div>
- <div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span> <span class="keywordflow">return</span> _mm256_add_pd(_mm256_mul_pd(inMul1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, inMul2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>), inAdd.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>);</div>
- <div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span><span class="preprocessor"> #endif</span></div>
- <div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ vmlaq_f64(inAdd.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0], inMul1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0], inMul2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0]), vmlaq_f64(inAdd.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1], inMul1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1], inMul2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1]) });</div>
- <div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span> <span class="keywordflow">return</span> inMul1 * inMul2 + inAdd;</div>
- <div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span>}</div>
- </div>
- <div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span> </div>
- <div class="foldopen" id="foldopen00323" data-start="{" data-end="}">
- <div class="line"><a id="l00323" name="l00323"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a5254009509d3ae00ad218d2c19253a99"> 323</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> <a class="code hl_function" href="class_d_vec3.html#a5254009509d3ae00ad218d2c19253a99">DVec3::sSelect</a>(<a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inNotSet, <a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inSet, <a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inControl)</div>
- <div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span>{</div>
- <div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span> <span class="keywordflow">return</span> _mm256_blendv_pd(inNotSet.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, inSet.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, inControl.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>);</div>
- <div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span><span class="preprocessor">#elif defined(JPH_USE_SSE4_1)</span></div>
- <div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span> <a class="code hl_typedef" href="class_d_vec3.html#ae955a8b286e5daaa80ca018afc4a2f92">Type</a> v = { _mm_blendv_pd(inNotSet.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow, inSet.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow, inControl.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow), _mm_blendv_pd(inNotSet.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh, inSet.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh, inControl.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh) };</div>
- <div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a2266a780190160ac4e0dd1747c496fa7">sFixW</a>(v);</div>
- <div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</span> <a class="code hl_typedef" href="class_d_vec3.html#ae955a8b286e5daaa80ca018afc4a2f92">Type</a> v = { vbslq_f64(vreinterpretq_u64_s64(vshrq_n_s64(vreinterpretq_s64_f64(inControl.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0]), 63)), inSet.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0], inNotSet.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0]),</div>
- <div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span> vbslq_f64(vreinterpretq_u64_s64(vshrq_n_s64(vreinterpretq_s64_f64(inControl.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1]), 63)), inSet.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1], inNotSet.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1]) };</div>
- <div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a2266a780190160ac4e0dd1747c496fa7">sFixW</a>(v);</div>
- <div class="line"><a id="l00334" name="l00334"></a><span class="lineno"> 334</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span> <a class="code hl_class" href="class_d_vec3.html">DVec3</a> result;</div>
- <div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < 3; i++)</div>
- <div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span> result.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[i] = (<a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<uint64></a>(inControl.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[i]) & (<a class="code hl_typedef" href="_core_8h.html#a60e8696a4678cd348e991a1f172e53f7">uint64</a>(1) << 63))? inSet.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[i] : inNotSet.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[i];</div>
- <div class="line"><a id="l00338" name="l00338"></a><span class="lineno"> 338</span><span class="preprocessor">#ifdef JPH_FLOATING_POINT_EXCEPTIONS_ENABLED</span></div>
- <div class="line"><a id="l00339" name="l00339"></a><span class="lineno"> 339</span> result.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[3] = result.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2];</div>
- <div class="line"><a id="l00340" name="l00340"></a><span class="lineno"> 340</span><span class="preprocessor">#endif </span><span class="comment">// JPH_FLOATING_POINT_EXCEPTIONS_ENABLED</span></div>
- <div class="line"><a id="l00341" name="l00341"></a><span class="lineno"> 341</span> <span class="keywordflow">return</span> result;</div>
- <div class="line"><a id="l00342" name="l00342"></a><span class="lineno"> 342</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00343" name="l00343"></a><span class="lineno"> 343</span>}</div>
- </div>
- <div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span> </div>
- <div class="foldopen" id="foldopen00345" data-start="{" data-end="}">
- <div class="line"><a id="l00345" name="l00345"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a7355bb9b4f08f3b419a9ff1d82356992"> 345</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> <a class="code hl_function" href="class_d_vec3.html#a7355bb9b4f08f3b419a9ff1d82356992">DVec3::sOr</a>(<a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inV1, <a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inV2)</div>
- <div class="line"><a id="l00346" name="l00346"></a><span class="lineno"> 346</span>{</div>
- <div class="line"><a id="l00347" name="l00347"></a><span class="lineno"> 347</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span> <span class="keywordflow">return</span> _mm256_or_pd(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>);</div>
- <div class="line"><a id="l00349" name="l00349"></a><span class="lineno"> 349</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00350" name="l00350"></a><span class="lineno"> 350</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ _mm_or_pd(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow), _mm_or_pd(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh) });</div>
- <div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00352" name="l00352"></a><span class="lineno"> 352</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ vreinterpretq_f64_u64(vorrq_u64(vreinterpretq_u64_f64(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0]), vreinterpretq_u64_f64(inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0]))),</div>
- <div class="line"><a id="l00353" name="l00353"></a><span class="lineno"> 353</span> vreinterpretq_f64_u64(vorrq_u64(vreinterpretq_u64_f64(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1]), vreinterpretq_u64_f64(inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1]))) });</div>
- <div class="line"><a id="l00354" name="l00354"></a><span class="lineno"> 354</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00355" name="l00355"></a><span class="lineno"> 355</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>(<a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<double></a>(<a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<uint64></a>(inV1.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0]) | <a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<uint64></a>(inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0])),</div>
- <div class="line"><a id="l00356" name="l00356"></a><span class="lineno"> 356</span> <a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<double></a>(<a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<uint64></a>(inV1.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1]) | <a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<uint64></a>(inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1])),</div>
- <div class="line"><a id="l00357" name="l00357"></a><span class="lineno"> 357</span> <a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<double></a>(<a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<uint64></a>(inV1.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2]) | <a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<uint64></a>(inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2])));</div>
- <div class="line"><a id="l00358" name="l00358"></a><span class="lineno"> 358</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00359" name="l00359"></a><span class="lineno"> 359</span>}</div>
- </div>
- <div class="line"><a id="l00360" name="l00360"></a><span class="lineno"> 360</span> </div>
- <div class="foldopen" id="foldopen00361" data-start="{" data-end="}">
- <div class="line"><a id="l00361" name="l00361"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a2f3ad4f64ebffb752360f19225186886"> 361</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> <a class="code hl_function" href="class_d_vec3.html#a2f3ad4f64ebffb752360f19225186886">DVec3::sXor</a>(<a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inV1, <a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inV2)</div>
- <div class="line"><a id="l00362" name="l00362"></a><span class="lineno"> 362</span>{</div>
- <div class="line"><a id="l00363" name="l00363"></a><span class="lineno"> 363</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00364" name="l00364"></a><span class="lineno"> 364</span> <span class="keywordflow">return</span> _mm256_xor_pd(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>);</div>
- <div class="line"><a id="l00365" name="l00365"></a><span class="lineno"> 365</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00366" name="l00366"></a><span class="lineno"> 366</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ _mm_xor_pd(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow), _mm_xor_pd(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh) });</div>
- <div class="line"><a id="l00367" name="l00367"></a><span class="lineno"> 367</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ vreinterpretq_f64_u64(veorq_u64(vreinterpretq_u64_f64(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0]), vreinterpretq_u64_f64(inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0]))),</div>
- <div class="line"><a id="l00369" name="l00369"></a><span class="lineno"> 369</span> vreinterpretq_f64_u64(veorq_u64(vreinterpretq_u64_f64(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1]), vreinterpretq_u64_f64(inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1]))) });</div>
- <div class="line"><a id="l00370" name="l00370"></a><span class="lineno"> 370</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00371" name="l00371"></a><span class="lineno"> 371</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>(<a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<double></a>(<a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<uint64></a>(inV1.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0]) ^ <a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<uint64></a>(inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0])),</div>
- <div class="line"><a id="l00372" name="l00372"></a><span class="lineno"> 372</span> <a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<double></a>(<a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<uint64></a>(inV1.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1]) ^ <a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<uint64></a>(inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1])),</div>
- <div class="line"><a id="l00373" name="l00373"></a><span class="lineno"> 373</span> <a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<double></a>(<a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<uint64></a>(inV1.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2]) ^ <a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<uint64></a>(inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2])));</div>
- <div class="line"><a id="l00374" name="l00374"></a><span class="lineno"> 374</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00375" name="l00375"></a><span class="lineno"> 375</span>}</div>
- </div>
- <div class="line"><a id="l00376" name="l00376"></a><span class="lineno"> 376</span> </div>
- <div class="foldopen" id="foldopen00377" data-start="{" data-end="}">
- <div class="line"><a id="l00377" name="l00377"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a1cc30fe9dbcd37737dab80818f790ae8"> 377</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> <a class="code hl_function" href="class_d_vec3.html#a1cc30fe9dbcd37737dab80818f790ae8">DVec3::sAnd</a>(<a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inV1, <a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inV2)</div>
- <div class="line"><a id="l00378" name="l00378"></a><span class="lineno"> 378</span>{</div>
- <div class="line"><a id="l00379" name="l00379"></a><span class="lineno"> 379</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00380" name="l00380"></a><span class="lineno"> 380</span> <span class="keywordflow">return</span> _mm256_and_pd(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>);</div>
- <div class="line"><a id="l00381" name="l00381"></a><span class="lineno"> 381</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00382" name="l00382"></a><span class="lineno"> 382</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ _mm_and_pd(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow), _mm_and_pd(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh) });</div>
- <div class="line"><a id="l00383" name="l00383"></a><span class="lineno"> 383</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00384" name="l00384"></a><span class="lineno"> 384</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ vreinterpretq_f64_u64(vandq_u64(vreinterpretq_u64_f64(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0]), vreinterpretq_u64_f64(inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0]))),</div>
- <div class="line"><a id="l00385" name="l00385"></a><span class="lineno"> 385</span> vreinterpretq_f64_u64(vandq_u64(vreinterpretq_u64_f64(inV1.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1]), vreinterpretq_u64_f64(inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1]))) });</div>
- <div class="line"><a id="l00386" name="l00386"></a><span class="lineno"> 386</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00387" name="l00387"></a><span class="lineno"> 387</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>(<a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<double></a>(<a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<uint64></a>(inV1.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0]) & <a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<uint64></a>(inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0])),</div>
- <div class="line"><a id="l00388" name="l00388"></a><span class="lineno"> 388</span> <a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<double></a>(<a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<uint64></a>(inV1.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1]) & <a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<uint64></a>(inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1])),</div>
- <div class="line"><a id="l00389" name="l00389"></a><span class="lineno"> 389</span> <a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<double></a>(<a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<uint64></a>(inV1.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2]) & <a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<uint64></a>(inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2])));</div>
- <div class="line"><a id="l00390" name="l00390"></a><span class="lineno"> 390</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00391" name="l00391"></a><span class="lineno"> 391</span>}</div>
- </div>
- <div class="line"><a id="l00392" name="l00392"></a><span class="lineno"> 392</span> </div>
- <div class="foldopen" id="foldopen00393" data-start="{" data-end="}">
- <div class="line"><a id="l00393" name="l00393"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a11971a6122b035009707efe51f5a1169"> 393</a></span><span class="keywordtype">int</span> <a class="code hl_function" href="class_d_vec3.html#a11971a6122b035009707efe51f5a1169">DVec3::GetTrues</a>()<span class="keyword"> const</span></div>
- <div class="line"><a id="l00394" name="l00394"></a><span class="lineno"> 394</span><span class="keyword"></span>{</div>
- <div class="line"><a id="l00395" name="l00395"></a><span class="lineno"> 395</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00396" name="l00396"></a><span class="lineno"> 396</span> <span class="keywordflow">return</span> _mm256_movemask_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>) & 0x7;</div>
- <div class="line"><a id="l00397" name="l00397"></a><span class="lineno"> 397</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00398" name="l00398"></a><span class="lineno"> 398</span> <span class="keywordflow">return</span> (_mm_movemask_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow) + (_mm_movemask_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh) << 2)) & 0x7;</div>
- <div class="line"><a id="l00399" name="l00399"></a><span class="lineno"> 399</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00400" name="l00400"></a><span class="lineno"> 400</span> <span class="keywordflow">return</span> int((<a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<uint64></a>(<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0]) >> 63) | ((<a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<uint64></a>(<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1]) >> 63) << 1) | ((<a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<uint64></a>(<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2]) >> 63) << 2));</div>
- <div class="line"><a id="l00401" name="l00401"></a><span class="lineno"> 401</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00402" name="l00402"></a><span class="lineno"> 402</span>}</div>
- </div>
- <div class="line"><a id="l00403" name="l00403"></a><span class="lineno"> 403</span> </div>
- <div class="foldopen" id="foldopen00404" data-start="{" data-end="}">
- <div class="line"><a id="l00404" name="l00404"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a0f06147fe78e9b54a1865579401fe97f"> 404</a></span><span class="keywordtype">bool</span> <a class="code hl_function" href="class_d_vec3.html#a0f06147fe78e9b54a1865579401fe97f">DVec3::TestAnyTrue</a>()<span class="keyword"> const</span></div>
- <div class="line"><a id="l00405" name="l00405"></a><span class="lineno"> 405</span><span class="keyword"></span>{</div>
- <div class="line"><a id="l00406" name="l00406"></a><span class="lineno"> 406</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a11971a6122b035009707efe51f5a1169">GetTrues</a>() != 0;</div>
- <div class="line"><a id="l00407" name="l00407"></a><span class="lineno"> 407</span>}</div>
- </div>
- <div class="line"><a id="l00408" name="l00408"></a><span class="lineno"> 408</span> </div>
- <div class="foldopen" id="foldopen00409" data-start="{" data-end="}">
- <div class="line"><a id="l00409" name="l00409"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a7c7ae9dc9ebecde0e653c872fd6aad58"> 409</a></span><span class="keywordtype">bool</span> <a class="code hl_function" href="class_d_vec3.html#a7c7ae9dc9ebecde0e653c872fd6aad58">DVec3::TestAllTrue</a>()<span class="keyword"> const</span></div>
- <div class="line"><a id="l00410" name="l00410"></a><span class="lineno"> 410</span><span class="keyword"></span>{</div>
- <div class="line"><a id="l00411" name="l00411"></a><span class="lineno"> 411</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a11971a6122b035009707efe51f5a1169">GetTrues</a>() == 0x7;</div>
- <div class="line"><a id="l00412" name="l00412"></a><span class="lineno"> 412</span>}</div>
- </div>
- <div class="line"><a id="l00413" name="l00413"></a><span class="lineno"> 413</span> </div>
- <div class="foldopen" id="foldopen00414" data-start="{" data-end="}">
- <div class="line"><a id="l00414" name="l00414"></a><span class="lineno"><a class="line" href="class_d_vec3.html#af9f3df26312b07df5e6ea770e250e5bf"> 414</a></span><span class="keywordtype">bool</span> <a class="code hl_function" href="class_d_vec3.html#af9f3df26312b07df5e6ea770e250e5bf">DVec3::operator == </a>(<a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inV2)<span class="keyword"> const</span></div>
- <div class="line"><a id="l00415" name="l00415"></a><span class="lineno"> 415</span><span class="keyword"></span>{</div>
- <div class="line"><a id="l00416" name="l00416"></a><span class="lineno"> 416</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#ae56eb5609346a7b025d1c6261baf54b7">sEquals</a>(*<span class="keyword">this</span>, inV2).<a class="code hl_function" href="class_d_vec3.html#a7c7ae9dc9ebecde0e653c872fd6aad58">TestAllTrue</a>();</div>
- <div class="line"><a id="l00417" name="l00417"></a><span class="lineno"> 417</span>}</div>
- </div>
- <div class="line"><a id="l00418" name="l00418"></a><span class="lineno"> 418</span> </div>
- <div class="foldopen" id="foldopen00419" data-start="{" data-end="}">
- <div class="line"><a id="l00419" name="l00419"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a4841bd14fcbce5a9a03edde10d9c6b30"> 419</a></span><span class="keywordtype">bool</span> <a class="code hl_function" href="class_d_vec3.html#a4841bd14fcbce5a9a03edde10d9c6b30">DVec3::IsClose</a>(<a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inV2, <span class="keywordtype">double</span> inMaxDistSq)<span class="keyword"> const</span></div>
- <div class="line"><a id="l00420" name="l00420"></a><span class="lineno"> 420</span><span class="keyword"></span>{</div>
- <div class="line"><a id="l00421" name="l00421"></a><span class="lineno"> 421</span> <span class="keywordflow">return</span> (inV2 - *<span class="keyword">this</span>).LengthSq() <= inMaxDistSq;</div>
- <div class="line"><a id="l00422" name="l00422"></a><span class="lineno"> 422</span>}</div>
- </div>
- <div class="line"><a id="l00423" name="l00423"></a><span class="lineno"> 423</span> </div>
- <div class="foldopen" id="foldopen00424" data-start="{" data-end="}">
- <div class="line"><a id="l00424" name="l00424"></a><span class="lineno"><a class="line" href="class_d_vec3.html#aed8a5c005467d9089c5e2397529a1c53"> 424</a></span><span class="keywordtype">bool</span> <a class="code hl_function" href="class_d_vec3.html#aed8a5c005467d9089c5e2397529a1c53">DVec3::IsNearZero</a>(<span class="keywordtype">double</span> inMaxDistSq)<span class="keyword"> const</span></div>
- <div class="line"><a id="l00425" name="l00425"></a><span class="lineno"> 425</span><span class="keyword"></span>{</div>
- <div class="line"><a id="l00426" name="l00426"></a><span class="lineno"> 426</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a95fe01b11cc216e8d718d1122392a018">LengthSq</a>() <= inMaxDistSq;</div>
- <div class="line"><a id="l00427" name="l00427"></a><span class="lineno"> 427</span>}</div>
- </div>
- <div class="line"><a id="l00428" name="l00428"></a><span class="lineno"> 428</span> </div>
- <div class="foldopen" id="foldopen00429" data-start="{" data-end="}">
- <div class="line"><a id="l00429" name="l00429"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a407ecd0e3be7e4f60cd02c4e47ef5adb"> 429</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> <a class="code hl_friend" href="class_d_vec3.html#a5eb373a1eec5f1e81d8523e6efeedcb3">DVec3::operator * </a>(<a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inV2)<span class="keyword"> const</span></div>
- <div class="line"><a id="l00430" name="l00430"></a><span class="lineno"> 430</span><span class="keyword"></span>{</div>
- <div class="line"><a id="l00431" name="l00431"></a><span class="lineno"> 431</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00432" name="l00432"></a><span class="lineno"> 432</span> <span class="keywordflow">return</span> _mm256_mul_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>);</div>
- <div class="line"><a id="l00433" name="l00433"></a><span class="lineno"> 433</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00434" name="l00434"></a><span class="lineno"> 434</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ _mm_mul_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow), _mm_mul_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh) });</div>
- <div class="line"><a id="l00435" name="l00435"></a><span class="lineno"> 435</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00436" name="l00436"></a><span class="lineno"> 436</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ vmulq_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0], inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0]), vmulq_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1], inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1]) });</div>
- <div class="line"><a id="l00437" name="l00437"></a><span class="lineno"> 437</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00438" name="l00438"></a><span class="lineno"> 438</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>(<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0] * inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0], <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1] * inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1], <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2] * inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2]);</div>
- <div class="line"><a id="l00439" name="l00439"></a><span class="lineno"> 439</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00440" name="l00440"></a><span class="lineno"> 440</span>}</div>
- </div>
- <div class="line"><a id="l00441" name="l00441"></a><span class="lineno"> 441</span> </div>
- <div class="foldopen" id="foldopen00442" data-start="{" data-end="}">
- <div class="line"><a id="l00442" name="l00442"></a><span class="lineno"><a class="line" href="class_d_vec3.html#af4b10fe57b6cb3e07ebd55c59054d213"> 442</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> <a class="code hl_friend" href="class_d_vec3.html#a5eb373a1eec5f1e81d8523e6efeedcb3">DVec3::operator * </a>(<span class="keywordtype">double</span> inV2)<span class="keyword"> const</span></div>
- <div class="line"><a id="l00443" name="l00443"></a><span class="lineno"> 443</span><span class="keyword"></span>{</div>
- <div class="line"><a id="l00444" name="l00444"></a><span class="lineno"> 444</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00445" name="l00445"></a><span class="lineno"> 445</span> <span class="keywordflow">return</span> _mm256_mul_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, _mm256_set1_pd(inV2));</div>
- <div class="line"><a id="l00446" name="l00446"></a><span class="lineno"> 446</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00447" name="l00447"></a><span class="lineno"> 447</span> __m128d v = _mm_set1_pd(inV2);</div>
- <div class="line"><a id="l00448" name="l00448"></a><span class="lineno"> 448</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ _mm_mul_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow, v), _mm_mul_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh, v) });</div>
- <div class="line"><a id="l00449" name="l00449"></a><span class="lineno"> 449</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00450" name="l00450"></a><span class="lineno"> 450</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ vmulq_n_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0], inV2), vmulq_n_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1], inV2) });</div>
- <div class="line"><a id="l00451" name="l00451"></a><span class="lineno"> 451</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00452" name="l00452"></a><span class="lineno"> 452</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>(<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0] * inV2, <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1] * inV2, <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2] * inV2);</div>
- <div class="line"><a id="l00453" name="l00453"></a><span class="lineno"> 453</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00454" name="l00454"></a><span class="lineno"> 454</span>}</div>
- </div>
- <div class="line"><a id="l00455" name="l00455"></a><span class="lineno"> 455</span> </div>
- <div class="foldopen" id="foldopen00456" data-start="{" data-end="};">
- <div class="line"><a id="l00456" name="l00456"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a5eb373a1eec5f1e81d8523e6efeedcb3"> 456</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> <a class="code hl_function" href="_d_vec3_8inl.html#a786dfc8f87f225995cb77bbf53c39244">operator * </a>(<span class="keywordtype">double</span> inV1, <a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inV2)</div>
- <div class="line"><a id="l00457" name="l00457"></a><span class="lineno"> 457</span>{</div>
- <div class="line"><a id="l00458" name="l00458"></a><span class="lineno"> 458</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00459" name="l00459"></a><span class="lineno"> 459</span> <span class="keywordflow">return</span> _mm256_mul_pd(_mm256_set1_pd(inV1), inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>);</div>
- <div class="line"><a id="l00460" name="l00460"></a><span class="lineno"> 460</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00461" name="l00461"></a><span class="lineno"> 461</span> __m128d v = _mm_set1_pd(inV1);</div>
- <div class="line"><a id="l00462" name="l00462"></a><span class="lineno"> 462</span> <span class="keywordflow">return</span> <a class="code hl_class" href="class_d_vec3.html">DVec3</a>({ _mm_mul_pd(v, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow), _mm_mul_pd(v, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh) });</div>
- <div class="line"><a id="l00463" name="l00463"></a><span class="lineno"> 463</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00464" name="l00464"></a><span class="lineno"> 464</span> <span class="keywordflow">return</span> <a class="code hl_class" href="class_d_vec3.html">DVec3</a>({ vmulq_n_f64(inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0], inV1), vmulq_n_f64(inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1], inV1) });</div>
- <div class="line"><a id="l00465" name="l00465"></a><span class="lineno"> 465</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00466" name="l00466"></a><span class="lineno"> 466</span> <span class="keywordflow">return</span> <a class="code hl_class" href="class_d_vec3.html">DVec3</a>(inV1 * inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0], inV1 * inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1], inV1 * inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2]);</div>
- <div class="line"><a id="l00467" name="l00467"></a><span class="lineno"> 467</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00468" name="l00468"></a><span class="lineno"> 468</span>}</div>
- </div>
- <div class="line"><a id="l00469" name="l00469"></a><span class="lineno"> 469</span> </div>
- <div class="foldopen" id="foldopen00470" data-start="{" data-end="}">
- <div class="line"><a id="l00470" name="l00470"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a98c87bc69aa4aaf5efff2f7371026213"> 470</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> <a class="code hl_function" href="class_d_vec3.html#a98c87bc69aa4aaf5efff2f7371026213">DVec3::operator / </a>(<span class="keywordtype">double</span> inV2)<span class="keyword"> const</span></div>
- <div class="line"><a id="l00471" name="l00471"></a><span class="lineno"> 471</span><span class="keyword"></span>{</div>
- <div class="line"><a id="l00472" name="l00472"></a><span class="lineno"> 472</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00473" name="l00473"></a><span class="lineno"> 473</span> <span class="keywordflow">return</span> _mm256_div_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, _mm256_set1_pd(inV2));</div>
- <div class="line"><a id="l00474" name="l00474"></a><span class="lineno"> 474</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00475" name="l00475"></a><span class="lineno"> 475</span> __m128d v = _mm_set1_pd(inV2);</div>
- <div class="line"><a id="l00476" name="l00476"></a><span class="lineno"> 476</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ _mm_div_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow, v), _mm_div_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh, v) });</div>
- <div class="line"><a id="l00477" name="l00477"></a><span class="lineno"> 477</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00478" name="l00478"></a><span class="lineno"> 478</span> float64x2_t v = vdupq_n_f64(inV2);</div>
- <div class="line"><a id="l00479" name="l00479"></a><span class="lineno"> 479</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ vdivq_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0], v), vdivq_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1], v) });</div>
- <div class="line"><a id="l00480" name="l00480"></a><span class="lineno"> 480</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00481" name="l00481"></a><span class="lineno"> 481</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>(<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0] / inV2, <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1] / inV2, <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2] / inV2);</div>
- <div class="line"><a id="l00482" name="l00482"></a><span class="lineno"> 482</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00483" name="l00483"></a><span class="lineno"> 483</span>}</div>
- </div>
- <div class="line"><a id="l00484" name="l00484"></a><span class="lineno"> 484</span> </div>
- <div class="foldopen" id="foldopen00485" data-start="{" data-end="}">
- <div class="line"><a id="l00485" name="l00485"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a1dc42bd495d9c8b63a856a1d516e4365"> 485</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> &<a class="code hl_function" href="class_d_vec3.html#a1dc42bd495d9c8b63a856a1d516e4365">DVec3::operator *= </a>(<span class="keywordtype">double</span> inV2)</div>
- <div class="line"><a id="l00486" name="l00486"></a><span class="lineno"> 486</span>{</div>
- <div class="line"><a id="l00487" name="l00487"></a><span class="lineno"> 487</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00488" name="l00488"></a><span class="lineno"> 488</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a> = _mm256_mul_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, _mm256_set1_pd(inV2));</div>
- <div class="line"><a id="l00489" name="l00489"></a><span class="lineno"> 489</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00490" name="l00490"></a><span class="lineno"> 490</span> __m128d v = _mm_set1_pd(inV2);</div>
- <div class="line"><a id="l00491" name="l00491"></a><span class="lineno"> 491</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow = _mm_mul_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow, v);</div>
- <div class="line"><a id="l00492" name="l00492"></a><span class="lineno"> 492</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh = _mm_mul_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh, v);</div>
- <div class="line"><a id="l00493" name="l00493"></a><span class="lineno"> 493</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00494" name="l00494"></a><span class="lineno"> 494</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0] = vmulq_n_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0], inV2);</div>
- <div class="line"><a id="l00495" name="l00495"></a><span class="lineno"> 495</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1] = vmulq_n_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1], inV2);</div>
- <div class="line"><a id="l00496" name="l00496"></a><span class="lineno"> 496</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00497" name="l00497"></a><span class="lineno"> 497</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < 3; ++i)</div>
- <div class="line"><a id="l00498" name="l00498"></a><span class="lineno"> 498</span> <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[i] *= inV2;</div>
- <div class="line"><a id="l00499" name="l00499"></a><span class="lineno"> 499</span><span class="preprocessor"> #ifdef JPH_FLOATING_POINT_EXCEPTIONS_ENABLED</span></div>
- <div class="line"><a id="l00500" name="l00500"></a><span class="lineno"> 500</span> <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[3] = <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2];</div>
- <div class="line"><a id="l00501" name="l00501"></a><span class="lineno"> 501</span><span class="preprocessor"> #endif</span></div>
- <div class="line"><a id="l00502" name="l00502"></a><span class="lineno"> 502</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00503" name="l00503"></a><span class="lineno"> 503</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
- <div class="line"><a id="l00504" name="l00504"></a><span class="lineno"> 504</span>}</div>
- </div>
- <div class="line"><a id="l00505" name="l00505"></a><span class="lineno"> 505</span> </div>
- <div class="foldopen" id="foldopen00506" data-start="{" data-end="}">
- <div class="line"><a id="l00506" name="l00506"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a9e5a82ae492dbea121d220ed21fbd503"> 506</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> &<a class="code hl_function" href="class_d_vec3.html#a1dc42bd495d9c8b63a856a1d516e4365">DVec3::operator *= </a>(<a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inV2)</div>
- <div class="line"><a id="l00507" name="l00507"></a><span class="lineno"> 507</span>{</div>
- <div class="line"><a id="l00508" name="l00508"></a><span class="lineno"> 508</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00509" name="l00509"></a><span class="lineno"> 509</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a> = _mm256_mul_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>);</div>
- <div class="line"><a id="l00510" name="l00510"></a><span class="lineno"> 510</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00511" name="l00511"></a><span class="lineno"> 511</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow = _mm_mul_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow);</div>
- <div class="line"><a id="l00512" name="l00512"></a><span class="lineno"> 512</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh = _mm_mul_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh);</div>
- <div class="line"><a id="l00513" name="l00513"></a><span class="lineno"> 513</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00514" name="l00514"></a><span class="lineno"> 514</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0] = vmulq_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0], inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0]);</div>
- <div class="line"><a id="l00515" name="l00515"></a><span class="lineno"> 515</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1] = vmulq_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1], inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1]);</div>
- <div class="line"><a id="l00516" name="l00516"></a><span class="lineno"> 516</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00517" name="l00517"></a><span class="lineno"> 517</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < 3; ++i)</div>
- <div class="line"><a id="l00518" name="l00518"></a><span class="lineno"> 518</span> <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[i] *= inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[i];</div>
- <div class="line"><a id="l00519" name="l00519"></a><span class="lineno"> 519</span><span class="preprocessor"> #ifdef JPH_FLOATING_POINT_EXCEPTIONS_ENABLED</span></div>
- <div class="line"><a id="l00520" name="l00520"></a><span class="lineno"> 520</span> <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[3] = <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2];</div>
- <div class="line"><a id="l00521" name="l00521"></a><span class="lineno"> 521</span><span class="preprocessor"> #endif</span></div>
- <div class="line"><a id="l00522" name="l00522"></a><span class="lineno"> 522</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00523" name="l00523"></a><span class="lineno"> 523</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
- <div class="line"><a id="l00524" name="l00524"></a><span class="lineno"> 524</span>}</div>
- </div>
- <div class="line"><a id="l00525" name="l00525"></a><span class="lineno"> 525</span> </div>
- <div class="foldopen" id="foldopen00526" data-start="{" data-end="}">
- <div class="line"><a id="l00526" name="l00526"></a><span class="lineno"><a class="line" href="class_d_vec3.html#ac4311882ae51a22074b22caa012fb600"> 526</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> &<a class="code hl_function" href="class_d_vec3.html#ac4311882ae51a22074b22caa012fb600">DVec3::operator /= </a>(<span class="keywordtype">double</span> inV2)</div>
- <div class="line"><a id="l00527" name="l00527"></a><span class="lineno"> 527</span>{</div>
- <div class="line"><a id="l00528" name="l00528"></a><span class="lineno"> 528</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00529" name="l00529"></a><span class="lineno"> 529</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a> = _mm256_div_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, _mm256_set1_pd(inV2));</div>
- <div class="line"><a id="l00530" name="l00530"></a><span class="lineno"> 530</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00531" name="l00531"></a><span class="lineno"> 531</span> __m128d v = _mm_set1_pd(inV2);</div>
- <div class="line"><a id="l00532" name="l00532"></a><span class="lineno"> 532</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow = _mm_div_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow, v);</div>
- <div class="line"><a id="l00533" name="l00533"></a><span class="lineno"> 533</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh = _mm_div_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh, v);</div>
- <div class="line"><a id="l00534" name="l00534"></a><span class="lineno"> 534</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00535" name="l00535"></a><span class="lineno"> 535</span> float64x2_t v = vdupq_n_f64(inV2);</div>
- <div class="line"><a id="l00536" name="l00536"></a><span class="lineno"> 536</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0] = vdivq_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0], v);</div>
- <div class="line"><a id="l00537" name="l00537"></a><span class="lineno"> 537</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1] = vdivq_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1], v);</div>
- <div class="line"><a id="l00538" name="l00538"></a><span class="lineno"> 538</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00539" name="l00539"></a><span class="lineno"> 539</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < 3; ++i)</div>
- <div class="line"><a id="l00540" name="l00540"></a><span class="lineno"> 540</span> <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[i] /= inV2;</div>
- <div class="line"><a id="l00541" name="l00541"></a><span class="lineno"> 541</span><span class="preprocessor"> #ifdef JPH_FLOATING_POINT_EXCEPTIONS_ENABLED</span></div>
- <div class="line"><a id="l00542" name="l00542"></a><span class="lineno"> 542</span> <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[3] = <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2];</div>
- <div class="line"><a id="l00543" name="l00543"></a><span class="lineno"> 543</span><span class="preprocessor"> #endif</span></div>
- <div class="line"><a id="l00544" name="l00544"></a><span class="lineno"> 544</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00545" name="l00545"></a><span class="lineno"> 545</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
- <div class="line"><a id="l00546" name="l00546"></a><span class="lineno"> 546</span>}</div>
- </div>
- <div class="line"><a id="l00547" name="l00547"></a><span class="lineno"> 547</span> </div>
- <div class="foldopen" id="foldopen00548" data-start="{" data-end="}">
- <div class="line"><a id="l00548" name="l00548"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a40e55c7777c00682e04610c67101d659"> 548</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> <a class="code hl_function" href="class_d_vec3.html#a40e55c7777c00682e04610c67101d659">DVec3::operator + </a>(<a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inV2)<span class="keyword"> const</span></div>
- <div class="line"><a id="l00549" name="l00549"></a><span class="lineno"> 549</span><span class="keyword"></span>{</div>
- <div class="line"><a id="l00550" name="l00550"></a><span class="lineno"> 550</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00551" name="l00551"></a><span class="lineno"> 551</span> <span class="keywordflow">return</span> _mm256_add_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, _mm256_cvtps_pd(inV2.<a class="code hl_variable" href="class_vec3.html#aa84e1ff8ea2e1cea4b73c7768966fa03">mValue</a>));</div>
- <div class="line"><a id="l00552" name="l00552"></a><span class="lineno"> 552</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00553" name="l00553"></a><span class="lineno"> 553</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ _mm_add_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow, _mm_cvtps_pd(inV2.<a class="code hl_variable" href="class_vec3.html#aa84e1ff8ea2e1cea4b73c7768966fa03">mValue</a>)), _mm_add_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh, _mm_cvtps_pd(_mm_shuffle_ps(inV2.<a class="code hl_variable" href="class_vec3.html#aa84e1ff8ea2e1cea4b73c7768966fa03">mValue</a>, inV2.<a class="code hl_variable" href="class_vec3.html#aa84e1ff8ea2e1cea4b73c7768966fa03">mValue</a>, _MM_SHUFFLE(2, 2, 2, 2)))) });</div>
- <div class="line"><a id="l00554" name="l00554"></a><span class="lineno"> 554</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00555" name="l00555"></a><span class="lineno"> 555</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ vaddq_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0], vcvt_f64_f32(vget_low_f32(inV2.<a class="code hl_variable" href="class_vec3.html#aa84e1ff8ea2e1cea4b73c7768966fa03">mValue</a>))), vaddq_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1], vcvt_high_f64_f32(inV2.<a class="code hl_variable" href="class_vec3.html#aa84e1ff8ea2e1cea4b73c7768966fa03">mValue</a>)) });</div>
- <div class="line"><a id="l00556" name="l00556"></a><span class="lineno"> 556</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00557" name="l00557"></a><span class="lineno"> 557</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>(<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0] + inV2.<a class="code hl_variable" href="class_vec3.html#aca3385f3736a2231ace7de3a558d2863">mF32</a>[0], <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1] + inV2.<a class="code hl_variable" href="class_vec3.html#aca3385f3736a2231ace7de3a558d2863">mF32</a>[1], <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2] + inV2.<a class="code hl_variable" href="class_vec3.html#aca3385f3736a2231ace7de3a558d2863">mF32</a>[2]);</div>
- <div class="line"><a id="l00558" name="l00558"></a><span class="lineno"> 558</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00559" name="l00559"></a><span class="lineno"> 559</span>}</div>
- </div>
- <div class="line"><a id="l00560" name="l00560"></a><span class="lineno"> 560</span> </div>
- <div class="foldopen" id="foldopen00561" data-start="{" data-end="}">
- <div class="line"><a id="l00561" name="l00561"></a><span class="lineno"><a class="line" href="class_d_vec3.html#ae931145b41d6b5db001e40bd014bb183"> 561</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> <a class="code hl_function" href="class_d_vec3.html#a40e55c7777c00682e04610c67101d659">DVec3::operator + </a>(<a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inV2)<span class="keyword"> const</span></div>
- <div class="line"><a id="l00562" name="l00562"></a><span class="lineno"> 562</span><span class="keyword"></span>{</div>
- <div class="line"><a id="l00563" name="l00563"></a><span class="lineno"> 563</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00564" name="l00564"></a><span class="lineno"> 564</span> <span class="keywordflow">return</span> _mm256_add_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>);</div>
- <div class="line"><a id="l00565" name="l00565"></a><span class="lineno"> 565</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00566" name="l00566"></a><span class="lineno"> 566</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ _mm_add_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow), _mm_add_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh) });</div>
- <div class="line"><a id="l00567" name="l00567"></a><span class="lineno"> 567</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00568" name="l00568"></a><span class="lineno"> 568</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ vaddq_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0], inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0]), vaddq_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1], inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1]) });</div>
- <div class="line"><a id="l00569" name="l00569"></a><span class="lineno"> 569</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00570" name="l00570"></a><span class="lineno"> 570</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>(<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0] + inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0], <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1] + inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1], <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2] + inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2]);</div>
- <div class="line"><a id="l00571" name="l00571"></a><span class="lineno"> 571</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00572" name="l00572"></a><span class="lineno"> 572</span>}</div>
- </div>
- <div class="line"><a id="l00573" name="l00573"></a><span class="lineno"> 573</span> </div>
- <div class="foldopen" id="foldopen00574" data-start="{" data-end="}">
- <div class="line"><a id="l00574" name="l00574"></a><span class="lineno"><a class="line" href="class_d_vec3.html#ac071add2c7d9a00bd3f4342198e5aca2"> 574</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> &<a class="code hl_function" href="class_d_vec3.html#ac071add2c7d9a00bd3f4342198e5aca2">DVec3::operator += </a>(<a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inV2)</div>
- <div class="line"><a id="l00575" name="l00575"></a><span class="lineno"> 575</span>{</div>
- <div class="line"><a id="l00576" name="l00576"></a><span class="lineno"> 576</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00577" name="l00577"></a><span class="lineno"> 577</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a> = _mm256_add_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, _mm256_cvtps_pd(inV2.<a class="code hl_variable" href="class_vec3.html#aa84e1ff8ea2e1cea4b73c7768966fa03">mValue</a>));</div>
- <div class="line"><a id="l00578" name="l00578"></a><span class="lineno"> 578</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00579" name="l00579"></a><span class="lineno"> 579</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow = _mm_add_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow, _mm_cvtps_pd(inV2.<a class="code hl_variable" href="class_vec3.html#aa84e1ff8ea2e1cea4b73c7768966fa03">mValue</a>));</div>
- <div class="line"><a id="l00580" name="l00580"></a><span class="lineno"> 580</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh = _mm_add_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh, _mm_cvtps_pd(_mm_shuffle_ps(inV2.<a class="code hl_variable" href="class_vec3.html#aa84e1ff8ea2e1cea4b73c7768966fa03">mValue</a>, inV2.<a class="code hl_variable" href="class_vec3.html#aa84e1ff8ea2e1cea4b73c7768966fa03">mValue</a>, _MM_SHUFFLE(2, 2, 2, 2))));</div>
- <div class="line"><a id="l00581" name="l00581"></a><span class="lineno"> 581</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00582" name="l00582"></a><span class="lineno"> 582</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0] = vaddq_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0], vcvt_f64_f32(vget_low_f32(inV2.<a class="code hl_variable" href="class_vec3.html#aa84e1ff8ea2e1cea4b73c7768966fa03">mValue</a>)));</div>
- <div class="line"><a id="l00583" name="l00583"></a><span class="lineno"> 583</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1] = vaddq_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1], vcvt_high_f64_f32(inV2.<a class="code hl_variable" href="class_vec3.html#aa84e1ff8ea2e1cea4b73c7768966fa03">mValue</a>));</div>
- <div class="line"><a id="l00584" name="l00584"></a><span class="lineno"> 584</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00585" name="l00585"></a><span class="lineno"> 585</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < 3; ++i)</div>
- <div class="line"><a id="l00586" name="l00586"></a><span class="lineno"> 586</span> <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[i] += inV2.<a class="code hl_variable" href="class_vec3.html#aca3385f3736a2231ace7de3a558d2863">mF32</a>[i];</div>
- <div class="line"><a id="l00587" name="l00587"></a><span class="lineno"> 587</span><span class="preprocessor"> #ifdef JPH_FLOATING_POINT_EXCEPTIONS_ENABLED</span></div>
- <div class="line"><a id="l00588" name="l00588"></a><span class="lineno"> 588</span> <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[3] = <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2];</div>
- <div class="line"><a id="l00589" name="l00589"></a><span class="lineno"> 589</span><span class="preprocessor"> #endif</span></div>
- <div class="line"><a id="l00590" name="l00590"></a><span class="lineno"> 590</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00591" name="l00591"></a><span class="lineno"> 591</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
- <div class="line"><a id="l00592" name="l00592"></a><span class="lineno"> 592</span>}</div>
- </div>
- <div class="line"><a id="l00593" name="l00593"></a><span class="lineno"> 593</span> </div>
- <div class="foldopen" id="foldopen00594" data-start="{" data-end="}">
- <div class="line"><a id="l00594" name="l00594"></a><span class="lineno"><a class="line" href="class_d_vec3.html#aebfafc1078630f38852907c0be0e4a76"> 594</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> &<a class="code hl_function" href="class_d_vec3.html#ac071add2c7d9a00bd3f4342198e5aca2">DVec3::operator += </a>(<a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inV2)</div>
- <div class="line"><a id="l00595" name="l00595"></a><span class="lineno"> 595</span>{</div>
- <div class="line"><a id="l00596" name="l00596"></a><span class="lineno"> 596</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00597" name="l00597"></a><span class="lineno"> 597</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a> = _mm256_add_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>);</div>
- <div class="line"><a id="l00598" name="l00598"></a><span class="lineno"> 598</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00599" name="l00599"></a><span class="lineno"> 599</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow = _mm_add_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow);</div>
- <div class="line"><a id="l00600" name="l00600"></a><span class="lineno"> 600</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh = _mm_add_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh);</div>
- <div class="line"><a id="l00601" name="l00601"></a><span class="lineno"> 601</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00602" name="l00602"></a><span class="lineno"> 602</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0] = vaddq_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0], inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0]);</div>
- <div class="line"><a id="l00603" name="l00603"></a><span class="lineno"> 603</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1] = vaddq_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1], inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1]);</div>
- <div class="line"><a id="l00604" name="l00604"></a><span class="lineno"> 604</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00605" name="l00605"></a><span class="lineno"> 605</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < 3; ++i)</div>
- <div class="line"><a id="l00606" name="l00606"></a><span class="lineno"> 606</span> <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[i] += inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[i];</div>
- <div class="line"><a id="l00607" name="l00607"></a><span class="lineno"> 607</span><span class="preprocessor"> #ifdef JPH_FLOATING_POINT_EXCEPTIONS_ENABLED</span></div>
- <div class="line"><a id="l00608" name="l00608"></a><span class="lineno"> 608</span> <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[3] = <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2];</div>
- <div class="line"><a id="l00609" name="l00609"></a><span class="lineno"> 609</span><span class="preprocessor"> #endif</span></div>
- <div class="line"><a id="l00610" name="l00610"></a><span class="lineno"> 610</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00611" name="l00611"></a><span class="lineno"> 611</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
- <div class="line"><a id="l00612" name="l00612"></a><span class="lineno"> 612</span>}</div>
- </div>
- <div class="line"><a id="l00613" name="l00613"></a><span class="lineno"> 613</span> </div>
- <div class="foldopen" id="foldopen00614" data-start="{" data-end="}">
- <div class="line"><a id="l00614" name="l00614"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a7e0f61fe354f1886485f0814a8881cd0"> 614</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> <a class="code hl_function" href="class_d_vec3.html#a7e0f61fe354f1886485f0814a8881cd0">DVec3::operator - </a>()<span class="keyword"> const</span></div>
- <div class="line"><a id="l00615" name="l00615"></a><span class="lineno"> 615</span><span class="keyword"></span>{</div>
- <div class="line"><a id="l00616" name="l00616"></a><span class="lineno"> 616</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00617" name="l00617"></a><span class="lineno"> 617</span> <span class="keywordflow">return</span> _mm256_sub_pd(_mm256_setzero_pd(), <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>);</div>
- <div class="line"><a id="l00618" name="l00618"></a><span class="lineno"> 618</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00619" name="l00619"></a><span class="lineno"> 619</span> __m128d zero = _mm_setzero_pd();</div>
- <div class="line"><a id="l00620" name="l00620"></a><span class="lineno"> 620</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ _mm_sub_pd(zero, <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow), _mm_sub_pd(zero, <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh) });</div>
- <div class="line"><a id="l00621" name="l00621"></a><span class="lineno"> 621</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00622" name="l00622"></a><span class="lineno"> 622</span><span class="preprocessor"> #ifdef JPH_CROSS_PLATFORM_DETERMINISTIC</span></div>
- <div class="line"><a id="l00623" name="l00623"></a><span class="lineno"> 623</span> float64x2_t zero = vdupq_n_f64(0);</div>
- <div class="line"><a id="l00624" name="l00624"></a><span class="lineno"> 624</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ vsubq_f64(zero, <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0]), vsubq_f64(zero, <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1]) });</div>
- <div class="line"><a id="l00625" name="l00625"></a><span class="lineno"> 625</span><span class="preprocessor"> #else</span></div>
- <div class="line"><a id="l00626" name="l00626"></a><span class="lineno"> 626</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ vnegq_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0]), vnegq_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1]) });</div>
- <div class="line"><a id="l00627" name="l00627"></a><span class="lineno"> 627</span><span class="preprocessor"> #endif</span></div>
- <div class="line"><a id="l00628" name="l00628"></a><span class="lineno"> 628</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00629" name="l00629"></a><span class="lineno"> 629</span><span class="preprocessor"> #ifdef JPH_CROSS_PLATFORM_DETERMINISTIC</span></div>
- <div class="line"><a id="l00630" name="l00630"></a><span class="lineno"> 630</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>(0.0 - <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0], 0.0 - <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1], 0.0 - <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2]);</div>
- <div class="line"><a id="l00631" name="l00631"></a><span class="lineno"> 631</span><span class="preprocessor"> #else</span></div>
- <div class="line"><a id="l00632" name="l00632"></a><span class="lineno"> 632</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>(-<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0], -<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1], -<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2]);</div>
- <div class="line"><a id="l00633" name="l00633"></a><span class="lineno"> 633</span><span class="preprocessor"> #endif</span></div>
- <div class="line"><a id="l00634" name="l00634"></a><span class="lineno"> 634</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00635" name="l00635"></a><span class="lineno"> 635</span>}</div>
- </div>
- <div class="line"><a id="l00636" name="l00636"></a><span class="lineno"> 636</span> </div>
- <div class="foldopen" id="foldopen00637" data-start="{" data-end="}">
- <div class="line"><a id="l00637" name="l00637"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a89b578e95bc0e6a1f97d28afc66256fd"> 637</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> <a class="code hl_function" href="class_d_vec3.html#a7e0f61fe354f1886485f0814a8881cd0">DVec3::operator - </a>(<a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inV2)<span class="keyword"> const</span></div>
- <div class="line"><a id="l00638" name="l00638"></a><span class="lineno"> 638</span><span class="keyword"></span>{</div>
- <div class="line"><a id="l00639" name="l00639"></a><span class="lineno"> 639</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00640" name="l00640"></a><span class="lineno"> 640</span> <span class="keywordflow">return</span> _mm256_sub_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, _mm256_cvtps_pd(inV2.<a class="code hl_variable" href="class_vec3.html#aa84e1ff8ea2e1cea4b73c7768966fa03">mValue</a>));</div>
- <div class="line"><a id="l00641" name="l00641"></a><span class="lineno"> 641</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00642" name="l00642"></a><span class="lineno"> 642</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ _mm_sub_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow, _mm_cvtps_pd(inV2.<a class="code hl_variable" href="class_vec3.html#aa84e1ff8ea2e1cea4b73c7768966fa03">mValue</a>)), _mm_sub_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh, _mm_cvtps_pd(_mm_shuffle_ps(inV2.<a class="code hl_variable" href="class_vec3.html#aa84e1ff8ea2e1cea4b73c7768966fa03">mValue</a>, inV2.<a class="code hl_variable" href="class_vec3.html#aa84e1ff8ea2e1cea4b73c7768966fa03">mValue</a>, _MM_SHUFFLE(2, 2, 2, 2)))) });</div>
- <div class="line"><a id="l00643" name="l00643"></a><span class="lineno"> 643</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00644" name="l00644"></a><span class="lineno"> 644</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ vsubq_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0], vcvt_f64_f32(vget_low_f32(inV2.<a class="code hl_variable" href="class_vec3.html#aa84e1ff8ea2e1cea4b73c7768966fa03">mValue</a>))), vsubq_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1], vcvt_high_f64_f32(inV2.<a class="code hl_variable" href="class_vec3.html#aa84e1ff8ea2e1cea4b73c7768966fa03">mValue</a>)) });</div>
- <div class="line"><a id="l00645" name="l00645"></a><span class="lineno"> 645</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00646" name="l00646"></a><span class="lineno"> 646</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>(<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0] - inV2.<a class="code hl_variable" href="class_vec3.html#aca3385f3736a2231ace7de3a558d2863">mF32</a>[0], <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1] - inV2.<a class="code hl_variable" href="class_vec3.html#aca3385f3736a2231ace7de3a558d2863">mF32</a>[1], <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2] - inV2.<a class="code hl_variable" href="class_vec3.html#aca3385f3736a2231ace7de3a558d2863">mF32</a>[2]);</div>
- <div class="line"><a id="l00647" name="l00647"></a><span class="lineno"> 647</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00648" name="l00648"></a><span class="lineno"> 648</span>}</div>
- </div>
- <div class="line"><a id="l00649" name="l00649"></a><span class="lineno"> 649</span> </div>
- <div class="foldopen" id="foldopen00650" data-start="{" data-end="}">
- <div class="line"><a id="l00650" name="l00650"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a4a2fd5bf39a1cad1a63913ee8f54dc9c"> 650</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> <a class="code hl_function" href="class_d_vec3.html#a7e0f61fe354f1886485f0814a8881cd0">DVec3::operator - </a>(<a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inV2)<span class="keyword"> const</span></div>
- <div class="line"><a id="l00651" name="l00651"></a><span class="lineno"> 651</span><span class="keyword"></span>{</div>
- <div class="line"><a id="l00652" name="l00652"></a><span class="lineno"> 652</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00653" name="l00653"></a><span class="lineno"> 653</span> <span class="keywordflow">return</span> _mm256_sub_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>);</div>
- <div class="line"><a id="l00654" name="l00654"></a><span class="lineno"> 654</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00655" name="l00655"></a><span class="lineno"> 655</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ _mm_sub_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow), _mm_sub_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh) });</div>
- <div class="line"><a id="l00656" name="l00656"></a><span class="lineno"> 656</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00657" name="l00657"></a><span class="lineno"> 657</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ vsubq_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0], inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0]), vsubq_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1], inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1]) });</div>
- <div class="line"><a id="l00658" name="l00658"></a><span class="lineno"> 658</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00659" name="l00659"></a><span class="lineno"> 659</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>(<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0] - inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0], <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1] - inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1], <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2] - inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2]);</div>
- <div class="line"><a id="l00660" name="l00660"></a><span class="lineno"> 660</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00661" name="l00661"></a><span class="lineno"> 661</span>}</div>
- </div>
- <div class="line"><a id="l00662" name="l00662"></a><span class="lineno"> 662</span> </div>
- <div class="foldopen" id="foldopen00663" data-start="{" data-end="}">
- <div class="line"><a id="l00663" name="l00663"></a><span class="lineno"><a class="line" href="class_d_vec3.html#adefdf792db358b7bc0f9259c3b685574"> 663</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> &<a class="code hl_function" href="class_d_vec3.html#adefdf792db358b7bc0f9259c3b685574">DVec3::operator -= </a>(<a class="code hl_class" href="class_vec3.html">Vec3Arg</a> inV2)</div>
- <div class="line"><a id="l00664" name="l00664"></a><span class="lineno"> 664</span>{</div>
- <div class="line"><a id="l00665" name="l00665"></a><span class="lineno"> 665</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00666" name="l00666"></a><span class="lineno"> 666</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a> = _mm256_sub_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, _mm256_cvtps_pd(inV2.<a class="code hl_variable" href="class_vec3.html#aa84e1ff8ea2e1cea4b73c7768966fa03">mValue</a>));</div>
- <div class="line"><a id="l00667" name="l00667"></a><span class="lineno"> 667</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00668" name="l00668"></a><span class="lineno"> 668</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow = _mm_sub_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow, _mm_cvtps_pd(inV2.<a class="code hl_variable" href="class_vec3.html#aa84e1ff8ea2e1cea4b73c7768966fa03">mValue</a>));</div>
- <div class="line"><a id="l00669" name="l00669"></a><span class="lineno"> 669</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh = _mm_sub_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh, _mm_cvtps_pd(_mm_shuffle_ps(inV2.<a class="code hl_variable" href="class_vec3.html#aa84e1ff8ea2e1cea4b73c7768966fa03">mValue</a>, inV2.<a class="code hl_variable" href="class_vec3.html#aa84e1ff8ea2e1cea4b73c7768966fa03">mValue</a>, _MM_SHUFFLE(2, 2, 2, 2))));</div>
- <div class="line"><a id="l00670" name="l00670"></a><span class="lineno"> 670</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00671" name="l00671"></a><span class="lineno"> 671</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0] = vsubq_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0], vcvt_f64_f32(vget_low_f32(inV2.<a class="code hl_variable" href="class_vec3.html#aa84e1ff8ea2e1cea4b73c7768966fa03">mValue</a>)));</div>
- <div class="line"><a id="l00672" name="l00672"></a><span class="lineno"> 672</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1] = vsubq_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1], vcvt_high_f64_f32(inV2.<a class="code hl_variable" href="class_vec3.html#aa84e1ff8ea2e1cea4b73c7768966fa03">mValue</a>));</div>
- <div class="line"><a id="l00673" name="l00673"></a><span class="lineno"> 673</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00674" name="l00674"></a><span class="lineno"> 674</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < 3; ++i)</div>
- <div class="line"><a id="l00675" name="l00675"></a><span class="lineno"> 675</span> <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[i] -= inV2.<a class="code hl_variable" href="class_vec3.html#aca3385f3736a2231ace7de3a558d2863">mF32</a>[i];</div>
- <div class="line"><a id="l00676" name="l00676"></a><span class="lineno"> 676</span><span class="preprocessor"> #ifdef JPH_FLOATING_POINT_EXCEPTIONS_ENABLED</span></div>
- <div class="line"><a id="l00677" name="l00677"></a><span class="lineno"> 677</span> <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[3] = <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2];</div>
- <div class="line"><a id="l00678" name="l00678"></a><span class="lineno"> 678</span><span class="preprocessor"> #endif</span></div>
- <div class="line"><a id="l00679" name="l00679"></a><span class="lineno"> 679</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00680" name="l00680"></a><span class="lineno"> 680</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
- <div class="line"><a id="l00681" name="l00681"></a><span class="lineno"> 681</span>}</div>
- </div>
- <div class="line"><a id="l00682" name="l00682"></a><span class="lineno"> 682</span> </div>
- <div class="foldopen" id="foldopen00683" data-start="{" data-end="}">
- <div class="line"><a id="l00683" name="l00683"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a9913eae45efd88f12df0d709d719e283"> 683</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> &<a class="code hl_function" href="class_d_vec3.html#adefdf792db358b7bc0f9259c3b685574">DVec3::operator -= </a>(<a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inV2)</div>
- <div class="line"><a id="l00684" name="l00684"></a><span class="lineno"> 684</span>{</div>
- <div class="line"><a id="l00685" name="l00685"></a><span class="lineno"> 685</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00686" name="l00686"></a><span class="lineno"> 686</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a> = _mm256_sub_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>);</div>
- <div class="line"><a id="l00687" name="l00687"></a><span class="lineno"> 687</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00688" name="l00688"></a><span class="lineno"> 688</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow = _mm_sub_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow);</div>
- <div class="line"><a id="l00689" name="l00689"></a><span class="lineno"> 689</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh = _mm_sub_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh);</div>
- <div class="line"><a id="l00690" name="l00690"></a><span class="lineno"> 690</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00691" name="l00691"></a><span class="lineno"> 691</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0] = vsubq_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0], inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0]);</div>
- <div class="line"><a id="l00692" name="l00692"></a><span class="lineno"> 692</span> <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1] = vsubq_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1], inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1]);</div>
- <div class="line"><a id="l00693" name="l00693"></a><span class="lineno"> 693</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00694" name="l00694"></a><span class="lineno"> 694</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < 3; ++i)</div>
- <div class="line"><a id="l00695" name="l00695"></a><span class="lineno"> 695</span> <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[i] -= inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[i];</div>
- <div class="line"><a id="l00696" name="l00696"></a><span class="lineno"> 696</span><span class="preprocessor"> #ifdef JPH_FLOATING_POINT_EXCEPTIONS_ENABLED</span></div>
- <div class="line"><a id="l00697" name="l00697"></a><span class="lineno"> 697</span> <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[3] = <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2];</div>
- <div class="line"><a id="l00698" name="l00698"></a><span class="lineno"> 698</span><span class="preprocessor"> #endif</span></div>
- <div class="line"><a id="l00699" name="l00699"></a><span class="lineno"> 699</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00700" name="l00700"></a><span class="lineno"> 700</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
- <div class="line"><a id="l00701" name="l00701"></a><span class="lineno"> 701</span>}</div>
- </div>
- <div class="line"><a id="l00702" name="l00702"></a><span class="lineno"> 702</span> </div>
- <div class="foldopen" id="foldopen00703" data-start="{" data-end="}">
- <div class="line"><a id="l00703" name="l00703"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a80844acdcc20d872097060f18a49dfae"> 703</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> <a class="code hl_function" href="class_d_vec3.html#a98c87bc69aa4aaf5efff2f7371026213">DVec3::operator / </a>(<a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inV2)<span class="keyword"> const</span></div>
- <div class="line"><a id="l00704" name="l00704"></a><span class="lineno"> 704</span><span class="keyword"></span>{</div>
- <div class="line"><a id="l00705" name="l00705"></a><span class="lineno"> 705</span> inV2.<a class="code hl_function" href="class_d_vec3.html#a95c9295adcf9cea2990be8d4c6b71891">CheckW</a>();</div>
- <div class="line"><a id="l00706" name="l00706"></a><span class="lineno"> 706</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00707" name="l00707"></a><span class="lineno"> 707</span> <span class="keywordflow">return</span> _mm256_div_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>);</div>
- <div class="line"><a id="l00708" name="l00708"></a><span class="lineno"> 708</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00709" name="l00709"></a><span class="lineno"> 709</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ _mm_div_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow), _mm_div_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh) });</div>
- <div class="line"><a id="l00710" name="l00710"></a><span class="lineno"> 710</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00711" name="l00711"></a><span class="lineno"> 711</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ vdivq_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0], inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0]), vdivq_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1], inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1]) });</div>
- <div class="line"><a id="l00712" name="l00712"></a><span class="lineno"> 712</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00713" name="l00713"></a><span class="lineno"> 713</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>(<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0] / inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0], <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1] / inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1], <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2] / inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2]);</div>
- <div class="line"><a id="l00714" name="l00714"></a><span class="lineno"> 714</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00715" name="l00715"></a><span class="lineno"> 715</span>}</div>
- </div>
- <div class="line"><a id="l00716" name="l00716"></a><span class="lineno"> 716</span> </div>
- <div class="foldopen" id="foldopen00717" data-start="{" data-end="}">
- <div class="line"><a id="l00717" name="l00717"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a1df9be6cc25048acd0c184f60535189b"> 717</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> <a class="code hl_function" href="class_d_vec3.html#a1df9be6cc25048acd0c184f60535189b">DVec3::Abs</a>()<span class="keyword"> const</span></div>
- <div class="line"><a id="l00718" name="l00718"></a><span class="lineno"> 718</span><span class="keyword"></span>{</div>
- <div class="line"><a id="l00719" name="l00719"></a><span class="lineno"> 719</span><span class="preprocessor">#if defined(JPH_USE_AVX512)</span></div>
- <div class="line"><a id="l00720" name="l00720"></a><span class="lineno"> 720</span> <span class="keywordflow">return</span> _mm256_range_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, 0b1000);</div>
- <div class="line"><a id="l00721" name="l00721"></a><span class="lineno"> 721</span><span class="preprocessor">#elif defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00722" name="l00722"></a><span class="lineno"> 722</span> <span class="keywordflow">return</span> _mm256_max_pd(_mm256_sub_pd(_mm256_setzero_pd(), <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>), <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>);</div>
- <div class="line"><a id="l00723" name="l00723"></a><span class="lineno"> 723</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00724" name="l00724"></a><span class="lineno"> 724</span> __m128d zero = _mm_setzero_pd();</div>
- <div class="line"><a id="l00725" name="l00725"></a><span class="lineno"> 725</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ _mm_max_pd(_mm_sub_pd(zero, <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow), <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow), _mm_max_pd(_mm_sub_pd(zero, <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh), <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh) });</div>
- <div class="line"><a id="l00726" name="l00726"></a><span class="lineno"> 726</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00727" name="l00727"></a><span class="lineno"> 727</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ vabsq_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0]), vabsq_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1]) });</div>
- <div class="line"><a id="l00728" name="l00728"></a><span class="lineno"> 728</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00729" name="l00729"></a><span class="lineno"> 729</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>(abs(<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0]), abs(<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1]), abs(<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2]));</div>
- <div class="line"><a id="l00730" name="l00730"></a><span class="lineno"> 730</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00731" name="l00731"></a><span class="lineno"> 731</span>}</div>
- </div>
- <div class="line"><a id="l00732" name="l00732"></a><span class="lineno"> 732</span> </div>
- <div class="foldopen" id="foldopen00733" data-start="{" data-end="}">
- <div class="line"><a id="l00733" name="l00733"></a><span class="lineno"><a class="line" href="class_d_vec3.html#ae4f3e3231039ea4fb254150a32a2b679"> 733</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> <a class="code hl_function" href="class_d_vec3.html#ae4f3e3231039ea4fb254150a32a2b679">DVec3::Reciprocal</a>()<span class="keyword"> const</span></div>
- <div class="line"><a id="l00734" name="l00734"></a><span class="lineno"> 734</span><span class="keyword"></span>{</div>
- <div class="line"><a id="l00735" name="l00735"></a><span class="lineno"> 735</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a35ef19e9f75acca4eae99f2849f347f9">sOne</a>() / <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>;</div>
- <div class="line"><a id="l00736" name="l00736"></a><span class="lineno"> 736</span>}</div>
- </div>
- <div class="line"><a id="l00737" name="l00737"></a><span class="lineno"> 737</span> </div>
- <div class="foldopen" id="foldopen00738" data-start="{" data-end="}">
- <div class="line"><a id="l00738" name="l00738"></a><span class="lineno"><a class="line" href="class_d_vec3.html#adcd2e18b680e40bbd4ac71c6b0463bd3"> 738</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> <a class="code hl_function" href="class_d_vec3.html#adcd2e18b680e40bbd4ac71c6b0463bd3">DVec3::Cross</a>(<a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inV2)<span class="keyword"> const</span></div>
- <div class="line"><a id="l00739" name="l00739"></a><span class="lineno"> 739</span><span class="keyword"></span>{</div>
- <div class="line"><a id="l00740" name="l00740"></a><span class="lineno"> 740</span><span class="preprocessor">#if defined(JPH_USE_AVX2)</span></div>
- <div class="line"><a id="l00741" name="l00741"></a><span class="lineno"> 741</span> __m256d t1 = _mm256_permute4x64_pd(inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, _MM_SHUFFLE(0, 0, 2, 1)); <span class="comment">// Assure Z and W are the same</span></div>
- <div class="line"><a id="l00742" name="l00742"></a><span class="lineno"> 742</span> t1 = _mm256_mul_pd(t1, <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>);</div>
- <div class="line"><a id="l00743" name="l00743"></a><span class="lineno"> 743</span> __m256d t2 = _mm256_permute4x64_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, _MM_SHUFFLE(0, 0, 2, 1)); <span class="comment">// Assure Z and W are the same</span></div>
- <div class="line"><a id="l00744" name="l00744"></a><span class="lineno"> 744</span> t2 = _mm256_mul_pd(t2, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>);</div>
- <div class="line"><a id="l00745" name="l00745"></a><span class="lineno"> 745</span> __m256d t3 = _mm256_sub_pd(t1, t2);</div>
- <div class="line"><a id="l00746" name="l00746"></a><span class="lineno"> 746</span> <span class="keywordflow">return</span> _mm256_permute4x64_pd(t3, _MM_SHUFFLE(0, 0, 2, 1)); <span class="comment">// Assure Z and W are the same</span></div>
- <div class="line"><a id="l00747" name="l00747"></a><span class="lineno"> 747</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00748" name="l00748"></a><span class="lineno"> 748</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>(<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1] * inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2] - <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2] * inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1],</div>
- <div class="line"><a id="l00749" name="l00749"></a><span class="lineno"> 749</span> <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2] * inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0] - <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0] * inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2],</div>
- <div class="line"><a id="l00750" name="l00750"></a><span class="lineno"> 750</span> <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0] * inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1] - <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1] * inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0]);</div>
- <div class="line"><a id="l00751" name="l00751"></a><span class="lineno"> 751</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00752" name="l00752"></a><span class="lineno"> 752</span>}</div>
- </div>
- <div class="line"><a id="l00753" name="l00753"></a><span class="lineno"> 753</span> </div>
- <div class="foldopen" id="foldopen00754" data-start="{" data-end="}">
- <div class="line"><a id="l00754" name="l00754"></a><span class="lineno"><a class="line" href="class_d_vec3.html#aa0634b13605c6233650f7ccac571be75"> 754</a></span><span class="keywordtype">double</span> <a class="code hl_function" href="class_d_vec3.html#aa0634b13605c6233650f7ccac571be75">DVec3::Dot</a>(<a class="code hl_class" href="class_d_vec3.html">DVec3Arg</a> inV2)<span class="keyword"> const</span></div>
- <div class="line"><a id="l00755" name="l00755"></a><span class="lineno"> 755</span><span class="keyword"></span>{</div>
- <div class="line"><a id="l00756" name="l00756"></a><span class="lineno"> 756</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00757" name="l00757"></a><span class="lineno"> 757</span> __m256d mul = _mm256_mul_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>);</div>
- <div class="line"><a id="l00758" name="l00758"></a><span class="lineno"> 758</span> __m128d xy = _mm256_castpd256_pd128(mul);</div>
- <div class="line"><a id="l00759" name="l00759"></a><span class="lineno"> 759</span> __m128d yx = _mm_shuffle_pd(xy, xy, 1);</div>
- <div class="line"><a id="l00760" name="l00760"></a><span class="lineno"> 760</span> __m128d sum = _mm_add_pd(xy, yx);</div>
- <div class="line"><a id="l00761" name="l00761"></a><span class="lineno"> 761</span> __m128d zw = _mm256_extractf128_pd(mul, 1);</div>
- <div class="line"><a id="l00762" name="l00762"></a><span class="lineno"> 762</span> sum = _mm_add_pd(sum, zw);</div>
- <div class="line"><a id="l00763" name="l00763"></a><span class="lineno"> 763</span> <span class="keywordflow">return</span> _mm_cvtsd_f64(sum);</div>
- <div class="line"><a id="l00764" name="l00764"></a><span class="lineno"> 764</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00765" name="l00765"></a><span class="lineno"> 765</span> __m128d xy = _mm_mul_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow);</div>
- <div class="line"><a id="l00766" name="l00766"></a><span class="lineno"> 766</span> __m128d yx = _mm_shuffle_pd(xy, xy, 1);</div>
- <div class="line"><a id="l00767" name="l00767"></a><span class="lineno"> 767</span> __m128d sum = _mm_add_pd(xy, yx);</div>
- <div class="line"><a id="l00768" name="l00768"></a><span class="lineno"> 768</span> __m128d z = _mm_mul_sd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh, inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh);</div>
- <div class="line"><a id="l00769" name="l00769"></a><span class="lineno"> 769</span> sum = _mm_add_pd(sum, z);</div>
- <div class="line"><a id="l00770" name="l00770"></a><span class="lineno"> 770</span> <span class="keywordflow">return</span> _mm_cvtsd_f64(sum);</div>
- <div class="line"><a id="l00771" name="l00771"></a><span class="lineno"> 771</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00772" name="l00772"></a><span class="lineno"> 772</span> float64x2_t mul_low = vmulq_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0], inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0]);</div>
- <div class="line"><a id="l00773" name="l00773"></a><span class="lineno"> 773</span> float64x2_t mul_high = vmulq_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1], inV2.<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1]);</div>
- <div class="line"><a id="l00774" name="l00774"></a><span class="lineno"> 774</span> <span class="keywordflow">return</span> vaddvq_f64(mul_low) + vgetq_lane_f64(mul_high, 0);</div>
- <div class="line"><a id="l00775" name="l00775"></a><span class="lineno"> 775</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00776" name="l00776"></a><span class="lineno"> 776</span> <span class="keywordtype">double</span> dot = 0.0;</div>
- <div class="line"><a id="l00777" name="l00777"></a><span class="lineno"> 777</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < 3; i++)</div>
- <div class="line"><a id="l00778" name="l00778"></a><span class="lineno"> 778</span> dot += <a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[i] * inV2.<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[i];</div>
- <div class="line"><a id="l00779" name="l00779"></a><span class="lineno"> 779</span> <span class="keywordflow">return</span> dot;</div>
- <div class="line"><a id="l00780" name="l00780"></a><span class="lineno"> 780</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00781" name="l00781"></a><span class="lineno"> 781</span>}</div>
- </div>
- <div class="line"><a id="l00782" name="l00782"></a><span class="lineno"> 782</span> </div>
- <div class="foldopen" id="foldopen00783" data-start="{" data-end="}">
- <div class="line"><a id="l00783" name="l00783"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a95fe01b11cc216e8d718d1122392a018"> 783</a></span><span class="keywordtype">double</span> <a class="code hl_function" href="class_d_vec3.html#a95fe01b11cc216e8d718d1122392a018">DVec3::LengthSq</a>()<span class="keyword"> const</span></div>
- <div class="line"><a id="l00784" name="l00784"></a><span class="lineno"> 784</span><span class="keyword"></span>{</div>
- <div class="line"><a id="l00785" name="l00785"></a><span class="lineno"> 785</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#aa0634b13605c6233650f7ccac571be75">Dot</a>(*<span class="keyword">this</span>);</div>
- <div class="line"><a id="l00786" name="l00786"></a><span class="lineno"> 786</span>}</div>
- </div>
- <div class="line"><a id="l00787" name="l00787"></a><span class="lineno"> 787</span> </div>
- <div class="foldopen" id="foldopen00788" data-start="{" data-end="}">
- <div class="line"><a id="l00788" name="l00788"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a286f436889f911c0fcf7f58692bb039d"> 788</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> <a class="code hl_function" href="class_d_vec3.html#a286f436889f911c0fcf7f58692bb039d">DVec3::Sqrt</a>()<span class="keyword"> const</span></div>
- <div class="line"><a id="l00789" name="l00789"></a><span class="lineno"> 789</span><span class="keyword"></span>{</div>
- <div class="line"><a id="l00790" name="l00790"></a><span class="lineno"> 790</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00791" name="l00791"></a><span class="lineno"> 791</span> <span class="keywordflow">return</span> _mm256_sqrt_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>);</div>
- <div class="line"><a id="l00792" name="l00792"></a><span class="lineno"> 792</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00793" name="l00793"></a><span class="lineno"> 793</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ _mm_sqrt_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow), _mm_sqrt_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh) });</div>
- <div class="line"><a id="l00794" name="l00794"></a><span class="lineno"> 794</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00795" name="l00795"></a><span class="lineno"> 795</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ vsqrtq_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0]), vsqrtq_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1]) });</div>
- <div class="line"><a id="l00796" name="l00796"></a><span class="lineno"> 796</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00797" name="l00797"></a><span class="lineno"> 797</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>(sqrt(<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0]), sqrt(<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1]), sqrt(<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2]));</div>
- <div class="line"><a id="l00798" name="l00798"></a><span class="lineno"> 798</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00799" name="l00799"></a><span class="lineno"> 799</span>}</div>
- </div>
- <div class="line"><a id="l00800" name="l00800"></a><span class="lineno"> 800</span> </div>
- <div class="foldopen" id="foldopen00801" data-start="{" data-end="}">
- <div class="line"><a id="l00801" name="l00801"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a7d1feb75db248b954ef774ee33e46014"> 801</a></span><span class="keywordtype">double</span> <a class="code hl_function" href="class_d_vec3.html#a7d1feb75db248b954ef774ee33e46014">DVec3::Length</a>()<span class="keyword"> const</span></div>
- <div class="line"><a id="l00802" name="l00802"></a><span class="lineno"> 802</span><span class="keyword"></span>{</div>
- <div class="line"><a id="l00803" name="l00803"></a><span class="lineno"> 803</span> <span class="keywordflow">return</span> sqrt(<a class="code hl_function" href="class_d_vec3.html#aa0634b13605c6233650f7ccac571be75">Dot</a>(*<span class="keyword">this</span>));</div>
- <div class="line"><a id="l00804" name="l00804"></a><span class="lineno"> 804</span>}</div>
- </div>
- <div class="line"><a id="l00805" name="l00805"></a><span class="lineno"> 805</span> </div>
- <div class="foldopen" id="foldopen00806" data-start="{" data-end="}">
- <div class="line"><a id="l00806" name="l00806"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a98414033d7ebc2af3b1e950f378a77b7"> 806</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> <a class="code hl_function" href="class_d_vec3.html#a98414033d7ebc2af3b1e950f378a77b7">DVec3::Normalized</a>()<span class="keyword"> const</span></div>
- <div class="line"><a id="l00807" name="l00807"></a><span class="lineno"> 807</span><span class="keyword"></span>{</div>
- <div class="line"><a id="l00808" name="l00808"></a><span class="lineno"> 808</span> <span class="keywordflow">return</span> *<span class="keyword">this</span> / <a class="code hl_function" href="class_d_vec3.html#a7d1feb75db248b954ef774ee33e46014">Length</a>();</div>
- <div class="line"><a id="l00809" name="l00809"></a><span class="lineno"> 809</span>}</div>
- </div>
- <div class="line"><a id="l00810" name="l00810"></a><span class="lineno"> 810</span> </div>
- <div class="foldopen" id="foldopen00811" data-start="{" data-end="}">
- <div class="line"><a id="l00811" name="l00811"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a4f71719e4f963c925c4981ea049c3f15"> 811</a></span><span class="keywordtype">bool</span> <a class="code hl_function" href="class_d_vec3.html#a4f71719e4f963c925c4981ea049c3f15">DVec3::IsNormalized</a>(<span class="keywordtype">double</span> inTolerance)<span class="keyword"> const</span></div>
- <div class="line"><a id="l00812" name="l00812"></a><span class="lineno"> 812</span><span class="keyword"></span>{</div>
- <div class="line"><a id="l00813" name="l00813"></a><span class="lineno"> 813</span> <span class="keywordflow">return</span> abs(<a class="code hl_function" href="class_d_vec3.html#a95fe01b11cc216e8d718d1122392a018">LengthSq</a>() - 1.0) <= inTolerance;</div>
- <div class="line"><a id="l00814" name="l00814"></a><span class="lineno"> 814</span>}</div>
- </div>
- <div class="line"><a id="l00815" name="l00815"></a><span class="lineno"> 815</span> </div>
- <div class="foldopen" id="foldopen00816" data-start="{" data-end="}">
- <div class="line"><a id="l00816" name="l00816"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a8215efb6695dc1ff3d1d3c6625bfb977"> 816</a></span><span class="keywordtype">bool</span> <a class="code hl_function" href="class_d_vec3.html#a8215efb6695dc1ff3d1d3c6625bfb977">DVec3::IsNaN</a>()<span class="keyword"> const</span></div>
- <div class="line"><a id="l00817" name="l00817"></a><span class="lineno"> 817</span><span class="keyword"></span>{</div>
- <div class="line"><a id="l00818" name="l00818"></a><span class="lineno"> 818</span><span class="preprocessor">#if defined(JPH_USE_AVX512)</span></div>
- <div class="line"><a id="l00819" name="l00819"></a><span class="lineno"> 819</span> <span class="keywordflow">return</span> (_mm256_fpclass_pd_mask(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, 0b10000001) & 0x7) != 0;</div>
- <div class="line"><a id="l00820" name="l00820"></a><span class="lineno"> 820</span><span class="preprocessor">#elif defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00821" name="l00821"></a><span class="lineno"> 821</span> <span class="keywordflow">return</span> (_mm256_movemask_pd(_mm256_cmp_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, _CMP_UNORD_Q)) & 0x7) != 0;</div>
- <div class="line"><a id="l00822" name="l00822"></a><span class="lineno"> 822</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00823" name="l00823"></a><span class="lineno"> 823</span> <span class="keywordflow">return</span> ((_mm_movemask_pd(_mm_cmpunord_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow, <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow)) + (_mm_movemask_pd(_mm_cmpunord_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh, <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh)) << 2)) & 0x7) != 0;</div>
- <div class="line"><a id="l00824" name="l00824"></a><span class="lineno"> 824</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00825" name="l00825"></a><span class="lineno"> 825</span> <span class="keywordflow">return</span> isnan(<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0]) || isnan(<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1]) || isnan(<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2]);</div>
- <div class="line"><a id="l00826" name="l00826"></a><span class="lineno"> 826</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00827" name="l00827"></a><span class="lineno"> 827</span>}</div>
- </div>
- <div class="line"><a id="l00828" name="l00828"></a><span class="lineno"> 828</span> </div>
- <div class="foldopen" id="foldopen00829" data-start="{" data-end="}">
- <div class="line"><a id="l00829" name="l00829"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a298f2bc29cc4d55a9f9d30a9512cada3"> 829</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> <a class="code hl_function" href="class_d_vec3.html#a298f2bc29cc4d55a9f9d30a9512cada3">DVec3::GetSign</a>()<span class="keyword"> const</span></div>
- <div class="line"><a id="l00830" name="l00830"></a><span class="lineno"> 830</span><span class="keyword"></span>{</div>
- <div class="line"><a id="l00831" name="l00831"></a><span class="lineno"> 831</span><span class="preprocessor">#if defined(JPH_USE_AVX512)</span></div>
- <div class="line"><a id="l00832" name="l00832"></a><span class="lineno"> 832</span> <span class="keywordflow">return</span> _mm256_fixupimm_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, _mm256_set1_epi32(0xA9A90A00), 0);</div>
- <div class="line"><a id="l00833" name="l00833"></a><span class="lineno"> 833</span><span class="preprocessor">#elif defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00834" name="l00834"></a><span class="lineno"> 834</span> __m256d minus_one = _mm256_set1_pd(-1.0);</div>
- <div class="line"><a id="l00835" name="l00835"></a><span class="lineno"> 835</span> __m256d one = _mm256_set1_pd(1.0);</div>
- <div class="line"><a id="l00836" name="l00836"></a><span class="lineno"> 836</span> <span class="keywordflow">return</span> _mm256_or_pd(_mm256_and_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, minus_one), one);</div>
- <div class="line"><a id="l00837" name="l00837"></a><span class="lineno"> 837</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00838" name="l00838"></a><span class="lineno"> 838</span> __m128d minus_one = _mm_set1_pd(-1.0);</div>
- <div class="line"><a id="l00839" name="l00839"></a><span class="lineno"> 839</span> __m128d one = _mm_set1_pd(1.0);</div>
- <div class="line"><a id="l00840" name="l00840"></a><span class="lineno"> 840</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ _mm_or_pd(_mm_and_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow, minus_one), one), _mm_or_pd(_mm_and_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh, minus_one), one) });</div>
- <div class="line"><a id="l00841" name="l00841"></a><span class="lineno"> 841</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00842" name="l00842"></a><span class="lineno"> 842</span> uint64x2_t minus_one = vreinterpretq_u64_f64(vdupq_n_f64(-1.0f));</div>
- <div class="line"><a id="l00843" name="l00843"></a><span class="lineno"> 843</span> uint64x2_t one = vreinterpretq_u64_f64(vdupq_n_f64(1.0f));</div>
- <div class="line"><a id="l00844" name="l00844"></a><span class="lineno"> 844</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ vreinterpretq_f64_u64(vorrq_u64(vandq_u64(vreinterpretq_u64_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0]), minus_one), one)),</div>
- <div class="line"><a id="l00845" name="l00845"></a><span class="lineno"> 845</span> vreinterpretq_f64_u64(vorrq_u64(vandq_u64(vreinterpretq_u64_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1]), minus_one), one)) });</div>
- <div class="line"><a id="l00846" name="l00846"></a><span class="lineno"> 846</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00847" name="l00847"></a><span class="lineno"> 847</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>(std::signbit(<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0])? -1.0 : 1.0,</div>
- <div class="line"><a id="l00848" name="l00848"></a><span class="lineno"> 848</span> std::signbit(<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1])? -1.0 : 1.0,</div>
- <div class="line"><a id="l00849" name="l00849"></a><span class="lineno"> 849</span> std::signbit(<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2])? -1.0 : 1.0);</div>
- <div class="line"><a id="l00850" name="l00850"></a><span class="lineno"> 850</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00851" name="l00851"></a><span class="lineno"> 851</span>}</div>
- </div>
- <div class="line"><a id="l00852" name="l00852"></a><span class="lineno"> 852</span> </div>
- <div class="foldopen" id="foldopen00853" data-start="{" data-end="}">
- <div class="line"><a id="l00853" name="l00853"></a><span class="lineno"><a class="line" href="class_d_vec3.html#ae4f056668680a0741aeda962d0dc794c"> 853</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> <a class="code hl_function" href="class_d_vec3.html#ae4f056668680a0741aeda962d0dc794c">DVec3::PrepareRoundToZero</a>()<span class="keyword"> const</span></div>
- <div class="line"><a id="l00854" name="l00854"></a><span class="lineno"> 854</span><span class="keyword"></span>{</div>
- <div class="line"><a id="l00855" name="l00855"></a><span class="lineno"> 855</span> <span class="comment">// Float has 23 bit mantissa, double 52 bit mantissa => we lose 29 bits when converting from double to float</span></div>
- <div class="line"><a id="l00856" name="l00856"></a><span class="lineno"> 856</span> <span class="keyword">constexpr</span> <a class="code hl_typedef" href="_core_8h.html#a60e8696a4678cd348e991a1f172e53f7">uint64</a> cDoubleToFloatMantissaLoss = (1U << 29) - 1;</div>
- <div class="line"><a id="l00857" name="l00857"></a><span class="lineno"> 857</span> </div>
- <div class="line"><a id="l00858" name="l00858"></a><span class="lineno"> 858</span><span class="preprocessor">#if defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00859" name="l00859"></a><span class="lineno"> 859</span> <span class="keywordflow">return</span> _mm256_and_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, _mm256_castsi256_pd(_mm256_set1_epi64x(int64_t(~cDoubleToFloatMantissaLoss))));</div>
- <div class="line"><a id="l00860" name="l00860"></a><span class="lineno"> 860</span><span class="preprocessor">#elif defined(JPH_USE_SSE)</span></div>
- <div class="line"><a id="l00861" name="l00861"></a><span class="lineno"> 861</span> __m128d mask = _mm_castsi128_pd(_mm_set1_epi64x(int64_t(~cDoubleToFloatMantissaLoss)));</div>
- <div class="line"><a id="l00862" name="l00862"></a><span class="lineno"> 862</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ _mm_and_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow, mask), _mm_and_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh, mask) });</div>
- <div class="line"><a id="l00863" name="l00863"></a><span class="lineno"> 863</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00864" name="l00864"></a><span class="lineno"> 864</span> uint64x2_t mask = vdupq_n_u64(~cDoubleToFloatMantissaLoss);</div>
- <div class="line"><a id="l00865" name="l00865"></a><span class="lineno"> 865</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ vreinterpretq_f64_u64(vandq_u64(vreinterpretq_u64_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0]), mask)),</div>
- <div class="line"><a id="l00866" name="l00866"></a><span class="lineno"> 866</span> vreinterpretq_f64_u64(vandq_u64(vreinterpretq_u64_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1]), mask)) });</div>
- <div class="line"><a id="l00867" name="l00867"></a><span class="lineno"> 867</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00868" name="l00868"></a><span class="lineno"> 868</span> <span class="keywordtype">double</span> x = <a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<double></a>(<a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<uint64></a>(<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0]) & ~cDoubleToFloatMantissaLoss);</div>
- <div class="line"><a id="l00869" name="l00869"></a><span class="lineno"> 869</span> <span class="keywordtype">double</span> y = <a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<double></a>(<a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<uint64></a>(<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1]) & ~cDoubleToFloatMantissaLoss);</div>
- <div class="line"><a id="l00870" name="l00870"></a><span class="lineno"> 870</span> <span class="keywordtype">double</span> z = <a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<double></a>(<a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<uint64></a>(<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2]) & ~cDoubleToFloatMantissaLoss);</div>
- <div class="line"><a id="l00871" name="l00871"></a><span class="lineno"> 871</span> </div>
- <div class="line"><a id="l00872" name="l00872"></a><span class="lineno"> 872</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>(x, y, z);</div>
- <div class="line"><a id="l00873" name="l00873"></a><span class="lineno"> 873</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00874" name="l00874"></a><span class="lineno"> 874</span>}</div>
- </div>
- <div class="line"><a id="l00875" name="l00875"></a><span class="lineno"> 875</span> </div>
- <div class="foldopen" id="foldopen00876" data-start="{" data-end="}">
- <div class="line"><a id="l00876" name="l00876"></a><span class="lineno"><a class="line" href="class_d_vec3.html#ab9a393f086d70f1a5a42e20a28f6278b"> 876</a></span><a class="code hl_class" href="class_d_vec3.html">DVec3</a> <a class="code hl_function" href="class_d_vec3.html#ab9a393f086d70f1a5a42e20a28f6278b">DVec3::PrepareRoundToInf</a>()<span class="keyword"> const</span></div>
- <div class="line"><a id="l00877" name="l00877"></a><span class="lineno"> 877</span><span class="keyword"></span>{</div>
- <div class="line"><a id="l00878" name="l00878"></a><span class="lineno"> 878</span> <span class="comment">// Float has 23 bit mantissa, double 52 bit mantissa => we lose 29 bits when converting from double to float</span></div>
- <div class="line"><a id="l00879" name="l00879"></a><span class="lineno"> 879</span> <span class="keyword">constexpr</span> <a class="code hl_typedef" href="_core_8h.html#a60e8696a4678cd348e991a1f172e53f7">uint64</a> cDoubleToFloatMantissaLoss = (1U << 29) - 1;</div>
- <div class="line"><a id="l00880" name="l00880"></a><span class="lineno"> 880</span> </div>
- <div class="line"><a id="l00881" name="l00881"></a><span class="lineno"> 881</span><span class="preprocessor">#if defined(JPH_USE_AVX512)</span></div>
- <div class="line"><a id="l00882" name="l00882"></a><span class="lineno"> 882</span> __m256i mantissa_loss = _mm256_set1_epi64x(cDoubleToFloatMantissaLoss);</div>
- <div class="line"><a id="l00883" name="l00883"></a><span class="lineno"> 883</span> __mmask8 is_zero = _mm256_testn_epi64_mask(_mm256_castpd_si256(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>), mantissa_loss);</div>
- <div class="line"><a id="l00884" name="l00884"></a><span class="lineno"> 884</span> __m256d value_or_mantissa_loss = _mm256_or_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, _mm256_castsi256_pd(mantissa_loss));</div>
- <div class="line"><a id="l00885" name="l00885"></a><span class="lineno"> 885</span> <span class="keywordflow">return</span> _mm256_mask_blend_pd(is_zero, value_or_mantissa_loss, <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>);</div>
- <div class="line"><a id="l00886" name="l00886"></a><span class="lineno"> 886</span><span class="preprocessor">#elif defined(JPH_USE_AVX)</span></div>
- <div class="line"><a id="l00887" name="l00887"></a><span class="lineno"> 887</span> __m256i mantissa_loss = _mm256_set1_epi64x(cDoubleToFloatMantissaLoss);</div>
- <div class="line"><a id="l00888" name="l00888"></a><span class="lineno"> 888</span> __m256d value_and_mantissa_loss = _mm256_and_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, _mm256_castsi256_pd(mantissa_loss));</div>
- <div class="line"><a id="l00889" name="l00889"></a><span class="lineno"> 889</span> __m256d is_zero = _mm256_cmp_pd(value_and_mantissa_loss, _mm256_setzero_pd(), _CMP_EQ_OQ);</div>
- <div class="line"><a id="l00890" name="l00890"></a><span class="lineno"> 890</span> __m256d value_or_mantissa_loss = _mm256_or_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, _mm256_castsi256_pd(mantissa_loss));</div>
- <div class="line"><a id="l00891" name="l00891"></a><span class="lineno"> 891</span> <span class="keywordflow">return</span> _mm256_blendv_pd(value_or_mantissa_loss, <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>, is_zero);</div>
- <div class="line"><a id="l00892" name="l00892"></a><span class="lineno"> 892</span><span class="preprocessor">#elif defined(JPH_USE_SSE4_1)</span></div>
- <div class="line"><a id="l00893" name="l00893"></a><span class="lineno"> 893</span> __m128i mantissa_loss = _mm_set1_epi64x(cDoubleToFloatMantissaLoss);</div>
- <div class="line"><a id="l00894" name="l00894"></a><span class="lineno"> 894</span> __m128d zero = _mm_setzero_pd();</div>
- <div class="line"><a id="l00895" name="l00895"></a><span class="lineno"> 895</span> __m128d value_and_mantissa_loss_low = _mm_and_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow, _mm_castsi128_pd(mantissa_loss));</div>
- <div class="line"><a id="l00896" name="l00896"></a><span class="lineno"> 896</span> __m128d is_zero_low = _mm_cmpeq_pd(value_and_mantissa_loss_low, zero);</div>
- <div class="line"><a id="l00897" name="l00897"></a><span class="lineno"> 897</span> __m128d value_or_mantissa_loss_low = _mm_or_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow, _mm_castsi128_pd(mantissa_loss));</div>
- <div class="line"><a id="l00898" name="l00898"></a><span class="lineno"> 898</span> __m128d value_and_mantissa_loss_high = _mm_and_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh, _mm_castsi128_pd(mantissa_loss));</div>
- <div class="line"><a id="l00899" name="l00899"></a><span class="lineno"> 899</span> __m128d is_zero_high = _mm_cmpeq_pd(value_and_mantissa_loss_high, zero);</div>
- <div class="line"><a id="l00900" name="l00900"></a><span class="lineno"> 900</span> __m128d value_or_mantissa_loss_high = _mm_or_pd(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh, _mm_castsi128_pd(mantissa_loss));</div>
- <div class="line"><a id="l00901" name="l00901"></a><span class="lineno"> 901</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ _mm_blendv_pd(value_or_mantissa_loss_low, <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mLow, is_zero_low), _mm_blendv_pd(value_or_mantissa_loss_high, <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.mHigh, is_zero_high) });</div>
- <div class="line"><a id="l00902" name="l00902"></a><span class="lineno"> 902</span><span class="preprocessor">#elif defined(JPH_USE_NEON)</span></div>
- <div class="line"><a id="l00903" name="l00903"></a><span class="lineno"> 903</span> uint64x2_t mantissa_loss = vdupq_n_u64(cDoubleToFloatMantissaLoss);</div>
- <div class="line"><a id="l00904" name="l00904"></a><span class="lineno"> 904</span> float64x2_t zero = vdupq_n_f64(0.0);</div>
- <div class="line"><a id="l00905" name="l00905"></a><span class="lineno"> 905</span> float64x2_t value_and_mantissa_loss_low = vreinterpretq_f64_u64(vandq_u64(vreinterpretq_u64_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0]), mantissa_loss));</div>
- <div class="line"><a id="l00906" name="l00906"></a><span class="lineno"> 906</span> uint64x2_t is_zero_low = vceqq_f64(value_and_mantissa_loss_low, zero);</div>
- <div class="line"><a id="l00907" name="l00907"></a><span class="lineno"> 907</span> float64x2_t value_or_mantissa_loss_low = vreinterpretq_f64_u64(vorrq_u64(vreinterpretq_u64_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0]), mantissa_loss));</div>
- <div class="line"><a id="l00908" name="l00908"></a><span class="lineno"> 908</span> float64x2_t value_and_mantissa_loss_high = vreinterpretq_f64_u64(vandq_u64(vreinterpretq_u64_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1]), mantissa_loss));</div>
- <div class="line"><a id="l00909" name="l00909"></a><span class="lineno"> 909</span> float64x2_t value_low = vbslq_f64(is_zero_low, <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[0], value_or_mantissa_loss_low);</div>
- <div class="line"><a id="l00910" name="l00910"></a><span class="lineno"> 910</span> uint64x2_t is_zero_high = vceqq_f64(value_and_mantissa_loss_high, zero);</div>
- <div class="line"><a id="l00911" name="l00911"></a><span class="lineno"> 911</span> float64x2_t value_or_mantissa_loss_high = vreinterpretq_f64_u64(vorrq_u64(vreinterpretq_u64_f64(<a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1]), mantissa_loss));</div>
- <div class="line"><a id="l00912" name="l00912"></a><span class="lineno"> 912</span> float64x2_t value_high = vbslq_f64(is_zero_high, <a class="code hl_variable" href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">mValue</a>.val[1], value_or_mantissa_loss_high);</div>
- <div class="line"><a id="l00913" name="l00913"></a><span class="lineno"> 913</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>({ value_low, value_high });</div>
- <div class="line"><a id="l00914" name="l00914"></a><span class="lineno"> 914</span><span class="preprocessor">#else</span></div>
- <div class="line"><a id="l00915" name="l00915"></a><span class="lineno"> 915</span> <a class="code hl_typedef" href="_core_8h.html#a60e8696a4678cd348e991a1f172e53f7">uint64</a> ux = <a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<uint64></a>(<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[0]);</div>
- <div class="line"><a id="l00916" name="l00916"></a><span class="lineno"> 916</span> <a class="code hl_typedef" href="_core_8h.html#a60e8696a4678cd348e991a1f172e53f7">uint64</a> uy = <a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<uint64></a>(<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[1]);</div>
- <div class="line"><a id="l00917" name="l00917"></a><span class="lineno"> 917</span> <a class="code hl_typedef" href="_core_8h.html#a60e8696a4678cd348e991a1f172e53f7">uint64</a> uz = <a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<uint64></a>(<a class="code hl_variable" href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">mF64</a>[2]);</div>
- <div class="line"><a id="l00918" name="l00918"></a><span class="lineno"> 918</span> </div>
- <div class="line"><a id="l00919" name="l00919"></a><span class="lineno"> 919</span> <span class="keywordtype">double</span> x = <a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<double></a>((ux & cDoubleToFloatMantissaLoss) == 0? ux : (ux | cDoubleToFloatMantissaLoss));</div>
- <div class="line"><a id="l00920" name="l00920"></a><span class="lineno"> 920</span> <span class="keywordtype">double</span> y = <a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<double></a>((uy & cDoubleToFloatMantissaLoss) == 0? uy : (uy | cDoubleToFloatMantissaLoss));</div>
- <div class="line"><a id="l00921" name="l00921"></a><span class="lineno"> 921</span> <span class="keywordtype">double</span> z = <a class="code hl_function" href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast<double></a>((uz & cDoubleToFloatMantissaLoss) == 0? uz : (uz | cDoubleToFloatMantissaLoss));</div>
- <div class="line"><a id="l00922" name="l00922"></a><span class="lineno"> 922</span> </div>
- <div class="line"><a id="l00923" name="l00923"></a><span class="lineno"> 923</span> <span class="keywordflow">return</span> <a class="code hl_function" href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3</a>(x, y, z);</div>
- <div class="line"><a id="l00924" name="l00924"></a><span class="lineno"> 924</span><span class="preprocessor">#endif</span></div>
- <div class="line"><a id="l00925" name="l00925"></a><span class="lineno"> 925</span>}</div>
- </div>
- <div class="line"><a id="l00926" name="l00926"></a><span class="lineno"> 926</span> </div>
- <div class="foldopen" id="foldopen00927" data-start="{" data-end="}">
- <div class="line"><a id="l00927" name="l00927"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a10a315fe487a61ec9fd93810a18477f5"> 927</a></span><a class="code hl_class" href="class_vec3.html">Vec3</a> <a class="code hl_function" href="class_d_vec3.html#a10a315fe487a61ec9fd93810a18477f5">DVec3::ToVec3RoundDown</a>()<span class="keyword"> const</span></div>
- <div class="line"><a id="l00928" name="l00928"></a><span class="lineno"> 928</span><span class="keyword"></span>{</div>
- <div class="line"><a id="l00929" name="l00929"></a><span class="lineno"> 929</span> <a class="code hl_class" href="class_d_vec3.html">DVec3</a> to_zero = <a class="code hl_function" href="class_d_vec3.html#ae4f056668680a0741aeda962d0dc794c">PrepareRoundToZero</a>();</div>
- <div class="line"><a id="l00930" name="l00930"></a><span class="lineno"> 930</span> <a class="code hl_class" href="class_d_vec3.html">DVec3</a> to_inf = <a class="code hl_function" href="class_d_vec3.html#ab9a393f086d70f1a5a42e20a28f6278b">PrepareRoundToInf</a>();</div>
- <div class="line"><a id="l00931" name="l00931"></a><span class="lineno"> 931</span> <span class="keywordflow">return</span> <a class="code hl_class" href="class_vec3.html">Vec3</a>(<a class="code hl_function" href="class_d_vec3.html#a5254009509d3ae00ad218d2c19253a99">DVec3::sSelect</a>(to_zero, to_inf, <a class="code hl_function" href="class_d_vec3.html#a0055c9056c703cfb53e306a702843edb">DVec3::sLess</a>(*<span class="keyword">this</span>, <a class="code hl_function" href="class_d_vec3.html#a7b43808613023c4439455b887c566246">DVec3::sZero</a>())));</div>
- <div class="line"><a id="l00932" name="l00932"></a><span class="lineno"> 932</span>}</div>
- </div>
- <div class="line"><a id="l00933" name="l00933"></a><span class="lineno"> 933</span> </div>
- <div class="foldopen" id="foldopen00934" data-start="{" data-end="}">
- <div class="line"><a id="l00934" name="l00934"></a><span class="lineno"><a class="line" href="class_d_vec3.html#a825111b9afec36c79cfc63fa855f5cb1"> 934</a></span><a class="code hl_class" href="class_vec3.html">Vec3</a> <a class="code hl_function" href="class_d_vec3.html#a825111b9afec36c79cfc63fa855f5cb1">DVec3::ToVec3RoundUp</a>()<span class="keyword"> const</span></div>
- <div class="line"><a id="l00935" name="l00935"></a><span class="lineno"> 935</span><span class="keyword"></span>{</div>
- <div class="line"><a id="l00936" name="l00936"></a><span class="lineno"> 936</span> <a class="code hl_class" href="class_d_vec3.html">DVec3</a> to_zero = <a class="code hl_function" href="class_d_vec3.html#ae4f056668680a0741aeda962d0dc794c">PrepareRoundToZero</a>();</div>
- <div class="line"><a id="l00937" name="l00937"></a><span class="lineno"> 937</span> <a class="code hl_class" href="class_d_vec3.html">DVec3</a> to_inf = <a class="code hl_function" href="class_d_vec3.html#ab9a393f086d70f1a5a42e20a28f6278b">PrepareRoundToInf</a>();</div>
- <div class="line"><a id="l00938" name="l00938"></a><span class="lineno"> 938</span> <span class="keywordflow">return</span> <a class="code hl_class" href="class_vec3.html">Vec3</a>(<a class="code hl_function" href="class_d_vec3.html#a5254009509d3ae00ad218d2c19253a99">DVec3::sSelect</a>(to_inf, to_zero, <a class="code hl_function" href="class_d_vec3.html#a0055c9056c703cfb53e306a702843edb">DVec3::sLess</a>(*<span class="keyword">this</span>, <a class="code hl_function" href="class_d_vec3.html#a7b43808613023c4439455b887c566246">DVec3::sZero</a>())));</div>
- <div class="line"><a id="l00939" name="l00939"></a><span class="lineno"> 939</span>}</div>
- </div>
- <div class="line"><a id="l00940" name="l00940"></a><span class="lineno"> 940</span> </div>
- <div class="line"><a id="l00941" name="l00941"></a><span class="lineno"> 941</span><a class="code hl_define" href="_core_8h.html#a73da8725998b00321a9db341202d650d">JPH_NAMESPACE_END</a></div>
- <div class="ttc" id="a_core_8h_html_a60e8696a4678cd348e991a1f172e53f7"><div class="ttname"><a href="_core_8h.html#a60e8696a4678cd348e991a1f172e53f7">uint64</a></div><div class="ttdeci">std::uint64_t uint64</div><div class="ttdef"><b>Definition</b> Core.h:504</div></div>
- <div class="ttc" id="a_core_8h_html_a73da8725998b00321a9db341202d650d"><div class="ttname"><a href="_core_8h.html#a73da8725998b00321a9db341202d650d">JPH_NAMESPACE_END</a></div><div class="ttdeci">#define JPH_NAMESPACE_END</div><div class="ttdef"><b>Definition</b> Core.h:425</div></div>
- <div class="ttc" id="a_core_8h_html_ad14098b68b8c44ea6112601031268405"><div class="ttname"><a href="_core_8h.html#ad14098b68b8c44ea6112601031268405">JPH_NAMESPACE_BEGIN</a></div><div class="ttdeci">#define JPH_NAMESPACE_BEGIN</div><div class="ttdef"><b>Definition</b> Core.h:419</div></div>
- <div class="ttc" id="a_d_vec3_8inl_html_a786dfc8f87f225995cb77bbf53c39244"><div class="ttname"><a href="_d_vec3_8inl.html#a786dfc8f87f225995cb77bbf53c39244">operator*</a></div><div class="ttdeci">DVec3 operator*(double inV1, DVec3Arg inV2)</div><div class="ttdef"><b>Definition</b> DVec3.inl:456</div></div>
- <div class="ttc" id="a_hash_combine_8h_html"><div class="ttname"><a href="_hash_combine_8h.html">HashCombine.h</a></div></div>
- <div class="ttc" id="a_hash_combine_8h_html_acb214eb23a4f6646330f74bc5f72c938"><div class="ttname"><a href="_hash_combine_8h.html#acb214eb23a4f6646330f74bc5f72c938">JPH_MAKE_HASHABLE</a></div><div class="ttdeci">#define JPH_MAKE_HASHABLE(type,...)</div><div class="ttdef"><b>Definition</b> HashCombine.h:223</div></div>
- <div class="ttc" id="a_issue_reporting_8h_html_aaf6b1df827e11b7ca5f6f8778bd8f8cd"><div class="ttname"><a href="_issue_reporting_8h.html#aaf6b1df827e11b7ca5f6f8778bd8f8cd">JPH_ASSERT</a></div><div class="ttdeci">#define JPH_ASSERT(...)</div><div class="ttdef"><b>Definition</b> IssueReporting.h:33</div></div>
- <div class="ttc" id="a_math_8h_html_ab2cbe30946edbf23887cfc1291025866"><div class="ttname"><a href="_math_8h.html#ab2cbe30946edbf23887cfc1291025866">BitCast</a></div><div class="ttdeci">JPH_INLINE To BitCast(const From &inValue)</div><div class="ttdef"><b>Definition</b> Math.h:192</div></div>
- <div class="ttc" id="aclass_d_vec3_html"><div class="ttname"><a href="class_d_vec3.html">DVec3</a></div><div class="ttdef"><b>Definition</b> DVec3.h:14</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a0055c9056c703cfb53e306a702843edb"><div class="ttname"><a href="class_d_vec3.html#a0055c9056c703cfb53e306a702843edb">DVec3::sLess</a></div><div class="ttdeci">static JPH_INLINE DVec3 sLess(DVec3Arg inV1, DVec3Arg inV2)</div><div class="ttdoc">Less than (component wise)</div><div class="ttdef"><b>Definition</b> DVec3.inl:248</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a02eda6f310f59ac7faf07b6b21de4fd5"><div class="ttname"><a href="class_d_vec3.html#a02eda6f310f59ac7faf07b6b21de4fd5">DVec3::mF64</a></div><div class="ttdeci">double mF64[4]</div><div class="ttdef"><b>Definition</b> DVec3.h:283</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a034bd1560d516612ff248c5b6eb5f245"><div class="ttname"><a href="class_d_vec3.html#a034bd1560d516612ff248c5b6eb5f245">DVec3::sMax</a></div><div class="ttdeci">static JPH_INLINE DVec3 sMax(DVec3Arg inV1, DVec3Arg inV2)</div><div class="ttdoc">Return the maximum of each of the components.</div><div class="ttdef"><b>Definition</b> DVec3.inl:213</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a0f06147fe78e9b54a1865579401fe97f"><div class="ttname"><a href="class_d_vec3.html#a0f06147fe78e9b54a1865579401fe97f">DVec3::TestAnyTrue</a></div><div class="ttdeci">JPH_INLINE bool TestAnyTrue() const</div><div class="ttdoc">Test if any of the components are true (true is when highest bit of component is set)</div><div class="ttdef"><b>Definition</b> DVec3.inl:404</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a10a315fe487a61ec9fd93810a18477f5"><div class="ttname"><a href="class_d_vec3.html#a10a315fe487a61ec9fd93810a18477f5">DVec3::ToVec3RoundDown</a></div><div class="ttdeci">JPH_INLINE Vec3 ToVec3RoundDown() const</div><div class="ttdoc">Convert to float vector 3 rounding down.</div><div class="ttdef"><b>Definition</b> DVec3.inl:927</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a10e8bf45f37556208decfad2ff76de67"><div class="ttname"><a href="class_d_vec3.html#a10e8bf45f37556208decfad2ff76de67">DVec3::sClamp</a></div><div class="ttdeci">static JPH_INLINE DVec3 sClamp(DVec3Arg inV, DVec3Arg inMin, DVec3Arg inMax)</div><div class="ttdoc">Clamp a vector between min and max (component wise)</div><div class="ttdef"><b>Definition</b> DVec3.inl:228</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a110aacf67e0556aaf2fdad2e86578715"><div class="ttname"><a href="class_d_vec3.html#a110aacf67e0556aaf2fdad2e86578715">DVec3::sMin</a></div><div class="ttdeci">static JPH_INLINE DVec3 sMin(DVec3Arg inV1, DVec3Arg inV2)</div><div class="ttdoc">Return the minimum value of each of the components.</div><div class="ttdef"><b>Definition</b> DVec3.inl:198</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a11971a6122b035009707efe51f5a1169"><div class="ttname"><a href="class_d_vec3.html#a11971a6122b035009707efe51f5a1169">DVec3::GetTrues</a></div><div class="ttdeci">JPH_INLINE int GetTrues() const</div><div class="ttdoc">Store if X is true in bit 0, Y in bit 1, Z in bit 2 and W in bit 3 (true is when highest bit of compo...</div><div class="ttdef"><b>Definition</b> DVec3.inl:393</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a1cc30fe9dbcd37737dab80818f790ae8"><div class="ttname"><a href="class_d_vec3.html#a1cc30fe9dbcd37737dab80818f790ae8">DVec3::sAnd</a></div><div class="ttdeci">static JPH_INLINE DVec3 sAnd(DVec3Arg inV1, DVec3Arg inV2)</div><div class="ttdoc">Logical and (component wise)</div><div class="ttdef"><b>Definition</b> DVec3.inl:377</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a1dc42bd495d9c8b63a856a1d516e4365"><div class="ttname"><a href="class_d_vec3.html#a1dc42bd495d9c8b63a856a1d516e4365">DVec3::operator*=</a></div><div class="ttdeci">JPH_INLINE DVec3 & operator*=(double inV2)</div><div class="ttdoc">Multiply vector with double.</div><div class="ttdef"><b>Definition</b> DVec3.inl:485</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a1df9be6cc25048acd0c184f60535189b"><div class="ttname"><a href="class_d_vec3.html#a1df9be6cc25048acd0c184f60535189b">DVec3::Abs</a></div><div class="ttdeci">JPH_INLINE DVec3 Abs() const</div><div class="ttdoc">Return the absolute value of each of the components.</div><div class="ttdef"><b>Definition</b> DVec3.inl:717</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a204c205724d5eda5fcbdd9b28d4180c1"><div class="ttname"><a href="class_d_vec3.html#a204c205724d5eda5fcbdd9b28d4180c1">DVec3::sFusedMultiplyAdd</a></div><div class="ttdeci">static JPH_INLINE DVec3 sFusedMultiplyAdd(DVec3Arg inMul1, DVec3Arg inMul2, DVec3Arg inAdd)</div><div class="ttdoc">Calculates inMul1 * inMul2 + inAdd.</div><div class="ttdef"><b>Definition</b> DVec3.inl:308</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a2266a780190160ac4e0dd1747c496fa7"><div class="ttname"><a href="class_d_vec3.html#a2266a780190160ac4e0dd1747c496fa7">DVec3::sFixW</a></div><div class="ttdeci">static JPH_INLINE Type sFixW(TypeArg inValue)</div><div class="ttdoc">Internal helper function that ensures that the Z component is replicated to the W component to preven...</div><div class="ttdef"><b>Definition</b> DVec3.inl:92</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a286f436889f911c0fcf7f58692bb039d"><div class="ttname"><a href="class_d_vec3.html#a286f436889f911c0fcf7f58692bb039d">DVec3::Sqrt</a></div><div class="ttdeci">JPH_INLINE DVec3 Sqrt() const</div><div class="ttdoc">Component wise square root.</div><div class="ttdef"><b>Definition</b> DVec3.inl:788</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a298f2bc29cc4d55a9f9d30a9512cada3"><div class="ttname"><a href="class_d_vec3.html#a298f2bc29cc4d55a9f9d30a9512cada3">DVec3::GetSign</a></div><div class="ttdeci">JPH_INLINE DVec3 GetSign() const</div><div class="ttdoc">Get vector that contains the sign of each element (returns 1 if positive, -1 if negative)</div><div class="ttdef"><b>Definition</b> DVec3.inl:829</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a2b0ef89bdfb754e256a43a9505075060"><div class="ttname"><a href="class_d_vec3.html#a2b0ef89bdfb754e256a43a9505075060">DVec3::mValue</a></div><div class="ttdeci">Type mValue</div><div class="ttdef"><b>Definition</b> DVec3.h:282</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a2f3ad4f64ebffb752360f19225186886"><div class="ttname"><a href="class_d_vec3.html#a2f3ad4f64ebffb752360f19225186886">DVec3::sXor</a></div><div class="ttdeci">static JPH_INLINE DVec3 sXor(DVec3Arg inV1, DVec3Arg inV2)</div><div class="ttdoc">Logical xor (component wise)</div><div class="ttdef"><b>Definition</b> DVec3.inl:361</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a35ef19e9f75acca4eae99f2849f347f9"><div class="ttname"><a href="class_d_vec3.html#a35ef19e9f75acca4eae99f2849f347f9">DVec3::sOne</a></div><div class="ttdeci">static JPH_INLINE DVec3 sOne()</div><div class="ttdoc">Vector with all ones.</div><div class="ttdef"><b>Definition</b> DVec3.inl:150</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a382ba05ac29dcc57d91370768e3fc7de"><div class="ttname"><a href="class_d_vec3.html#a382ba05ac29dcc57d91370768e3fc7de">DVec3::sGreaterOrEqual</a></div><div class="ttdeci">static JPH_INLINE DVec3 sGreaterOrEqual(DVec3Arg inV1, DVec3Arg inV2)</div><div class="ttdoc">Greater than or equal (component wise)</div><div class="ttdef"><b>Definition</b> DVec3.inl:293</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a40e55c7777c00682e04610c67101d659"><div class="ttname"><a href="class_d_vec3.html#a40e55c7777c00682e04610c67101d659">DVec3::operator+</a></div><div class="ttdeci">JPH_INLINE DVec3 operator+(Vec3Arg inV2) const</div><div class="ttdoc">Add two vectors (component wise)</div><div class="ttdef"><b>Definition</b> DVec3.inl:548</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a4841bd14fcbce5a9a03edde10d9c6b30"><div class="ttname"><a href="class_d_vec3.html#a4841bd14fcbce5a9a03edde10d9c6b30">DVec3::IsClose</a></div><div class="ttdeci">JPH_INLINE bool IsClose(DVec3Arg inV2, double inMaxDistSq=1.0e-24) const</div><div class="ttdoc">Test if two vectors are close.</div><div class="ttdef"><b>Definition</b> DVec3.inl:419</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a4f71719e4f963c925c4981ea049c3f15"><div class="ttname"><a href="class_d_vec3.html#a4f71719e4f963c925c4981ea049c3f15">DVec3::IsNormalized</a></div><div class="ttdeci">JPH_INLINE bool IsNormalized(double inTolerance=1.0e-12) const</div><div class="ttdoc">Test if vector is normalized.</div><div class="ttdef"><b>Definition</b> DVec3.inl:811</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a5254009509d3ae00ad218d2c19253a99"><div class="ttname"><a href="class_d_vec3.html#a5254009509d3ae00ad218d2c19253a99">DVec3::sSelect</a></div><div class="ttdeci">static JPH_INLINE DVec3 sSelect(DVec3Arg inNotSet, DVec3Arg inSet, DVec3Arg inControl)</div><div class="ttdoc">Component wise select, returns inNotSet when highest bit of inControl = 0 and inSet when highest bit ...</div><div class="ttdef"><b>Definition</b> DVec3.inl:323</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a534f0bd3a829454ca3f6c00d60068b27"><div class="ttname"><a href="class_d_vec3.html#a534f0bd3a829454ca3f6c00d60068b27">DVec3::TypeArg</a></div><div class="ttdeci">const Type & TypeArg</div><div class="ttdef"><b>Definition</b> DVec3.h:30</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a597fd4ed4cbf7af0c17bbd374afb4727"><div class="ttname"><a href="class_d_vec3.html#a597fd4ed4cbf7af0c17bbd374afb4727">DVec3::sNaN</a></div><div class="ttdeci">static JPH_INLINE DVec3 sNaN()</div><div class="ttdoc">Vector with all NaN's.</div><div class="ttdef"><b>Definition</b> DVec3.inl:155</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a5eb373a1eec5f1e81d8523e6efeedcb3"><div class="ttname"><a href="class_d_vec3.html#a5eb373a1eec5f1e81d8523e6efeedcb3">DVec3::operator*</a></div><div class="ttdeci">friend JPH_INLINE DVec3 operator*(double inV1, DVec3Arg inV2)</div><div class="ttdoc">Multiply vector with double.</div><div class="ttdef"><b>Definition</b> DVec3.inl:456</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a60c87539167a77817e6298bd8cdb1386"><div class="ttname"><a href="class_d_vec3.html#a60c87539167a77817e6298bd8cdb1386">DVec3::sGreater</a></div><div class="ttdeci">static JPH_INLINE DVec3 sGreater(DVec3Arg inV1, DVec3Arg inV2)</div><div class="ttdoc">Greater than (component wise)</div><div class="ttdef"><b>Definition</b> DVec3.inl:278</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a660cd286454202510b44fa18c2283d4d"><div class="ttname"><a href="class_d_vec3.html#a660cd286454202510b44fa18c2283d4d">DVec3::StoreDouble3</a></div><div class="ttdeci">JPH_INLINE void StoreDouble3(Double3 *outV) const</div><div class="ttdoc">Store 3 doubles to memory.</div><div class="ttdef"><b>Definition</b> DVec3.inl:176</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a7355bb9b4f08f3b419a9ff1d82356992"><div class="ttname"><a href="class_d_vec3.html#a7355bb9b4f08f3b419a9ff1d82356992">DVec3::sOr</a></div><div class="ttdeci">static JPH_INLINE DVec3 sOr(DVec3Arg inV1, DVec3Arg inV2)</div><div class="ttdoc">Logical or (component wise)</div><div class="ttdef"><b>Definition</b> DVec3.inl:345</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a7b43808613023c4439455b887c566246"><div class="ttname"><a href="class_d_vec3.html#a7b43808613023c4439455b887c566246">DVec3::sZero</a></div><div class="ttdeci">static JPH_INLINE DVec3 sZero()</div><div class="ttdoc">Vector with all zeros.</div><div class="ttdef"><b>Definition</b> DVec3.inl:120</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a7c7ae9dc9ebecde0e653c872fd6aad58"><div class="ttname"><a href="class_d_vec3.html#a7c7ae9dc9ebecde0e653c872fd6aad58">DVec3::TestAllTrue</a></div><div class="ttdeci">JPH_INLINE bool TestAllTrue() const</div><div class="ttdoc">Test if all components are true (true is when highest bit of component is set)</div><div class="ttdef"><b>Definition</b> DVec3.inl:409</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a7d1feb75db248b954ef774ee33e46014"><div class="ttname"><a href="class_d_vec3.html#a7d1feb75db248b954ef774ee33e46014">DVec3::Length</a></div><div class="ttdeci">JPH_INLINE double Length() const</div><div class="ttdoc">Length of vector.</div><div class="ttdef"><b>Definition</b> DVec3.inl:801</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a7e0f61fe354f1886485f0814a8881cd0"><div class="ttname"><a href="class_d_vec3.html#a7e0f61fe354f1886485f0814a8881cd0">DVec3::operator-</a></div><div class="ttdeci">JPH_INLINE DVec3 operator-() const</div><div class="ttdoc">Negate.</div><div class="ttdef"><b>Definition</b> DVec3.inl:614</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a8215efb6695dc1ff3d1d3c6625bfb977"><div class="ttname"><a href="class_d_vec3.html#a8215efb6695dc1ff3d1d3c6625bfb977">DVec3::IsNaN</a></div><div class="ttdeci">JPH_INLINE bool IsNaN() const</div><div class="ttdoc">Test if vector contains NaN elements.</div><div class="ttdef"><b>Definition</b> DVec3.inl:816</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a825111b9afec36c79cfc63fa855f5cb1"><div class="ttname"><a href="class_d_vec3.html#a825111b9afec36c79cfc63fa855f5cb1">DVec3::ToVec3RoundUp</a></div><div class="ttdeci">JPH_INLINE Vec3 ToVec3RoundUp() const</div><div class="ttdoc">Convert to float vector 3 rounding up.</div><div class="ttdef"><b>Definition</b> DVec3.inl:934</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a85ae33d3486f8af0b5b95d79f99acc00"><div class="ttname"><a href="class_d_vec3.html#a85ae33d3486f8af0b5b95d79f99acc00">DVec3::cTrue</a></div><div class="ttdeci">static const double cTrue</div><div class="ttdoc">Representations of true and false for boolean operations.</div><div class="ttdef"><b>Definition</b> DVec3.h:277</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a8dee0ba62485a3b2fe924f1fa582c269"><div class="ttname"><a href="class_d_vec3.html#a8dee0ba62485a3b2fe924f1fa582c269">DVec3::DVec3</a></div><div class="ttdeci">DVec3()=default</div><div class="ttdoc">Constructor.</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a95c9295adcf9cea2990be8d4c6b71891"><div class="ttname"><a href="class_d_vec3.html#a95c9295adcf9cea2990be8d4c6b71891">DVec3::CheckW</a></div><div class="ttdeci">JPH_INLINE void CheckW() const</div><div class="ttdoc">Internal helper function that checks that W is equal to Z, so e.g. dividing by it should not generate...</div><div class="ttdef"><b>Definition</b> DVec3.inl:83</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a95fe01b11cc216e8d718d1122392a018"><div class="ttname"><a href="class_d_vec3.html#a95fe01b11cc216e8d718d1122392a018">DVec3::LengthSq</a></div><div class="ttdeci">JPH_INLINE double LengthSq() const</div><div class="ttdoc">Squared length of vector.</div><div class="ttdef"><b>Definition</b> DVec3.inl:783</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a98414033d7ebc2af3b1e950f378a77b7"><div class="ttname"><a href="class_d_vec3.html#a98414033d7ebc2af3b1e950f378a77b7">DVec3::Normalized</a></div><div class="ttdeci">JPH_INLINE DVec3 Normalized() const</div><div class="ttdoc">Normalize vector.</div><div class="ttdef"><b>Definition</b> DVec3.inl:806</div></div>
- <div class="ttc" id="aclass_d_vec3_html_a98c87bc69aa4aaf5efff2f7371026213"><div class="ttname"><a href="class_d_vec3.html#a98c87bc69aa4aaf5efff2f7371026213">DVec3::operator/</a></div><div class="ttdeci">JPH_INLINE DVec3 operator/(double inV2) const</div><div class="ttdoc">Divide vector by double.</div><div class="ttdef"><b>Definition</b> DVec3.inl:470</div></div>
- <div class="ttc" id="aclass_d_vec3_html_aa0634b13605c6233650f7ccac571be75"><div class="ttname"><a href="class_d_vec3.html#aa0634b13605c6233650f7ccac571be75">DVec3::Dot</a></div><div class="ttdeci">JPH_INLINE double Dot(DVec3Arg inV2) const</div><div class="ttdoc">Dot product.</div><div class="ttdef"><b>Definition</b> DVec3.inl:754</div></div>
- <div class="ttc" id="aclass_d_vec3_html_aacd317439be46d73edb9c0272b9445d6"><div class="ttname"><a href="class_d_vec3.html#aacd317439be46d73edb9c0272b9445d6">DVec3::sReplicate</a></div><div class="ttdeci">static JPH_INLINE DVec3 sReplicate(double inV)</div><div class="ttdoc">Replicate inV across all components.</div><div class="ttdef"><b>Definition</b> DVec3.inl:135</div></div>
- <div class="ttc" id="aclass_d_vec3_html_aaf7417eac9dc51d1786a791ca94f4556"><div class="ttname"><a href="class_d_vec3.html#aaf7417eac9dc51d1786a791ca94f4556">DVec3::sLessOrEqual</a></div><div class="ttdeci">static JPH_INLINE DVec3 sLessOrEqual(DVec3Arg inV1, DVec3Arg inV2)</div><div class="ttdoc">Less than or equal (component wise)</div><div class="ttdef"><b>Definition</b> DVec3.inl:263</div></div>
- <div class="ttc" id="aclass_d_vec3_html_ab9a393f086d70f1a5a42e20a28f6278b"><div class="ttname"><a href="class_d_vec3.html#ab9a393f086d70f1a5a42e20a28f6278b">DVec3::PrepareRoundToInf</a></div><div class="ttdeci">JPH_INLINE DVec3 PrepareRoundToInf() const</div><div class="ttdoc">Prepare to convert to float vector 3 rounding towards positive/negative inf (returns DVec3 that can b...</div><div class="ttdef"><b>Definition</b> DVec3.inl:876</div></div>
- <div class="ttc" id="aclass_d_vec3_html_ac071add2c7d9a00bd3f4342198e5aca2"><div class="ttname"><a href="class_d_vec3.html#ac071add2c7d9a00bd3f4342198e5aca2">DVec3::operator+=</a></div><div class="ttdeci">JPH_INLINE DVec3 & operator+=(Vec3Arg inV2)</div><div class="ttdoc">Add two vectors (component wise)</div><div class="ttdef"><b>Definition</b> DVec3.inl:574</div></div>
- <div class="ttc" id="aclass_d_vec3_html_ac19d415377cf91a317d29cc99d319134"><div class="ttname"><a href="class_d_vec3.html#ac19d415377cf91a317d29cc99d319134">DVec3::sLoadDouble3Unsafe</a></div><div class="ttdeci">static JPH_INLINE DVec3 sLoadDouble3Unsafe(const Double3 &inV)</div><div class="ttdoc">Load 3 doubles from memory (reads 64 bits extra which it doesn't use)</div><div class="ttdef"><b>Definition</b> DVec3.inl:160</div></div>
- <div class="ttc" id="aclass_d_vec3_html_ac4311882ae51a22074b22caa012fb600"><div class="ttname"><a href="class_d_vec3.html#ac4311882ae51a22074b22caa012fb600">DVec3::operator/=</a></div><div class="ttdeci">JPH_INLINE DVec3 & operator/=(double inV2)</div><div class="ttdoc">Divide vector by double.</div><div class="ttdef"><b>Definition</b> DVec3.inl:526</div></div>
- <div class="ttc" id="aclass_d_vec3_html_adcd2e18b680e40bbd4ac71c6b0463bd3"><div class="ttname"><a href="class_d_vec3.html#adcd2e18b680e40bbd4ac71c6b0463bd3">DVec3::Cross</a></div><div class="ttdeci">JPH_INLINE DVec3 Cross(DVec3Arg inV2) const</div><div class="ttdoc">Cross product.</div><div class="ttdef"><b>Definition</b> DVec3.inl:738</div></div>
- <div class="ttc" id="aclass_d_vec3_html_adefdf792db358b7bc0f9259c3b685574"><div class="ttname"><a href="class_d_vec3.html#adefdf792db358b7bc0f9259c3b685574">DVec3::operator-=</a></div><div class="ttdeci">JPH_INLINE DVec3 & operator-=(Vec3Arg inV2)</div><div class="ttdoc">Subtract two vectors (component wise)</div><div class="ttdef"><b>Definition</b> DVec3.inl:663</div></div>
- <div class="ttc" id="aclass_d_vec3_html_ae4f056668680a0741aeda962d0dc794c"><div class="ttname"><a href="class_d_vec3.html#ae4f056668680a0741aeda962d0dc794c">DVec3::PrepareRoundToZero</a></div><div class="ttdeci">JPH_INLINE DVec3 PrepareRoundToZero() const</div><div class="ttdoc">Prepare to convert to float vector 3 rounding towards zero (returns DVec3 that can be converted to a ...</div><div class="ttdef"><b>Definition</b> DVec3.inl:853</div></div>
- <div class="ttc" id="aclass_d_vec3_html_ae4f3e3231039ea4fb254150a32a2b679"><div class="ttname"><a href="class_d_vec3.html#ae4f3e3231039ea4fb254150a32a2b679">DVec3::Reciprocal</a></div><div class="ttdeci">JPH_INLINE DVec3 Reciprocal() const</div><div class="ttdoc">Reciprocal vector (1 / value) for each of the components.</div><div class="ttdef"><b>Definition</b> DVec3.inl:733</div></div>
- <div class="ttc" id="aclass_d_vec3_html_ae56eb5609346a7b025d1c6261baf54b7"><div class="ttname"><a href="class_d_vec3.html#ae56eb5609346a7b025d1c6261baf54b7">DVec3::sEquals</a></div><div class="ttdeci">static JPH_INLINE DVec3 sEquals(DVec3Arg inV1, DVec3Arg inV2)</div><div class="ttdoc">Equals (component wise)</div><div class="ttdef"><b>Definition</b> DVec3.inl:233</div></div>
- <div class="ttc" id="aclass_d_vec3_html_ae955a8b286e5daaa80ca018afc4a2f92"><div class="ttname"><a href="class_d_vec3.html#ae955a8b286e5daaa80ca018afc4a2f92">DVec3::Type</a></div><div class="ttdeci">struct { double mData[4];} Type</div><div class="ttdef"><b>Definition</b> DVec3.h:29</div></div>
- <div class="ttc" id="aclass_d_vec3_html_aed8a5c005467d9089c5e2397529a1c53"><div class="ttname"><a href="class_d_vec3.html#aed8a5c005467d9089c5e2397529a1c53">DVec3::IsNearZero</a></div><div class="ttdeci">JPH_INLINE bool IsNearZero(double inMaxDistSq=1.0e-24) const</div><div class="ttdoc">Test if vector is near zero.</div><div class="ttdef"><b>Definition</b> DVec3.inl:424</div></div>
- <div class="ttc" id="aclass_d_vec3_html_af9f3df26312b07df5e6ea770e250e5bf"><div class="ttname"><a href="class_d_vec3.html#af9f3df26312b07df5e6ea770e250e5bf">DVec3::operator==</a></div><div class="ttdeci">JPH_INLINE bool operator==(DVec3Arg inV2) const</div><div class="ttdoc">Comparison.</div><div class="ttdef"><b>Definition</b> DVec3.inl:414</div></div>
- <div class="ttc" id="aclass_d_vec3_html_afbee9e9a9f30370826e55f6c81ed9951"><div class="ttname"><a href="class_d_vec3.html#afbee9e9a9f30370826e55f6c81ed9951">DVec3::cFalse</a></div><div class="ttdeci">static const double cFalse</div><div class="ttdef"><b>Definition</b> DVec3.h:278</div></div>
- <div class="ttc" id="aclass_double3_html"><div class="ttname"><a href="class_double3.html">Double3</a></div><div class="ttdoc">Class that holds 3 doubles. Used as a storage class. Convert to DVec3 for calculations.</div><div class="ttdef"><b>Definition</b> Double3.h:13</div></div>
- <div class="ttc" id="aclass_double3_html_a06ddc2a509b14e50e6d69acbc07b0bd3"><div class="ttname"><a href="class_double3.html#a06ddc2a509b14e50e6d69acbc07b0bd3">Double3::z</a></div><div class="ttdeci">double z</div><div class="ttdef"><b>Definition</b> Double3.h:40</div></div>
- <div class="ttc" id="aclass_double3_html_a7cdca7980db4588511c4851369dd9f2c"><div class="ttname"><a href="class_double3.html#a7cdca7980db4588511c4851369dd9f2c">Double3::y</a></div><div class="ttdeci">double y</div><div class="ttdef"><b>Definition</b> Double3.h:39</div></div>
- <div class="ttc" id="aclass_double3_html_ab8e77991d31c9f90c05b78e70e1027f1"><div class="ttname"><a href="class_double3.html#ab8e77991d31c9f90c05b78e70e1027f1">Double3::x</a></div><div class="ttdeci">double x</div><div class="ttdef"><b>Definition</b> Double3.h:38</div></div>
- <div class="ttc" id="aclass_vec3_html"><div class="ttname"><a href="class_vec3.html">Vec3</a></div><div class="ttdef"><b>Definition</b> Vec3.h:17</div></div>
- <div class="ttc" id="aclass_vec3_html_aa84e1ff8ea2e1cea4b73c7768966fa03"><div class="ttname"><a href="class_vec3.html#aa84e1ff8ea2e1cea4b73c7768966fa03">Vec3::mValue</a></div><div class="ttdeci">Type mValue</div><div class="ttdef"><b>Definition</b> Vec3.h:299</div></div>
- <div class="ttc" id="aclass_vec3_html_aca3385f3736a2231ace7de3a558d2863"><div class="ttname"><a href="class_vec3.html#aca3385f3736a2231ace7de3a558d2863">Vec3::mF32</a></div><div class="ttdeci">float mF32[4]</div><div class="ttdef"><b>Definition</b> Vec3.h:300</div></div>
- <div class="ttc" id="aclass_vec4_html"><div class="ttname"><a href="class_vec4.html">Vec4</a></div><div class="ttdef"><b>Definition</b> Vec4.h:14</div></div>
- </div><!-- fragment --></div><!-- contents -->
- </div><!-- doc-content -->
- <!-- start footer part -->
- <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="navelem"><a class="el" href="dir_d99289a5d3c46cf26f14ff6c90658d9f.html">Jolt</a></li><li class="navelem"><a class="el" href="dir_aa37033c5611f3a5cff668cf59181100.html">Math</a></li><li class="navelem"><a class="el" href="_d_vec3_8inl.html">DVec3.inl</a></li>
- <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0 </li>
- </ul>
- </div>
- </body>
- </html>
|