{"id":9252,"date":"2023-03-28T23:08:34","date_gmt":"2023-03-28T14:08:34","guid":{"rendered":"https:\/\/minnano.app\/support\/?p=9252"},"modified":"2023-04-03T21:59:10","modified_gmt":"2023-04-03T12:59:10","slug":"env_pri_cat_80-86","status":"publish","type":"post","link":"https:\/\/minnano.app\/support\/2023\/03\/28\/env_pri_cat_80-86\/","title":{"rendered":"\u74b0\u5883\u539f\u732b 80\uff5e86\u65e5\u76ee"},"content":{"rendered":"\n<p>uvec4\u30678\u30d0\u30a4\u30c8\u7b26\u53f7\u306a\u3057\u6574\u6570\u30924\u3064\u3064\u306a\u3052\u3066\u3001\u6700\u5927<\/p>\n\n\n\n<p class=\"has-medium-font-size\">3.4028236692093846346337460743177e+38<\/p>\n\n\n\n<p>\u306e\u6574\u6570\u578b\u3092\u4f5c\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u7b26\u53f7\u306f\u5225\u9014\u7528\u610f\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u3067\u3001\u3053\u306euvec4\u306e\u8db3\u3057\u7b97\u3084\u5f15\u304d\u7b97\u3084\u639b\u3051\u7b97\u3092\u4f5c\u308a\u307e\u3057\u305f\u3002(\u5f15\u304d\u7b97\u306b\u3064\u3044\u3066\u3001\u5c11\u3057\u3067\u3082\u901f\u5ea6\u51fa\u3057\u305f\u3044\u306e\u30672\u306e\u88dc\u6570\u3092\u5229\u7528\u3057\u3066\u3044\u307e\u305b\u3093)<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>\/* &#91;uvec4\u306e\u8db3\u3057\u7b97] *\/\\\nvoid vec4_add(in uvec4 a, in uvec4 b, out uvec4 res) {\\\n  uint over;\\\n  res.w = a.w + b.w;\\\n  if (UINT_MAX - a.w &lt; b.w) { over = 1u; } else { over = 0u; }\\\n  res.z = a.z + b.z + over;\\\n  if ((UINT_MAX - a.z &lt; b.z + over) || (UINT_MAX - over &lt; b.z)) { over = 1u; } else { over = 0u; }\\\n  res.y = a.y + b.y + over;\\\n  if ((UINT_MAX - a.y &lt; b.y + over) || (UINT_MAX - over &lt; b.y)) { over = 1u; } else { over = 0u; }\\\n  res.x = a.x + b.x + over;\\\n  if ((UINT_MAX - a.x &lt; b.x + over) || (UINT_MAX - over &lt; b.x)) { over = 1u; } else { over = 0u; }\\\n}\\\n\\\n\/* &#91;uvec4 x 2 \u306e\u8db3\u3057\u7b97] *\/\\\nvoid vec4_add2(in uvec4 a1, in uvec4 a2, in uvec4 b1, in uvec4 b2, out uvec4 res1, out uvec4 res2) {\\\n  uint over;\\\n  res1.w = a1.w + b1.w;\\\n  if (UINT_MAX - a1.w &lt; b1.w) { over = 1u; } else { over = 0u; }\\\n  res1.z = a1.z + b1.z + over;\\\n  if ((UINT_MAX - a1.z &lt; b1.z + over) || (UINT_MAX - over &lt; b1.z)) { over = 1u; } else { over = 0u; }\\\n  res1.y = a1.y + b1.y + over;\\\n  if ((UINT_MAX - a1.y &lt; b1.y + over) || (UINT_MAX - over &lt; b1.y)) { over = 1u; } else { over = 0u; }\\\n  res1.x = a1.x + b1.x + over;\\\n  if ((UINT_MAX - a1.x &lt; b1.x + over) || (UINT_MAX - over &lt; b1.x)) { over = 1u; } else { over = 0u; }\\\n  \\\n  res2.w = a2.w + b2.w + over;\\\n  if ((UINT_MAX - a2.w &lt; b2.w + over) || (UINT_MAX - over &lt; b2.w)) { over = 1u; } else { over = 0u; }\\\n  res2.z = a2.z + b2.z + over;\\\n  if ((UINT_MAX - a2.z &lt; b2.z + over) || (UINT_MAX - over &lt; b2.z)) { over = 1u; } else { over = 0u; }\\\n  res2.y = a2.y + b2.y + over;\\\n  if ((UINT_MAX - a2.y &lt; b2.y + over) || (UINT_MAX - over &lt; b2.y)) { over = 1u; } else { over = 0u; }\\\n  res2.x = a2.x + b2.x + over;\\\n  if ((UINT_MAX - a2.x &lt; b2.x + over) || (UINT_MAX - over &lt; b2.x)) { over = 1u; } else { over = 0u; }\\\n}\\\n\\\n\/* &#91;uvec4\u306e\u5f15\u304d\u7b97] *\/\\\n\/* a &gt; b \u306e\u524d\u63d0 *\/\\\nvoid vec4_sub(in uvec4 a, in uvec4 b, out uvec4 res) {\\\n  uint over;\\\n  \\\n  res.w = a.w - b.w;\\\n  if (a.w &lt; b.w) { over = 1u; } else { over = 0u; }\\\n  res.z = a.z - b.z - over;\\\n  if ((a.z &lt; b.z + over) || (UINT_MAX - b.z &lt; over)) { over = 1u; } else { over = 0u; }\\\n  res.y = a.y - b.y - over;\\\n  if ((a.y &lt; b.y + over) || (UINT_MAX - b.y &lt; over)) { over = 1u; } else { over = 0u; }\\\n  res.x = a.x - b.x - over;\\\n}\\\n\\\n\/* &#91;uvec4 x 2 \u306e\u5f15\u304d\u7b97] *\/\\\n\/* a &gt; b \u306e\u524d\u63d0 *\/\\\nvoid vec4_sub2(in uvec4 a1, in uvec4 a2, in uvec4 b1, in uvec4 b2, out uvec4 res1, out uvec4 res2) {\\\n  uint over;\\\n  \\\n  res1.w = a1.w - b1.w;\\\n  if (a1.w &lt; b1.w) { over = 1u; } else { over = 0u; }\\\n  res1.z = a1.z - b1.z - over;\\\n  if ((a1.z &lt; b1.z + over) || (UINT_MAX - b1.z &lt; over)) { over = 1u; } else { over = 0u; }\\\n  res1.y = a1.y - b1.y - over;\\\n  if ((a1.y &lt; b1.y + over) || (UINT_MAX - b1.y &lt; over)) { over = 1u; } else { over = 0u; }\\\n  res1.x = a1.x - b1.x - over;\\\n  if ((a1.x &lt; b1.x + over) || (UINT_MAX - b1.x &lt; over)) { over = 1u; } else { over = 0u; }\\\n  \\\n  res2.w = a2.w - b2.w - over;\\\n  if ((a2.w &lt; b2.w + over) || (UINT_MAX - b2.w &lt; over)) { over = 1u; } else { over = 0u; }\\\n  res2.z = a2.z - b2.z - over;\\\n  if ((a2.z &lt; b2.z + over) || (UINT_MAX - b2.z &lt; over)) { over = 1u; } else { over = 0u; }\\\n  res2.y = a2.y - b2.y - over;\\\n  if ((a2.y &lt; b2.y + over) || (UINT_MAX - b2.y &lt; over)) { over = 1u; } else { over = 0u; }\\\n  res2.x = a2.x - b2.x - over;\\\n  if ((a2.x &lt; b2.x + over) || (UINT_MAX - b2.x &lt; over)) { over = 1u; } else { over = 0u; }\\\n}\\\n\\\n\/* &#91;uvec4 \u306e\u5de6\u30b7\u30d5\u30c8] *\/\\\n\/* shift &lt; 128u *\/\\\nvoid vec4_shift_l(in uvec4 a, in uint shift, out uvec4 res1, out uvec4 res2) {\\\n  if (shift &lt; 32u) {\\\n    res1.x = a.x &lt;&lt; shift;\\\n    res1.y = a.y &lt;&lt; shift;\\\n    res1.z = a.z &lt;&lt; shift;\\\n    res1.w = a.w &lt;&lt; shift;\\\n    res2.x = 0u;\\\n    res2.y = 0u;\\\n    res2.z = 0u;\\\n    res2.w = 0u;\\\n    if (0u &lt; shift) {\\\n      res1.x += a.y &gt;&gt; (32u - shift);\\\n      res1.y += a.z &gt;&gt; (32u - shift);\\\n      res1.z += a.w &gt;&gt; (32u - shift);\\\n      res2.w += a.x &gt;&gt; (32u - shift);\\\n    }\\\n  } else if (shift &lt; 64u) {\\\n    res1.x = a.y &lt;&lt; (shift - 32u);\\\n    res1.y = a.z &lt;&lt; (shift - 32u);\\\n    res1.z = a.w &lt;&lt; (shift - 32u);\\\n    res1.w = 0u;\\\n    res2.x = 0u;\\\n    res2.y = 0u;\\\n    res2.z = 0u;\\\n    res2.w = (a.x &lt;&lt; (shift - 32u));\\\n    if (32u &lt; shift) {\\\n      res1.x += a.z &gt;&gt; (64u - shift);\\\n      res1.y += a.w &gt;&gt; (64u - shift);\\\n      res2.z += a.x &gt;&gt; (64u - shift);\\\n      res2.w += a.y &gt;&gt; (64u - shift);\\\n    }\\\n  } else if (shift &lt; 96u) {\\\n    res1.x = a.z &lt;&lt; (shift - 64u);\\\n    res1.y = a.w &lt;&lt; (shift - 64u);\\\n    res1.z = 0u;\\\n    res1.w = 0u;\\\n    res2.x = 0u;\\\n    res2.y = 0u;\\\n    res2.z = a.x &lt;&lt; (shift - 64u);\\\n    res2.w = a.y &lt;&lt; (shift - 64u);\\\n    if (64u &lt; shift) {\\\n      res1.x += a.w &gt;&gt; (96u - shift);\\\n      res2.y += a.x &gt;&gt; (96u - shift);\\\n      res2.z += a.y &gt;&gt; (96u - shift);\\\n      res2.w += a.z &gt;&gt; (96u - shift);\\\n    }\\\n  } else {\\\n    res1.x = (a.w &lt;&lt; (shift - 96u));\\\n    res1.y = 0u;\\\n    res1.z = 0u;\\\n    res1.w = 0u;\\\n    res2.x = 0u;\\\n    res2.y = a.x &lt;&lt; (shift - 96u);\\\n    res2.z = a.y &lt;&lt; (shift - 96u);\\\n    res2.w = a.z &lt;&lt; (shift - 96u);\\\n    if (96u &lt; shift) {\\\n      res2.x += a.x &gt;&gt; (128u - shift);\\\n      res2.y += a.y &gt;&gt; (128u - shift);\\\n      res2.z += a.z &gt;&gt; (128u - shift);\\\n      res2.w += a.w &gt;&gt; (128u - shift);\\\n    }\\\n  }\\\n}\\\n\\\n\/* &#91;uvec4 \u306e\u53f3\u30b7\u30d5\u30c8] *\/\\\n\/* shift &lt; 128u *\/\\\nvoid vec4_shift_r(in uvec4 a1, in uvec4 a2, in uint shift, out uvec4 res1, out uvec4 res2) {\\\n  if (shift &lt; 32u) {\\\n    res2.x = a2.x &gt;&gt; shift;\\\n    res2.y = a2.y &gt;&gt; shift;\\\n    res2.z = a2.z &gt;&gt; shift;\\\n    res2.w = a2.w &gt;&gt; shift;\\\n    res1.x = a1.x &gt;&gt; shift;\\\n    res1.y = a1.y &gt;&gt; shift;\\\n    res1.z = a1.z &gt;&gt; shift;\\\n    res1.w = a1.w &gt;&gt; shift;\\\n    if (0u &lt; shift) {\\\n      res2.y += a2.x &lt;&lt; (32u - shift);\\\n      res2.z += a2.y &lt;&lt; (32u - shift);\\\n      res2.w += a2.z &lt;&lt; (32u - shift);\\\n      res1.x += a2.w &lt;&lt; (32u - shift);\\\n      res1.y += a1.x &lt;&lt; (32u - shift);\\\n      res1.z += a1.y &lt;&lt; (32u - shift);\\\n      res1.w += a1.z &lt;&lt; (32u - shift);\\\n    }\\\n  } else if (shift &lt; 64u) {\\\n    res2.x = 0u;\\\n    res2.y = a2.x &gt;&gt; (shift - 32u);\\\n    res2.z = a2.y &gt;&gt; (shift - 32u);\\\n    res2.w = a2.z &gt;&gt; (shift - 32u);\\\n    res1.x = a2.w &gt;&gt; (shift - 32u);\\\n    res1.y = a1.x &gt;&gt; (shift - 32u);\\\n    res1.z = a1.y &gt;&gt; (shift - 32u);\\\n    res1.w = a1.z &gt;&gt; (shift - 32u);\\\n    if (32u &lt; shift) {\\\n      res2.z += a2.x &lt;&lt; (64u - shift);\\\n      res2.w += a2.y &lt;&lt; (64u - shift);\\\n      res1.x += a2.z &lt;&lt; (64u - shift);\\\n      res1.y += a2.w &lt;&lt; (64u - shift);\\\n      res1.z += a1.x &lt;&lt; (64u - shift);\\\n      res1.w += a1.y &lt;&lt; (64u - shift);\\\n    }\\\n  } else if (shift &lt; 96u) {\\\n    res2.x = 0u;\\\n    res2.y = 0u;\\\n    res2.z = a2.x &gt;&gt; (shift - 64u);\\\n    res2.w = a2.y &gt;&gt; (shift - 64u);\\\n    res1.x = a2.z &gt;&gt; (shift - 64u);\\\n    res1.y = a2.w &gt;&gt; (shift - 64u);\\\n    res1.z = a1.x &gt;&gt; (shift - 64u);\\\n    res1.w = a1.y &gt;&gt; (shift - 64u);\\\n    if (64u &lt; shift) {\\\n      res2.w += a2.x &lt;&lt; (96u - shift);\\\n      res1.x += a2.y &lt;&lt; (96u - shift);\\\n      res1.y += a2.z &lt;&lt; (96u - shift);\\\n      res1.z += a2.w &lt;&lt; (96u - shift);\\\n      res1.w += a1.x &lt;&lt; (96u - shift);\\\n    }\\\n  } else {\\\n    res2.x = 0u;\\\n    res2.y = 0u;\\\n    res2.z = 0u;\\\n    res2.w = a2.x &gt;&gt; (shift - 96u);\\\n    res1.x = a2.y &gt;&gt; (shift - 96u);\\\n    res1.y = a2.z &gt;&gt; (shift - 96u);\\\n    res1.z = a2.w &gt;&gt; (shift - 96u);\\\n    res1.w = a1.x &gt;&gt; (shift - 96u);\\\n    if (96u &lt; shift) {\\\n      res1.x += a2.x &lt;&lt; (128u - shift);\\\n      res1.y += a2.y &lt;&lt; (128u - shift);\\\n      res1.z += a2.z &lt;&lt; (128u - shift);\\\n      res1.w += a2.w &lt;&lt; (128u - shift);\\\n    }\\\n  }\\\n}\\\n\\\n\/* &#91;uvec4 \u306e\u4e57\u7b97] *\/\\\nvoid vec4_mul(in uvec4 a, in uvec4 b, out uvec4 res1, out uvec4 res2) {\\\n  uvec4 checkbit = uvec4(0u, 0u, 0u, 1u);\\\n  uvec4 tmp;\\\n  uvec4 a1 = a;\\\n  uvec4 a2 = uvec4(0u, 0u, 0u, 0u);\\\n  res1 = uvec4(0u, 0u, 0u, 0u);\\\n  res2 = uvec4(0u, 0u, 0u, 0u);\\\n  for (uint i = 0u; i &lt; 128u; i++) {\\\n    if (0u &lt; ((b.x &amp; checkbit.x) + (b.y &amp; checkbit.y) + (b.z &amp; checkbit.z) + (b.w &amp; checkbit.w))) {\\\n      vec4_add2(res1, res2, a1, a2, res1, res2);\\\n    }\\\n    vec4_shift_l(a, i + 1u, a1, a2);\\\n    vec4_shift_l(checkbit, 1u, checkbit, tmp);\\\n  }\\\n}\\\nint vec4_cmp(in uvec4 a, in uvec4 b) {\\\n  if (a.x &gt; b.x) {\\\n    return 1;\\\n  } else if (a.x &lt; b.x) {\\\n    return -1;\\\n  }\\\n  if (a.y &gt; b.y) {\\\n    return 1;\\\n  } else if (a.y &lt; b.y) {\\\n    return -1;\\\n  }\\\n  if (a.z &gt; b.z) {\\\n    return 1;\\\n  } else if (a.z &lt; b.z) {\\\n    return -1;\\\n  }\\\n  if (a.w &gt; b.w) {\\\n    return 1;\\\n  } else if (a.w &lt; b.w) {\\\n    return -1;\\\n  }\\\n  return 0;\\\n}\\\nint vec4_cmp2(in uvec4 a1, in uvec4 a2, in uvec4 b1, in uvec4 b2) {\\\n  if (a1.x &gt; b1.x) {\\\n    return 1;\\\n  } else if (a1.x &lt; b1.x) {\\\n    return -1;\\\n  }\\\n  if (a1.y &gt; b1.y) {\\\n    return 1;\\\n  } else if (a1.y &lt; b1.y) {\\\n    return -1;\\\n  }\\\n  if (a1.z &gt; b1.z) {\\\n    return 1;\\\n  } else if (a1.z &lt; b1.z) {\\\n    return -1;\\\n  }\\\n  if (a1.w &gt; b1.w) {\\\n    return 1;\\\n  } else if (a1.w &lt; b1.w) {\\\n    return -1;\\\n  }\\\n  if (a2.x &gt; b2.x) {\\\n    return 1;\\\n  } else if (a2.x &lt; b2.x) {\\\n    return -1;\\\n  }\\\n  if (a2.y &gt; b2.y) {\\\n    return 1;\\\n  } else if (a2.y &lt; b2.y) {\\\n    return -1;\\\n  }\\\n  if (a2.z &gt; b2.z) {\\\n    return 1;\\\n  } else if (a2.z &lt; b2.z) {\\\n    return -1;\\\n  }\\\n  if (a2.w &gt; b2.w) {\\\n    return 1;\\\n  } else if (a2.w &lt; b2.w) {\\\n    return -1;\\\n  }\\\n  return 0;\\\n}\\<\/code><\/pre>\n\n\n\n<p>\u6b21\u56de\u306f\u3053\u306e\u578b\u3092\u4f7f\u3063\u3066\u30de\u30f3\u30c7\u30eb\u30d6\u30ed\u96c6\u5408\u3092\u63cf\u304f\u3053\u3068\u306b\u6311\u6226\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p><a href=\"https:\/\/minnano.app\/support\/2023\/04\/03\/env_pri_cat_87-93\/\">\u6b21\u306e\u9031<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>uvec4\u30678\u30d0\u30a4\u30c8\u7b26\u53f7\u306a\u3057\u6574\u6570\u30924\u3064\u3064\u306a\u3052\u3066\u3001\u6700\u5927 3.4028236692093846346337460743177e+38 \u306e\u6574\u6570\u578b\u3092\u4f5c\u308a\u307e\u3059\u3002 \u7b26\u53f7\u306f\u5225\u9014\u7528\u610f\u3057\u307e\u3059\u3002 \u3067\u3001\u3053\u306euvec4\u306e\u8db3\u3057\u7b97\u3084\u5f15\u304d\u7b97\u3084\u639b\u3051\u7b97\u3092 &hellip; <a href=\"https:\/\/minnano.app\/support\/2023\/03\/28\/env_pri_cat_80-86\/\" class=\"more-link\">\u7d9a\u304d\u3092\u8aad\u3080 <span class=\"screen-reader-text\">\u74b0\u5883\u539f\u732b 80\uff5e86\u65e5\u76ee<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23],"tags":[],"class_list":["post-9252","post","type-post","status-publish","format-standard","hentry","category-23"],"_links":{"self":[{"href":"https:\/\/minnano.app\/support\/wp-json\/wp\/v2\/posts\/9252","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/minnano.app\/support\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/minnano.app\/support\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/minnano.app\/support\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/minnano.app\/support\/wp-json\/wp\/v2\/comments?post=9252"}],"version-history":[{"count":6,"href":"https:\/\/minnano.app\/support\/wp-json\/wp\/v2\/posts\/9252\/revisions"}],"predecessor-version":[{"id":9272,"href":"https:\/\/minnano.app\/support\/wp-json\/wp\/v2\/posts\/9252\/revisions\/9272"}],"wp:attachment":[{"href":"https:\/\/minnano.app\/support\/wp-json\/wp\/v2\/media?parent=9252"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/minnano.app\/support\/wp-json\/wp\/v2\/categories?post=9252"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/minnano.app\/support\/wp-json\/wp\/v2\/tags?post=9252"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}