t_wの輪郭

@group(0)
@binding(0)
var<storage, read_write> v_indices: array<u32>; // this is used as both input and output for convenience

fn x2(i: u32) -> u32 {
    return i*2u;
}

@compute
@workgroup_size(1)
fn main(@builtin(global_invocation_id) global_id: vec3<u32>) {
    var arr: array<u32, 1000>;
    arr[0] = x2(0u);
    arr[1] = x2(1u);
    arr[2] = x2(2u);
    arr[3] = x2(3u);
    arr[4] = x2(4u);
    arr[5] = x2(5u);
    arr[6] = x2(6u);
    arr[7] = x2(7u);
    arr[8] = x2(8u);
    arr[9] = x2(9u);
    arr[10] = x2(10u);
    arr[11] = x2(11u);
    arr[12] = x2(12u);
    arr[13] = x2(13u);
    arr[14] = x2(14u);
    arr[15] = x2(15u);
    arr[16] = x2(16u);
    arr[17] = x2(17u);
    arr[18] = x2(18u);
    arr[19] = x2(19u);
    arr[20] = x2(20u);
    arr[21] = x2(21u);
    arr[22] = x2(22u);
    arr[23] = x2(23u);
    arr[24] = x2(24u);
    arr[25] = x2(25u);
    arr[26] = x2(26u);
    arr[27] = x2(27u);
    arr[28] = x2(28u);
    arr[29] = x2(29u);
    arr[30] = x2(30u);
    arr[31] = x2(31u);
    arr[32] = x2(32u);
    arr[33] = x2(33u);
    arr[34] = x2(34u);
    arr[35] = x2(35u);
    arr[36] = x2(36u);
    arr[37] = x2(37u);
    arr[38] = x2(38u);
    arr[39] = x2(39u);
    arr[40] = x2(40u);
    arr[41] = x2(41u);
    arr[42] = x2(42u);
    arr[43] = x2(43u);
    arr[44] = x2(44u);
    arr[45] = x2(45u);
    arr[46] = x2(46u);
    arr[47] = x2(47u);
    arr[48] = x2(48u);
    arr[49] = x2(49u);
    arr[50] = x2(50u);
    arr[51] = x2(51u);
    arr[52] = x2(52u);
    arr[53] = x2(53u);
    arr[54] = x2(54u);
    arr[55] = x2(55u);
    arr[56] = x2(56u);
    arr[57] = x2(57u);
    arr[58] = x2(58u);
    arr[59] = x2(59u);
    arr[60] = x2(60u);
    arr[61] = x2(61u);
    arr[62] = x2(62u);
    arr[63] = x2(63u);
    arr[64] = x2(64u);
    arr[65] = x2(65u);
    arr[66] = x2(66u);
    arr[67] = x2(67u);
    arr[68] = x2(68u);
    arr[69] = x2(69u);
    arr[70] = x2(70u);
    arr[71] = x2(71u);
    arr[72] = x2(72u);
    arr[73] = x2(73u);
    arr[74] = x2(74u);
    arr[75] = x2(75u);
    arr[76] = x2(76u);
    arr[77] = x2(77u);
    arr[78] = x2(78u);
    arr[79] = x2(79u);
    arr[80] = x2(80u);
    arr[81] = x2(81u);
    arr[82] = x2(82u);
    arr[83] = x2(83u);
    arr[84] = x2(84u);
    arr[85] = x2(85u);
    arr[86] = x2(86u);
    arr[87] = x2(87u);
    arr[88] = x2(88u);
    arr[89] = x2(89u);
    arr[90] = x2(90u);
    arr[91] = x2(91u);
    arr[92] = x2(92u);
    arr[93] = x2(93u);
    arr[94] = x2(94u);
    arr[95] = x2(95u);
    arr[96] = x2(96u);
    arr[97] = x2(97u);
    arr[98] = x2(98u);
    arr[99] = x2(99u);
    arr[100] = x2(100u);
    arr[101] = x2(101u);
    arr[102] = x2(102u);
    arr[103] = x2(103u);
    arr[104] = x2(104u);
    arr[105] = x2(105u);
    arr[106] = x2(106u);
    arr[107] = x2(107u);
    arr[108] = x2(108u);
    arr[109] = x2(109u);
    arr[110] = x2(110u);
    arr[111] = x2(111u);
    arr[112] = x2(112u);
    arr[113] = x2(113u);
    arr[114] = x2(114u);
    arr[115] = x2(115u);
    arr[116] = x2(116u);
    arr[117] = x2(117u);
    arr[118] = x2(118u);
    arr[119] = x2(119u);
    arr[120] = x2(120u);
    arr[121] = x2(121u);
    arr[122] = x2(122u);
    arr[123] = x2(123u);
    arr[124] = x2(124u);
    arr[125] = x2(125u);
    arr[126] = x2(126u);
    arr[127] = x2(127u);
    arr[128] = x2(128u);
    arr[129] = x2(129u);
    arr[130] = x2(130u);
    arr[131] = x2(131u);
    arr[132] = x2(132u);
    arr[133] = x2(133u);
    arr[134] = x2(134u);
    arr[135] = x2(135u);
    arr[136] = x2(136u);
    arr[137] = x2(137u);
    arr[138] = x2(138u);
    arr[139] = x2(139u);
    arr[140] = x2(140u);
    arr[141] = x2(141u);
    arr[142] = x2(142u);
    arr[143] = x2(143u);
    arr[144] = x2(144u);
    arr[145] = x2(145u);
    arr[146] = x2(146u);
    arr[147] = x2(147u);
    arr[148] = x2(148u);
    arr[149] = x2(149u);
    arr[150] = x2(150u);
    arr[151] = x2(151u);
    arr[152] = x2(152u);
    arr[153] = x2(153u);
    arr[154] = x2(154u);
    arr[155] = x2(155u);
    arr[156] = x2(156u);
    arr[157] = x2(157u);
    arr[158] = x2(158u);
    arr[159] = x2(159u);
    arr[160] = x2(160u);
    arr[161] = x2(161u);
    arr[162] = x2(162u);
    arr[163] = x2(163u);
    arr[164] = x2(164u);
    arr[165] = x2(165u);
    arr[166] = x2(166u);
    arr[167] = x2(167u);
    arr[168] = x2(168u);
    arr[169] = x2(169u);
    arr[170] = x2(170u);
    arr[171] = x2(171u);
    arr[172] = x2(172u);
    arr[173] = x2(173u);
    arr[174] = x2(174u);
    arr[175] = x2(175u);
    arr[176] = x2(176u);
    arr[177] = x2(177u);
    arr[178] = x2(178u);
    arr[179] = x2(179u);
    arr[180] = x2(180u);
    arr[181] = x2(181u);
    arr[182] = x2(182u);
    arr[183] = x2(183u);
    arr[184] = x2(184u);
    arr[185] = x2(185u);
    arr[186] = x2(186u);
    arr[187] = x2(187u);
    arr[188] = x2(188u);
    arr[189] = x2(189u);
    arr[190] = x2(190u);
    arr[191] = x2(191u);
    arr[192] = x2(192u);
    arr[193] = x2(193u);
    arr[194] = x2(194u);
    arr[195] = x2(195u);
    arr[196] = x2(196u);
    arr[197] = x2(197u);
    arr[198] = x2(198u);
    arr[199] = x2(199u);
    arr[200] = x2(200u);
    arr[201] = x2(201u);
    arr[202] = x2(202u);
    arr[203] = x2(203u);
    arr[204] = x2(204u);
    arr[205] = x2(205u);
    arr[206] = x2(206u);
    arr[207] = x2(207u);
    arr[208] = x2(208u);
    arr[209] = x2(209u);
    arr[210] = x2(210u);
    arr[211] = x2(211u);
    arr[212] = x2(212u);
    arr[213] = x2(213u);
    arr[214] = x2(214u);
    arr[215] = x2(215u);
    arr[216] = x2(216u);
    arr[217] = x2(217u);
    arr[218] = x2(218u);
    arr[219] = x2(219u);
    arr[220] = x2(220u);
    arr[221] = x2(221u);
    arr[222] = x2(222u);
    arr[223] = x2(223u);
    arr[224] = x2(224u);
    arr[225] = x2(225u);
    arr[226] = x2(226u);
    arr[227] = x2(227u);
    arr[228] = x2(228u);
    arr[229] = x2(229u);
    arr[230] = x2(230u);
    arr[231] = x2(231u);
    arr[232] = x2(232u);
    arr[233] = x2(233u);
    arr[234] = x2(234u);
    arr[235] = x2(235u);
    arr[236] = x2(236u);
    arr[237] = x2(237u);
    arr[238] = x2(238u);
    arr[239] = x2(239u);
    arr[240] = x2(240u);
    arr[241] = x2(241u);
    arr[242] = x2(242u);
    arr[243] = x2(243u);
    arr[244] = x2(244u);
    arr[245] = x2(245u);
    arr[246] = x2(246u);
    arr[247] = x2(247u);
    arr[248] = x2(248u);
    arr[249] = x2(249u);
    arr[250] = x2(250u);
    arr[251] = x2(251u);
    arr[252] = x2(252u);
    arr[253] = x2(253u);
    arr[254] = x2(254u);
    arr[255] = x2(255u);
    arr[256] = x2(256u);
    arr[257] = x2(257u);
    arr[258] = x2(258u);
    arr[259] = x2(259u);
    arr[260] = x2(260u);
    arr[261] = x2(261u);
    arr[262] = x2(262u);
    arr[263] = x2(263u);
    arr[264] = x2(264u);
    arr[265] = x2(265u);
    arr[266] = x2(266u);
    arr[267] = x2(267u);
    arr[268] = x2(268u);
    arr[269] = x2(269u);
    arr[270] = x2(270u);
    arr[271] = x2(271u);
    arr[272] = x2(272u);
    arr[273] = x2(273u);
    arr[274] = x2(274u);
    arr[275] = x2(275u);
    arr[276] = x2(276u);
    arr[277] = x2(277u);
    arr[278] = x2(278u);
    arr[279] = x2(279u);
    arr[280] = x2(280u);
    arr[281] = x2(281u);
    arr[282] = x2(282u);
    arr[283] = x2(283u);
    arr[284] = x2(284u);
    arr[285] = x2(285u);
    arr[286] = x2(286u);
    arr[287] = x2(287u);
    arr[288] = x2(288u);
    arr[289] = x2(289u);
    arr[290] = x2(290u);
    arr[291] = x2(291u);
    arr[292] = x2(292u);
    arr[293] = x2(293u);
    arr[294] = x2(294u);
    arr[295] = x2(295u);
    arr[296] = x2(296u);
    arr[297] = x2(297u);
    arr[298] = x2(298u);
    arr[299] = x2(299u);
    arr[300] = x2(300u);
    arr[301] = x2(301u);
    arr[302] = x2(302u);
    arr[303] = x2(303u);
    arr[304] = x2(304u);
    arr[305] = x2(305u);
    arr[306] = x2(306u);
    arr[307] = x2(307u);
    arr[308] = x2(308u);
    arr[309] = x2(309u);
    arr[310] = x2(310u);
    arr[311] = x2(311u);
    arr[312] = x2(312u);
    arr[313] = x2(313u);
    arr[314] = x2(314u);
    arr[315] = x2(315u);
    arr[316] = x2(316u);
    arr[317] = x2(317u);
    arr[318] = x2(318u);
    arr[319] = x2(319u);
    arr[320] = x2(320u);
    arr[321] = x2(321u);
    arr[322] = x2(322u);
    arr[323] = x2(323u);
    arr[324] = x2(324u);
    arr[325] = x2(325u);
    arr[326] = x2(326u);
    arr[327] = x2(327u);
    arr[328] = x2(328u);
    arr[329] = x2(329u);
    arr[330] = x2(330u);
    arr[331] = x2(331u);
    arr[332] = x2(332u);
    arr[333] = x2(333u);
    arr[334] = x2(334u);
    arr[335] = x2(335u);
    arr[336] = x2(336u);
    arr[337] = x2(337u);
    arr[338] = x2(338u);
    arr[339] = x2(339u);
    arr[340] = x2(340u);
    arr[341] = x2(341u);
    arr[342] = x2(342u);
    arr[343] = x2(343u);
    arr[344] = x2(344u);
    arr[345] = x2(345u);
    arr[346] = x2(346u);
    arr[347] = x2(347u);
    arr[348] = x2(348u);
    arr[349] = x2(349u);
    arr[350] = x2(350u);
    arr[351] = x2(351u);
    arr[352] = x2(352u);
    arr[353] = x2(353u);
    arr[354] = x2(354u);
    arr[355] = x2(355u);
    arr[356] = x2(356u);
    arr[357] = x2(357u);
    arr[358] = x2(358u);
    arr[359] = x2(359u);
    arr[360] = x2(360u);
    arr[361] = x2(361u);
    arr[362] = x2(362u);
    arr[363] = x2(363u);
    arr[364] = x2(364u);
    arr[365] = x2(365u);
    arr[366] = x2(366u);
    arr[367] = x2(367u);
    arr[368] = x2(368u);
    arr[369] = x2(369u);
    arr[370] = x2(370u);
    arr[371] = x2(371u);
    arr[372] = x2(372u);
    arr[373] = x2(373u);
    arr[374] = x2(374u);
    arr[375] = x2(375u);
    arr[376] = x2(376u);
    arr[377] = x2(377u);
    arr[378] = x2(378u);
    arr[379] = x2(379u);
    arr[380] = x2(380u);
    arr[381] = x2(381u);
    arr[382] = x2(382u);
    arr[383] = x2(383u);
    arr[384] = x2(384u);
    arr[385] = x2(385u);
    arr[386] = x2(386u);
    arr[387] = x2(387u);
    arr[388] = x2(388u);
    arr[389] = x2(389u);
    arr[390] = x2(390u);
    arr[391] = x2(391u);
    arr[392] = x2(392u);
    arr[393] = x2(393u);
    arr[394] = x2(394u);
    arr[395] = x2(395u);
    arr[396] = x2(396u);
    arr[397] = x2(397u);
    arr[398] = x2(398u);
    arr[399] = x2(399u);
    arr[400] = x2(400u);
    arr[401] = x2(401u);
    arr[402] = x2(402u);
    arr[403] = x2(403u);
    arr[404] = x2(404u);
    arr[405] = x2(405u);
    arr[406] = x2(406u);
    arr[407] = x2(407u);
    arr[408] = x2(408u);
    arr[409] = x2(409u);
    arr[410] = x2(410u);
    arr[411] = x2(411u);
    arr[412] = x2(412u);
    arr[413] = x2(413u);
    arr[414] = x2(414u);
    arr[415] = x2(415u);
    arr[416] = x2(416u);
    arr[417] = x2(417u);
    arr[418] = x2(418u);
    arr[419] = x2(419u);
    arr[420] = x2(420u);
    arr[421] = x2(421u);
    arr[422] = x2(422u);
    arr[423] = x2(423u);
    arr[424] = x2(424u);
    arr[425] = x2(425u);
    arr[426] = x2(426u);
    arr[427] = x2(427u);
    arr[428] = x2(428u);
    arr[429] = x2(429u);
    arr[430] = x2(430u);
    arr[431] = x2(431u);
    arr[432] = x2(432u);
    arr[433] = x2(433u);
    arr[434] = x2(434u);
    arr[435] = x2(435u);
    arr[436] = x2(436u);
    arr[437] = x2(437u);
    arr[438] = x2(438u);
    arr[439] = x2(439u);
    arr[440] = x2(440u);
    arr[441] = x2(441u);
    arr[442] = x2(442u);
    arr[443] = x2(443u);
    arr[444] = x2(444u);
    arr[445] = x2(445u);
    arr[446] = x2(446u);
    arr[447] = x2(447u);
    arr[448] = x2(448u);
    arr[449] = x2(449u);
    arr[450] = x2(450u);
    arr[451] = x2(451u);
    arr[452] = x2(452u);
    arr[453] = x2(453u);
    arr[454] = x2(454u);
    arr[455] = x2(455u);
    arr[456] = x2(456u);
    arr[457] = x2(457u);
    arr[458] = x2(458u);
    arr[459] = x2(459u);
    arr[460] = x2(460u);
    arr[461] = x2(461u);
    arr[462] = x2(462u);
    arr[463] = x2(463u);
    arr[464] = x2(464u);
    arr[465] = x2(465u);
    arr[466] = x2(466u);
    arr[467] = x2(467u);
    arr[468] = x2(468u);
    arr[469] = x2(469u);
    arr[470] = x2(470u);
    arr[471] = x2(471u);
    arr[472] = x2(472u);
    arr[473] = x2(473u);
    arr[474] = x2(474u);
    arr[475] = x2(475u);
    arr[476] = x2(476u);
    arr[477] = x2(477u);
    arr[478] = x2(478u);
    arr[479] = x2(479u);
    arr[480] = x2(480u);
    arr[481] = x2(481u);
    arr[482] = x2(482u);
    arr[483] = x2(483u);
    arr[484] = x2(484u);
    arr[485] = x2(485u);
    arr[486] = x2(486u);
    arr[487] = x2(487u);
    arr[488] = x2(488u);
    arr[489] = x2(489u);
    arr[490] = x2(490u);
    arr[491] = x2(491u);
    arr[492] = x2(492u);
    arr[493] = x2(493u);
    arr[494] = x2(494u);
    arr[495] = x2(495u);
    arr[496] = x2(496u);
    arr[497] = x2(497u);
    arr[498] = x2(498u);
    arr[499] = x2(499u);
    arr[500] = x2(500u);
    arr[501] = x2(501u);
    arr[502] = x2(502u);
    arr[503] = x2(503u);
    arr[504] = x2(504u);
    arr[505] = x2(505u);
    arr[506] = x2(506u);
    arr[507] = x2(507u);
    arr[508] = x2(508u);
    arr[509] = x2(509u);
    arr[510] = x2(510u);
    arr[511] = x2(511u);
    arr[512] = x2(512u);
    arr[513] = x2(513u);
    arr[514] = x2(514u);
    arr[515] = x2(515u);
    arr[516] = x2(516u);
    arr[517] = x2(517u);
    arr[518] = x2(518u);
    arr[519] = x2(519u);
    arr[520] = x2(520u);
    arr[521] = x2(521u);
    arr[522] = x2(522u);
    arr[523] = x2(523u);
    arr[524] = x2(524u);
    arr[525] = x2(525u);
    arr[526] = x2(526u);
    arr[527] = x2(527u);
    arr[528] = x2(528u);
    arr[529] = x2(529u);
    arr[530] = x2(530u);
    arr[531] = x2(531u);
    arr[532] = x2(532u);
    arr[533] = x2(533u);
    arr[534] = x2(534u);
    arr[535] = x2(535u);
    arr[536] = x2(536u);
    arr[537] = x2(537u);
    arr[538] = x2(538u);
    arr[539] = x2(539u);
    arr[540] = x2(540u);
    arr[541] = x2(541u);
    arr[542] = x2(542u);
    arr[543] = x2(543u);
    arr[544] = x2(544u);
    arr[545] = x2(545u);
    arr[546] = x2(546u);
    arr[547] = x2(547u);
    arr[548] = x2(548u);
    arr[549] = x2(549u);
    arr[550] = x2(550u);
    arr[551] = x2(551u);
    arr[552] = x2(552u);
    arr[553] = x2(553u);
    arr[554] = x2(554u);
    arr[555] = x2(555u);
    arr[556] = x2(556u);
    arr[557] = x2(557u);
    arr[558] = x2(558u);
    arr[559] = x2(559u);
    arr[560] = x2(560u);
    arr[561] = x2(561u);
    arr[562] = x2(562u);
    arr[563] = x2(563u);
    arr[564] = x2(564u);
    arr[565] = x2(565u);
    arr[566] = x2(566u);
    arr[567] = x2(567u);
    arr[568] = x2(568u);
    arr[569] = x2(569u);
    arr[570] = x2(570u);
    arr[571] = x2(571u);
    arr[572] = x2(572u);
    arr[573] = x2(573u);
    arr[574] = x2(574u);
    arr[575] = x2(575u);
    arr[576] = x2(576u);
    arr[577] = x2(577u);
    arr[578] = x2(578u);
    arr[579] = x2(579u);
    arr[580] = x2(580u);
    arr[581] = x2(581u);
    arr[582] = x2(582u);
    arr[583] = x2(583u);
    arr[584] = x2(584u);
    arr[585] = x2(585u);
    arr[586] = x2(586u);
    arr[587] = x2(587u);
    arr[588] = x2(588u);
    arr[589] = x2(589u);
    arr[590] = x2(590u);
    arr[591] = x2(591u);
    arr[592] = x2(592u);
    arr[593] = x2(593u);
    arr[594] = x2(594u);
    arr[595] = x2(595u);
    arr[596] = x2(596u);
    arr[597] = x2(597u);
    arr[598] = x2(598u);
    arr[599] = x2(599u);
    arr[600] = x2(600u);
    arr[601] = x2(601u);
    arr[602] = x2(602u);
    arr[603] = x2(603u);
    arr[604] = x2(604u);
    arr[605] = x2(605u);
    arr[606] = x2(606u);
    arr[607] = x2(607u);
    arr[608] = x2(608u);
    arr[609] = x2(609u);
    arr[610] = x2(610u);
    arr[611] = x2(611u);
    arr[612] = x2(612u);
    arr[613] = x2(613u);
    arr[614] = x2(614u);
    arr[615] = x2(615u);
    arr[616] = x2(616u);
    arr[617] = x2(617u);
    arr[618] = x2(618u);
    arr[619] = x2(619u);
    arr[620] = x2(620u);
    arr[621] = x2(621u);
    arr[622] = x2(622u);
    arr[623] = x2(623u);
    arr[624] = x2(624u);
    arr[625] = x2(625u);
    arr[626] = x2(626u);
    arr[627] = x2(627u);
    arr[628] = x2(628u);
    arr[629] = x2(629u);
    arr[630] = x2(630u);
    arr[631] = x2(631u);
    arr[632] = x2(632u);
    arr[633] = x2(633u);
    arr[634] = x2(634u);
    arr[635] = x2(635u);
    arr[636] = x2(636u);
    arr[637] = x2(637u);
    arr[638] = x2(638u);
    arr[639] = x2(639u);
    arr[640] = x2(640u);
    arr[641] = x2(641u);
    arr[642] = x2(642u);
    arr[643] = x2(643u);
    arr[644] = x2(644u);
    arr[645] = x2(645u);
    arr[646] = x2(646u);
    arr[647] = x2(647u);
    arr[648] = x2(648u);
    arr[649] = x2(649u);
    arr[650] = x2(650u);
    arr[651] = x2(651u);
    arr[652] = x2(652u);
    arr[653] = x2(653u);
    arr[654] = x2(654u);
    arr[655] = x2(655u);
    arr[656] = x2(656u);
    arr[657] = x2(657u);
    arr[658] = x2(658u);
    arr[659] = x2(659u);
    arr[660] = x2(660u);
    arr[661] = x2(661u);
    arr[662] = x2(662u);
    arr[663] = x2(663u);
    arr[664] = x2(664u);
    arr[665] = x2(665u);
    arr[666] = x2(666u);
    arr[667] = x2(667u);
    arr[668] = x2(668u);
    arr[669] = x2(669u);
    arr[670] = x2(670u);
    arr[671] = x2(671u);
    arr[672] = x2(672u);
    arr[673] = x2(673u);
    arr[674] = x2(674u);
    arr[675] = x2(675u);
    arr[676] = x2(676u);
    arr[677] = x2(677u);
    arr[678] = x2(678u);
    arr[679] = x2(679u);
    arr[680] = x2(680u);
    arr[681] = x2(681u);
    arr[682] = x2(682u);
    arr[683] = x2(683u);
    arr[684] = x2(684u);
    arr[685] = x2(685u);
    arr[686] = x2(686u);
    arr[687] = x2(687u);
    arr[688] = x2(688u);
    arr[689] = x2(689u);
    arr[690] = x2(690u);
    arr[691] = x2(691u);
    arr[692] = x2(692u);
    arr[693] = x2(693u);
    arr[694] = x2(694u);
    arr[695] = x2(695u);
    arr[696] = x2(696u);
    arr[697] = x2(697u);
    arr[698] = x2(698u);
    arr[699] = x2(699u);
    arr[700] = x2(700u);
    arr[701] = x2(701u);
    arr[702] = x2(702u);
    arr[703] = x2(703u);
    arr[704] = x2(704u);
    arr[705] = x2(705u);
    arr[706] = x2(706u);
    arr[707] = x2(707u);
    arr[708] = x2(708u);
    arr[709] = x2(709u);
    arr[710] = x2(710u);
    arr[711] = x2(711u);
    arr[712] = x2(712u);
    arr[713] = x2(713u);
    arr[714] = x2(714u);
    arr[715] = x2(715u);
    arr[716] = x2(716u);
    arr[717] = x2(717u);
    arr[718] = x2(718u);
    arr[719] = x2(719u);
    arr[720] = x2(720u);
    arr[721] = x2(721u);
    arr[722] = x2(722u);
    arr[723] = x2(723u);
    arr[724] = x2(724u);
    arr[725] = x2(725u);
    arr[726] = x2(726u);
    arr[727] = x2(727u);
    arr[728] = x2(728u);
    arr[729] = x2(729u);
    arr[730] = x2(730u);
    arr[731] = x2(731u);
    arr[732] = x2(732u);
    arr[733] = x2(733u);
    arr[734] = x2(734u);
    arr[735] = x2(735u);
    arr[736] = x2(736u);
    arr[737] = x2(737u);
    arr[738] = x2(738u);
    arr[739] = x2(739u);
    arr[740] = x2(740u);
    arr[741] = x2(741u);
    arr[742] = x2(742u);
    arr[743] = x2(743u);
    arr[744] = x2(744u);
    arr[745] = x2(745u);
    arr[746] = x2(746u);
    arr[747] = x2(747u);
    arr[748] = x2(748u);
    arr[749] = x2(749u);
    arr[750] = x2(750u);
    arr[751] = x2(751u);
    arr[752] = x2(752u);
    arr[753] = x2(753u);
    arr[754] = x2(754u);
    arr[755] = x2(755u);
    arr[756] = x2(756u);
    arr[757] = x2(757u);
    arr[758] = x2(758u);
    arr[759] = x2(759u);
    arr[760] = x2(760u);
    arr[761] = x2(761u);
    arr[762] = x2(762u);
    arr[763] = x2(763u);
    arr[764] = x2(764u);
    arr[765] = x2(765u);
    arr[766] = x2(766u);
    arr[767] = x2(767u);
    arr[768] = x2(768u);
    arr[769] = x2(769u);
    arr[770] = x2(770u);
    arr[771] = x2(771u);
    arr[772] = x2(772u);
    arr[773] = x2(773u);
    arr[774] = x2(774u);
    arr[775] = x2(775u);
    arr[776] = x2(776u);
    arr[777] = x2(777u);
    arr[778] = x2(778u);
    arr[779] = x2(779u);
    arr[780] = x2(780u);
    arr[781] = x2(781u);
    arr[782] = x2(782u);
    arr[783] = x2(783u);
    arr[784] = x2(784u);
    arr[785] = x2(785u);
    arr[786] = x2(786u);
    arr[787] = x2(787u);
    arr[788] = x2(788u);
    arr[789] = x2(789u);
    arr[790] = x2(790u);
    arr[791] = x2(791u);
    arr[792] = x2(792u);
    arr[793] = x2(793u);
    arr[794] = x2(794u);
    arr[795] = x2(795u);
    arr[796] = x2(796u);
    arr[797] = x2(797u);
    arr[798] = x2(798u);
    arr[799] = x2(799u);
    arr[800] = x2(800u);
    arr[801] = x2(801u);
    arr[802] = x2(802u);
    arr[803] = x2(803u);
    arr[804] = x2(804u);
    arr[805] = x2(805u);
    arr[806] = x2(806u);
    arr[807] = x2(807u);
    arr[808] = x2(808u);
    arr[809] = x2(809u);
    arr[810] = x2(810u);
    arr[811] = x2(811u);
    arr[812] = x2(812u);
    arr[813] = x2(813u);
    arr[814] = x2(814u);
    arr[815] = x2(815u);
    arr[816] = x2(816u);
    arr[817] = x2(817u);
    arr[818] = x2(818u);
    arr[819] = x2(819u);
    arr[820] = x2(820u);
    arr[821] = x2(821u);
    arr[822] = x2(822u);
    arr[823] = x2(823u);
    arr[824] = x2(824u);
    arr[825] = x2(825u);
    arr[826] = x2(826u);
    arr[827] = x2(827u);
    arr[828] = x2(828u);
    arr[829] = x2(829u);
    arr[830] = x2(830u);
    arr[831] = x2(831u);
    arr[832] = x2(832u);
    arr[833] = x2(833u);
    arr[834] = x2(834u);
    arr[835] = x2(835u);
    arr[836] = x2(836u);
    arr[837] = x2(837u);
    arr[838] = x2(838u);
    arr[839] = x2(839u);
    arr[840] = x2(840u);
    arr[841] = x2(841u);
    arr[842] = x2(842u);
    arr[843] = x2(843u);
    arr[844] = x2(844u);
    arr[845] = x2(845u);
    arr[846] = x2(846u);
    arr[847] = x2(847u);
    arr[848] = x2(848u);
    arr[849] = x2(849u);
    arr[850] = x2(850u);
    arr[851] = x2(851u);
    arr[852] = x2(852u);
    arr[853] = x2(853u);
    arr[854] = x2(854u);
    arr[855] = x2(855u);
    arr[856] = x2(856u);
    arr[857] = x2(857u);
    arr[858] = x2(858u);
    arr[859] = x2(859u);
    arr[860] = x2(860u);
    arr[861] = x2(861u);
    arr[862] = x2(862u);
    arr[863] = x2(863u);
    arr[864] = x2(864u);
    arr[865] = x2(865u);
    arr[866] = x2(866u);
    arr[867] = x2(867u);
    arr[868] = x2(868u);
    arr[869] = x2(869u);
    arr[870] = x2(870u);
    arr[871] = x2(871u);
    arr[872] = x2(872u);
    arr[873] = x2(873u);
    arr[874] = x2(874u);
    arr[875] = x2(875u);
    arr[876] = x2(876u);
    arr[877] = x2(877u);
    arr[878] = x2(878u);
    arr[879] = x2(879u);
    arr[880] = x2(880u);
    arr[881] = x2(881u);
    arr[882] = x2(882u);
    arr[883] = x2(883u);
    arr[884] = x2(884u);
    arr[885] = x2(885u);
    arr[886] = x2(886u);
    arr[887] = x2(887u);
    arr[888] = x2(888u);
    arr[889] = x2(889u);
    arr[890] = x2(890u);
    arr[891] = x2(891u);
    arr[892] = x2(892u);
    arr[893] = x2(893u);
    arr[894] = x2(894u);
    arr[895] = x2(895u);
    arr[896] = x2(896u);
    arr[897] = x2(897u);
    arr[898] = x2(898u);
    arr[899] = x2(899u);
    arr[900] = x2(900u);
    arr[901] = x2(901u);
    arr[902] = x2(902u);
    arr[903] = x2(903u);
    arr[904] = x2(904u);
    arr[905] = x2(905u);
    arr[906] = x2(906u);
    arr[907] = x2(907u);
    arr[908] = x2(908u);
    arr[909] = x2(909u);
    arr[910] = x2(910u);
    arr[911] = x2(911u);
    arr[912] = x2(912u);
    arr[913] = x2(913u);
    arr[914] = x2(914u);
    arr[915] = x2(915u);
    arr[916] = x2(916u);
    arr[917] = x2(917u);
    arr[918] = x2(918u);
    arr[919] = x2(919u);
    arr[920] = x2(920u);
    arr[921] = x2(921u);
    arr[922] = x2(922u);
    arr[923] = x2(923u);
    arr[924] = x2(924u);
    arr[925] = x2(925u);
    arr[926] = x2(926u);
    arr[927] = x2(927u);
    arr[928] = x2(928u);
    arr[929] = x2(929u);
    arr[930] = x2(930u);
    arr[931] = x2(931u);
    arr[932] = x2(932u);
    arr[933] = x2(933u);
    arr[934] = x2(934u);
    arr[935] = x2(935u);
    arr[936] = x2(936u);
    arr[937] = x2(937u);
    arr[938] = x2(938u);
    arr[939] = x2(939u);
    arr[940] = x2(940u);
    arr[941] = x2(941u);
    arr[942] = x2(942u);
    arr[943] = x2(943u);
    arr[944] = x2(944u);
    arr[945] = x2(945u);
    arr[946] = x2(946u);
    arr[947] = x2(947u);
    arr[948] = x2(948u);
    arr[949] = x2(949u);
    arr[950] = x2(950u);
    arr[951] = x2(951u);
    arr[952] = x2(952u);
    arr[953] = x2(953u);
    arr[954] = x2(954u);
    arr[955] = x2(955u);
    arr[956] = x2(956u);
    arr[957] = x2(957u);
    arr[958] = x2(958u);
    arr[959] = x2(959u);
    arr[960] = x2(960u);
    arr[961] = x2(961u);
    arr[962] = x2(962u);
    arr[963] = x2(963u);
    arr[964] = x2(964u);
    arr[965] = x2(965u);
    arr[966] = x2(966u);
    arr[967] = x2(967u);
    arr[968] = x2(968u);
    arr[969] = x2(969u);
    arr[970] = x2(970u);
    arr[971] = x2(971u);
    arr[972] = x2(972u);
    arr[973] = x2(973u);
    arr[974] = x2(974u);
    arr[975] = x2(975u);
    arr[976] = x2(976u);
    arr[977] = x2(977u);
    arr[978] = x2(978u);
    arr[979] = x2(979u);
    arr[980] = x2(980u);
    arr[981] = x2(981u);
    arr[982] = x2(982u);
    arr[983] = x2(983u);
    arr[984] = x2(984u);
    arr[985] = x2(985u);
    arr[986] = x2(986u);
    arr[987] = x2(987u);
    arr[988] = x2(988u);
    arr[989] = x2(989u);
    arr[990] = x2(990u);
    arr[991] = x2(991u);
    arr[992] = x2(992u);
    arr[993] = x2(993u);
    arr[994] = x2(994u);
    arr[995] = x2(995u);
    arr[996] = x2(996u);
    arr[997] = x2(997u);
    arr[998] = x2(998u);
    arr[999] = x2(999u);
    v_indices[0] = arr[0];
    v_indices[1] = arr[1];
    v_indices[2] = arr[2];
    v_indices[3] = arr[3];
    v_indices[4] = arr[4];
    v_indices[5] = arr[5];
    v_indices[6] = arr[6];
    v_indices[7] = arr[7];
    v_indices[8] = arr[8];
    v_indices[9] = arr[9];
    v_indices[10] = arr[10];
    v_indices[11] = arr[11];
    v_indices[12] = arr[12];
    v_indices[13] = arr[13];
    v_indices[14] = arr[14];
    v_indices[15] = arr[15];
    v_indices[16] = arr[16];
    v_indices[17] = arr[17];
    v_indices[18] = arr[18];
    v_indices[19] = arr[19];
    v_indices[20] = arr[20];
    v_indices[21] = arr[21];
    v_indices[22] = arr[22];
    v_indices[23] = arr[23];
    v_indices[24] = arr[24];
    v_indices[25] = arr[25];
    v_indices[26] = arr[26];
    v_indices[27] = arr[27];
    v_indices[28] = arr[28];
    v_indices[29] = arr[29];
    v_indices[30] = arr[30];
    v_indices[31] = arr[31];
    v_indices[32] = arr[32];
    v_indices[33] = arr[33];
    v_indices[34] = arr[34];
    v_indices[35] = arr[35];
    v_indices[36] = arr[36];
    v_indices[37] = arr[37];
    v_indices[38] = arr[38];
    v_indices[39] = arr[39];
    v_indices[40] = arr[40];
    v_indices[41] = arr[41];
    v_indices[42] = arr[42];
    v_indices[43] = arr[43];
    v_indices[44] = arr[44];
    v_indices[45] = arr[45];
    v_indices[46] = arr[46];
    v_indices[47] = arr[47];
    v_indices[48] = arr[48];
    v_indices[49] = arr[49];
    v_indices[50] = arr[50];
    v_indices[51] = arr[51];
    v_indices[52] = arr[52];
    v_indices[53] = arr[53];
    v_indices[54] = arr[54];
    v_indices[55] = arr[55];
    v_indices[56] = arr[56];
    v_indices[57] = arr[57];
    v_indices[58] = arr[58];
    v_indices[59] = arr[59];
    v_indices[60] = arr[60];
    v_indices[61] = arr[61];
    v_indices[62] = arr[62];
    v_indices[63] = arr[63];
    v_indices[64] = arr[64];
    v_indices[65] = arr[65];
    v_indices[66] = arr[66];
    v_indices[67] = arr[67];
    v_indices[68] = arr[68];
    v_indices[69] = arr[69];
    v_indices[70] = arr[70];
    v_indices[71] = arr[71];
    v_indices[72] = arr[72];
    v_indices[73] = arr[73];
    v_indices[74] = arr[74];
    v_indices[75] = arr[75];
    v_indices[76] = arr[76];
    v_indices[77] = arr[77];
    v_indices[78] = arr[78];
    v_indices[79] = arr[79];
    v_indices[80] = arr[80];
    v_indices[81] = arr[81];
    v_indices[82] = arr[82];
    v_indices[83] = arr[83];
    v_indices[84] = arr[84];
    v_indices[85] = arr[85];
    v_indices[86] = arr[86];
    v_indices[87] = arr[87];
    v_indices[88] = arr[88];
    v_indices[89] = arr[89];
    v_indices[90] = arr[90];
    v_indices[91] = arr[91];
    v_indices[92] = arr[92];
    v_indices[93] = arr[93];
    v_indices[94] = arr[94];
    v_indices[95] = arr[95];
    v_indices[96] = arr[96];
    v_indices[97] = arr[97];
    v_indices[98] = arr[98];
    v_indices[99] = arr[99];
    v_indices[100] = arr[100];
    v_indices[101] = arr[101];
    v_indices[102] = arr[102];
    v_indices[103] = arr[103];
    v_indices[104] = arr[104];
    v_indices[105] = arr[105];
    v_indices[106] = arr[106];
    v_indices[107] = arr[107];
    v_indices[108] = arr[108];
    v_indices[109] = arr[109];
    v_indices[110] = arr[110];
    v_indices[111] = arr[111];
    v_indices[112] = arr[112];
    v_indices[113] = arr[113];
    v_indices[114] = arr[114];
    v_indices[115] = arr[115];
    v_indices[116] = arr[116];
    v_indices[117] = arr[117];
    v_indices[118] = arr[118];
    v_indices[119] = arr[119];
    v_indices[120] = arr[120];
    v_indices[121] = arr[121];
    v_indices[122] = arr[122];
    v_indices[123] = arr[123];
    v_indices[124] = arr[124];
    v_indices[125] = arr[125];
    v_indices[126] = arr[126];
    v_indices[127] = arr[127];
    v_indices[128] = arr[128];
    v_indices[129] = arr[129];
    v_indices[130] = arr[130];
    v_indices[131] = arr[131];
    v_indices[132] = arr[132];
    v_indices[133] = arr[133];
    v_indices[134] = arr[134];
    v_indices[135] = arr[135];
    v_indices[136] = arr[136];
    v_indices[137] = arr[137];
    v_indices[138] = arr[138];
    v_indices[139] = arr[139];
    v_indices[140] = arr[140];
    v_indices[141] = arr[141];
    v_indices[142] = arr[142];
    v_indices[143] = arr[143];
    v_indices[144] = arr[144];
    v_indices[145] = arr[145];
    v_indices[146] = arr[146];
    v_indices[147] = arr[147];
    v_indices[148] = arr[148];
    v_indices[149] = arr[149];
    v_indices[150] = arr[150];
    v_indices[151] = arr[151];
    v_indices[152] = arr[152];
    v_indices[153] = arr[153];
    v_indices[154] = arr[154];
    v_indices[155] = arr[155];
    v_indices[156] = arr[156];
    v_indices[157] = arr[157];
    v_indices[158] = arr[158];
    v_indices[159] = arr[159];
    v_indices[160] = arr[160];
    v_indices[161] = arr[161];
    v_indices[162] = arr[162];
    v_indices[163] = arr[163];
    v_indices[164] = arr[164];
    v_indices[165] = arr[165];
    v_indices[166] = arr[166];
    v_indices[167] = arr[167];
    v_indices[168] = arr[168];
    v_indices[169] = arr[169];
    v_indices[170] = arr[170];
    v_indices[171] = arr[171];
    v_indices[172] = arr[172];
    v_indices[173] = arr[173];
    v_indices[174] = arr[174];
    v_indices[175] = arr[175];
    v_indices[176] = arr[176];
    v_indices[177] = arr[177];
    v_indices[178] = arr[178];
    v_indices[179] = arr[179];
    v_indices[180] = arr[180];
    v_indices[181] = arr[181];
    v_indices[182] = arr[182];
    v_indices[183] = arr[183];
    v_indices[184] = arr[184];
    v_indices[185] = arr[185];
    v_indices[186] = arr[186];
    v_indices[187] = arr[187];
    v_indices[188] = arr[188];
    v_indices[189] = arr[189];
    v_indices[190] = arr[190];
    v_indices[191] = arr[191];
    v_indices[192] = arr[192];
    v_indices[193] = arr[193];
    v_indices[194] = arr[194];
    v_indices[195] = arr[195];
    v_indices[196] = arr[196];
    v_indices[197] = arr[197];
    v_indices[198] = arr[198];
    v_indices[199] = arr[199];
    v_indices[200] = arr[200];
    v_indices[201] = arr[201];
    v_indices[202] = arr[202];
    v_indices[203] = arr[203];
    v_indices[204] = arr[204];
    v_indices[205] = arr[205];
    v_indices[206] = arr[206];
    v_indices[207] = arr[207];
    v_indices[208] = arr[208];
    v_indices[209] = arr[209];
    v_indices[210] = arr[210];
    v_indices[211] = arr[211];
    v_indices[212] = arr[212];
    v_indices[213] = arr[213];
    v_indices[214] = arr[214];
    v_indices[215] = arr[215];
    v_indices[216] = arr[216];
    v_indices[217] = arr[217];
    v_indices[218] = arr[218];
    v_indices[219] = arr[219];
    v_indices[220] = arr[220];
    v_indices[221] = arr[221];
    v_indices[222] = arr[222];
    v_indices[223] = arr[223];
    v_indices[224] = arr[224];
    v_indices[225] = arr[225];
    v_indices[226] = arr[226];
    v_indices[227] = arr[227];
    v_indices[228] = arr[228];
    v_indices[229] = arr[229];
    v_indices[230] = arr[230];
    v_indices[231] = arr[231];
    v_indices[232] = arr[232];
    v_indices[233] = arr[233];
    v_indices[234] = arr[234];
    v_indices[235] = arr[235];
    v_indices[236] = arr[236];
    v_indices[237] = arr[237];
    v_indices[238] = arr[238];
    v_indices[239] = arr[239];
    v_indices[240] = arr[240];
    v_indices[241] = arr[241];
    v_indices[242] = arr[242];
    v_indices[243] = arr[243];
    v_indices[244] = arr[244];
    v_indices[245] = arr[245];
    v_indices[246] = arr[246];
    v_indices[247] = arr[247];
    v_indices[248] = arr[248];
    v_indices[249] = arr[249];
    v_indices[250] = arr[250];
    v_indices[251] = arr[251];
    v_indices[252] = arr[252];
    v_indices[253] = arr[253];
    v_indices[254] = arr[254];
    v_indices[255] = arr[255];
    v_indices[256] = arr[256];
    v_indices[257] = arr[257];
    v_indices[258] = arr[258];
    v_indices[259] = arr[259];
    v_indices[260] = arr[260];
    v_indices[261] = arr[261];
    v_indices[262] = arr[262];
    v_indices[263] = arr[263];
    v_indices[264] = arr[264];
    v_indices[265] = arr[265];
    v_indices[266] = arr[266];
    v_indices[267] = arr[267];
    v_indices[268] = arr[268];
    v_indices[269] = arr[269];
    v_indices[270] = arr[270];
    v_indices[271] = arr[271];
    v_indices[272] = arr[272];
    v_indices[273] = arr[273];
    v_indices[274] = arr[274];
    v_indices[275] = arr[275];
    v_indices[276] = arr[276];
    v_indices[277] = arr[277];
    v_indices[278] = arr[278];
    v_indices[279] = arr[279];
    v_indices[280] = arr[280];
    v_indices[281] = arr[281];
    v_indices[282] = arr[282];
    v_indices[283] = arr[283];
    v_indices[284] = arr[284];
    v_indices[285] = arr[285];
    v_indices[286] = arr[286];
    v_indices[287] = arr[287];
    v_indices[288] = arr[288];
    v_indices[289] = arr[289];
    v_indices[290] = arr[290];
    v_indices[291] = arr[291];
    v_indices[292] = arr[292];
    v_indices[293] = arr[293];
    v_indices[294] = arr[294];
    v_indices[295] = arr[295];
    v_indices[296] = arr[296];
    v_indices[297] = arr[297];
    v_indices[298] = arr[298];
    v_indices[299] = arr[299];
    v_indices[300] = arr[300];
    v_indices[301] = arr[301];
    v_indices[302] = arr[302];
    v_indices[303] = arr[303];
    v_indices[304] = arr[304];
    v_indices[305] = arr[305];
    v_indices[306] = arr[306];
    v_indices[307] = arr[307];
    v_indices[308] = arr[308];
    v_indices[309] = arr[309];
    v_indices[310] = arr[310];
    v_indices[311] = arr[311];
    v_indices[312] = arr[312];
    v_indices[313] = arr[313];
    v_indices[314] = arr[314];
    v_indices[315] = arr[315];
    v_indices[316] = arr[316];
    v_indices[317] = arr[317];
    v_indices[318] = arr[318];
    v_indices[319] = arr[319];
    v_indices[320] = arr[320];
    v_indices[321] = arr[321];
    v_indices[322] = arr[322];
    v_indices[323] = arr[323];
    v_indices[324] = arr[324];
    v_indices[325] = arr[325];
    v_indices[326] = arr[326];
    v_indices[327] = arr[327];
    v_indices[328] = arr[328];
    v_indices[329] = arr[329];
    v_indices[330] = arr[330];
    v_indices[331] = arr[331];
    v_indices[332] = arr[332];
    v_indices[333] = arr[333];
    v_indices[334] = arr[334];
    v_indices[335] = arr[335];
    v_indices[336] = arr[336];
    v_indices[337] = arr[337];
    v_indices[338] = arr[338];
    v_indices[339] = arr[339];
    v_indices[340] = arr[340];
    v_indices[341] = arr[341];
    v_indices[342] = arr[342];
    v_indices[343] = arr[343];
    v_indices[344] = arr[344];
    v_indices[345] = arr[345];
    v_indices[346] = arr[346];
    v_indices[347] = arr[347];
    v_indices[348] = arr[348];
    v_indices[349] = arr[349];
    v_indices[350] = arr[350];
    v_indices[351] = arr[351];
    v_indices[352] = arr[352];
    v_indices[353] = arr[353];
    v_indices[354] = arr[354];
    v_indices[355] = arr[355];
    v_indices[356] = arr[356];
    v_indices[357] = arr[357];
    v_indices[358] = arr[358];
    v_indices[359] = arr[359];
    v_indices[360] = arr[360];
    v_indices[361] = arr[361];
    v_indices[362] = arr[362];
    v_indices[363] = arr[363];
    v_indices[364] = arr[364];
    v_indices[365] = arr[365];
    v_indices[366] = arr[366];
    v_indices[367] = arr[367];
    v_indices[368] = arr[368];
    v_indices[369] = arr[369];
    v_indices[370] = arr[370];
    v_indices[371] = arr[371];
    v_indices[372] = arr[372];
    v_indices[373] = arr[373];
    v_indices[374] = arr[374];
    v_indices[375] = arr[375];
    v_indices[376] = arr[376];
    v_indices[377] = arr[377];
    v_indices[378] = arr[378];
    v_indices[379] = arr[379];
    v_indices[380] = arr[380];
    v_indices[381] = arr[381];
    v_indices[382] = arr[382];
    v_indices[383] = arr[383];
    v_indices[384] = arr[384];
    v_indices[385] = arr[385];
    v_indices[386] = arr[386];
    v_indices[387] = arr[387];
    v_indices[388] = arr[388];
    v_indices[389] = arr[389];
    v_indices[390] = arr[390];
    v_indices[391] = arr[391];
    v_indices[392] = arr[392];
    v_indices[393] = arr[393];
    v_indices[394] = arr[394];
    v_indices[395] = arr[395];
    v_indices[396] = arr[396];
    v_indices[397] = arr[397];
    v_indices[398] = arr[398];
    v_indices[399] = arr[399];
    v_indices[400] = arr[400];
    v_indices[401] = arr[401];
    v_indices[402] = arr[402];
    v_indices[403] = arr[403];
    v_indices[404] = arr[404];
    v_indices[405] = arr[405];
    v_indices[406] = arr[406];
    v_indices[407] = arr[407];
    v_indices[408] = arr[408];
    v_indices[409] = arr[409];
    v_indices[410] = arr[410];
    v_indices[411] = arr[411];
    v_indices[412] = arr[412];
    v_indices[413] = arr[413];
    v_indices[414] = arr[414];
    v_indices[415] = arr[415];
    v_indices[416] = arr[416];
    v_indices[417] = arr[417];
    v_indices[418] = arr[418];
    v_indices[419] = arr[419];
    v_indices[420] = arr[420];
    v_indices[421] = arr[421];
    v_indices[422] = arr[422];
    v_indices[423] = arr[423];
    v_indices[424] = arr[424];
    v_indices[425] = arr[425];
    v_indices[426] = arr[426];
    v_indices[427] = arr[427];
    v_indices[428] = arr[428];
    v_indices[429] = arr[429];
    v_indices[430] = arr[430];
    v_indices[431] = arr[431];
    v_indices[432] = arr[432];
    v_indices[433] = arr[433];
    v_indices[434] = arr[434];
    v_indices[435] = arr[435];
    v_indices[436] = arr[436];
    v_indices[437] = arr[437];
    v_indices[438] = arr[438];
    v_indices[439] = arr[439];
    v_indices[440] = arr[440];
    v_indices[441] = arr[441];
    v_indices[442] = arr[442];
    v_indices[443] = arr[443];
    v_indices[444] = arr[444];
    v_indices[445] = arr[445];
    v_indices[446] = arr[446];
    v_indices[447] = arr[447];
    v_indices[448] = arr[448];
    v_indices[449] = arr[449];
    v_indices[450] = arr[450];
    v_indices[451] = arr[451];
    v_indices[452] = arr[452];
    v_indices[453] = arr[453];
    v_indices[454] = arr[454];
    v_indices[455] = arr[455];
    v_indices[456] = arr[456];
    v_indices[457] = arr[457];
    v_indices[458] = arr[458];
    v_indices[459] = arr[459];
    v_indices[460] = arr[460];
    v_indices[461] = arr[461];
    v_indices[462] = arr[462];
    v_indices[463] = arr[463];
    v_indices[464] = arr[464];
    v_indices[465] = arr[465];
    v_indices[466] = arr[466];
    v_indices[467] = arr[467];
    v_indices[468] = arr[468];
    v_indices[469] = arr[469];
    v_indices[470] = arr[470];
    v_indices[471] = arr[471];
    v_indices[472] = arr[472];
    v_indices[473] = arr[473];
    v_indices[474] = arr[474];
    v_indices[475] = arr[475];
    v_indices[476] = arr[476];
    v_indices[477] = arr[477];
    v_indices[478] = arr[478];
    v_indices[479] = arr[479];
    v_indices[480] = arr[480];
    v_indices[481] = arr[481];
    v_indices[482] = arr[482];
    v_indices[483] = arr[483];
    v_indices[484] = arr[484];
    v_indices[485] = arr[485];
    v_indices[486] = arr[486];
    v_indices[487] = arr[487];
    v_indices[488] = arr[488];
    v_indices[489] = arr[489];
    v_indices[490] = arr[490];
    v_indices[491] = arr[491];
    v_indices[492] = arr[492];
    v_indices[493] = arr[493];
    v_indices[494] = arr[494];
    v_indices[495] = arr[495];
    v_indices[496] = arr[496];
    v_indices[497] = arr[497];
    v_indices[498] = arr[498];
    v_indices[499] = arr[499];
    v_indices[500] = arr[500];
    v_indices[501] = arr[501];
    v_indices[502] = arr[502];
    v_indices[503] = arr[503];
    v_indices[504] = arr[504];
    v_indices[505] = arr[505];
    v_indices[506] = arr[506];
    v_indices[507] = arr[507];
    v_indices[508] = arr[508];
    v_indices[509] = arr[509];
    v_indices[510] = arr[510];
    v_indices[511] = arr[511];
    v_indices[512] = arr[512];
    v_indices[513] = arr[513];
    v_indices[514] = arr[514];
    v_indices[515] = arr[515];
    v_indices[516] = arr[516];
    v_indices[517] = arr[517];
    v_indices[518] = arr[518];
    v_indices[519] = arr[519];
    v_indices[520] = arr[520];
    v_indices[521] = arr[521];
    v_indices[522] = arr[522];
    v_indices[523] = arr[523];
    v_indices[524] = arr[524];
    v_indices[525] = arr[525];
    v_indices[526] = arr[526];
    v_indices[527] = arr[527];
    v_indices[528] = arr[528];
    v_indices[529] = arr[529];
    v_indices[530] = arr[530];
    v_indices[531] = arr[531];
    v_indices[532] = arr[532];
    v_indices[533] = arr[533];
    v_indices[534] = arr[534];
    v_indices[535] = arr[535];
    v_indices[536] = arr[536];
    v_indices[537] = arr[537];
    v_indices[538] = arr[538];
    v_indices[539] = arr[539];
    v_indices[540] = arr[540];
    v_indices[541] = arr[541];
    v_indices[542] = arr[542];
    v_indices[543] = arr[543];
    v_indices[544] = arr[544];
    v_indices[545] = arr[545];
    v_indices[546] = arr[546];
    v_indices[547] = arr[547];
    v_indices[548] = arr[548];
    v_indices[549] = arr[549];
    v_indices[550] = arr[550];
    v_indices[551] = arr[551];
    v_indices[552] = arr[552];
    v_indices[553] = arr[553];
    v_indices[554] = arr[554];
    v_indices[555] = arr[555];
    v_indices[556] = arr[556];
    v_indices[557] = arr[557];
    v_indices[558] = arr[558];
    v_indices[559] = arr[559];
    v_indices[560] = arr[560];
    v_indices[561] = arr[561];
    v_indices[562] = arr[562];
    v_indices[563] = arr[563];
    v_indices[564] = arr[564];
    v_indices[565] = arr[565];
    v_indices[566] = arr[566];
    v_indices[567] = arr[567];
    v_indices[568] = arr[568];
    v_indices[569] = arr[569];
    v_indices[570] = arr[570];
    v_indices[571] = arr[571];
    v_indices[572] = arr[572];
    v_indices[573] = arr[573];
    v_indices[574] = arr[574];
    v_indices[575] = arr[575];
    v_indices[576] = arr[576];
    v_indices[577] = arr[577];
    v_indices[578] = arr[578];
    v_indices[579] = arr[579];
    v_indices[580] = arr[580];
    v_indices[581] = arr[581];
    v_indices[582] = arr[582];
    v_indices[583] = arr[583];
    v_indices[584] = arr[584];
    v_indices[585] = arr[585];
    v_indices[586] = arr[586];
    v_indices[587] = arr[587];
    v_indices[588] = arr[588];
    v_indices[589] = arr[589];
    v_indices[590] = arr[590];
    v_indices[591] = arr[591];
    v_indices[592] = arr[592];
    v_indices[593] = arr[593];
    v_indices[594] = arr[594];
    v_indices[595] = arr[595];
    v_indices[596] = arr[596];
    v_indices[597] = arr[597];
    v_indices[598] = arr[598];
    v_indices[599] = arr[599];
    v_indices[600] = arr[600];
    v_indices[601] = arr[601];
    v_indices[602] = arr[602];
    v_indices[603] = arr[603];
    v_indices[604] = arr[604];
    v_indices[605] = arr[605];
    v_indices[606] = arr[606];
    v_indices[607] = arr[607];
    v_indices[608] = arr[608];
    v_indices[609] = arr[609];
    v_indices[610] = arr[610];
    v_indices[611] = arr[611];
    v_indices[612] = arr[612];
    v_indices[613] = arr[613];
    v_indices[614] = arr[614];
    v_indices[615] = arr[615];
    v_indices[616] = arr[616];
    v_indices[617] = arr[617];
    v_indices[618] = arr[618];
    v_indices[619] = arr[619];
    v_indices[620] = arr[620];
    v_indices[621] = arr[621];
    v_indices[622] = arr[622];
    v_indices[623] = arr[623];
    v_indices[624] = arr[624];
    v_indices[625] = arr[625];
    v_indices[626] = arr[626];
    v_indices[627] = arr[627];
    v_indices[628] = arr[628];
    v_indices[629] = arr[629];
    v_indices[630] = arr[630];
    v_indices[631] = arr[631];
    v_indices[632] = arr[632];
    v_indices[633] = arr[633];
    v_indices[634] = arr[634];
    v_indices[635] = arr[635];
    v_indices[636] = arr[636];
    v_indices[637] = arr[637];
    v_indices[638] = arr[638];
    v_indices[639] = arr[639];
    v_indices[640] = arr[640];
    v_indices[641] = arr[641];
    v_indices[642] = arr[642];
    v_indices[643] = arr[643];
    v_indices[644] = arr[644];
    v_indices[645] = arr[645];
    v_indices[646] = arr[646];
    v_indices[647] = arr[647];
    v_indices[648] = arr[648];
    v_indices[649] = arr[649];
    v_indices[650] = arr[650];
    v_indices[651] = arr[651];
    v_indices[652] = arr[652];
    v_indices[653] = arr[653];
    v_indices[654] = arr[654];
    v_indices[655] = arr[655];
    v_indices[656] = arr[656];
    v_indices[657] = arr[657];
    v_indices[658] = arr[658];
    v_indices[659] = arr[659];
    v_indices[660] = arr[660];
    v_indices[661] = arr[661];
    v_indices[662] = arr[662];
    v_indices[663] = arr[663];
    v_indices[664] = arr[664];
    v_indices[665] = arr[665];
    v_indices[666] = arr[666];
    v_indices[667] = arr[667];
    v_indices[668] = arr[668];
    v_indices[669] = arr[669];
    v_indices[670] = arr[670];
    v_indices[671] = arr[671];
    v_indices[672] = arr[672];
    v_indices[673] = arr[673];
    v_indices[674] = arr[674];
    v_indices[675] = arr[675];
    v_indices[676] = arr[676];
    v_indices[677] = arr[677];
    v_indices[678] = arr[678];
    v_indices[679] = arr[679];
    v_indices[680] = arr[680];
    v_indices[681] = arr[681];
    v_indices[682] = arr[682];
    v_indices[683] = arr[683];
    v_indices[684] = arr[684];
    v_indices[685] = arr[685];
    v_indices[686] = arr[686];
    v_indices[687] = arr[687];
    v_indices[688] = arr[688];
    v_indices[689] = arr[689];
    v_indices[690] = arr[690];
    v_indices[691] = arr[691];
    v_indices[692] = arr[692];
    v_indices[693] = arr[693];
    v_indices[694] = arr[694];
    v_indices[695] = arr[695];
    v_indices[696] = arr[696];
    v_indices[697] = arr[697];
    v_indices[698] = arr[698];
    v_indices[699] = arr[699];
    v_indices[700] = arr[700];
    v_indices[701] = arr[701];
    v_indices[702] = arr[702];
    v_indices[703] = arr[703];
    v_indices[704] = arr[704];
    v_indices[705] = arr[705];
    v_indices[706] = arr[706];
    v_indices[707] = arr[707];
    v_indices[708] = arr[708];
    v_indices[709] = arr[709];
    v_indices[710] = arr[710];
    v_indices[711] = arr[711];
    v_indices[712] = arr[712];
    v_indices[713] = arr[713];
    v_indices[714] = arr[714];
    v_indices[715] = arr[715];
    v_indices[716] = arr[716];
    v_indices[717] = arr[717];
    v_indices[718] = arr[718];
    v_indices[719] = arr[719];
    v_indices[720] = arr[720];
    v_indices[721] = arr[721];
    v_indices[722] = arr[722];
    v_indices[723] = arr[723];
    v_indices[724] = arr[724];
    v_indices[725] = arr[725];
    v_indices[726] = arr[726];
    v_indices[727] = arr[727];
    v_indices[728] = arr[728];
    v_indices[729] = arr[729];
    v_indices[730] = arr[730];
    v_indices[731] = arr[731];
    v_indices[732] = arr[732];
    v_indices[733] = arr[733];
    v_indices[734] = arr[734];
    v_indices[735] = arr[735];
    v_indices[736] = arr[736];
    v_indices[737] = arr[737];
    v_indices[738] = arr[738];
    v_indices[739] = arr[739];
    v_indices[740] = arr[740];
    v_indices[741] = arr[741];
    v_indices[742] = arr[742];
    v_indices[743] = arr[743];
    v_indices[744] = arr[744];
    v_indices[745] = arr[745];
    v_indices[746] = arr[746];
    v_indices[747] = arr[747];
    v_indices[748] = arr[748];
    v_indices[749] = arr[749];
    v_indices[750] = arr[750];
    v_indices[751] = arr[751];
    v_indices[752] = arr[752];
    v_indices[753] = arr[753];
    v_indices[754] = arr[754];
    v_indices[755] = arr[755];
    v_indices[756] = arr[756];
    v_indices[757] = arr[757];
    v_indices[758] = arr[758];
    v_indices[759] = arr[759];
    v_indices[760] = arr[760];
    v_indices[761] = arr[761];
    v_indices[762] = arr[762];
    v_indices[763] = arr[763];
    v_indices[764] = arr[764];
    v_indices[765] = arr[765];
    v_indices[766] = arr[766];
    v_indices[767] = arr[767];
    v_indices[768] = arr[768];
    v_indices[769] = arr[769];
    v_indices[770] = arr[770];
    v_indices[771] = arr[771];
    v_indices[772] = arr[772];
    v_indices[773] = arr[773];
    v_indices[774] = arr[774];
    v_indices[775] = arr[775];
    v_indices[776] = arr[776];
    v_indices[777] = arr[777];
    v_indices[778] = arr[778];
    v_indices[779] = arr[779];
    v_indices[780] = arr[780];
    v_indices[781] = arr[781];
    v_indices[782] = arr[782];
    v_indices[783] = arr[783];
    v_indices[784] = arr[784];
    v_indices[785] = arr[785];
    v_indices[786] = arr[786];
    v_indices[787] = arr[787];
    v_indices[788] = arr[788];
    v_indices[789] = arr[789];
    v_indices[790] = arr[790];
    v_indices[791] = arr[791];
    v_indices[792] = arr[792];
    v_indices[793] = arr[793];
    v_indices[794] = arr[794];
    v_indices[795] = arr[795];
    v_indices[796] = arr[796];
    v_indices[797] = arr[797];
    v_indices[798] = arr[798];
    v_indices[799] = arr[799];
    v_indices[800] = arr[800];
    v_indices[801] = arr[801];
    v_indices[802] = arr[802];
    v_indices[803] = arr[803];
    v_indices[804] = arr[804];
    v_indices[805] = arr[805];
    v_indices[806] = arr[806];
    v_indices[807] = arr[807];
    v_indices[808] = arr[808];
    v_indices[809] = arr[809];
    v_indices[810] = arr[810];
    v_indices[811] = arr[811];
    v_indices[812] = arr[812];
    v_indices[813] = arr[813];
    v_indices[814] = arr[814];
    v_indices[815] = arr[815];
    v_indices[816] = arr[816];
    v_indices[817] = arr[817];
    v_indices[818] = arr[818];
    v_indices[819] = arr[819];
    v_indices[820] = arr[820];
    v_indices[821] = arr[821];
    v_indices[822] = arr[822];
    v_indices[823] = arr[823];
    v_indices[824] = arr[824];
    v_indices[825] = arr[825];
    v_indices[826] = arr[826];
    v_indices[827] = arr[827];
    v_indices[828] = arr[828];
    v_indices[829] = arr[829];
    v_indices[830] = arr[830];
    v_indices[831] = arr[831];
    v_indices[832] = arr[832];
    v_indices[833] = arr[833];
    v_indices[834] = arr[834];
    v_indices[835] = arr[835];
    v_indices[836] = arr[836];
    v_indices[837] = arr[837];
    v_indices[838] = arr[838];
    v_indices[839] = arr[839];
    v_indices[840] = arr[840];
    v_indices[841] = arr[841];
    v_indices[842] = arr[842];
    v_indices[843] = arr[843];
    v_indices[844] = arr[844];
    v_indices[845] = arr[845];
    v_indices[846] = arr[846];
    v_indices[847] = arr[847];
    v_indices[848] = arr[848];
    v_indices[849] = arr[849];
    v_indices[850] = arr[850];
    v_indices[851] = arr[851];
    v_indices[852] = arr[852];
    v_indices[853] = arr[853];
    v_indices[854] = arr[854];
    v_indices[855] = arr[855];
    v_indices[856] = arr[856];
    v_indices[857] = arr[857];
    v_indices[858] = arr[858];
    v_indices[859] = arr[859];
    v_indices[860] = arr[860];
    v_indices[861] = arr[861];
    v_indices[862] = arr[862];
    v_indices[863] = arr[863];
    v_indices[864] = arr[864];
    v_indices[865] = arr[865];
    v_indices[866] = arr[866];
    v_indices[867] = arr[867];
    v_indices[868] = arr[868];
    v_indices[869] = arr[869];
    v_indices[870] = arr[870];
    v_indices[871] = arr[871];
    v_indices[872] = arr[872];
    v_indices[873] = arr[873];
    v_indices[874] = arr[874];
    v_indices[875] = arr[875];
    v_indices[876] = arr[876];
    v_indices[877] = arr[877];
    v_indices[878] = arr[878];
    v_indices[879] = arr[879];
    v_indices[880] = arr[880];
    v_indices[881] = arr[881];
    v_indices[882] = arr[882];
    v_indices[883] = arr[883];
    v_indices[884] = arr[884];
    v_indices[885] = arr[885];
    v_indices[886] = arr[886];
    v_indices[887] = arr[887];
    v_indices[888] = arr[888];
    v_indices[889] = arr[889];
    v_indices[890] = arr[890];
    v_indices[891] = arr[891];
    v_indices[892] = arr[892];
    v_indices[893] = arr[893];
    v_indices[894] = arr[894];
    v_indices[895] = arr[895];
    v_indices[896] = arr[896];
    v_indices[897] = arr[897];
    v_indices[898] = arr[898];
    v_indices[899] = arr[899];
    v_indices[900] = arr[900];
    v_indices[901] = arr[901];
    v_indices[902] = arr[902];
    v_indices[903] = arr[903];
    v_indices[904] = arr[904];
    v_indices[905] = arr[905];
    v_indices[906] = arr[906];
    v_indices[907] = arr[907];
    v_indices[908] = arr[908];
    v_indices[909] = arr[909];
    v_indices[910] = arr[910];
    v_indices[911] = arr[911];
    v_indices[912] = arr[912];
    v_indices[913] = arr[913];
    v_indices[914] = arr[914];
    v_indices[915] = arr[915];
    v_indices[916] = arr[916];
    v_indices[917] = arr[917];
    v_indices[918] = arr[918];
    v_indices[919] = arr[919];
    v_indices[920] = arr[920];
    v_indices[921] = arr[921];
    v_indices[922] = arr[922];
    v_indices[923] = arr[923];
    v_indices[924] = arr[924];
    v_indices[925] = arr[925];
    v_indices[926] = arr[926];
    v_indices[927] = arr[927];
    v_indices[928] = arr[928];
    v_indices[929] = arr[929];
    v_indices[930] = arr[930];
    v_indices[931] = arr[931];
    v_indices[932] = arr[932];
    v_indices[933] = arr[933];
    v_indices[934] = arr[934];
    v_indices[935] = arr[935];
    v_indices[936] = arr[936];
    v_indices[937] = arr[937];
    v_indices[938] = arr[938];
    v_indices[939] = arr[939];
    v_indices[940] = arr[940];
    v_indices[941] = arr[941];
    v_indices[942] = arr[942];
    v_indices[943] = arr[943];
    v_indices[944] = arr[944];
    v_indices[945] = arr[945];
    v_indices[946] = arr[946];
    v_indices[947] = arr[947];
    v_indices[948] = arr[948];
    v_indices[949] = arr[949];
    v_indices[950] = arr[950];
    v_indices[951] = arr[951];
    v_indices[952] = arr[952];
    v_indices[953] = arr[953];
    v_indices[954] = arr[954];
    v_indices[955] = arr[955];
    v_indices[956] = arr[956];
    v_indices[957] = arr[957];
    v_indices[958] = arr[958];
    v_indices[959] = arr[959];
    v_indices[960] = arr[960];
    v_indices[961] = arr[961];
    v_indices[962] = arr[962];
    v_indices[963] = arr[963];
    v_indices[964] = arr[964];
    v_indices[965] = arr[965];
    v_indices[966] = arr[966];
    v_indices[967] = arr[967];
    v_indices[968] = arr[968];
    v_indices[969] = arr[969];
    v_indices[970] = arr[970];
    v_indices[971] = arr[971];
    v_indices[972] = arr[972];
    v_indices[973] = arr[973];
    v_indices[974] = arr[974];
    v_indices[975] = arr[975];
    v_indices[976] = arr[976];
    v_indices[977] = arr[977];
    v_indices[978] = arr[978];
    v_indices[979] = arr[979];
    v_indices[980] = arr[980];
    v_indices[981] = arr[981];
    v_indices[982] = arr[982];
    v_indices[983] = arr[983];
    v_indices[984] = arr[984];
    v_indices[985] = arr[985];
    v_indices[986] = arr[986];
    v_indices[987] = arr[987];
    v_indices[988] = arr[988];
    v_indices[989] = arr[989];
    v_indices[990] = arr[990];
    v_indices[991] = arr[991];
    v_indices[992] = arr[992];
    v_indices[993] = arr[993];
    v_indices[994] = arr[994];
    v_indices[995] = arr[995];
    v_indices[996] = arr[996];
    v_indices[997] = arr[997];
    v_indices[998] = arr[998];
    v_indices[999] = arr[999];
}

