test_senc2d_some_segments.c (53205B)
1 /* Copyright (C) 2018-2021, 2023, 2024 |Méso|Star> (contact@meso-star.com) 2 * 3 * This program is free software: you can redistribute it and/or modify 4 * it under the terms of the GNU General Public License as published by 5 * the Free Software Foundation, either version 3 of the License, or 6 * (at your option) any later version. 7 * 8 * This program is distributed in the hope that it will be useful, 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 * GNU General Public License for more details. 12 * 13 * You should have received a copy of the GNU General Public License 14 * along with this program. If not, see <http://www.gnu.org/licenses/>. */ 15 16 /* This test has been created using the sg2_geometry_dump_as_C_code feature 17 * of star-geometry-2D. It uses output from test_sg2_some_segments. 18 * This test is similar to test_senc2d_many_segments that creates a huge 19 * geometry by program. */ 20 21 #include "senc2d.h" 22 #include "test_senc2d_utils.h" 23 24 #include <rsys/double2.h> 25 26 /* Dump of star-geometry-2D 'some_segments'. */ 27 static const unsigned some_segments_vertices_count = 1056; 28 static const double some_segments_vertices[2112] = 29 { 30 1, 0, 31 0.999717, 0.0237977, 32 0.998867, 0.0475819, 33 0.997452, 0.0713392, 34 0.995472, 0.095056, 35 0.992928, 0.118719, 36 0.989821, 0.142315, 37 0.986154, 0.16583, 38 0.981929, 0.189251, 39 0.977147, 0.212565, 40 0.971812, 0.235759, 41 0.965926, 0.258819, 42 0.959493, 0.281733, 43 0.952517, 0.304486, 44 0.945001, 0.327068, 45 0.93695, 0.349464, 46 0.928368, 0.371662, 47 0.91926, 0.39365, 48 0.909632, 0.415415, 49 0.899488, 0.436945, 50 0.888835, 0.458227, 51 0.877679, 0.479249, 52 0.866025, 0.5, 53 0.853881, 0.520468, 54 0.841254, 0.540641, 55 0.828149, 0.560508, 56 0.814576, 0.580057, 57 0.800541, 0.599278, 58 0.786053, 0.618159, 59 0.77112, 0.63669, 60 0.75575, 0.654861, 61 0.739951, 0.67266, 62 0.723734, 0.690079, 63 0.707107, 0.707107, 64 0.690079, 0.723734, 65 0.67266, 0.739951, 66 0.654861, 0.75575, 67 0.63669, 0.77112, 68 0.618159, 0.786053, 69 0.599278, 0.800541, 70 0.580057, 0.814576, 71 0.560508, 0.828149, 72 0.540641, 0.841254, 73 0.520468, 0.853881, 74 0.5, 0.866025, 75 0.479249, 0.877679, 76 0.458227, 0.888835, 77 0.436945, 0.899488, 78 0.415415, 0.909632, 79 0.39365, 0.91926, 80 0.371662, 0.928368, 81 0.349464, 0.93695, 82 0.327068, 0.945001, 83 0.304486, 0.952517, 84 0.281733, 0.959493, 85 0.258819, 0.965926, 86 0.235759, 0.971812, 87 0.212565, 0.977147, 88 0.189251, 0.981929, 89 0.16583, 0.986154, 90 0.142315, 0.989821, 91 0.118719, 0.992928, 92 0.095056, 0.995472, 93 0.0713392, 0.997452, 94 0.0475819, 0.998867, 95 0.0237977, 0.999717, 96 6.12323e-17, 1, 97 -0.0237977, 0.999717, 98 -0.0475819, 0.998867, 99 -0.0713392, 0.997452, 100 -0.095056, 0.995472, 101 -0.118719, 0.992928, 102 -0.142315, 0.989821, 103 -0.16583, 0.986154, 104 -0.189251, 0.981929, 105 -0.212565, 0.977147, 106 -0.235759, 0.971812, 107 -0.258819, 0.965926, 108 -0.281733, 0.959493, 109 -0.304486, 0.952517, 110 -0.327068, 0.945001, 111 -0.349464, 0.93695, 112 -0.371662, 0.928368, 113 -0.39365, 0.91926, 114 -0.415415, 0.909632, 115 -0.436945, 0.899488, 116 -0.458227, 0.888835, 117 -0.479249, 0.877679, 118 -0.5, 0.866025, 119 -0.520468, 0.853881, 120 -0.540641, 0.841254, 121 -0.560508, 0.828149, 122 -0.580057, 0.814576, 123 -0.599278, 0.800541, 124 -0.618159, 0.786053, 125 -0.63669, 0.77112, 126 -0.654861, 0.75575, 127 -0.67266, 0.739951, 128 -0.690079, 0.723734, 129 -0.707107, 0.707107, 130 -0.723734, 0.690079, 131 -0.739951, 0.67266, 132 -0.75575, 0.654861, 133 -0.77112, 0.63669, 134 -0.786053, 0.618159, 135 -0.800541, 0.599278, 136 -0.814576, 0.580057, 137 -0.828149, 0.560508, 138 -0.841254, 0.540641, 139 -0.853881, 0.520468, 140 -0.866025, 0.5, 141 -0.877679, 0.479249, 142 -0.888835, 0.458227, 143 -0.899488, 0.436945, 144 -0.909632, 0.415415, 145 -0.91926, 0.39365, 146 -0.928368, 0.371662, 147 -0.93695, 0.349464, 148 -0.945001, 0.327068, 149 -0.952517, 0.304486, 150 -0.959493, 0.281733, 151 -0.965926, 0.258819, 152 -0.971812, 0.235759, 153 -0.977147, 0.212565, 154 -0.981929, 0.189251, 155 -0.986154, 0.16583, 156 -0.989821, 0.142315, 157 -0.992928, 0.118719, 158 -0.995472, 0.095056, 159 -0.997452, 0.0713392, 160 -0.998867, 0.0475819, 161 -0.999717, 0.0237977, 162 -1, 1.22465e-16, 163 -0.999717, -0.0237977, 164 -0.998867, -0.0475819, 165 -0.997452, -0.0713392, 166 -0.995472, -0.095056, 167 -0.992928, -0.118719, 168 -0.989821, -0.142315, 169 -0.986154, -0.16583, 170 -0.981929, -0.189251, 171 -0.977147, -0.212565, 172 -0.971812, -0.235759, 173 -0.965926, -0.258819, 174 -0.959493, -0.281733, 175 -0.952517, -0.304486, 176 -0.945001, -0.327068, 177 -0.93695, -0.349464, 178 -0.928368, -0.371662, 179 -0.91926, -0.39365, 180 -0.909632, -0.415415, 181 -0.899488, -0.436945, 182 -0.888835, -0.458227, 183 -0.877679, -0.479249, 184 -0.866025, -0.5, 185 -0.853881, -0.520468, 186 -0.841254, -0.540641, 187 -0.828149, -0.560508, 188 -0.814576, -0.580057, 189 -0.800541, -0.599278, 190 -0.786053, -0.618159, 191 -0.77112, -0.63669, 192 -0.75575, -0.654861, 193 -0.739951, -0.67266, 194 -0.723734, -0.690079, 195 -0.707107, -0.707107, 196 -0.690079, -0.723734, 197 -0.67266, -0.739951, 198 -0.654861, -0.75575, 199 -0.63669, -0.77112, 200 -0.618159, -0.786053, 201 -0.599278, -0.800541, 202 -0.580057, -0.814576, 203 -0.560508, -0.828149, 204 -0.540641, -0.841254, 205 -0.520468, -0.853881, 206 -0.5, -0.866025, 207 -0.479249, -0.877679, 208 -0.458227, -0.888835, 209 -0.436945, -0.899488, 210 -0.415415, -0.909632, 211 -0.39365, -0.91926, 212 -0.371662, -0.928368, 213 -0.349464, -0.93695, 214 -0.327068, -0.945001, 215 -0.304486, -0.952517, 216 -0.281733, -0.959493, 217 -0.258819, -0.965926, 218 -0.235759, -0.971812, 219 -0.212565, -0.977147, 220 -0.189251, -0.981929, 221 -0.16583, -0.986154, 222 -0.142315, -0.989821, 223 -0.118719, -0.992928, 224 -0.095056, -0.995472, 225 -0.0713392, -0.997452, 226 -0.0475819, -0.998867, 227 -0.0237977, -0.999717, 228 -1.83697e-16, -1, 229 0.0237977, -0.999717, 230 0.0475819, -0.998867, 231 0.0713392, -0.997452, 232 0.095056, -0.995472, 233 0.118719, -0.992928, 234 0.142315, -0.989821, 235 0.16583, -0.986154, 236 0.189251, -0.981929, 237 0.212565, -0.977147, 238 0.235759, -0.971812, 239 0.258819, -0.965926, 240 0.281733, -0.959493, 241 0.304486, -0.952517, 242 0.327068, -0.945001, 243 0.349464, -0.93695, 244 0.371662, -0.928368, 245 0.39365, -0.91926, 246 0.415415, -0.909632, 247 0.436945, -0.899488, 248 0.458227, -0.888835, 249 0.479249, -0.877679, 250 0.5, -0.866025, 251 0.520468, -0.853881, 252 0.540641, -0.841254, 253 0.560508, -0.828149, 254 0.580057, -0.814576, 255 0.599278, -0.800541, 256 0.618159, -0.786053, 257 0.63669, -0.77112, 258 0.654861, -0.75575, 259 0.67266, -0.739951, 260 0.690079, -0.723734, 261 0.707107, -0.707107, 262 0.723734, -0.690079, 263 0.739951, -0.67266, 264 0.75575, -0.654861, 265 0.77112, -0.63669, 266 0.786053, -0.618159, 267 0.800541, -0.599278, 268 0.814576, -0.580057, 269 0.828149, -0.560508, 270 0.841254, -0.540641, 271 0.853881, -0.520468, 272 0.866025, -0.5, 273 0.877679, -0.479249, 274 0.888835, -0.458227, 275 0.899488, -0.436945, 276 0.909632, -0.415415, 277 0.91926, -0.39365, 278 0.928368, -0.371662, 279 0.93695, -0.349464, 280 0.945001, -0.327068, 281 0.952517, -0.304486, 282 0.959493, -0.281733, 283 0.965926, -0.258819, 284 0.971812, -0.235759, 285 0.977147, -0.212565, 286 0.981929, -0.189251, 287 0.986154, -0.16583, 288 0.989821, -0.142315, 289 0.992928, -0.118719, 290 0.995472, -0.095056, 291 0.997452, -0.0713392, 292 0.998867, -0.0475819, 293 0.999717, -0.0237977, 294 1, 10, 295 0.999717, 10.0238, 296 0.998867, 10.0476, 297 0.997452, 10.0713, 298 0.995472, 10.0951, 299 0.992928, 10.1187, 300 0.989821, 10.1423, 301 0.986154, 10.1658, 302 0.981929, 10.1893, 303 0.977147, 10.2126, 304 0.971812, 10.2358, 305 0.965926, 10.2588, 306 0.959493, 10.2817, 307 0.952517, 10.3045, 308 0.945001, 10.3271, 309 0.93695, 10.3495, 310 0.928368, 10.3717, 311 0.91926, 10.3937, 312 0.909632, 10.4154, 313 0.899488, 10.4369, 314 0.888835, 10.4582, 315 0.877679, 10.4792, 316 0.866025, 10.5, 317 0.853881, 10.5205, 318 0.841254, 10.5406, 319 0.828149, 10.5605, 320 0.814576, 10.5801, 321 0.800541, 10.5993, 322 0.786053, 10.6182, 323 0.77112, 10.6367, 324 0.75575, 10.6549, 325 0.739951, 10.6727, 326 0.723734, 10.6901, 327 0.707107, 10.7071, 328 0.690079, 10.7237, 329 0.67266, 10.74, 330 0.654861, 10.7557, 331 0.63669, 10.7711, 332 0.618159, 10.7861, 333 0.599278, 10.8005, 334 0.580057, 10.8146, 335 0.560508, 10.8281, 336 0.540641, 10.8413, 337 0.520468, 10.8539, 338 0.5, 10.866, 339 0.479249, 10.8777, 340 0.458227, 10.8888, 341 0.436945, 10.8995, 342 0.415415, 10.9096, 343 0.39365, 10.9193, 344 0.371662, 10.9284, 345 0.349464, 10.9369, 346 0.327068, 10.945, 347 0.304486, 10.9525, 348 0.281733, 10.9595, 349 0.258819, 10.9659, 350 0.235759, 10.9718, 351 0.212565, 10.9771, 352 0.189251, 10.9819, 353 0.16583, 10.9862, 354 0.142315, 10.9898, 355 0.118719, 10.9929, 356 0.095056, 10.9955, 357 0.0713392, 10.9975, 358 0.0475819, 10.9989, 359 0.0237977, 10.9997, 360 6.12323e-17, 11, 361 -0.0237977, 10.9997, 362 -0.0475819, 10.9989, 363 -0.0713392, 10.9975, 364 -0.095056, 10.9955, 365 -0.118719, 10.9929, 366 -0.142315, 10.9898, 367 -0.16583, 10.9862, 368 -0.189251, 10.9819, 369 -0.212565, 10.9771, 370 -0.235759, 10.9718, 371 -0.258819, 10.9659, 372 -0.281733, 10.9595, 373 -0.304486, 10.9525, 374 -0.327068, 10.945, 375 -0.349464, 10.9369, 376 -0.371662, 10.9284, 377 -0.39365, 10.9193, 378 -0.415415, 10.9096, 379 -0.436945, 10.8995, 380 -0.458227, 10.8888, 381 -0.479249, 10.8777, 382 -0.5, 10.866, 383 -0.520468, 10.8539, 384 -0.540641, 10.8413, 385 -0.560508, 10.8281, 386 -0.580057, 10.8146, 387 -0.599278, 10.8005, 388 -0.618159, 10.7861, 389 -0.63669, 10.7711, 390 -0.654861, 10.7557, 391 -0.67266, 10.74, 392 -0.690079, 10.7237, 393 -0.707107, 10.7071, 394 -0.723734, 10.6901, 395 -0.739951, 10.6727, 396 -0.75575, 10.6549, 397 -0.77112, 10.6367, 398 -0.786053, 10.6182, 399 -0.800541, 10.5993, 400 -0.814576, 10.5801, 401 -0.828149, 10.5605, 402 -0.841254, 10.5406, 403 -0.853881, 10.5205, 404 -0.866025, 10.5, 405 -0.877679, 10.4792, 406 -0.888835, 10.4582, 407 -0.899488, 10.4369, 408 -0.909632, 10.4154, 409 -0.91926, 10.3937, 410 -0.928368, 10.3717, 411 -0.93695, 10.3495, 412 -0.945001, 10.3271, 413 -0.952517, 10.3045, 414 -0.959493, 10.2817, 415 -0.965926, 10.2588, 416 -0.971812, 10.2358, 417 -0.977147, 10.2126, 418 -0.981929, 10.1893, 419 -0.986154, 10.1658, 420 -0.989821, 10.1423, 421 -0.992928, 10.1187, 422 -0.995472, 10.0951, 423 -0.997452, 10.0713, 424 -0.998867, 10.0476, 425 -0.999717, 10.0238, 426 -1, 10, 427 -0.999717, 9.9762, 428 -0.998867, 9.95242, 429 -0.997452, 9.92866, 430 -0.995472, 9.90494, 431 -0.992928, 9.88128, 432 -0.989821, 9.85769, 433 -0.986154, 9.83417, 434 -0.981929, 9.81075, 435 -0.977147, 9.78743, 436 -0.971812, 9.76424, 437 -0.965926, 9.74118, 438 -0.959493, 9.71827, 439 -0.952517, 9.69551, 440 -0.945001, 9.67293, 441 -0.93695, 9.65054, 442 -0.928368, 9.62834, 443 -0.91926, 9.60635, 444 -0.909632, 9.58458, 445 -0.899488, 9.56306, 446 -0.888835, 9.54177, 447 -0.877679, 9.52075, 448 -0.866025, 9.5, 449 -0.853881, 9.47953, 450 -0.841254, 9.45936, 451 -0.828149, 9.43949, 452 -0.814576, 9.41994, 453 -0.800541, 9.40072, 454 -0.786053, 9.38184, 455 -0.77112, 9.36331, 456 -0.75575, 9.34514, 457 -0.739951, 9.32734, 458 -0.723734, 9.30992, 459 -0.707107, 9.29289, 460 -0.690079, 9.27627, 461 -0.67266, 9.26005, 462 -0.654861, 9.24425, 463 -0.63669, 9.22888, 464 -0.618159, 9.21395, 465 -0.599278, 9.19946, 466 -0.580057, 9.18542, 467 -0.560508, 9.17185, 468 -0.540641, 9.15875, 469 -0.520468, 9.14612, 470 -0.5, 9.13397, 471 -0.479249, 9.12232, 472 -0.458227, 9.11116, 473 -0.436945, 9.10051, 474 -0.415415, 9.09037, 475 -0.39365, 9.08074, 476 -0.371662, 9.07163, 477 -0.349464, 9.06305, 478 -0.327068, 9.055, 479 -0.304486, 9.04748, 480 -0.281733, 9.04051, 481 -0.258819, 9.03407, 482 -0.235759, 9.02819, 483 -0.212565, 9.02285, 484 -0.189251, 9.01807, 485 -0.16583, 9.01385, 486 -0.142315, 9.01018, 487 -0.118719, 9.00707, 488 -0.095056, 9.00453, 489 -0.0713392, 9.00255, 490 -0.0475819, 9.00113, 491 -0.0237977, 9.00028, 492 -1.83697e-16, 9, 493 0.0237977, 9.00028, 494 0.0475819, 9.00113, 495 0.0713392, 9.00255, 496 0.095056, 9.00453, 497 0.118719, 9.00707, 498 0.142315, 9.01018, 499 0.16583, 9.01385, 500 0.189251, 9.01807, 501 0.212565, 9.02285, 502 0.235759, 9.02819, 503 0.258819, 9.03407, 504 0.281733, 9.04051, 505 0.304486, 9.04748, 506 0.327068, 9.055, 507 0.349464, 9.06305, 508 0.371662, 9.07163, 509 0.39365, 9.08074, 510 0.415415, 9.09037, 511 0.436945, 9.10051, 512 0.458227, 9.11116, 513 0.479249, 9.12232, 514 0.5, 9.13397, 515 0.520468, 9.14612, 516 0.540641, 9.15875, 517 0.560508, 9.17185, 518 0.580057, 9.18542, 519 0.599278, 9.19946, 520 0.618159, 9.21395, 521 0.63669, 9.22888, 522 0.654861, 9.24425, 523 0.67266, 9.26005, 524 0.690079, 9.27627, 525 0.707107, 9.29289, 526 0.723734, 9.30992, 527 0.739951, 9.32734, 528 0.75575, 9.34514, 529 0.77112, 9.36331, 530 0.786053, 9.38184, 531 0.800541, 9.40072, 532 0.814576, 9.41994, 533 0.828149, 9.43949, 534 0.841254, 9.45936, 535 0.853881, 9.47953, 536 0.866025, 9.5, 537 0.877679, 9.52075, 538 0.888835, 9.54177, 539 0.899488, 9.56306, 540 0.909632, 9.58458, 541 0.91926, 9.60635, 542 0.928368, 9.62834, 543 0.93695, 9.65054, 544 0.945001, 9.67293, 545 0.952517, 9.69551, 546 0.959493, 9.71827, 547 0.965926, 9.74118, 548 0.971812, 9.76424, 549 0.977147, 9.78743, 550 0.981929, 9.81075, 551 0.986154, 9.83417, 552 0.989821, 9.85769, 553 0.992928, 9.88128, 554 0.995472, 9.90494, 555 0.997452, 9.92866, 556 0.998867, 9.95242, 557 0.999717, 9.9762, 558 1, 20, 559 0.999717, 20.0238, 560 0.998867, 20.0476, 561 0.997452, 20.0713, 562 0.995472, 20.0951, 563 0.992928, 20.1187, 564 0.989821, 20.1423, 565 0.986154, 20.1658, 566 0.981929, 20.1893, 567 0.977147, 20.2126, 568 0.971812, 20.2358, 569 0.965926, 20.2588, 570 0.959493, 20.2817, 571 0.952517, 20.3045, 572 0.945001, 20.3271, 573 0.93695, 20.3495, 574 0.928368, 20.3717, 575 0.91926, 20.3937, 576 0.909632, 20.4154, 577 0.899488, 20.4369, 578 0.888835, 20.4582, 579 0.877679, 20.4792, 580 0.866025, 20.5, 581 0.853881, 20.5205, 582 0.841254, 20.5406, 583 0.828149, 20.5605, 584 0.814576, 20.5801, 585 0.800541, 20.5993, 586 0.786053, 20.6182, 587 0.77112, 20.6367, 588 0.75575, 20.6549, 589 0.739951, 20.6727, 590 0.723734, 20.6901, 591 0.707107, 20.7071, 592 0.690079, 20.7237, 593 0.67266, 20.74, 594 0.654861, 20.7557, 595 0.63669, 20.7711, 596 0.618159, 20.7861, 597 0.599278, 20.8005, 598 0.580057, 20.8146, 599 0.560508, 20.8281, 600 0.540641, 20.8413, 601 0.520468, 20.8539, 602 0.5, 20.866, 603 0.479249, 20.8777, 604 0.458227, 20.8888, 605 0.436945, 20.8995, 606 0.415415, 20.9096, 607 0.39365, 20.9193, 608 0.371662, 20.9284, 609 0.349464, 20.9369, 610 0.327068, 20.945, 611 0.304486, 20.9525, 612 0.281733, 20.9595, 613 0.258819, 20.9659, 614 0.235759, 20.9718, 615 0.212565, 20.9771, 616 0.189251, 20.9819, 617 0.16583, 20.9862, 618 0.142315, 20.9898, 619 0.118719, 20.9929, 620 0.095056, 20.9955, 621 0.0713392, 20.9975, 622 0.0475819, 20.9989, 623 0.0237977, 20.9997, 624 6.12323e-17, 21, 625 -0.0237977, 20.9997, 626 -0.0475819, 20.9989, 627 -0.0713392, 20.9975, 628 -0.095056, 20.9955, 629 -0.118719, 20.9929, 630 -0.142315, 20.9898, 631 -0.16583, 20.9862, 632 -0.189251, 20.9819, 633 -0.212565, 20.9771, 634 -0.235759, 20.9718, 635 -0.258819, 20.9659, 636 -0.281733, 20.9595, 637 -0.304486, 20.9525, 638 -0.327068, 20.945, 639 -0.349464, 20.9369, 640 -0.371662, 20.9284, 641 -0.39365, 20.9193, 642 -0.415415, 20.9096, 643 -0.436945, 20.8995, 644 -0.458227, 20.8888, 645 -0.479249, 20.8777, 646 -0.5, 20.866, 647 -0.520468, 20.8539, 648 -0.540641, 20.8413, 649 -0.560508, 20.8281, 650 -0.580057, 20.8146, 651 -0.599278, 20.8005, 652 -0.618159, 20.7861, 653 -0.63669, 20.7711, 654 -0.654861, 20.7557, 655 -0.67266, 20.74, 656 -0.690079, 20.7237, 657 -0.707107, 20.7071, 658 -0.723734, 20.6901, 659 -0.739951, 20.6727, 660 -0.75575, 20.6549, 661 -0.77112, 20.6367, 662 -0.786053, 20.6182, 663 -0.800541, 20.5993, 664 -0.814576, 20.5801, 665 -0.828149, 20.5605, 666 -0.841254, 20.5406, 667 -0.853881, 20.5205, 668 -0.866025, 20.5, 669 -0.877679, 20.4792, 670 -0.888835, 20.4582, 671 -0.899488, 20.4369, 672 -0.909632, 20.4154, 673 -0.91926, 20.3937, 674 -0.928368, 20.3717, 675 -0.93695, 20.3495, 676 -0.945001, 20.3271, 677 -0.952517, 20.3045, 678 -0.959493, 20.2817, 679 -0.965926, 20.2588, 680 -0.971812, 20.2358, 681 -0.977147, 20.2126, 682 -0.981929, 20.1893, 683 -0.986154, 20.1658, 684 -0.989821, 20.1423, 685 -0.992928, 20.1187, 686 -0.995472, 20.0951, 687 -0.997452, 20.0713, 688 -0.998867, 20.0476, 689 -0.999717, 20.0238, 690 -1, 20, 691 -0.999717, 19.9762, 692 -0.998867, 19.9524, 693 -0.997452, 19.9287, 694 -0.995472, 19.9049, 695 -0.992928, 19.8813, 696 -0.989821, 19.8577, 697 -0.986154, 19.8342, 698 -0.981929, 19.8107, 699 -0.977147, 19.7874, 700 -0.971812, 19.7642, 701 -0.965926, 19.7412, 702 -0.959493, 19.7183, 703 -0.952517, 19.6955, 704 -0.945001, 19.6729, 705 -0.93695, 19.6505, 706 -0.928368, 19.6283, 707 -0.91926, 19.6063, 708 -0.909632, 19.5846, 709 -0.899488, 19.5631, 710 -0.888835, 19.5418, 711 -0.877679, 19.5208, 712 -0.866025, 19.5, 713 -0.853881, 19.4795, 714 -0.841254, 19.4594, 715 -0.828149, 19.4395, 716 -0.814576, 19.4199, 717 -0.800541, 19.4007, 718 -0.786053, 19.3818, 719 -0.77112, 19.3633, 720 -0.75575, 19.3451, 721 -0.739951, 19.3273, 722 -0.723734, 19.3099, 723 -0.707107, 19.2929, 724 -0.690079, 19.2763, 725 -0.67266, 19.26, 726 -0.654861, 19.2443, 727 -0.63669, 19.2289, 728 -0.618159, 19.2139, 729 -0.599278, 19.1995, 730 -0.580057, 19.1854, 731 -0.560508, 19.1719, 732 -0.540641, 19.1587, 733 -0.520468, 19.1461, 734 -0.5, 19.134, 735 -0.479249, 19.1223, 736 -0.458227, 19.1112, 737 -0.436945, 19.1005, 738 -0.415415, 19.0904, 739 -0.39365, 19.0807, 740 -0.371662, 19.0716, 741 -0.349464, 19.0631, 742 -0.327068, 19.055, 743 -0.304486, 19.0475, 744 -0.281733, 19.0405, 745 -0.258819, 19.0341, 746 -0.235759, 19.0282, 747 -0.212565, 19.0229, 748 -0.189251, 19.0181, 749 -0.16583, 19.0138, 750 -0.142315, 19.0102, 751 -0.118719, 19.0071, 752 -0.095056, 19.0045, 753 -0.0713392, 19.0025, 754 -0.0475819, 19.0011, 755 -0.0237977, 19.0003, 756 -1.83697e-16, 19, 757 0.0237977, 19.0003, 758 0.0475819, 19.0011, 759 0.0713392, 19.0025, 760 0.095056, 19.0045, 761 0.118719, 19.0071, 762 0.142315, 19.0102, 763 0.16583, 19.0138, 764 0.189251, 19.0181, 765 0.212565, 19.0229, 766 0.235759, 19.0282, 767 0.258819, 19.0341, 768 0.281733, 19.0405, 769 0.304486, 19.0475, 770 0.327068, 19.055, 771 0.349464, 19.0631, 772 0.371662, 19.0716, 773 0.39365, 19.0807, 774 0.415415, 19.0904, 775 0.436945, 19.1005, 776 0.458227, 19.1112, 777 0.479249, 19.1223, 778 0.5, 19.134, 779 0.520468, 19.1461, 780 0.540641, 19.1587, 781 0.560508, 19.1719, 782 0.580057, 19.1854, 783 0.599278, 19.1995, 784 0.618159, 19.2139, 785 0.63669, 19.2289, 786 0.654861, 19.2443, 787 0.67266, 19.26, 788 0.690079, 19.2763, 789 0.707107, 19.2929, 790 0.723734, 19.3099, 791 0.739951, 19.3273, 792 0.75575, 19.3451, 793 0.77112, 19.3633, 794 0.786053, 19.3818, 795 0.800541, 19.4007, 796 0.814576, 19.4199, 797 0.828149, 19.4395, 798 0.841254, 19.4594, 799 0.853881, 19.4795, 800 0.866025, 19.5, 801 0.877679, 19.5208, 802 0.888835, 19.5418, 803 0.899488, 19.5631, 804 0.909632, 19.5846, 805 0.91926, 19.6063, 806 0.928368, 19.6283, 807 0.93695, 19.6505, 808 0.945001, 19.6729, 809 0.952517, 19.6955, 810 0.959493, 19.7183, 811 0.965926, 19.7412, 812 0.971812, 19.7642, 813 0.977147, 19.7874, 814 0.981929, 19.8107, 815 0.986154, 19.8342, 816 0.989821, 19.8577, 817 0.992928, 19.8813, 818 0.995472, 19.9049, 819 0.997452, 19.9287, 820 0.998867, 19.9524, 821 0.999717, 19.9762, 822 1, 30, 823 0.999717, 30.0238, 824 0.998867, 30.0476, 825 0.997452, 30.0713, 826 0.995472, 30.0951, 827 0.992928, 30.1187, 828 0.989821, 30.1423, 829 0.986154, 30.1658, 830 0.981929, 30.1893, 831 0.977147, 30.2126, 832 0.971812, 30.2358, 833 0.965926, 30.2588, 834 0.959493, 30.2817, 835 0.952517, 30.3045, 836 0.945001, 30.3271, 837 0.93695, 30.3495, 838 0.928368, 30.3717, 839 0.91926, 30.3937, 840 0.909632, 30.4154, 841 0.899488, 30.4369, 842 0.888835, 30.4582, 843 0.877679, 30.4792, 844 0.866025, 30.5, 845 0.853881, 30.5205, 846 0.841254, 30.5406, 847 0.828149, 30.5605, 848 0.814576, 30.5801, 849 0.800541, 30.5993, 850 0.786053, 30.6182, 851 0.77112, 30.6367, 852 0.75575, 30.6549, 853 0.739951, 30.6727, 854 0.723734, 30.6901, 855 0.707107, 30.7071, 856 0.690079, 30.7237, 857 0.67266, 30.74, 858 0.654861, 30.7557, 859 0.63669, 30.7711, 860 0.618159, 30.7861, 861 0.599278, 30.8005, 862 0.580057, 30.8146, 863 0.560508, 30.8281, 864 0.540641, 30.8413, 865 0.520468, 30.8539, 866 0.5, 30.866, 867 0.479249, 30.8777, 868 0.458227, 30.8888, 869 0.436945, 30.8995, 870 0.415415, 30.9096, 871 0.39365, 30.9193, 872 0.371662, 30.9284, 873 0.349464, 30.9369, 874 0.327068, 30.945, 875 0.304486, 30.9525, 876 0.281733, 30.9595, 877 0.258819, 30.9659, 878 0.235759, 30.9718, 879 0.212565, 30.9771, 880 0.189251, 30.9819, 881 0.16583, 30.9862, 882 0.142315, 30.9898, 883 0.118719, 30.9929, 884 0.095056, 30.9955, 885 0.0713392, 30.9975, 886 0.0475819, 30.9989, 887 0.0237977, 30.9997, 888 6.12323e-17, 31, 889 -0.0237977, 30.9997, 890 -0.0475819, 30.9989, 891 -0.0713392, 30.9975, 892 -0.095056, 30.9955, 893 -0.118719, 30.9929, 894 -0.142315, 30.9898, 895 -0.16583, 30.9862, 896 -0.189251, 30.9819, 897 -0.212565, 30.9771, 898 -0.235759, 30.9718, 899 -0.258819, 30.9659, 900 -0.281733, 30.9595, 901 -0.304486, 30.9525, 902 -0.327068, 30.945, 903 -0.349464, 30.9369, 904 -0.371662, 30.9284, 905 -0.39365, 30.9193, 906 -0.415415, 30.9096, 907 -0.436945, 30.8995, 908 -0.458227, 30.8888, 909 -0.479249, 30.8777, 910 -0.5, 30.866, 911 -0.520468, 30.8539, 912 -0.540641, 30.8413, 913 -0.560508, 30.8281, 914 -0.580057, 30.8146, 915 -0.599278, 30.8005, 916 -0.618159, 30.7861, 917 -0.63669, 30.7711, 918 -0.654861, 30.7557, 919 -0.67266, 30.74, 920 -0.690079, 30.7237, 921 -0.707107, 30.7071, 922 -0.723734, 30.6901, 923 -0.739951, 30.6727, 924 -0.75575, 30.6549, 925 -0.77112, 30.6367, 926 -0.786053, 30.6182, 927 -0.800541, 30.5993, 928 -0.814576, 30.5801, 929 -0.828149, 30.5605, 930 -0.841254, 30.5406, 931 -0.853881, 30.5205, 932 -0.866025, 30.5, 933 -0.877679, 30.4792, 934 -0.888835, 30.4582, 935 -0.899488, 30.4369, 936 -0.909632, 30.4154, 937 -0.91926, 30.3937, 938 -0.928368, 30.3717, 939 -0.93695, 30.3495, 940 -0.945001, 30.3271, 941 -0.952517, 30.3045, 942 -0.959493, 30.2817, 943 -0.965926, 30.2588, 944 -0.971812, 30.2358, 945 -0.977147, 30.2126, 946 -0.981929, 30.1893, 947 -0.986154, 30.1658, 948 -0.989821, 30.1423, 949 -0.992928, 30.1187, 950 -0.995472, 30.0951, 951 -0.997452, 30.0713, 952 -0.998867, 30.0476, 953 -0.999717, 30.0238, 954 -1, 30, 955 -0.999717, 29.9762, 956 -0.998867, 29.9524, 957 -0.997452, 29.9287, 958 -0.995472, 29.9049, 959 -0.992928, 29.8813, 960 -0.989821, 29.8577, 961 -0.986154, 29.8342, 962 -0.981929, 29.8107, 963 -0.977147, 29.7874, 964 -0.971812, 29.7642, 965 -0.965926, 29.7412, 966 -0.959493, 29.7183, 967 -0.952517, 29.6955, 968 -0.945001, 29.6729, 969 -0.93695, 29.6505, 970 -0.928368, 29.6283, 971 -0.91926, 29.6063, 972 -0.909632, 29.5846, 973 -0.899488, 29.5631, 974 -0.888835, 29.5418, 975 -0.877679, 29.5208, 976 -0.866025, 29.5, 977 -0.853881, 29.4795, 978 -0.841254, 29.4594, 979 -0.828149, 29.4395, 980 -0.814576, 29.4199, 981 -0.800541, 29.4007, 982 -0.786053, 29.3818, 983 -0.77112, 29.3633, 984 -0.75575, 29.3451, 985 -0.739951, 29.3273, 986 -0.723734, 29.3099, 987 -0.707107, 29.2929, 988 -0.690079, 29.2763, 989 -0.67266, 29.26, 990 -0.654861, 29.2443, 991 -0.63669, 29.2289, 992 -0.618159, 29.2139, 993 -0.599278, 29.1995, 994 -0.580057, 29.1854, 995 -0.560508, 29.1719, 996 -0.540641, 29.1587, 997 -0.520468, 29.1461, 998 -0.5, 29.134, 999 -0.479249, 29.1223, 1000 -0.458227, 29.1112, 1001 -0.436945, 29.1005, 1002 -0.415415, 29.0904, 1003 -0.39365, 29.0807, 1004 -0.371662, 29.0716, 1005 -0.349464, 29.0631, 1006 -0.327068, 29.055, 1007 -0.304486, 29.0475, 1008 -0.281733, 29.0405, 1009 -0.258819, 29.0341, 1010 -0.235759, 29.0282, 1011 -0.212565, 29.0229, 1012 -0.189251, 29.0181, 1013 -0.16583, 29.0138, 1014 -0.142315, 29.0102, 1015 -0.118719, 29.0071, 1016 -0.095056, 29.0045, 1017 -0.0713392, 29.0025, 1018 -0.0475819, 29.0011, 1019 -0.0237977, 29.0003, 1020 -1.83697e-16, 29, 1021 0.0237977, 29.0003, 1022 0.0475819, 29.0011, 1023 0.0713392, 29.0025, 1024 0.095056, 29.0045, 1025 0.118719, 29.0071, 1026 0.142315, 29.0102, 1027 0.16583, 29.0138, 1028 0.189251, 29.0181, 1029 0.212565, 29.0229, 1030 0.235759, 29.0282, 1031 0.258819, 29.0341, 1032 0.281733, 29.0405, 1033 0.304486, 29.0475, 1034 0.327068, 29.055, 1035 0.349464, 29.0631, 1036 0.371662, 29.0716, 1037 0.39365, 29.0807, 1038 0.415415, 29.0904, 1039 0.436945, 29.1005, 1040 0.458227, 29.1112, 1041 0.479249, 29.1223, 1042 0.5, 29.134, 1043 0.520468, 29.1461, 1044 0.540641, 29.1587, 1045 0.560508, 29.1719, 1046 0.580057, 29.1854, 1047 0.599278, 29.1995, 1048 0.618159, 29.2139, 1049 0.63669, 29.2289, 1050 0.654861, 29.2443, 1051 0.67266, 29.26, 1052 0.690079, 29.2763, 1053 0.707107, 29.2929, 1054 0.723734, 29.3099, 1055 0.739951, 29.3273, 1056 0.75575, 29.3451, 1057 0.77112, 29.3633, 1058 0.786053, 29.3818, 1059 0.800541, 29.4007, 1060 0.814576, 29.4199, 1061 0.828149, 29.4395, 1062 0.841254, 29.4594, 1063 0.853881, 29.4795, 1064 0.866025, 29.5, 1065 0.877679, 29.5208, 1066 0.888835, 29.5418, 1067 0.899488, 29.5631, 1068 0.909632, 29.5846, 1069 0.91926, 29.6063, 1070 0.928368, 29.6283, 1071 0.93695, 29.6505, 1072 0.945001, 29.6729, 1073 0.952517, 29.6955, 1074 0.959493, 29.7183, 1075 0.965926, 29.7412, 1076 0.971812, 29.7642, 1077 0.977147, 29.7874, 1078 0.981929, 29.8107, 1079 0.986154, 29.8342, 1080 0.989821, 29.8577, 1081 0.992928, 29.8813, 1082 0.995472, 29.9049, 1083 0.997452, 29.9287, 1084 0.998867, 29.9524, 1085 0.999717, 29.9762 1086 }; 1087 static const unsigned some_segments_segments_count = 1056; 1088 static const unsigned some_segments_segments[2112] = 1089 { 1090 0, 1, 1091 1, 2, 1092 2, 3, 1093 3, 4, 1094 4, 5, 1095 5, 6, 1096 6, 7, 1097 7, 8, 1098 8, 9, 1099 9, 10, 1100 10, 11, 1101 11, 12, 1102 12, 13, 1103 13, 14, 1104 14, 15, 1105 15, 16, 1106 16, 17, 1107 17, 18, 1108 18, 19, 1109 19, 20, 1110 20, 21, 1111 21, 22, 1112 22, 23, 1113 23, 24, 1114 24, 25, 1115 25, 26, 1116 26, 27, 1117 27, 28, 1118 28, 29, 1119 29, 30, 1120 30, 31, 1121 31, 32, 1122 32, 33, 1123 33, 34, 1124 34, 35, 1125 35, 36, 1126 36, 37, 1127 37, 38, 1128 38, 39, 1129 39, 40, 1130 40, 41, 1131 41, 42, 1132 42, 43, 1133 43, 44, 1134 44, 45, 1135 45, 46, 1136 46, 47, 1137 47, 48, 1138 48, 49, 1139 49, 50, 1140 50, 51, 1141 51, 52, 1142 52, 53, 1143 53, 54, 1144 54, 55, 1145 55, 56, 1146 56, 57, 1147 57, 58, 1148 58, 59, 1149 59, 60, 1150 60, 61, 1151 61, 62, 1152 62, 63, 1153 63, 64, 1154 64, 65, 1155 65, 66, 1156 66, 67, 1157 67, 68, 1158 68, 69, 1159 69, 70, 1160 70, 71, 1161 71, 72, 1162 72, 73, 1163 73, 74, 1164 74, 75, 1165 75, 76, 1166 76, 77, 1167 77, 78, 1168 78, 79, 1169 79, 80, 1170 80, 81, 1171 81, 82, 1172 82, 83, 1173 83, 84, 1174 84, 85, 1175 85, 86, 1176 86, 87, 1177 87, 88, 1178 88, 89, 1179 89, 90, 1180 90, 91, 1181 91, 92, 1182 92, 93, 1183 93, 94, 1184 94, 95, 1185 95, 96, 1186 96, 97, 1187 97, 98, 1188 98, 99, 1189 99, 100, 1190 100, 101, 1191 101, 102, 1192 102, 103, 1193 103, 104, 1194 104, 105, 1195 105, 106, 1196 106, 107, 1197 107, 108, 1198 108, 109, 1199 109, 110, 1200 110, 111, 1201 111, 112, 1202 112, 113, 1203 113, 114, 1204 114, 115, 1205 115, 116, 1206 116, 117, 1207 117, 118, 1208 118, 119, 1209 119, 120, 1210 120, 121, 1211 121, 122, 1212 122, 123, 1213 123, 124, 1214 124, 125, 1215 125, 126, 1216 126, 127, 1217 127, 128, 1218 128, 129, 1219 129, 130, 1220 130, 131, 1221 131, 132, 1222 132, 133, 1223 133, 134, 1224 134, 135, 1225 135, 136, 1226 136, 137, 1227 137, 138, 1228 138, 139, 1229 139, 140, 1230 140, 141, 1231 141, 142, 1232 142, 143, 1233 143, 144, 1234 144, 145, 1235 145, 146, 1236 146, 147, 1237 147, 148, 1238 148, 149, 1239 149, 150, 1240 150, 151, 1241 151, 152, 1242 152, 153, 1243 153, 154, 1244 154, 155, 1245 155, 156, 1246 156, 157, 1247 157, 158, 1248 158, 159, 1249 159, 160, 1250 160, 161, 1251 161, 162, 1252 162, 163, 1253 163, 164, 1254 164, 165, 1255 165, 166, 1256 166, 167, 1257 167, 168, 1258 168, 169, 1259 169, 170, 1260 170, 171, 1261 171, 172, 1262 172, 173, 1263 173, 174, 1264 174, 175, 1265 175, 176, 1266 176, 177, 1267 177, 178, 1268 178, 179, 1269 179, 180, 1270 180, 181, 1271 181, 182, 1272 182, 183, 1273 183, 184, 1274 184, 185, 1275 185, 186, 1276 186, 187, 1277 187, 188, 1278 188, 189, 1279 189, 190, 1280 190, 191, 1281 191, 192, 1282 192, 193, 1283 193, 194, 1284 194, 195, 1285 195, 196, 1286 196, 197, 1287 197, 198, 1288 198, 199, 1289 199, 200, 1290 200, 201, 1291 201, 202, 1292 202, 203, 1293 203, 204, 1294 204, 205, 1295 205, 206, 1296 206, 207, 1297 207, 208, 1298 208, 209, 1299 209, 210, 1300 210, 211, 1301 211, 212, 1302 212, 213, 1303 213, 214, 1304 214, 215, 1305 215, 216, 1306 216, 217, 1307 217, 218, 1308 218, 219, 1309 219, 220, 1310 220, 221, 1311 221, 222, 1312 222, 223, 1313 223, 224, 1314 224, 225, 1315 225, 226, 1316 226, 227, 1317 227, 228, 1318 228, 229, 1319 229, 230, 1320 230, 231, 1321 231, 232, 1322 232, 233, 1323 233, 234, 1324 234, 235, 1325 235, 236, 1326 236, 237, 1327 237, 238, 1328 238, 239, 1329 239, 240, 1330 240, 241, 1331 241, 242, 1332 242, 243, 1333 243, 244, 1334 244, 245, 1335 245, 246, 1336 246, 247, 1337 247, 248, 1338 248, 249, 1339 249, 250, 1340 250, 251, 1341 251, 252, 1342 252, 253, 1343 253, 254, 1344 254, 255, 1345 255, 256, 1346 256, 257, 1347 257, 258, 1348 258, 259, 1349 259, 260, 1350 260, 261, 1351 261, 262, 1352 262, 263, 1353 263, 0, 1354 264, 265, 1355 265, 266, 1356 266, 267, 1357 267, 268, 1358 268, 269, 1359 269, 270, 1360 270, 271, 1361 271, 272, 1362 272, 273, 1363 273, 274, 1364 274, 275, 1365 275, 276, 1366 276, 277, 1367 277, 278, 1368 278, 279, 1369 279, 280, 1370 280, 281, 1371 281, 282, 1372 282, 283, 1373 283, 284, 1374 284, 285, 1375 285, 286, 1376 286, 287, 1377 287, 288, 1378 288, 289, 1379 289, 290, 1380 290, 291, 1381 291, 292, 1382 292, 293, 1383 293, 294, 1384 294, 295, 1385 295, 296, 1386 296, 297, 1387 297, 298, 1388 298, 299, 1389 299, 300, 1390 300, 301, 1391 301, 302, 1392 302, 303, 1393 303, 304, 1394 304, 305, 1395 305, 306, 1396 306, 307, 1397 307, 308, 1398 308, 309, 1399 309, 310, 1400 310, 311, 1401 311, 312, 1402 312, 313, 1403 313, 314, 1404 314, 315, 1405 315, 316, 1406 316, 317, 1407 317, 318, 1408 318, 319, 1409 319, 320, 1410 320, 321, 1411 321, 322, 1412 322, 323, 1413 323, 324, 1414 324, 325, 1415 325, 326, 1416 326, 327, 1417 327, 328, 1418 328, 329, 1419 329, 330, 1420 330, 331, 1421 331, 332, 1422 332, 333, 1423 333, 334, 1424 334, 335, 1425 335, 336, 1426 336, 337, 1427 337, 338, 1428 338, 339, 1429 339, 340, 1430 340, 341, 1431 341, 342, 1432 342, 343, 1433 343, 344, 1434 344, 345, 1435 345, 346, 1436 346, 347, 1437 347, 348, 1438 348, 349, 1439 349, 350, 1440 350, 351, 1441 351, 352, 1442 352, 353, 1443 353, 354, 1444 354, 355, 1445 355, 356, 1446 356, 357, 1447 357, 358, 1448 358, 359, 1449 359, 360, 1450 360, 361, 1451 361, 362, 1452 362, 363, 1453 363, 364, 1454 364, 365, 1455 365, 366, 1456 366, 367, 1457 367, 368, 1458 368, 369, 1459 369, 370, 1460 370, 371, 1461 371, 372, 1462 372, 373, 1463 373, 374, 1464 374, 375, 1465 375, 376, 1466 376, 377, 1467 377, 378, 1468 378, 379, 1469 379, 380, 1470 380, 381, 1471 381, 382, 1472 382, 383, 1473 383, 384, 1474 384, 385, 1475 385, 386, 1476 386, 387, 1477 387, 388, 1478 388, 389, 1479 389, 390, 1480 390, 391, 1481 391, 392, 1482 392, 393, 1483 393, 394, 1484 394, 395, 1485 395, 396, 1486 396, 397, 1487 397, 398, 1488 398, 399, 1489 399, 400, 1490 400, 401, 1491 401, 402, 1492 402, 403, 1493 403, 404, 1494 404, 405, 1495 405, 406, 1496 406, 407, 1497 407, 408, 1498 408, 409, 1499 409, 410, 1500 410, 411, 1501 411, 412, 1502 412, 413, 1503 413, 414, 1504 414, 415, 1505 415, 416, 1506 416, 417, 1507 417, 418, 1508 418, 419, 1509 419, 420, 1510 420, 421, 1511 421, 422, 1512 422, 423, 1513 423, 424, 1514 424, 425, 1515 425, 426, 1516 426, 427, 1517 427, 428, 1518 428, 429, 1519 429, 430, 1520 430, 431, 1521 431, 432, 1522 432, 433, 1523 433, 434, 1524 434, 435, 1525 435, 436, 1526 436, 437, 1527 437, 438, 1528 438, 439, 1529 439, 440, 1530 440, 441, 1531 441, 442, 1532 442, 443, 1533 443, 444, 1534 444, 445, 1535 445, 446, 1536 446, 447, 1537 447, 448, 1538 448, 449, 1539 449, 450, 1540 450, 451, 1541 451, 452, 1542 452, 453, 1543 453, 454, 1544 454, 455, 1545 455, 456, 1546 456, 457, 1547 457, 458, 1548 458, 459, 1549 459, 460, 1550 460, 461, 1551 461, 462, 1552 462, 463, 1553 463, 464, 1554 464, 465, 1555 465, 466, 1556 466, 467, 1557 467, 468, 1558 468, 469, 1559 469, 470, 1560 470, 471, 1561 471, 472, 1562 472, 473, 1563 473, 474, 1564 474, 475, 1565 475, 476, 1566 476, 477, 1567 477, 478, 1568 478, 479, 1569 479, 480, 1570 480, 481, 1571 481, 482, 1572 482, 483, 1573 483, 484, 1574 484, 485, 1575 485, 486, 1576 486, 487, 1577 487, 488, 1578 488, 489, 1579 489, 490, 1580 490, 491, 1581 491, 492, 1582 492, 493, 1583 493, 494, 1584 494, 495, 1585 495, 496, 1586 496, 497, 1587 497, 498, 1588 498, 499, 1589 499, 500, 1590 500, 501, 1591 501, 502, 1592 502, 503, 1593 503, 504, 1594 504, 505, 1595 505, 506, 1596 506, 507, 1597 507, 508, 1598 508, 509, 1599 509, 510, 1600 510, 511, 1601 511, 512, 1602 512, 513, 1603 513, 514, 1604 514, 515, 1605 515, 516, 1606 516, 517, 1607 517, 518, 1608 518, 519, 1609 519, 520, 1610 520, 521, 1611 521, 522, 1612 522, 523, 1613 523, 524, 1614 524, 525, 1615 525, 526, 1616 526, 527, 1617 527, 264, 1618 528, 529, 1619 529, 530, 1620 530, 531, 1621 531, 532, 1622 532, 533, 1623 533, 534, 1624 534, 535, 1625 535, 536, 1626 536, 537, 1627 537, 538, 1628 538, 539, 1629 539, 540, 1630 540, 541, 1631 541, 542, 1632 542, 543, 1633 543, 544, 1634 544, 545, 1635 545, 546, 1636 546, 547, 1637 547, 548, 1638 548, 549, 1639 549, 550, 1640 550, 551, 1641 551, 552, 1642 552, 553, 1643 553, 554, 1644 554, 555, 1645 555, 556, 1646 556, 557, 1647 557, 558, 1648 558, 559, 1649 559, 560, 1650 560, 561, 1651 561, 562, 1652 562, 563, 1653 563, 564, 1654 564, 565, 1655 565, 566, 1656 566, 567, 1657 567, 568, 1658 568, 569, 1659 569, 570, 1660 570, 571, 1661 571, 572, 1662 572, 573, 1663 573, 574, 1664 574, 575, 1665 575, 576, 1666 576, 577, 1667 577, 578, 1668 578, 579, 1669 579, 580, 1670 580, 581, 1671 581, 582, 1672 582, 583, 1673 583, 584, 1674 584, 585, 1675 585, 586, 1676 586, 587, 1677 587, 588, 1678 588, 589, 1679 589, 590, 1680 590, 591, 1681 591, 592, 1682 592, 593, 1683 593, 594, 1684 594, 595, 1685 595, 596, 1686 596, 597, 1687 597, 598, 1688 598, 599, 1689 599, 600, 1690 600, 601, 1691 601, 602, 1692 602, 603, 1693 603, 604, 1694 604, 605, 1695 605, 606, 1696 606, 607, 1697 607, 608, 1698 608, 609, 1699 609, 610, 1700 610, 611, 1701 611, 612, 1702 612, 613, 1703 613, 614, 1704 614, 615, 1705 615, 616, 1706 616, 617, 1707 617, 618, 1708 618, 619, 1709 619, 620, 1710 620, 621, 1711 621, 622, 1712 622, 623, 1713 623, 624, 1714 624, 625, 1715 625, 626, 1716 626, 627, 1717 627, 628, 1718 628, 629, 1719 629, 630, 1720 630, 631, 1721 631, 632, 1722 632, 633, 1723 633, 634, 1724 634, 635, 1725 635, 636, 1726 636, 637, 1727 637, 638, 1728 638, 639, 1729 639, 640, 1730 640, 641, 1731 641, 642, 1732 642, 643, 1733 643, 644, 1734 644, 645, 1735 645, 646, 1736 646, 647, 1737 647, 648, 1738 648, 649, 1739 649, 650, 1740 650, 651, 1741 651, 652, 1742 652, 653, 1743 653, 654, 1744 654, 655, 1745 655, 656, 1746 656, 657, 1747 657, 658, 1748 658, 659, 1749 659, 660, 1750 660, 661, 1751 661, 662, 1752 662, 663, 1753 663, 664, 1754 664, 665, 1755 665, 666, 1756 666, 667, 1757 667, 668, 1758 668, 669, 1759 669, 670, 1760 670, 671, 1761 671, 672, 1762 672, 673, 1763 673, 674, 1764 674, 675, 1765 675, 676, 1766 676, 677, 1767 677, 678, 1768 678, 679, 1769 679, 680, 1770 680, 681, 1771 681, 682, 1772 682, 683, 1773 683, 684, 1774 684, 685, 1775 685, 686, 1776 686, 687, 1777 687, 688, 1778 688, 689, 1779 689, 690, 1780 690, 691, 1781 691, 692, 1782 692, 693, 1783 693, 694, 1784 694, 695, 1785 695, 696, 1786 696, 697, 1787 697, 698, 1788 698, 699, 1789 699, 700, 1790 700, 701, 1791 701, 702, 1792 702, 703, 1793 703, 704, 1794 704, 705, 1795 705, 706, 1796 706, 707, 1797 707, 708, 1798 708, 709, 1799 709, 710, 1800 710, 711, 1801 711, 712, 1802 712, 713, 1803 713, 714, 1804 714, 715, 1805 715, 716, 1806 716, 717, 1807 717, 718, 1808 718, 719, 1809 719, 720, 1810 720, 721, 1811 721, 722, 1812 722, 723, 1813 723, 724, 1814 724, 725, 1815 725, 726, 1816 726, 727, 1817 727, 728, 1818 728, 729, 1819 729, 730, 1820 730, 731, 1821 731, 732, 1822 732, 733, 1823 733, 734, 1824 734, 735, 1825 735, 736, 1826 736, 737, 1827 737, 738, 1828 738, 739, 1829 739, 740, 1830 740, 741, 1831 741, 742, 1832 742, 743, 1833 743, 744, 1834 744, 745, 1835 745, 746, 1836 746, 747, 1837 747, 748, 1838 748, 749, 1839 749, 750, 1840 750, 751, 1841 751, 752, 1842 752, 753, 1843 753, 754, 1844 754, 755, 1845 755, 756, 1846 756, 757, 1847 757, 758, 1848 758, 759, 1849 759, 760, 1850 760, 761, 1851 761, 762, 1852 762, 763, 1853 763, 764, 1854 764, 765, 1855 765, 766, 1856 766, 767, 1857 767, 768, 1858 768, 769, 1859 769, 770, 1860 770, 771, 1861 771, 772, 1862 772, 773, 1863 773, 774, 1864 774, 775, 1865 775, 776, 1866 776, 777, 1867 777, 778, 1868 778, 779, 1869 779, 780, 1870 780, 781, 1871 781, 782, 1872 782, 783, 1873 783, 784, 1874 784, 785, 1875 785, 786, 1876 786, 787, 1877 787, 788, 1878 788, 789, 1879 789, 790, 1880 790, 791, 1881 791, 528, 1882 792, 793, 1883 793, 794, 1884 794, 795, 1885 795, 796, 1886 796, 797, 1887 797, 798, 1888 798, 799, 1889 799, 800, 1890 800, 801, 1891 801, 802, 1892 802, 803, 1893 803, 804, 1894 804, 805, 1895 805, 806, 1896 806, 807, 1897 807, 808, 1898 808, 809, 1899 809, 810, 1900 810, 811, 1901 811, 812, 1902 812, 813, 1903 813, 814, 1904 814, 815, 1905 815, 816, 1906 816, 817, 1907 817, 818, 1908 818, 819, 1909 819, 820, 1910 820, 821, 1911 821, 822, 1912 822, 823, 1913 823, 824, 1914 824, 825, 1915 825, 826, 1916 826, 827, 1917 827, 828, 1918 828, 829, 1919 829, 830, 1920 830, 831, 1921 831, 832, 1922 832, 833, 1923 833, 834, 1924 834, 835, 1925 835, 836, 1926 836, 837, 1927 837, 838, 1928 838, 839, 1929 839, 840, 1930 840, 841, 1931 841, 842, 1932 842, 843, 1933 843, 844, 1934 844, 845, 1935 845, 846, 1936 846, 847, 1937 847, 848, 1938 848, 849, 1939 849, 850, 1940 850, 851, 1941 851, 852, 1942 852, 853, 1943 853, 854, 1944 854, 855, 1945 855, 856, 1946 856, 857, 1947 857, 858, 1948 858, 859, 1949 859, 860, 1950 860, 861, 1951 861, 862, 1952 862, 863, 1953 863, 864, 1954 864, 865, 1955 865, 866, 1956 866, 867, 1957 867, 868, 1958 868, 869, 1959 869, 870, 1960 870, 871, 1961 871, 872, 1962 872, 873, 1963 873, 874, 1964 874, 875, 1965 875, 876, 1966 876, 877, 1967 877, 878, 1968 878, 879, 1969 879, 880, 1970 880, 881, 1971 881, 882, 1972 882, 883, 1973 883, 884, 1974 884, 885, 1975 885, 886, 1976 886, 887, 1977 887, 888, 1978 888, 889, 1979 889, 890, 1980 890, 891, 1981 891, 892, 1982 892, 893, 1983 893, 894, 1984 894, 895, 1985 895, 896, 1986 896, 897, 1987 897, 898, 1988 898, 899, 1989 899, 900, 1990 900, 901, 1991 901, 902, 1992 902, 903, 1993 903, 904, 1994 904, 905, 1995 905, 906, 1996 906, 907, 1997 907, 908, 1998 908, 909, 1999 909, 910, 2000 910, 911, 2001 911, 912, 2002 912, 913, 2003 913, 914, 2004 914, 915, 2005 915, 916, 2006 916, 917, 2007 917, 918, 2008 918, 919, 2009 919, 920, 2010 920, 921, 2011 921, 922, 2012 922, 923, 2013 923, 924, 2014 924, 925, 2015 925, 926, 2016 926, 927, 2017 927, 928, 2018 928, 929, 2019 929, 930, 2020 930, 931, 2021 931, 932, 2022 932, 933, 2023 933, 934, 2024 934, 935, 2025 935, 936, 2026 936, 937, 2027 937, 938, 2028 938, 939, 2029 939, 940, 2030 940, 941, 2031 941, 942, 2032 942, 943, 2033 943, 944, 2034 944, 945, 2035 945, 946, 2036 946, 947, 2037 947, 948, 2038 948, 949, 2039 949, 950, 2040 950, 951, 2041 951, 952, 2042 952, 953, 2043 953, 954, 2044 954, 955, 2045 955, 956, 2046 956, 957, 2047 957, 958, 2048 958, 959, 2049 959, 960, 2050 960, 961, 2051 961, 962, 2052 962, 963, 2053 963, 964, 2054 964, 965, 2055 965, 966, 2056 966, 967, 2057 967, 968, 2058 968, 969, 2059 969, 970, 2060 970, 971, 2061 971, 972, 2062 972, 973, 2063 973, 974, 2064 974, 975, 2065 975, 976, 2066 976, 977, 2067 977, 978, 2068 978, 979, 2069 979, 980, 2070 980, 981, 2071 981, 982, 2072 982, 983, 2073 983, 984, 2074 984, 985, 2075 985, 986, 2076 986, 987, 2077 987, 988, 2078 988, 989, 2079 989, 990, 2080 990, 991, 2081 991, 992, 2082 992, 993, 2083 993, 994, 2084 994, 995, 2085 995, 996, 2086 996, 997, 2087 997, 998, 2088 998, 999, 2089 999, 1000, 2090 1000, 1001, 2091 1001, 1002, 2092 1002, 1003, 2093 1003, 1004, 2094 1004, 1005, 2095 1005, 1006, 2096 1006, 1007, 2097 1007, 1008, 2098 1008, 1009, 2099 1009, 1010, 2100 1010, 1011, 2101 1011, 1012, 2102 1012, 1013, 2103 1013, 1014, 2104 1014, 1015, 2105 1015, 1016, 2106 1016, 1017, 2107 1017, 1018, 2108 1018, 1019, 2109 1019, 1020, 2110 1020, 1021, 2111 1021, 1022, 2112 1022, 1023, 2113 1023, 1024, 2114 1024, 1025, 2115 1025, 1026, 2116 1026, 1027, 2117 1027, 1028, 2118 1028, 1029, 2119 1029, 1030, 2120 1030, 1031, 2121 1031, 1032, 2122 1032, 1033, 2123 1033, 1034, 2124 1034, 1035, 2125 1035, 1036, 2126 1036, 1037, 2127 1037, 1038, 2128 1038, 1039, 2129 1039, 1040, 2130 1040, 1041, 2131 1041, 1042, 2132 1042, 1043, 2133 1043, 1044, 2134 1044, 1045, 2135 1045, 1046, 2136 1046, 1047, 2137 1047, 1048, 2138 1048, 1049, 2139 1049, 1050, 2140 1050, 1051, 2141 1051, 1052, 2142 1052, 1053, 2143 1053, 1054, 2144 1054, 1055, 2145 1055, 792 2146 }; 2147 static const unsigned some_segments_properties[3168] = 2148 { 2149 0, 0, 0, 2150 0, 0, 0, 2151 0, 0, 0, 2152 0, 0, 0, 2153 0, 0, 0, 2154 0, 0, 0, 2155 0, 0, 0, 2156 0, 0, 0, 2157 0, 0, 0, 2158 0, 0, 0, 2159 0, 0, 0, 2160 0, 0, 0, 2161 0, 0, 0, 2162 0, 0, 0, 2163 0, 0, 0, 2164 0, 0, 0, 2165 0, 0, 0, 2166 0, 0, 0, 2167 0, 0, 0, 2168 0, 0, 0, 2169 0, 0, 0, 2170 0, 0, 0, 2171 0, 0, 0, 2172 0, 0, 0, 2173 0, 0, 0, 2174 0, 0, 0, 2175 0, 0, 0, 2176 0, 0, 0, 2177 0, 0, 0, 2178 0, 0, 0, 2179 0, 0, 0, 2180 0, 0, 0, 2181 0, 0, 0, 2182 0, 0, 0, 2183 0, 0, 0, 2184 0, 0, 0, 2185 0, 0, 0, 2186 0, 0, 0, 2187 0, 0, 0, 2188 0, 0, 0, 2189 0, 0, 0, 2190 0, 0, 0, 2191 0, 0, 0, 2192 0, 0, 0, 2193 0, 0, 0, 2194 0, 0, 0, 2195 0, 0, 0, 2196 0, 0, 0, 2197 0, 0, 0, 2198 0, 0, 0, 2199 0, 0, 0, 2200 0, 0, 0, 2201 0, 0, 0, 2202 0, 0, 0, 2203 0, 0, 0, 2204 0, 0, 0, 2205 0, 0, 0, 2206 0, 0, 0, 2207 0, 0, 0, 2208 0, 0, 0, 2209 0, 0, 0, 2210 0, 0, 0, 2211 0, 0, 0, 2212 0, 0, 0, 2213 0, 0, 0, 2214 0, 0, 0, 2215 0, 0, 0, 2216 0, 0, 0, 2217 0, 0, 0, 2218 0, 0, 0, 2219 0, 0, 0, 2220 0, 0, 0, 2221 0, 0, 0, 2222 0, 0, 0, 2223 0, 0, 0, 2224 0, 0, 0, 2225 0, 0, 0, 2226 0, 0, 0, 2227 0, 0, 0, 2228 0, 0, 0, 2229 0, 0, 0, 2230 0, 0, 0, 2231 0, 0, 0, 2232 0, 0, 0, 2233 0, 0, 0, 2234 0, 0, 0, 2235 0, 0, 0, 2236 0, 0, 0, 2237 0, 0, 0, 2238 0, 0, 0, 2239 0, 0, 0, 2240 0, 0, 0, 2241 0, 0, 0, 2242 0, 0, 0, 2243 0, 0, 0, 2244 0, 0, 0, 2245 0, 0, 0, 2246 0, 0, 0, 2247 0, 0, 0, 2248 0, 0, 0, 2249 0, 0, 0, 2250 0, 0, 0, 2251 0, 0, 0, 2252 0, 0, 0, 2253 0, 0, 0, 2254 0, 0, 0, 2255 0, 0, 0, 2256 0, 0, 0, 2257 0, 0, 0, 2258 0, 0, 0, 2259 0, 0, 0, 2260 0, 0, 0, 2261 0, 0, 0, 2262 0, 0, 0, 2263 0, 0, 0, 2264 0, 0, 0, 2265 0, 0, 0, 2266 0, 0, 0, 2267 0, 0, 0, 2268 0, 0, 0, 2269 0, 0, 0, 2270 0, 0, 0, 2271 0, 0, 0, 2272 0, 0, 0, 2273 0, 0, 0, 2274 0, 0, 0, 2275 0, 0, 0, 2276 0, 0, 0, 2277 0, 0, 0, 2278 0, 0, 0, 2279 0, 0, 0, 2280 0, 0, 0, 2281 0, 0, 0, 2282 0, 0, 0, 2283 0, 0, 0, 2284 0, 0, 0, 2285 0, 0, 0, 2286 0, 0, 0, 2287 0, 0, 0, 2288 0, 0, 0, 2289 0, 0, 0, 2290 0, 0, 0, 2291 0, 0, 0, 2292 0, 0, 0, 2293 0, 0, 0, 2294 0, 0, 0, 2295 0, 0, 0, 2296 0, 0, 0, 2297 0, 0, 0, 2298 0, 0, 0, 2299 0, 0, 0, 2300 0, 0, 0, 2301 0, 0, 0, 2302 0, 0, 0, 2303 0, 0, 0, 2304 0, 0, 0, 2305 0, 0, 0, 2306 0, 0, 0, 2307 0, 0, 0, 2308 0, 0, 0, 2309 0, 0, 0, 2310 0, 0, 0, 2311 0, 0, 0, 2312 0, 0, 0, 2313 0, 0, 0, 2314 0, 0, 0, 2315 0, 0, 0, 2316 0, 0, 0, 2317 0, 0, 0, 2318 0, 0, 0, 2319 0, 0, 0, 2320 0, 0, 0, 2321 0, 0, 0, 2322 0, 0, 0, 2323 0, 0, 0, 2324 0, 0, 0, 2325 0, 0, 0, 2326 0, 0, 0, 2327 0, 0, 0, 2328 0, 0, 0, 2329 0, 0, 0, 2330 0, 0, 0, 2331 0, 0, 0, 2332 0, 0, 0, 2333 0, 0, 0, 2334 0, 0, 0, 2335 0, 0, 0, 2336 0, 0, 0, 2337 0, 0, 0, 2338 0, 0, 0, 2339 0, 0, 0, 2340 0, 0, 0, 2341 0, 0, 0, 2342 0, 0, 0, 2343 0, 0, 0, 2344 0, 0, 0, 2345 0, 0, 0, 2346 0, 0, 0, 2347 0, 0, 0, 2348 0, 0, 0, 2349 0, 0, 0, 2350 0, 0, 0, 2351 0, 0, 0, 2352 0, 0, 0, 2353 0, 0, 0, 2354 0, 0, 0, 2355 0, 0, 0, 2356 0, 0, 0, 2357 0, 0, 0, 2358 0, 0, 0, 2359 0, 0, 0, 2360 0, 0, 0, 2361 0, 0, 0, 2362 0, 0, 0, 2363 0, 0, 0, 2364 0, 0, 0, 2365 0, 0, 0, 2366 0, 0, 0, 2367 0, 0, 0, 2368 0, 0, 0, 2369 0, 0, 0, 2370 0, 0, 0, 2371 0, 0, 0, 2372 0, 0, 0, 2373 0, 0, 0, 2374 0, 0, 0, 2375 0, 0, 0, 2376 0, 0, 0, 2377 0, 0, 0, 2378 0, 0, 0, 2379 0, 0, 0, 2380 0, 0, 0, 2381 0, 0, 0, 2382 0, 0, 0, 2383 0, 0, 0, 2384 0, 0, 0, 2385 0, 0, 0, 2386 0, 0, 0, 2387 0, 0, 0, 2388 0, 0, 0, 2389 0, 0, 0, 2390 0, 0, 0, 2391 0, 0, 0, 2392 0, 0, 0, 2393 0, 0, 0, 2394 0, 0, 0, 2395 0, 0, 0, 2396 0, 0, 0, 2397 0, 0, 0, 2398 0, 0, 0, 2399 0, 0, 0, 2400 0, 0, 0, 2401 0, 0, 0, 2402 0, 0, 0, 2403 0, 0, 0, 2404 0, 0, 0, 2405 0, 0, 0, 2406 0, 0, 0, 2407 0, 0, 0, 2408 0, 0, 0, 2409 0, 0, 0, 2410 0, 0, 0, 2411 0, 0, 0, 2412 0, 0, 0, 2413 1, 0, 0, 2414 1, 0, 0, 2415 1, 0, 0, 2416 1, 0, 0, 2417 1, 0, 0, 2418 1, 0, 0, 2419 1, 0, 0, 2420 1, 0, 0, 2421 1, 0, 0, 2422 1, 0, 0, 2423 1, 0, 0, 2424 1, 0, 0, 2425 1, 0, 0, 2426 1, 0, 0, 2427 1, 0, 0, 2428 1, 0, 0, 2429 1, 0, 0, 2430 1, 0, 0, 2431 1, 0, 0, 2432 1, 0, 0, 2433 1, 0, 0, 2434 1, 0, 0, 2435 1, 0, 0, 2436 1, 0, 0, 2437 1, 0, 0, 2438 1, 0, 0, 2439 1, 0, 0, 2440 1, 0, 0, 2441 1, 0, 0, 2442 1, 0, 0, 2443 1, 0, 0, 2444 1, 0, 0, 2445 1, 0, 0, 2446 1, 0, 0, 2447 1, 0, 0, 2448 1, 0, 0, 2449 1, 0, 0, 2450 1, 0, 0, 2451 1, 0, 0, 2452 1, 0, 0, 2453 1, 0, 0, 2454 1, 0, 0, 2455 1, 0, 0, 2456 1, 0, 0, 2457 1, 0, 0, 2458 1, 0, 0, 2459 1, 0, 0, 2460 1, 0, 0, 2461 1, 0, 0, 2462 1, 0, 0, 2463 1, 0, 0, 2464 1, 0, 0, 2465 1, 0, 0, 2466 1, 0, 0, 2467 1, 0, 0, 2468 1, 0, 0, 2469 1, 0, 0, 2470 1, 0, 0, 2471 1, 0, 0, 2472 1, 0, 0, 2473 1, 0, 0, 2474 1, 0, 0, 2475 1, 0, 0, 2476 1, 0, 0, 2477 1, 0, 0, 2478 1, 0, 0, 2479 1, 0, 0, 2480 1, 0, 0, 2481 1, 0, 0, 2482 1, 0, 0, 2483 1, 0, 0, 2484 1, 0, 0, 2485 1, 0, 0, 2486 1, 0, 0, 2487 1, 0, 0, 2488 1, 0, 0, 2489 1, 0, 0, 2490 1, 0, 0, 2491 1, 0, 0, 2492 1, 0, 0, 2493 1, 0, 0, 2494 1, 0, 0, 2495 1, 0, 0, 2496 1, 0, 0, 2497 1, 0, 0, 2498 1, 0, 0, 2499 1, 0, 0, 2500 1, 0, 0, 2501 1, 0, 0, 2502 1, 0, 0, 2503 1, 0, 0, 2504 1, 0, 0, 2505 1, 0, 0, 2506 1, 0, 0, 2507 1, 0, 0, 2508 1, 0, 0, 2509 1, 0, 0, 2510 1, 0, 0, 2511 1, 0, 0, 2512 1, 0, 0, 2513 1, 0, 0, 2514 1, 0, 0, 2515 1, 0, 0, 2516 1, 0, 0, 2517 1, 0, 0, 2518 1, 0, 0, 2519 1, 0, 0, 2520 1, 0, 0, 2521 1, 0, 0, 2522 1, 0, 0, 2523 1, 0, 0, 2524 1, 0, 0, 2525 1, 0, 0, 2526 1, 0, 0, 2527 1, 0, 0, 2528 1, 0, 0, 2529 1, 0, 0, 2530 1, 0, 0, 2531 1, 0, 0, 2532 1, 0, 0, 2533 1, 0, 0, 2534 1, 0, 0, 2535 1, 0, 0, 2536 1, 0, 0, 2537 1, 0, 0, 2538 1, 0, 0, 2539 1, 0, 0, 2540 1, 0, 0, 2541 1, 0, 0, 2542 1, 0, 0, 2543 1, 0, 0, 2544 1, 0, 0, 2545 1, 0, 0, 2546 1, 0, 0, 2547 1, 0, 0, 2548 1, 0, 0, 2549 1, 0, 0, 2550 1, 0, 0, 2551 1, 0, 0, 2552 1, 0, 0, 2553 1, 0, 0, 2554 1, 0, 0, 2555 1, 0, 0, 2556 1, 0, 0, 2557 1, 0, 0, 2558 1, 0, 0, 2559 1, 0, 0, 2560 1, 0, 0, 2561 1, 0, 0, 2562 1, 0, 0, 2563 1, 0, 0, 2564 1, 0, 0, 2565 1, 0, 0, 2566 1, 0, 0, 2567 1, 0, 0, 2568 1, 0, 0, 2569 1, 0, 0, 2570 1, 0, 0, 2571 1, 0, 0, 2572 1, 0, 0, 2573 1, 0, 0, 2574 1, 0, 0, 2575 1, 0, 0, 2576 1, 0, 0, 2577 1, 0, 0, 2578 1, 0, 0, 2579 1, 0, 0, 2580 1, 0, 0, 2581 1, 0, 0, 2582 1, 0, 0, 2583 1, 0, 0, 2584 1, 0, 0, 2585 1, 0, 0, 2586 1, 0, 0, 2587 1, 0, 0, 2588 1, 0, 0, 2589 1, 0, 0, 2590 1, 0, 0, 2591 1, 0, 0, 2592 1, 0, 0, 2593 1, 0, 0, 2594 1, 0, 0, 2595 1, 0, 0, 2596 1, 0, 0, 2597 1, 0, 0, 2598 1, 0, 0, 2599 1, 0, 0, 2600 1, 0, 0, 2601 1, 0, 0, 2602 1, 0, 0, 2603 1, 0, 0, 2604 1, 0, 0, 2605 1, 0, 0, 2606 1, 0, 0, 2607 1, 0, 0, 2608 1, 0, 0, 2609 1, 0, 0, 2610 1, 0, 0, 2611 1, 0, 0, 2612 1, 0, 0, 2613 1, 0, 0, 2614 1, 0, 0, 2615 1, 0, 0, 2616 1, 0, 0, 2617 1, 0, 0, 2618 1, 0, 0, 2619 1, 0, 0, 2620 1, 0, 0, 2621 1, 0, 0, 2622 1, 0, 0, 2623 1, 0, 0, 2624 1, 0, 0, 2625 1, 0, 0, 2626 1, 0, 0, 2627 1, 0, 0, 2628 1, 0, 0, 2629 1, 0, 0, 2630 1, 0, 0, 2631 1, 0, 0, 2632 1, 0, 0, 2633 1, 0, 0, 2634 1, 0, 0, 2635 1, 0, 0, 2636 1, 0, 0, 2637 1, 0, 0, 2638 1, 0, 0, 2639 1, 0, 0, 2640 1, 0, 0, 2641 1, 0, 0, 2642 1, 0, 0, 2643 1, 0, 0, 2644 1, 0, 0, 2645 1, 0, 0, 2646 1, 0, 0, 2647 1, 0, 0, 2648 1, 0, 0, 2649 1, 0, 0, 2650 1, 0, 0, 2651 1, 0, 0, 2652 1, 0, 0, 2653 1, 0, 0, 2654 1, 0, 0, 2655 1, 0, 0, 2656 1, 0, 0, 2657 1, 0, 0, 2658 1, 0, 0, 2659 1, 0, 0, 2660 1, 0, 0, 2661 1, 0, 0, 2662 1, 0, 0, 2663 1, 0, 0, 2664 1, 0, 0, 2665 1, 0, 0, 2666 1, 0, 0, 2667 1, 0, 0, 2668 1, 0, 0, 2669 1, 0, 0, 2670 1, 0, 0, 2671 1, 0, 0, 2672 1, 0, 0, 2673 1, 0, 0, 2674 1, 0, 0, 2675 1, 0, 0, 2676 1, 0, 0, 2677 2, 0, 0, 2678 2, 0, 0, 2679 2, 0, 0, 2680 2, 0, 0, 2681 2, 0, 0, 2682 2, 0, 0, 2683 2, 0, 0, 2684 2, 0, 0, 2685 2, 0, 0, 2686 2, 0, 0, 2687 2, 0, 0, 2688 2, 0, 0, 2689 2, 0, 0, 2690 2, 0, 0, 2691 2, 0, 0, 2692 2, 0, 0, 2693 2, 0, 0, 2694 2, 0, 0, 2695 2, 0, 0, 2696 2, 0, 0, 2697 2, 0, 0, 2698 2, 0, 0, 2699 2, 0, 0, 2700 2, 0, 0, 2701 2, 0, 0, 2702 2, 0, 0, 2703 2, 0, 0, 2704 2, 0, 0, 2705 2, 0, 0, 2706 2, 0, 0, 2707 2, 0, 0, 2708 2, 0, 0, 2709 2, 0, 0, 2710 2, 0, 0, 2711 2, 0, 0, 2712 2, 0, 0, 2713 2, 0, 0, 2714 2, 0, 0, 2715 2, 0, 0, 2716 2, 0, 0, 2717 2, 0, 0, 2718 2, 0, 0, 2719 2, 0, 0, 2720 2, 0, 0, 2721 2, 0, 0, 2722 2, 0, 0, 2723 2, 0, 0, 2724 2, 0, 0, 2725 2, 0, 0, 2726 2, 0, 0, 2727 2, 0, 0, 2728 2, 0, 0, 2729 2, 0, 0, 2730 2, 0, 0, 2731 2, 0, 0, 2732 2, 0, 0, 2733 2, 0, 0, 2734 2, 0, 0, 2735 2, 0, 0, 2736 2, 0, 0, 2737 2, 0, 0, 2738 2, 0, 0, 2739 2, 0, 0, 2740 2, 0, 0, 2741 2, 0, 0, 2742 2, 0, 0, 2743 2, 0, 0, 2744 2, 0, 0, 2745 2, 0, 0, 2746 2, 0, 0, 2747 2, 0, 0, 2748 2, 0, 0, 2749 2, 0, 0, 2750 2, 0, 0, 2751 2, 0, 0, 2752 2, 0, 0, 2753 2, 0, 0, 2754 2, 0, 0, 2755 2, 0, 0, 2756 2, 0, 0, 2757 2, 0, 0, 2758 2, 0, 0, 2759 2, 0, 0, 2760 2, 0, 0, 2761 2, 0, 0, 2762 2, 0, 0, 2763 2, 0, 0, 2764 2, 0, 0, 2765 2, 0, 0, 2766 2, 0, 0, 2767 2, 0, 0, 2768 2, 0, 0, 2769 2, 0, 0, 2770 2, 0, 0, 2771 2, 0, 0, 2772 2, 0, 0, 2773 2, 0, 0, 2774 2, 0, 0, 2775 2, 0, 0, 2776 2, 0, 0, 2777 2, 0, 0, 2778 2, 0, 0, 2779 2, 0, 0, 2780 2, 0, 0, 2781 2, 0, 0, 2782 2, 0, 0, 2783 2, 0, 0, 2784 2, 0, 0, 2785 2, 0, 0, 2786 2, 0, 0, 2787 2, 0, 0, 2788 2, 0, 0, 2789 2, 0, 0, 2790 2, 0, 0, 2791 2, 0, 0, 2792 2, 0, 0, 2793 2, 0, 0, 2794 2, 0, 0, 2795 2, 0, 0, 2796 2, 0, 0, 2797 2, 0, 0, 2798 2, 0, 0, 2799 2, 0, 0, 2800 2, 0, 0, 2801 2, 0, 0, 2802 2, 0, 0, 2803 2, 0, 0, 2804 2, 0, 0, 2805 2, 0, 0, 2806 2, 0, 0, 2807 2, 0, 0, 2808 2, 0, 0, 2809 2, 0, 0, 2810 2, 0, 0, 2811 2, 0, 0, 2812 2, 0, 0, 2813 2, 0, 0, 2814 2, 0, 0, 2815 2, 0, 0, 2816 2, 0, 0, 2817 2, 0, 0, 2818 2, 0, 0, 2819 2, 0, 0, 2820 2, 0, 0, 2821 2, 0, 0, 2822 2, 0, 0, 2823 2, 0, 0, 2824 2, 0, 0, 2825 2, 0, 0, 2826 2, 0, 0, 2827 2, 0, 0, 2828 2, 0, 0, 2829 2, 0, 0, 2830 2, 0, 0, 2831 2, 0, 0, 2832 2, 0, 0, 2833 2, 0, 0, 2834 2, 0, 0, 2835 2, 0, 0, 2836 2, 0, 0, 2837 2, 0, 0, 2838 2, 0, 0, 2839 2, 0, 0, 2840 2, 0, 0, 2841 2, 0, 0, 2842 2, 0, 0, 2843 2, 0, 0, 2844 2, 0, 0, 2845 2, 0, 0, 2846 2, 0, 0, 2847 2, 0, 0, 2848 2, 0, 0, 2849 2, 0, 0, 2850 2, 0, 0, 2851 2, 0, 0, 2852 2, 0, 0, 2853 2, 0, 0, 2854 2, 0, 0, 2855 2, 0, 0, 2856 2, 0, 0, 2857 2, 0, 0, 2858 2, 0, 0, 2859 2, 0, 0, 2860 2, 0, 0, 2861 2, 0, 0, 2862 2, 0, 0, 2863 2, 0, 0, 2864 2, 0, 0, 2865 2, 0, 0, 2866 2, 0, 0, 2867 2, 0, 0, 2868 2, 0, 0, 2869 2, 0, 0, 2870 2, 0, 0, 2871 2, 0, 0, 2872 2, 0, 0, 2873 2, 0, 0, 2874 2, 0, 0, 2875 2, 0, 0, 2876 2, 0, 0, 2877 2, 0, 0, 2878 2, 0, 0, 2879 2, 0, 0, 2880 2, 0, 0, 2881 2, 0, 0, 2882 2, 0, 0, 2883 2, 0, 0, 2884 2, 0, 0, 2885 2, 0, 0, 2886 2, 0, 0, 2887 2, 0, 0, 2888 2, 0, 0, 2889 2, 0, 0, 2890 2, 0, 0, 2891 2, 0, 0, 2892 2, 0, 0, 2893 2, 0, 0, 2894 2, 0, 0, 2895 2, 0, 0, 2896 2, 0, 0, 2897 2, 0, 0, 2898 2, 0, 0, 2899 2, 0, 0, 2900 2, 0, 0, 2901 2, 0, 0, 2902 2, 0, 0, 2903 2, 0, 0, 2904 2, 0, 0, 2905 2, 0, 0, 2906 2, 0, 0, 2907 2, 0, 0, 2908 2, 0, 0, 2909 2, 0, 0, 2910 2, 0, 0, 2911 2, 0, 0, 2912 2, 0, 0, 2913 2, 0, 0, 2914 2, 0, 0, 2915 2, 0, 0, 2916 2, 0, 0, 2917 2, 0, 0, 2918 2, 0, 0, 2919 2, 0, 0, 2920 2, 0, 0, 2921 2, 0, 0, 2922 2, 0, 0, 2923 2, 0, 0, 2924 2, 0, 0, 2925 2, 0, 0, 2926 2, 0, 0, 2927 2, 0, 0, 2928 2, 0, 0, 2929 2, 0, 0, 2930 2, 0, 0, 2931 2, 0, 0, 2932 2, 0, 0, 2933 2, 0, 0, 2934 2, 0, 0, 2935 2, 0, 0, 2936 2, 0, 0, 2937 2, 0, 0, 2938 2, 0, 0, 2939 2, 0, 0, 2940 2, 0, 0, 2941 3, 0, 0, 2942 3, 0, 0, 2943 3, 0, 0, 2944 3, 0, 0, 2945 3, 0, 0, 2946 3, 0, 0, 2947 3, 0, 0, 2948 3, 0, 0, 2949 3, 0, 0, 2950 3, 0, 0, 2951 3, 0, 0, 2952 3, 0, 0, 2953 3, 0, 0, 2954 3, 0, 0, 2955 3, 0, 0, 2956 3, 0, 0, 2957 3, 0, 0, 2958 3, 0, 0, 2959 3, 0, 0, 2960 3, 0, 0, 2961 3, 0, 0, 2962 3, 0, 0, 2963 3, 0, 0, 2964 3, 0, 0, 2965 3, 0, 0, 2966 3, 0, 0, 2967 3, 0, 0, 2968 3, 0, 0, 2969 3, 0, 0, 2970 3, 0, 0, 2971 3, 0, 0, 2972 3, 0, 0, 2973 3, 0, 0, 2974 3, 0, 0, 2975 3, 0, 0, 2976 3, 0, 0, 2977 3, 0, 0, 2978 3, 0, 0, 2979 3, 0, 0, 2980 3, 0, 0, 2981 3, 0, 0, 2982 3, 0, 0, 2983 3, 0, 0, 2984 3, 0, 0, 2985 3, 0, 0, 2986 3, 0, 0, 2987 3, 0, 0, 2988 3, 0, 0, 2989 3, 0, 0, 2990 3, 0, 0, 2991 3, 0, 0, 2992 3, 0, 0, 2993 3, 0, 0, 2994 3, 0, 0, 2995 3, 0, 0, 2996 3, 0, 0, 2997 3, 0, 0, 2998 3, 0, 0, 2999 3, 0, 0, 3000 3, 0, 0, 3001 3, 0, 0, 3002 3, 0, 0, 3003 3, 0, 0, 3004 3, 0, 0, 3005 3, 0, 0, 3006 3, 0, 0, 3007 3, 0, 0, 3008 3, 0, 0, 3009 3, 0, 0, 3010 3, 0, 0, 3011 3, 0, 0, 3012 3, 0, 0, 3013 3, 0, 0, 3014 3, 0, 0, 3015 3, 0, 0, 3016 3, 0, 0, 3017 3, 0, 0, 3018 3, 0, 0, 3019 3, 0, 0, 3020 3, 0, 0, 3021 3, 0, 0, 3022 3, 0, 0, 3023 3, 0, 0, 3024 3, 0, 0, 3025 3, 0, 0, 3026 3, 0, 0, 3027 3, 0, 0, 3028 3, 0, 0, 3029 3, 0, 0, 3030 3, 0, 0, 3031 3, 0, 0, 3032 3, 0, 0, 3033 3, 0, 0, 3034 3, 0, 0, 3035 3, 0, 0, 3036 3, 0, 0, 3037 3, 0, 0, 3038 3, 0, 0, 3039 3, 0, 0, 3040 3, 0, 0, 3041 3, 0, 0, 3042 3, 0, 0, 3043 3, 0, 0, 3044 3, 0, 0, 3045 3, 0, 0, 3046 3, 0, 0, 3047 3, 0, 0, 3048 3, 0, 0, 3049 3, 0, 0, 3050 3, 0, 0, 3051 3, 0, 0, 3052 3, 0, 0, 3053 3, 0, 0, 3054 3, 0, 0, 3055 3, 0, 0, 3056 3, 0, 0, 3057 3, 0, 0, 3058 3, 0, 0, 3059 3, 0, 0, 3060 3, 0, 0, 3061 3, 0, 0, 3062 3, 0, 0, 3063 3, 0, 0, 3064 3, 0, 0, 3065 3, 0, 0, 3066 3, 0, 0, 3067 3, 0, 0, 3068 3, 0, 0, 3069 3, 0, 0, 3070 3, 0, 0, 3071 3, 0, 0, 3072 3, 0, 0, 3073 3, 0, 0, 3074 3, 0, 0, 3075 3, 0, 0, 3076 3, 0, 0, 3077 3, 0, 0, 3078 3, 0, 0, 3079 3, 0, 0, 3080 3, 0, 0, 3081 3, 0, 0, 3082 3, 0, 0, 3083 3, 0, 0, 3084 3, 0, 0, 3085 3, 0, 0, 3086 3, 0, 0, 3087 3, 0, 0, 3088 3, 0, 0, 3089 3, 0, 0, 3090 3, 0, 0, 3091 3, 0, 0, 3092 3, 0, 0, 3093 3, 0, 0, 3094 3, 0, 0, 3095 3, 0, 0, 3096 3, 0, 0, 3097 3, 0, 0, 3098 3, 0, 0, 3099 3, 0, 0, 3100 3, 0, 0, 3101 3, 0, 0, 3102 3, 0, 0, 3103 3, 0, 0, 3104 3, 0, 0, 3105 3, 0, 0, 3106 3, 0, 0, 3107 3, 0, 0, 3108 3, 0, 0, 3109 3, 0, 0, 3110 3, 0, 0, 3111 3, 0, 0, 3112 3, 0, 0, 3113 3, 0, 0, 3114 3, 0, 0, 3115 3, 0, 0, 3116 3, 0, 0, 3117 3, 0, 0, 3118 3, 0, 0, 3119 3, 0, 0, 3120 3, 0, 0, 3121 3, 0, 0, 3122 3, 0, 0, 3123 3, 0, 0, 3124 3, 0, 0, 3125 3, 0, 0, 3126 3, 0, 0, 3127 3, 0, 0, 3128 3, 0, 0, 3129 3, 0, 0, 3130 3, 0, 0, 3131 3, 0, 0, 3132 3, 0, 0, 3133 3, 0, 0, 3134 3, 0, 0, 3135 3, 0, 0, 3136 3, 0, 0, 3137 3, 0, 0, 3138 3, 0, 0, 3139 3, 0, 0, 3140 3, 0, 0, 3141 3, 0, 0, 3142 3, 0, 0, 3143 3, 0, 0, 3144 3, 0, 0, 3145 3, 0, 0, 3146 3, 0, 0, 3147 3, 0, 0, 3148 3, 0, 0, 3149 3, 0, 0, 3150 3, 0, 0, 3151 3, 0, 0, 3152 3, 0, 0, 3153 3, 0, 0, 3154 3, 0, 0, 3155 3, 0, 0, 3156 3, 0, 0, 3157 3, 0, 0, 3158 3, 0, 0, 3159 3, 0, 0, 3160 3, 0, 0, 3161 3, 0, 0, 3162 3, 0, 0, 3163 3, 0, 0, 3164 3, 0, 0, 3165 3, 0, 0, 3166 3, 0, 0, 3167 3, 0, 0, 3168 3, 0, 0, 3169 3, 0, 0, 3170 3, 0, 0, 3171 3, 0, 0, 3172 3, 0, 0, 3173 3, 0, 0, 3174 3, 0, 0, 3175 3, 0, 0, 3176 3, 0, 0, 3177 3, 0, 0, 3178 3, 0, 0, 3179 3, 0, 0, 3180 3, 0, 0, 3181 3, 0, 0, 3182 3, 0, 0, 3183 3, 0, 0, 3184 3, 0, 0, 3185 3, 0, 0, 3186 3, 0, 0, 3187 3, 0, 0, 3188 3, 0, 0, 3189 3, 0, 0, 3190 3, 0, 0, 3191 3, 0, 0, 3192 3, 0, 0, 3193 3, 0, 0, 3194 3, 0, 0, 3195 3, 0, 0, 3196 3, 0, 0, 3197 3, 0, 0, 3198 3, 0, 0, 3199 3, 0, 0, 3200 3, 0, 0, 3201 3, 0, 0, 3202 3, 0, 0, 3203 3, 0, 0, 3204 3, 0, 0 3205 }; 3206 3207 #define NB_CIRC 4 3208 #define CIRC_VRTX_COUNT 264u 3209 #define CIRC_SEG_COUNT 264u 3210 3211 int 3212 main(int argc, char** argv) 3213 { 3214 struct mem_allocator allocator; 3215 struct senc2d_device* dev = NULL; 3216 struct senc2d_scene* scn = NULL; 3217 struct context ctx = CONTEXT_NULL__; 3218 unsigned e, count; 3219 (void)argc, (void)argv; 3220 3221 OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); 3222 OK(senc2d_device_create(NULL, &allocator, SENC2D_NTHREADS_DEFAULT, 1, &dev)); 3223 3224 /* Create a scene */ 3225 ctx.positions = some_segments_vertices; 3226 ctx.indices = some_segments_segments; 3227 ctx.properties = some_segments_properties; 3228 OK(senc2d_scene_create(dev, 3229 SENC2D_CONVENTION_NORMAL_FRONT | SENC2D_CONVENTION_NORMAL_INSIDE, 3230 some_segments_segments_count, get_indices, get_media_from_properties, 3231 some_segments_vertices_count, get_position, &ctx, &scn)); 3232 3233 OK(senc2d_scene_get_vertices_count(scn, &count)); 3234 CHK(count == some_segments_vertices_count); 3235 CHK(count == NB_CIRC * CIRC_VRTX_COUNT); 3236 OK(senc2d_scene_get_segments_count(scn, &count)); 3237 CHK(count == some_segments_segments_count); 3238 CHK(count == NB_CIRC * CIRC_VRTX_COUNT); 3239 3240 OK(senc2d_scene_get_enclosure_count(scn, &count)); 3241 CHK(count == 1 + NB_CIRC); 3242 FOR_EACH(e, 0, count) { 3243 struct senc2d_enclosure* enclosure; 3244 struct senc2d_enclosure_header header; 3245 OK(senc2d_scene_get_enclosure(scn, e, &enclosure)); 3246 OK(senc2d_enclosure_get_header(enclosure, &header)); 3247 CHK(header.primitives_count == 3248 (e ? CIRC_SEG_COUNT : NB_CIRC * CIRC_SEG_COUNT)); 3249 OK(senc2d_enclosure_ref_put(enclosure)); 3250 } 3251 3252 OK(senc2d_scene_ref_put(scn)); 3253 OK(senc2d_device_ref_put(dev)); 3254 3255 check_memory_allocator(&allocator); 3256 mem_shutdown_proxy_allocator(&allocator); 3257 CHK(mem_allocated_size() == 0); 3258 return 0; 3259 }