あれ

2023/7/17 22:55:00

goから越境してrustやるの嫌じゃな~~~。

そもそも、wgpuのレポジトリ見てても動かし方がよくわからん。

なんとなくIssueをcompute shaderで検索して眺めてみる。すでにIssueが出てれば幸甚。

なかったわ。一般的には巨大シェーダーを動かす動機がないらしい。


wgpuのレポジトリにExampleを発見したので動かしてみる。

wgpuでboidsが動いた。やったねたえちゃん!


巨大シェーダー実証の元としてhello-computeが良さそう。コードが簡単。見覚えもある。

サクッとシェーダーを書き換えてみたら動いた。いいぞ。


条件分岐が1万行の巨大シェーダーを試してみた結果、wgpuにおいてはそんなに時間がかからない。500msとかそんなもん。じゃあRustでwgpu使って遺伝的プログラミングすればええやんという判断が浮かび上がってくるが、Rust難しすぎてあれなのであれ。覚悟を決めるのに1週間ぐらいかかるやつ。

とはいえ現状は wgpu → wgpu-native → go-webgpu という依存をしており、wgpuを直接ぶったたくよりも隔靴搔痒となる。依存しているコードがどこでどう変わるかもわからない。wgpuはブラウザでも使われているらしいので、多分大丈夫だろう。

本丸の遺伝的プログラミングのコードは2000行程度なので、1週間もあれば行ける気がする。Rustを理解できれば。

その前にgo-webgpuをアップデートすべく、go get -uを叩く。よし、最新版でも直ってない。wgpuに乗り換えだ。

遺伝的プログラミングのコード全部を書き換えるのは骨が折れる。泣く。なので、wgpuを叩く部分だけRustで書けばええんちゃうんかという判断が生えてくる。『wgpu-go』や。

念のためにgoでもrustで動かしたのとまったく同じシェーダーを実行してみる。いや、普通に動く。先生……!これは……!条件分岐の数がCreateComputePipelineの処理時間に影響していると思われていたが、実はそうではなかった可能性が高い。Rustのwgpuで行った検証も不十分だった可能性が高い。

配列アクセスが悪いのではないかと思い至り、配列利用型巨大WGSLシェーダーを動かしてみたが普通に動く。機序がわからん。キショい。

関数実行が悪いのではないかと思い至り、配列及関数利用型巨大WGSLシェーダーを動かしてみたが普通に動く。静的だと最適化してないかこいつ。


関数がインライン展開されている気がしてきた。多分。わからんけど。そう考えると、関数の再起呼び出しができないのも、配列の添え字に変数が使えないのもしっくりくる。


「気晴らしにcompute.toysとか言うので遊んでみるかぁ」つって、何気なく配列の添え字に変数を入れてみたところ、なんと動いた。はぁ?じゃあっつって、最新版のgo-webgpuだとどうなんのよって試したら配列の添え字に変数を入れても動く。CreatePipelineも300ms以内に終わる。はぁ???今までの苦労は何だったんだ。3日返してほしい。

なお、最新版が出てきたのは5 days agoである。タイムリー。