1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 /* */ 3 /* This file is part of the program and library */ 4 /* SCIP --- Solving Constraint Integer Programs */ 5 /* */ 6 /* Copyright (C) 2002-2021 Konrad-Zuse-Zentrum */ 7 /* fuer Informationstechnik Berlin */ 8 /* */ 9 /* SCIP is distributed under the terms of the ZIB Academic License. */ 10 /* */ 11 /* You should have received a copy of the ZIB Academic License */ 12 /* along with SCIP; see the file COPYING. If not visit scipopt.org. */ 13 /* */ 14 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 15 16 /**@file pub_misc_sort.h 17 * @ingroup PUBLICCOREAPI 18 * @brief methods for sorting joint arrays of various types 19 * @author Gregor Hendel 20 * 21 * This file contains methods for sorting joint arrays of various types. 22 */ 23 24 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/ 25 26 #ifndef __SCIP_PUB_MISC_SORT_H__ 27 #define __SCIP_PUB_MISC_SORT_H__ 28 29 #include "scip/def.h" 30 #include "type_misc.h" 31 32 #ifdef __cplusplus 33 extern "C" { 34 #endif 35 36 /* 37 * Sorting algorithms 38 */ 39 40 /**@defgroup SortingAlgorithms Sorting Algorithms 41 * @ingroup MiscellaneousMethods 42 * @brief public methods for in place sorting of arrays 43 * 44 * Below are the public methods for in place sorting of up to six arrays of joint data. 45 * 46 * @{ 47 */ 48 49 /** default comparer for integers */ 50 SCIP_EXPORT 51 SCIP_DECL_SORTPTRCOMP(SCIPsortCompInt); 52 53 /* first all upwards-sorting methods */ 54 55 /** sort an indexed element set in non-decreasing order, resulting in a permutation index array */ 56 SCIP_EXPORT 57 void SCIPsort( 58 int* perm, /**< pointer to store the resulting permutation */ 59 SCIP_DECL_SORTINDCOMP((*indcomp)), /**< data element comparator */ 60 void* dataptr, /**< pointer to data field that is given to the external compare method */ 61 int len /**< number of elements to be sorted (valid index range) */ 62 ); 63 64 /** sort an index array in non-decreasing order */ 65 SCIP_EXPORT 66 void SCIPsortInd( 67 int* indarray, /**< pointer to the index array to be sorted */ 68 SCIP_DECL_SORTINDCOMP((*indcomp)), /**< data element comparator */ 69 void* dataptr, /**< pointer to data field that is given to the external compare method */ 70 int len /**< length of array */ 71 ); 72 73 /** sort of an array of pointers in non-decreasing order */ 74 SCIP_EXPORT 75 void SCIPsortPtr( 76 void** ptrarray, /**< pointer array to be sorted */ 77 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 78 int len /**< length of array */ 79 ); 80 81 /** sort of two joint arrays of pointers/pointers, sorted by first array in non-decreasing order */ 82 SCIP_EXPORT 83 void SCIPsortPtrPtr( 84 void** ptrarray1, /**< first pointer array to be sorted */ 85 void** ptrarray2, /**< second pointer array to be permuted in the same way */ 86 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 87 int len /**< length of arrays */ 88 ); 89 90 /** sort of two joint arrays of pointers/Reals, sorted by first array in non-decreasing order */ 91 SCIP_EXPORT 92 void SCIPsortPtrReal( 93 void** ptrarray, /**< pointer array to be sorted */ 94 SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */ 95 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 96 int len /**< length of arrays */ 97 ); 98 99 /** sort of two joint arrays of pointers/ints, sorted by first array in non-decreasing order */ 100 SCIP_EXPORT 101 void SCIPsortPtrInt( 102 void** ptrarray, /**< pointer array to be sorted */ 103 int* intarray, /**< int array to be permuted in the same way */ 104 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 105 int len /**< length of arrays */ 106 ); 107 108 /** sort of two joint arrays of pointers/Bools, sorted by first array in non-decreasing order */ 109 SCIP_EXPORT 110 void SCIPsortPtrBool( 111 void** ptrarray, /**< pointer array to be sorted */ 112 SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */ 113 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 114 int len /**< length of arrays */ 115 ); 116 117 118 /** sort of three joint arrays of pointers/ints/ints, sorted by first array in non-decreasing order */ 119 SCIP_EXPORT 120 void SCIPsortPtrIntInt( 121 void** ptrarray, /**< pointer array to be sorted */ 122 int* intarray1, /**< first int array to be permuted in the same way */ 123 int* intarray2, /**< second int array to be permuted in the same way */ 124 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 125 int len /**< length of arrays */ 126 ); 127 128 /** sort of three joint arrays of pointers/Reals/ints, sorted by first array in non-decreasing order */ 129 SCIP_EXPORT 130 void SCIPsortPtrRealInt( 131 void** ptrarray, /**< pointer array to be sorted */ 132 SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */ 133 int* intarray, /**< int array to be permuted in the same way */ 134 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 135 int len /**< length of arrays */ 136 ); 137 138 /** sort of four joint arrays of pointers/Reals/Reals/ints, sorted by first array in non-decreasing order */ 139 SCIP_EXPORT 140 void SCIPsortPtrRealRealInt( 141 void** ptrarray, /**< pointer array to be sorted */ 142 SCIP_Real* realarray1, /**< SCIP_Real array to be permuted in the same way */ 143 SCIP_Real* realarray2, /**< SCIP_Real array to be permuted in the same way */ 144 int* intarray, /**< int array to be permuted in the same way */ 145 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 146 int len /**< length of arrays */ 147 ); 148 149 /** sort of four joint arrays of pointers/Reals/Reals/SCIP_Bools/SCIP_Bools, sorted by first array in non-decreasing order */ 150 SCIP_EXPORT 151 void SCIPsortPtrRealRealBoolBool( 152 void** ptrarray, /**< pointer array to be sorted */ 153 SCIP_Real* realarray1, /**< SCIP_Real array to be permuted in the same way */ 154 SCIP_Real* realarray2, /**< SCIP_Real array to be permuted in the same way */ 155 SCIP_Bool* boolarray1, /**< SCIP_Bool array to be permuted in the same way */ 156 SCIP_Bool* boolarray2, /**< SCIP_Bool array to be permuted in the same way */ 157 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 158 int len /**< length of arrays */ 159 ); 160 161 /** sort of four joint arrays of pointers/Reals/Reals/ints/SCIP_Bools, sorted by first array in non-decreasing order */ 162 SCIP_EXPORT 163 void SCIPsortPtrRealRealIntBool( 164 void** ptrarray, /**< pointer array to be sorted */ 165 SCIP_Real* realarray1, /**< SCIP_Real array to be permuted in the same way */ 166 SCIP_Real* realarray2, /**< SCIP_Real array to be permuted in the same way */ 167 int* intarray, /**< int array to be permuted in the same way */ 168 SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */ 169 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 170 int len /**< length of arrays */ 171 ); 172 173 /** sort of three joint arrays of pointers/Reals/Bools, sorted by first array in non-decreasing order */ 174 SCIP_EXPORT 175 void SCIPsortPtrRealBool( 176 void** ptrarray, /**< pointer array to be sorted */ 177 SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */ 178 SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */ 179 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 180 int len /**< length of arrays */ 181 ); 182 183 /** sort of three joint arrays of pointers/Reals/Reals, sorted by first array in non-decreasing order */ 184 SCIP_EXPORT 185 void SCIPsortPtrRealReal( 186 void** ptrarray, /**< pointer array to be sorted */ 187 SCIP_Real* realarray1, /**< first SCIP_Real array to be permuted in the same way */ 188 SCIP_Real* realarray2, /**< second SCIP_Real array to be permuted in the same way */ 189 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 190 int len /**< length of arrays */ 191 ); 192 193 /** sort of three joint arrays of pointers/pointers/ints, sorted by first array in non-decreasing order */ 194 SCIP_EXPORT 195 void SCIPsortPtrPtrInt( 196 void** ptrarray1, /**< first pointer array to be sorted */ 197 void** ptrarray2, /**< second pointer array to be permuted in the same way */ 198 int* intarray, /**< int array to be permuted in the same way */ 199 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 200 int len /**< length of arrays */ 201 ); 202 203 /** sort of three joint arrays of pointers/pointers/Reals, sorted by first array in non-decreasing order */ 204 SCIP_EXPORT 205 void SCIPsortPtrPtrReal( 206 void** ptrarray1, /**< first pointer array to be sorted */ 207 void** ptrarray2, /**< second pointer array to be permuted in the same way */ 208 SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */ 209 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 210 int len /**< length of arrays */ 211 ); 212 213 /** sort of four joint arrays of pointers/pointers/ints/ints, sorted by first array in non-decreasing order */ 214 SCIP_EXPORT 215 void SCIPsortPtrPtrIntInt( 216 void** ptrarray1, /**< first pointer array to be sorted */ 217 void** ptrarray2, /**< second pointer array to be permuted in the same way */ 218 int* intarray1, /**< first int array to be permuted in the same way */ 219 int* intarray2, /**< second int array to be permuted in the same way */ 220 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 221 int len /**< length of arrays */ 222 ); 223 224 /** sort of four joint arrays of pointers/Reals/ints/ints, sorted by first array in non-decreasing order */ 225 SCIP_EXPORT 226 void SCIPsortPtrRealIntInt( 227 void** ptrarray, /**< pointer array to be sorted */ 228 SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */ 229 int* intarray1, /**< first int array to be permuted in the same way */ 230 int* intarray2, /**< second int array to be permuted in the same way */ 231 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 232 int len /**< length of arrays */ 233 ); 234 235 /** sort of four joint arrays of pointer/pointer/Reals/ints, sorted by first array in non-decreasing order */ 236 SCIP_EXPORT 237 void SCIPsortPtrPtrRealInt( 238 void** ptrarray1, /**< first pointer array to be sorted */ 239 void** ptrarray2, /**< second pointer array to be permuted in the same way */ 240 SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */ 241 int* intarray, /**< int array to be permuted in the same way */ 242 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 243 int len /**< length of arrays */ 244 ); 245 246 /** sort of four joint arrays of pointer/pointer/Reals/Bools, sorted by first array in non-decreasing order */ 247 SCIP_EXPORT 248 void SCIPsortPtrPtrRealBool( 249 void** ptrarray1, /**< first pointer array to be sorted */ 250 void** ptrarray2, /**< second pointer array to be permuted in the same way */ 251 SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */ 252 SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */ 253 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 254 int len /**< length of arrays */ 255 ); 256 257 /** sort of four joint arrays of pointer/pointer/Longs/ints, sorted by first array in non-decreasing order */ 258 SCIP_EXPORT 259 void SCIPsortPtrPtrLongInt( 260 void** ptrarray1, /**< first pointer array to be sorted */ 261 void** ptrarray2, /**< second pointer array to be permuted in the same way */ 262 SCIP_Longint* longarray, /**< SCIP_Longint array to be permuted in the same way */ 263 int* intarray, /**< int array to be permuted in the same way */ 264 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 265 int len /**< length of arrays */ 266 ); 267 268 /** sort of five joint arrays of pointer/pointer/Longs/ints/ints, sorted by first array in non-decreasing order */ 269 SCIP_EXPORT 270 void SCIPsortPtrPtrLongIntInt( 271 void** ptrarray1, /**< first pointer array to be sorted */ 272 void** ptrarray2, /**< second pointer array to be permuted in the same way */ 273 SCIP_Longint* longarray, /**< SCIP_Longint array to be permuted in the same way */ 274 int* intarray1, /**< first int array to be permuted in the same way */ 275 int* intarray2, /**< second int array to be permuted in the same way */ 276 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 277 int len /**< length of arrays */ 278 ); 279 280 /** sort an array of Reals in non-decreasing order */ 281 SCIP_EXPORT 282 void SCIPsortReal( 283 SCIP_Real* realarray, /**< SCIP_Real array to be sorted */ 284 int len /**< length of arrays */ 285 ); 286 287 /** sort of two joint arrays of Reals/pointers, sorted by first array in non-decreasing order */ 288 SCIP_EXPORT 289 void SCIPsortRealPtr( 290 SCIP_Real* realarray, /**< SCIP_Real array to be sorted */ 291 void** ptrarray, /**< pointer array to be permuted in the same way */ 292 int len /**< length of arrays */ 293 ); 294 295 /** sort of two joint arrays of Reals/ints, sorted by first array in non-decreasing order */ 296 SCIP_EXPORT 297 void SCIPsortRealInt( 298 SCIP_Real* realarray, /**< SCIP_Real array to be sorted */ 299 int* intarray, /**< int array to be permuted in the same way */ 300 int len /**< length of arrays */ 301 ); 302 303 /** sort of three joint arrays of Reals/ints/ints, sorted by first array in non-decreasing order */ 304 SCIP_EXPORT 305 void SCIPsortRealIntInt( 306 SCIP_Real* realarray, /**< SCIP_Real array to be sorted */ 307 int* intarray1, /**< int array to be permuted in the same way */ 308 int* intarray2, /**< int array to be permuted in the same way */ 309 int len /**< length of arrays */ 310 ); 311 312 /** sort of three joint arrays of Reals/Bools/Pointer, sorted by first array in non-decreasing order */ 313 SCIP_EXPORT 314 void SCIPsortRealBoolPtr( 315 SCIP_Real* realarray, /**< SCIP_Real array to be sorted */ 316 SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */ 317 void** ptrarray, /**< pointer array to be permuted in the same way */ 318 int len /**< length of arrays */ 319 ); 320 321 /** sort of three joint arrays of Reals/ints/Longs, sorted by first array in non-decreasing order */ 322 SCIP_EXPORT 323 void SCIPsortRealIntLong( 324 SCIP_Real* realarray, /**< SCIP_Real array to be sorted */ 325 int* intarray, /**< int array to be permuted in the same way */ 326 SCIP_Longint* longarray, /**< SCIP_Longint array to be permuted in the same way */ 327 int len /**< length of arrays */ 328 ); 329 330 /** sort of three joint arrays of Reals/ints/Pointer, sorted by first array in non-decreasing order */ 331 SCIP_EXPORT 332 void SCIPsortRealIntPtr( 333 SCIP_Real* realarray, /**< SCIP_Real array to be sorted */ 334 int* intarray, /**< int array to be permuted in the same way */ 335 void** ptrarray, /**< pointer array to be permuted in the same way */ 336 int len /**< length of arrays */ 337 ); 338 339 /** sort of three joint arrays of Reals/Reals/Pointer, sorted by first array in non-decreasing order */ 340 SCIP_EXPORT 341 void SCIPsortRealRealPtr( 342 SCIP_Real* realarray1, /**< first SCIP_Real array to be sorted */ 343 SCIP_Real* realarray2, /**< second SCIP_Real array to be permuted in the same way */ 344 void** ptrarray, /**< pointer array to be permuted in the same way */ 345 int len /**< length of arrays */ 346 ); 347 348 /** sort of four joint arrays of Reals/pointers/pointers/ints, sorted by first array in non-decreasing order */ 349 SCIP_EXPORT 350 void SCIPsortRealPtrPtrInt( 351 SCIP_Real* realarray, /**< SCIP_Real array to be sorted */ 352 void** ptrarray1, /**< pointer array to be permuted in the same way */ 353 void** ptrarray2, /**< pointer array to be permuted in the same way */ 354 int* intarray, /**< int array to be sorted */ 355 int len /**< length of arrays */ 356 ); 357 358 /** sort of five joint arrays of Reals/pointers/pointers/ints/ints, sorted by first array in non-decreasing order */ 359 SCIP_EXPORT 360 void SCIPsortRealPtrPtrIntInt( 361 SCIP_Real* realarray, /**< SCIP_Real array to be sorted */ 362 void** ptrarray1, /**< pointer array to be permuted in the same way */ 363 void** ptrarray2, /**< pointer array to be permuted in the same way */ 364 int* intarray1, /**< int array to be sorted */ 365 int* intarray2, /**< int array to be sorted */ 366 int len /**< length of arrays */ 367 ); 368 369 /** sort of four joint arrays of Reals/Longs/Reals/ints, sorted by first array in non-decreasing order */ 370 SCIP_EXPORT 371 void SCIPsortRealLongRealInt( 372 SCIP_Real* realarray1, /**< SCIP_Real array to be sorted */ 373 SCIP_Longint* longarray, /**< SCIP_Longint array to be permuted in the same way */ 374 SCIP_Real* realarray3, /**< SCIP_Real array to be permuted in the same way */ 375 int* intarray, /**< int array to be permuted in the same way */ 376 int len /**< length of arrays */ 377 ); 378 379 /** sort of four joint arrays of Reals/Reals/ints/ints, sorted by first array in non-decreasing order */ 380 SCIP_EXPORT 381 void SCIPsortRealRealIntInt( 382 SCIP_Real* realarray1, /**< SCIP_Real array to be sorted */ 383 SCIP_Real* realarray2, /**< SCIP_Real array to be permuted in the same way */ 384 int* intarray1, /**< int array to be permuted in the same way */ 385 int* intarray2, /**< int array to be permuted in the same way */ 386 int len /**< length of arrays */ 387 ); 388 389 /** sort of four joint arrays of Reals/Reals/Reals/ints, sorted by first array in non-decreasing order */ 390 SCIP_EXPORT 391 void SCIPsortRealRealRealInt( 392 SCIP_Real* realarray1, /**< SCIP_Real array to be sorted */ 393 SCIP_Real* realarray2, /**< SCIP_Real array to be permuted in the same way */ 394 SCIP_Real* realarray3, /**< SCIP_Real array to be permuted in the same way */ 395 int* intarray, /**< int array to be permuted in the same way */ 396 int len /**< length of arrays */ 397 ); 398 399 /** sort of four joint arrays of Reals/Reals/Reals/pointers, sorted by first array in non-decreasing order */ 400 SCIP_EXPORT 401 void SCIPsortRealRealRealPtr( 402 SCIP_Real* realarray1, /**< SCIP_Real array to be sorted */ 403 SCIP_Real* realarray2, /**< SCIP_Real array to be permuted in the same way */ 404 SCIP_Real* realarray3, /**< SCIP_Real array to be permuted in the same way */ 405 void** ptrarray, /**< pointer array to be permuted in the same way */ 406 int len /**< length of arrays */ 407 ); 408 409 /** sort of five joint arrays of Reals/Reals/Reals/Bools/pointers, sorted by first array in non-decreasing order */ 410 SCIP_EXPORT 411 void SCIPsortRealRealRealBoolPtr( 412 SCIP_Real* realarray1, /**< SCIP_Real array to be sorted */ 413 SCIP_Real* realarray2, /**< SCIP_Real array to be permuted in the same way */ 414 SCIP_Real* realarray3, /**< SCIP_Real array to be permuted in the same way */ 415 SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */ 416 void** ptrarray, /**< pointer array to be permuted in the same way */ 417 int len /**< length of arrays */ 418 ); 419 420 /** sort of six joint arrays of Reals/Reals/Reals/Bools/Bools/pointers, sorted by first array in non-decreasing order */ 421 SCIP_EXPORT 422 void SCIPsortRealRealRealBoolBoolPtr( 423 SCIP_Real* realarray1, /**< SCIP_Real array to be sorted */ 424 SCIP_Real* realarray2, /**< SCIP_Real array to be permuted in the same way */ 425 SCIP_Real* realarray3, /**< SCIP_Real array to be permuted in the same way */ 426 SCIP_Bool* boolarray1, /**< SCIP_Bool array to be permuted in the same way */ 427 SCIP_Bool* boolarray2, /**< SCIP_Bool array to be permuted in the same way */ 428 void** ptrarray, /**< pointer array to be permuted in the same way */ 429 int len /**< length of arrays */ 430 ); 431 432 /** sort array of ints in non-decreasing order */ 433 SCIP_EXPORT 434 void SCIPsortInt( 435 int* intarray, /**< int array to be sorted */ 436 int len /**< length of arrays */ 437 ); 438 439 /** sort of two joint arrays of ints/ints, sorted by first array in non-decreasing order */ 440 SCIP_EXPORT 441 void SCIPsortIntInt( 442 int* intarray1, /**< int array to be sorted */ 443 int* intarray2, /**< second int array to be permuted in the same way */ 444 int len /**< length of arrays */ 445 ); 446 447 /** sort of two joint arrays of ints/pointers, sorted by first array in non-decreasing order */ 448 SCIP_EXPORT 449 void SCIPsortIntPtr( 450 int* intarray, /**< int array to be sorted */ 451 void** ptrarray, /**< pointer array to be permuted in the same way */ 452 int len /**< length of arrays */ 453 ); 454 455 /** sort of two joint arrays of ints/reals, sorted by first array in non-decreasing order */ 456 SCIP_EXPORT 457 void SCIPsortIntReal( 458 int* intarray, /**< int array to be sorted */ 459 SCIP_Real* realarray, /**< real array to be permuted in the same way */ 460 int len /**< length of arrays */ 461 ); 462 463 /** sort of three joint arrays of ints/ints/ints, sorted by first array in non-decreasing order */ 464 SCIP_EXPORT 465 void SCIPsortIntIntInt( 466 int* intarray1, /**< int array to be sorted */ 467 int* intarray2, /**< second int array to be permuted in the same way */ 468 int* intarray3, /**< third int array to be permuted in the same way */ 469 int len /**< length of arrays */ 470 ); 471 472 /** sort of three joint arrays of ints/ints/Longints, sorted by first array in non-decreasing order */ 473 SCIP_EXPORT 474 void SCIPsortIntIntLong( 475 int* intarray1, /**< int array to be sorted */ 476 int* intarray2, /**< second int array to be permuted in the same way */ 477 SCIP_Longint* longarray, /**< SCIP_Longint array to be permuted in the same way */ 478 int len /**< length of arrays */ 479 ); 480 481 /** sort of three joint arrays of ints/ints/Longints, sorted by first array in non-decreasing order */ 482 SCIP_EXPORT 483 void SCIPsortIntRealLong( 484 int* intarray, /**< int array to be sorted */ 485 SCIP_Real* realarray, /**< real array to be permuted in the same way */ 486 SCIP_Longint* longarray, /**< SCIP_Longint array to be permuted in the same way */ 487 int len /**< length of arrays */ 488 ); 489 490 /** sort of three joint arrays of ints/ints/pointers, sorted by first array in non-decreasing order */ 491 SCIP_EXPORT 492 void SCIPsortIntIntPtr( 493 int* intarray1, /**< int array to be sorted */ 494 int* intarray2, /**< second int array to be permuted in the same way */ 495 void** ptrarray, /**< pointer array to be permuted in the same way */ 496 int len /**< length of arrays */ 497 ); 498 499 /** sort of three joint arrays of ints/ints/reals, sorted by first array in non-decreasing order */ 500 SCIP_EXPORT 501 void SCIPsortIntIntReal( 502 int* intarray1, /**< int array to be sorted */ 503 int* intarray2, /**< second int array to be permuted in the same way */ 504 SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */ 505 int len /**< length of arrays */ 506 ); 507 508 /** sort of three joint arrays of ints/pointers/reals, sorted by first array in non-decreasing order */ 509 SCIP_EXPORT 510 void SCIPsortIntPtrReal( 511 int* intarray, /**< int array to be sorted */ 512 void** ptrarray, /**< pointer array to be permuted in the same way */ 513 SCIP_Real* realarray, /**< real array to be permuted in the same way */ 514 int len /**< length of arrays */ 515 ); 516 517 /** sort of four joint arrays of ints/ints/ints/pointers, sorted by first array in non-decreasing order */ 518 SCIP_EXPORT 519 void SCIPsortIntIntIntPtr( 520 int* intarray1, /**< int array to be sorted */ 521 int* intarray2, /**< int array to be permuted in the same way */ 522 int* intarray3, /**< int array to be permuted in the same way */ 523 void** ptrarray, /**< pointer array to be permuted in the same way */ 524 int len /**< length of arrays */ 525 ); 526 527 /** sort of four joint arrays of ints/ints/ints/reals, sorted by first array in non-decreasing order */ 528 SCIP_EXPORT 529 void SCIPsortIntIntIntReal( 530 int* intarray1, /**< int array to be sorted */ 531 int* intarray2, /**< int array to be permuted in the same way */ 532 int* intarray3, /**< int array to be permuted in the same way */ 533 SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */ 534 int len /**< length of arrays */ 535 ); 536 537 /** sort of four joint arrays of ints/pointers/ints/reals, sorted by first array in non-decreasing order */ 538 SCIP_EXPORT 539 void SCIPsortIntPtrIntReal( 540 int* intarray1, /**< int array to be sorted */ 541 void** ptrarray, /**< pointer array to be permuted in the same way */ 542 int* intarray2, /**< int array to be permuted in the same way */ 543 SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */ 544 int len /**< length of arrays */ 545 ); 546 547 /** sort an array of Longints in non-decreasing order */ 548 SCIP_EXPORT 549 void SCIPsortLong( 550 SCIP_Longint* longarray, /**< SCIP_Longint array to be sorted */ 551 int len /**< length of arrays */ 552 ); 553 554 /** sort of two joint arrays of Long/pointer, sorted by the first array in non-decreasing order */ 555 SCIP_EXPORT 556 void SCIPsortLongPtr( 557 SCIP_Longint* longarray, /**< SCIP_Longint array to be sorted */ 558 void** ptrarray, /**< pointer array to be permuted in the same way */ 559 int len /**< length of arrays */ 560 ); 561 562 /** sort of three arrays of Long/pointer/ints, sorted by the first array in non-decreasing order */ 563 SCIP_EXPORT 564 void SCIPsortLongPtrInt( 565 SCIP_Longint* longarray, /**< SCIP_Longint array to be sorted */ 566 void** ptrarray, /**< pointer array to be permuted in the same way */ 567 int* intarray, /**< int array to be permuted in the same way */ 568 int len /**< length of arrays */ 569 ); 570 571 /** sort of four arrays of Long/pointer/Real/Bool, sorted by the first array in non-decreasing order */ 572 SCIP_EXPORT 573 void SCIPsortLongPtrRealBool( 574 SCIP_Longint* longarray, /**< SCIP_Longint array to be sorted */ 575 void** ptrarray, /**< pointer array to be permuted in the same way */ 576 SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */ 577 SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */ 578 int len /**< length of arrays */ 579 ); 580 581 /** sort of five arrays of Long/pointer/Real/Real/Bool, sorted by the first array in non-decreasing order */ 582 SCIP_EXPORT 583 void SCIPsortLongPtrRealRealBool( 584 SCIP_Longint* longarray, /**< SCIP_Longint array to be sorted */ 585 void** ptrarray, /**< pointer array to be permuted in the same way */ 586 SCIP_Real* realarray, /**< first SCIP_Real array to be permuted in the same way */ 587 SCIP_Real* realarray2, /**< second SCIP_Real array to be permuted in the same way */ 588 SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */ 589 int len /**< length of arrays */ 590 ); 591 592 /** sort of six arrays of Long/pointer/Real/Real/int/Bool, sorted by the first array in non-decreasing order */ 593 SCIP_EXPORT 594 void SCIPsortLongPtrRealRealIntBool( 595 SCIP_Longint* longarray, /**< SCIP_Longint array to be sorted */ 596 void** ptrarray, /**< pointer array to be permuted in the same way */ 597 SCIP_Real* realarray, /**< first SCIP_Real array to be permuted in the same way */ 598 SCIP_Real* realarray2, /**< second SCIP_Real array to be permuted in the same way */ 599 int* intarray, /**< int array to be permuted in the same way */ 600 SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */ 601 int len /**< length of arrays */ 602 ); 603 604 /** sort of four joint arrays of Long/pointer/pointer/ints, sorted by first array in non-decreasing order */ 605 SCIP_EXPORT 606 void SCIPsortLongPtrPtrInt( 607 SCIP_Longint* longarray, /**< SCIP_Longint array to be sorted */ 608 void** ptrarray1, /**< first pointer array to be permuted in the same way */ 609 void** ptrarray2, /**< second pointer array to be permuted in the same way */ 610 int* intarray, /**< int array to be permuted in the same way */ 611 int len /**< length of arrays */ 612 ); 613 614 /** sort of five joint arrays of Long/pointer/pointer/ints/ints, sorted by first array in non-decreasing order */ 615 SCIP_EXPORT 616 void SCIPsortLongPtrPtrIntInt( 617 SCIP_Longint* longarray, /**< SCIP_Longint array to be sorted */ 618 void** ptrarray1, /**< first pointer array to be permuted in the same way */ 619 void** ptrarray2, /**< second pointer array to be permuted in the same way */ 620 int* intarray1, /**< first int array to be permuted in the same way */ 621 int* intarray2, /**< second int array to be permuted in the same way */ 622 int len /**< length of arrays */ 623 ); 624 625 /** sort of five joint arrays of Long/pointer/pointer/Bool/ints, sorted by first array in non-decreasing order */ 626 SCIP_EXPORT 627 void SCIPsortLongPtrPtrBoolInt( 628 SCIP_Longint* longarray, /**< SCIP_Longint array to be sorted */ 629 void** ptrarray1, /**< first pointer array to be permuted in the same way */ 630 void** ptrarray2, /**< second pointer array to be permuted in the same way */ 631 SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */ 632 int* intarray, /**< int array to be sorted */ 633 int len /**< length of arrays */ 634 ); 635 636 /** sort of five joint arrays of pointer/ints/ints/Bool/Bool, sorted by first array in non-decreasing order */ 637 SCIP_EXPORT 638 void SCIPsortPtrIntIntBoolBool( 639 void** ptrarray, /**< pointer array to be sorted */ 640 int* intarray1, /**< first int array to be permuted in the same way */ 641 int* intarray2, /**< second int array to be permuted in the same way */ 642 SCIP_Bool* boolarray1, /**< first SCIP_Bool array to be permuted in the same way */ 643 SCIP_Bool* boolarray2, /**< second SCIP_Bool array to be permuted in the same way */ 644 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 645 int len /**< length of arrays */ 646 ); 647 648 /** sort of six joint arrays of ints/pointer/ints/ints/Bool/Bool, sorted by first array in non-decreasing order */ 649 SCIP_EXPORT 650 void SCIPsortIntPtrIntIntBoolBool( 651 int* intarray1, /**< int array to be sorted */ 652 void** ptrarray, /**< pointer array to be permuted in the same way */ 653 int* intarray2, /**< second int array to be permuted in the same way */ 654 int* intarray3, /**< thrid int array to be permuted in the same way */ 655 SCIP_Bool* boolarray1, /**< first SCIP_Bool array to be permuted in the same way */ 656 SCIP_Bool* boolarray2, /**< second SCIP_Bool array to be permuted in the same way */ 657 int len /**< length of arrays */ 658 ); 659 660 /* now all downwards-sorting methods */ 661 662 /** sort an indexed element set in non-increasing order, resulting in a permutation index array */ 663 SCIP_EXPORT 664 void SCIPsortDown( 665 int* perm, /**< pointer to store the resulting permutation */ 666 SCIP_DECL_SORTINDCOMP((*indcomp)), /**< data element comparator */ 667 void* dataptr, /**< pointer to data field that is given to the external compare method */ 668 int len /**< number of elements to be sorted (valid index range) */ 669 ); 670 671 /** sort an index array in non-increasing order */ 672 SCIP_EXPORT 673 void SCIPsortDownInd( 674 int* indarray, /**< pointer to the index array to be sorted */ 675 SCIP_DECL_SORTINDCOMP((*indcomp)), /**< data element comparator */ 676 void* dataptr, /**< pointer to data field that is given to the external compare method */ 677 int len /**< length of array */ 678 ); 679 680 /** sort of an array of pointers in non-increasing order */ 681 SCIP_EXPORT 682 void SCIPsortDownPtr( 683 void** ptrarray, /**< pointer array to be sorted */ 684 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 685 int len /**< length of array */ 686 ); 687 688 /** sort of two joint arrays of pointers/pointers, sorted by first array in non-increasing order */ 689 SCIP_EXPORT 690 void SCIPsortDownPtrPtr( 691 void** ptrarray1, /**< first pointer array to be sorted */ 692 void** ptrarray2, /**< second pointer array to be permuted in the same way */ 693 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 694 int len /**< length of arrays */ 695 ); 696 697 /** sort of two joint arrays of pointers/Reals, sorted by first array in non-increasing order */ 698 SCIP_EXPORT 699 void SCIPsortDownPtrReal( 700 void** ptrarray, /**< pointer array to be sorted */ 701 SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */ 702 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 703 int len /**< length of arrays */ 704 ); 705 706 /** sort of two joint arrays of pointers/ints, sorted by first array in non-increasing order */ 707 SCIP_EXPORT 708 void SCIPsortDownPtrInt( 709 void** ptrarray, /**< pointer array to be sorted */ 710 int* intarray, /**< int array to be permuted in the same way */ 711 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 712 int len /**< length of arrays */ 713 ); 714 715 /** sort of two joint arrays of pointers/Bools, sorted by first array in non-increasing order */ 716 SCIP_EXPORT 717 void SCIPsortDownPtrBool( 718 void** ptrarray, /**< pointer array to be sorted */ 719 SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */ 720 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 721 int len /**< length of arrays */ 722 ); 723 724 /** sort of three joint arrays of pointers/ints/ints, sorted by first array in non-increasing order */ 725 SCIP_EXPORT 726 void SCIPsortDownPtrIntInt( 727 void** ptrarray, /**< pointer array to be sorted */ 728 int* intarray1, /**< first int array to be permuted in the same way */ 729 int* intarray2, /**< second int array to be permuted in the same way */ 730 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 731 int len /**< length of arrays */ 732 ); 733 734 /** sort of three joint arrays of pointers/Reals/ints, sorted by first array in non-increasing order */ 735 SCIP_EXPORT 736 void SCIPsortDownPtrRealInt( 737 void** ptrarray, /**< pointer array to be sorted */ 738 SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */ 739 int* intarray, /**< int array to be permuted in the same way */ 740 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 741 int len /**< length of arrays */ 742 ); 743 744 /** sort of three joint arrays of pointers/Reals/Bools, sorted by first array in non-increasing order */ 745 SCIP_EXPORT 746 void SCIPsortDownPtrRealBool( 747 void** ptrarray, /**< pointer array to be sorted */ 748 SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */ 749 SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */ 750 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 751 int len /**< length of arrays */ 752 ); 753 754 /** sort of three joint arrays of pointers/pointers/ints, sorted by first array in non-increasing order */ 755 SCIP_EXPORT 756 void SCIPsortDownPtrPtrInt( 757 void** ptrarray1, /**< first pointer array to be sorted */ 758 void** ptrarray2, /**< second pointer array to be permuted in the same way */ 759 int* intarray, /**< int array to be permuted in the same way */ 760 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 761 int len /**< length of arrays */ 762 ); 763 764 /** sort of three joint arrays of pointers/pointers/Reals, sorted by first array in non-increasing order */ 765 SCIP_EXPORT 766 void SCIPsortDownPtrPtrReal( 767 void** ptrarray1, /**< first pointer array to be sorted */ 768 void** ptrarray2, /**< second pointer array to be permuted in the same way */ 769 SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */ 770 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 771 int len /**< length of arrays */ 772 ); 773 774 /** sort of four joint arrays of pointers/pointers/ints/ints, sorted by first array in non-increasing order */ 775 SCIP_EXPORT 776 void SCIPsortDownPtrPtrIntInt( 777 void** ptrarray1, /**< first pointer array to be sorted */ 778 void** ptrarray2, /**< second pointer array to be permuted in the same way */ 779 int* intarray1, /**< first int array to be permuted in the same way */ 780 int* intarray2, /**< second int array to be permuted in the same way */ 781 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 782 int len /**< length of arrays */ 783 ); 784 785 /** sort of four joint arrays of pointers/Reals/ints/ints, sorted by first array in non-increasing order */ 786 SCIP_EXPORT 787 void SCIPsortDownPtrRealIntInt( 788 void** ptrarray, /**< pointer array to be sorted */ 789 SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */ 790 int* intarray1, /**< first int array to be permuted in the same way */ 791 int* intarray2, /**< second int array to be permuted in the same way */ 792 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 793 int len /**< length of arrays */ 794 ); 795 796 /** sort of four joint arrays of pointer/pointer/Reals/ints, sorted by first array in non-increasing order */ 797 SCIP_EXPORT 798 void SCIPsortDownPtrPtrRealInt( 799 void** ptrarray1, /**< first pointer array to be sorted */ 800 void** ptrarray2, /**< second pointer array to be permuted in the same way */ 801 SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */ 802 int* intarray, /**< int array to be permuted in the same way */ 803 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 804 int len /**< length of arrays */ 805 ); 806 807 /** sort of four joint arrays of pointer/pointer/Reals/bools, sorted by first array in non-increasing order */ 808 SCIP_EXPORT 809 void SCIPsortDownPtrPtrRealBool( 810 void** ptrarray1, /**< first pointer array to be sorted */ 811 void** ptrarray2, /**< second pointer array to be permuted in the same way */ 812 SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */ 813 SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */ 814 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 815 int len /**< length of arrays */ 816 ); 817 818 /** sort of four joint arrays of pointer/pointer/Longs/ints, sorted by first array in non-increasing order */ 819 SCIP_EXPORT 820 void SCIPsortDownPtrPtrLongInt( 821 void** ptrarray1, /**< first pointer array to be sorted */ 822 void** ptrarray2, /**< second pointer array to be permuted in the same way */ 823 SCIP_Longint* longarray, /**< SCIP_Longint array to be permuted in the same way */ 824 int* intarray, /**< int array to be permuted in the same way */ 825 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 826 int len /**< length of arrays */ 827 ); 828 829 /** sort of five joint arrays of pointer/pointer/Longs/ints/ints, sorted by first array in non-increasing order */ 830 SCIP_EXPORT 831 void SCIPsortDownPtrPtrLongIntInt( 832 void** ptrarray1, /**< first pointer array to be sorted */ 833 void** ptrarray2, /**< second pointer array to be permuted in the same way */ 834 SCIP_Longint* longarray, /**< SCIP_Longint array to be permuted in the same way */ 835 int* intarray1, /**< first int array to be permuted in the same way */ 836 int* intarray2, /**< second int array to be permuted in the same way */ 837 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 838 int len /**< length of arrays */ 839 ); 840 841 /** sort an array of Reals in non-increasing order */ 842 SCIP_EXPORT 843 void SCIPsortDownReal( 844 SCIP_Real* realarray, /**< SCIP_Real array to be sorted */ 845 int len /**< length of arrays */ 846 ); 847 848 /** sort of two joint arrays of Reals/pointers, sorted by first array in non-increasing order */ 849 SCIP_EXPORT 850 void SCIPsortDownRealPtr( 851 SCIP_Real* realarray, /**< SCIP_Real array to be sorted */ 852 void** ptrarray, /**< pointer array to be permuted in the same way */ 853 int len /**< length of arrays */ 854 ); 855 856 /** sort of two joint arrays of Reals/ints, sorted by first array in non-increasing order */ 857 SCIP_EXPORT 858 void SCIPsortDownRealInt( 859 SCIP_Real* realarray, /**< SCIP_Real array to be sorted */ 860 int* intarray, /**< pointer array to be permuted in the same way */ 861 int len /**< length of arrays */ 862 ); 863 864 /** sort of three joint arrays of Reals/ints/ints, sorted by first array in non-increasing order */ 865 SCIP_EXPORT 866 void SCIPsortDownRealIntInt( 867 SCIP_Real* realarray, /**< SCIP_Real array to be sorted */ 868 int* intarray1, /**< int array to be sorted */ 869 int* intarray2, /**< int array to be sorted */ 870 int len /**< length of arrays */ 871 ); 872 873 /** sort of three joint arrays of Reals/Bools/Pointer, sorted by first array in non-increasing order */ 874 SCIP_EXPORT 875 void SCIPsortDownRealBoolPtr( 876 SCIP_Real* realarray, /**< SCIP_Real array to be sorted */ 877 SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */ 878 void** ptrarray, /**< pointer array to be permuted in the same way */ 879 int len /**< length of arrays */ 880 ); 881 882 /** sort of three joint arrays of Reals/ints/Longs, sorted by first array in non-increasing order */ 883 SCIP_EXPORT 884 void SCIPsortDownRealIntLong( 885 SCIP_Real* realarray, /**< SCIP_Real array to be sorted */ 886 int* intarray, /**< int array to be permuted in the same way */ 887 SCIP_Longint* longarray, /**< SCIP_Longint array to be permuted in the same way */ 888 int len /**< length of arrays */ 889 ); 890 891 /** sort of three joint arrays of Reals/ints/Pointer, sorted by first array in non-increasing order */ 892 SCIP_EXPORT 893 void SCIPsortDownRealIntPtr( 894 SCIP_Real* realarray, /**< SCIP_Real array to be sorted */ 895 int* intarray, /**< int array to be permuted in the same way */ 896 void** ptrarray, /**< pointer array to be permuted in the same way */ 897 int len /**< length of arrays */ 898 ); 899 900 /** sort of three joint arrays of Reals/Reals/ints, sorted by first array in non-increasing order */ 901 SCIP_EXPORT 902 void SCIPsortDownRealRealInt( 903 SCIP_Real* realarray1, /**< first SCIP_Real array to be sorted */ 904 SCIP_Real* realarray2, /**< second SCIP_Real array to be permuted in the same way */ 905 int* intarray, /**< integer array to be permuted in the same way */ 906 int len /**< length of arrays */ 907 ); 908 909 /** sort of three joint arrays of Reals/Reals/Pointer, sorted by first array in non-increasing order */ 910 SCIP_EXPORT 911 void SCIPsortDownRealRealPtr( 912 SCIP_Real* realarray1, /**< first SCIP_Real array to be sorted */ 913 SCIP_Real* realarray2, /**< second SCIP_Real array to be permuted in the same way */ 914 void** ptrarray, /**< pointer array to be permuted in the same way */ 915 int len /**< length of arrays */ 916 ); 917 918 /** sort of three joint arrays of Reals/Reals/Pointer, sorted by first array in non-increasing order */ 919 SCIP_EXPORT 920 void SCIPsortDownRealRealPtrPtr( 921 SCIP_Real* realarray1, /**< first SCIP_Real array to be sorted */ 922 SCIP_Real* realarray2, /**< second SCIP_Real array to be permuted in the same way */ 923 void** ptrarray1, /**< pointer array to be permuted in the same way */ 924 void** ptrarray2, /**< pointer array to be permuted in the same way */ 925 int len /**< length of arrays */ 926 ); 927 928 /** sort of four joint arrays of Reals/pointers/pointers/ints, sorted by first array in non-increasing order */ 929 SCIP_EXPORT 930 void SCIPsortDownRealPtrPtrInt( 931 SCIP_Real* realarray, /**< SCIP_Real array to be sorted */ 932 void** ptrarray1, /**< pointer array to be permuted in the same way */ 933 void** ptrarray2, /**< pointer array to be permuted in the same way */ 934 int* intarray, /**< int array to be sorted */ 935 int len /**< length of arrays */ 936 ); 937 938 /** sort of five joint arrays of Reals/pointers/pointers/ints/ints, sorted by first array in non-increasing order */ 939 SCIP_EXPORT 940 void SCIPsortDownRealPtrPtrIntInt( 941 SCIP_Real* realarray, /**< SCIP_Real array to be sorted */ 942 void** ptrarray1, /**< pointer array to be permuted in the same way */ 943 void** ptrarray2, /**< pointer array to be permuted in the same way */ 944 int* intarray1, /**< int array to be sorted */ 945 int* intarray2, /**< int array to be sorted */ 946 int len /**< length of arrays */ 947 ); 948 949 /** sort of four joint arrays of Reals/Longs/Reals/ints, sorted by first array in non-increasing order */ 950 SCIP_EXPORT 951 void SCIPsortDownRealLongRealInt( 952 SCIP_Real* realarray1, /**< SCIP_Real array to be sorted */ 953 SCIP_Longint* longarray, /**< SCIP_Longint array to be permuted in the same way */ 954 SCIP_Real* realarray3, /**< SCIP_Real array to be permuted in the same way */ 955 int* intarray, /**< int array to be permuted in the same way */ 956 int len /**< length of arrays */ 957 ); 958 959 /** sort of four joint arrays of Reals/Reals/ints/ints, sorted by first array in non-increasing order */ 960 SCIP_EXPORT 961 void SCIPsortDownRealRealIntInt( 962 SCIP_Real* realarray1, /**< SCIP_Real array to be sorted */ 963 SCIP_Real* realarray2, /**< SCIP_Real array to be permuted in the same way */ 964 int* intarray1, /**< int array to be permuted in the same way */ 965 int* intarray2, /**< int array to be permuted in the same way */ 966 int len /**< length of arrays */ 967 ); 968 969 970 /** sort of four joint arrays of Reals/Reals/Reals/ints, sorted by first array in non-increasing order */ 971 SCIP_EXPORT 972 void SCIPsortDownRealRealRealInt( 973 SCIP_Real* realarray1, /**< SCIP_Real array to be sorted */ 974 SCIP_Real* realarray2, /**< SCIP_Real array to be permuted in the same way */ 975 SCIP_Real* realarray3, /**< SCIP_Real array to be permuted in the same way */ 976 int* intarray, /**< int array to be permuted in the same way */ 977 int len /**< length of arrays */ 978 ); 979 980 /** sort of four joint arrays of Reals/Reals/Reals/pointers, sorted by first array in non-increasing order */ 981 SCIP_EXPORT 982 void SCIPsortDownRealRealRealPtr( 983 SCIP_Real* realarray1, /**< SCIP_Real array to be sorted */ 984 SCIP_Real* realarray2, /**< SCIP_Real array to be permuted in the same way */ 985 SCIP_Real* realarray3, /**< SCIP_Real array to be permuted in the same way */ 986 void** ptrarray, /**< pointer array to be permuted in the same way */ 987 int len /**< length of arrays */ 988 ); 989 990 /** sort of three joint arrays of Reals/pointers, sorted by first array in non-decreasing order */ 991 SCIP_EXPORT 992 void SCIPsortDownRealPtrPtr( 993 SCIP_Real* realarray, /**< SCIP_Real array to be sorted */ 994 void** ptrarray1, /**< pointer array to be permuted in the same way */ 995 void** ptrarray2, /**< pointer array to be permuted in the same way */ 996 int len /**< length of arrays */ 997 ); 998 999 /** sort of five joint arrays of Reals/Reals/Reals/Bools/pointers, sorted by first array in non-increasing order */ 1000 SCIP_EXPORT 1001 void SCIPsortDownRealRealRealBoolPtr( 1002 SCIP_Real* realarray1, /**< SCIP_Real array to be sorted */ 1003 SCIP_Real* realarray2, /**< SCIP_Real array to be permuted in the same way */ 1004 SCIP_Real* realarray3, /**< SCIP_Real array to be permuted in the same way */ 1005 SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */ 1006 void** ptrarray, /**< pointer array to be permuted in the same way */ 1007 int len /**< length of arrays */ 1008 ); 1009 1010 /** sort of six joint arrays of Reals/Reals/Reals/Bools/Bools/pointers, sorted by first array in non-increasing order */ 1011 SCIP_EXPORT 1012 void SCIPsortDownRealRealRealBoolBoolPtr( 1013 SCIP_Real* realarray1, /**< SCIP_Real array to be sorted */ 1014 SCIP_Real* realarray2, /**< SCIP_Real array to be permuted in the same way */ 1015 SCIP_Real* realarray3, /**< SCIP_Real array to be permuted in the same way */ 1016 SCIP_Bool* boolarray1, /**< SCIP_Bool array to be permuted in the same way */ 1017 SCIP_Bool* boolarray2, /**< SCIP_Bool array to be permuted in the same way */ 1018 void** ptrarray, /**< pointer array to be permuted in the same way */ 1019 int len /**< length of arrays */ 1020 ); 1021 1022 /** sort array of ints in non-increasing order */ 1023 SCIP_EXPORT 1024 void SCIPsortDownInt( 1025 int* intarray, /**< int array to be sorted */ 1026 int len /**< length of arrays */ 1027 ); 1028 1029 /** sort of two joint arrays of ints/ints, sorted by first array in non-increasing order */ 1030 SCIP_EXPORT 1031 void SCIPsortDownIntInt( 1032 int* intarray1, /**< int array to be sorted */ 1033 int* intarray2, /**< second int array to be permuted in the same way */ 1034 int len /**< length of arrays */ 1035 ); 1036 1037 /** sort of two joint arrays of ints/pointers, sorted by first array in non-increasing order */ 1038 SCIP_EXPORT 1039 void SCIPsortDownIntPtr( 1040 int* intarray, /**< int array to be sorted */ 1041 void** ptrarray, /**< pointer array to be permuted in the same way */ 1042 int len /**< length of arrays */ 1043 ); 1044 1045 /** sort of two joint arrays of ints/reals, sorted by first array in non-increasing order */ 1046 SCIP_EXPORT 1047 void SCIPsortDownIntReal( 1048 int* intarray, /**< int array to be sorted */ 1049 SCIP_Real* realarray, /**< real array to be permuted in the same way */ 1050 int len /**< length of arrays */ 1051 ); 1052 1053 /** sort of three joint arrays of ints/ints/ints, sorted by first array in non-increasing order */ 1054 SCIP_EXPORT 1055 void SCIPsortDownIntIntInt( 1056 int* intarray1, /**< int array to be sorted */ 1057 int* intarray2, /**< second int array to be permuted in the same way */ 1058 int* intarray3, /**< third int array to be permuted in the same way */ 1059 int len /**< length of arrays */ 1060 ); 1061 1062 /** sort of three joint arrays of ints/ints/SCIP_Longint, sorted by first array in non-increasing order */ 1063 SCIP_EXPORT 1064 void SCIPsortDownIntIntLong( 1065 int* intarray1, /**< int array to be sorted */ 1066 int* intarray2, /**< second int array to be permuted in the same way */ 1067 SCIP_Longint* longarray, /**< SCIP_Longint array to be permuted in the same way */ 1068 int len /**< length of arrays */ 1069 ); 1070 1071 /** sort of three joint arrays of ints/ints/pointers, sorted by first array in non-increasing order */ 1072 SCIP_EXPORT 1073 void SCIPsortDownIntIntPtr( 1074 int* intarray1, /**< int array to be sorted */ 1075 int* intarray2, /**< second int array to be permuted in the same way */ 1076 void** ptrarray, /**< pointer array to be permuted in the same way */ 1077 int len /**< length of arrays */ 1078 ); 1079 1080 /** sort of three joint arrays of ints/ints/Reals, sorted by first array in non-increasing order */ 1081 SCIP_EXPORT 1082 void SCIPsortDownIntIntReal( 1083 int* intarray1, /**< int array to be sorted */ 1084 int* intarray2, /**< second int array to be permuted in the same way */ 1085 SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */ 1086 int len /**< length of arrays */ 1087 ); 1088 1089 /** sort of four joint arrays of ints/ints/ints/pointers, sorted by first array in non-increasing order */ 1090 SCIP_EXPORT 1091 void SCIPsortDownIntIntIntPtr( 1092 int* intarray1, /**< int array to be sorted */ 1093 int* intarray2, /**< int array to be permuted in the same way */ 1094 int* intarray3, /**< int array to be permuted in the same way */ 1095 void** ptrarray, /**< pointer array to be permuted in the same way */ 1096 int len /**< length of arrays */ 1097 ); 1098 1099 /** sort of four joint arrays of ints/ints/ints/reals, sorted by first array in non-increasing order */ 1100 SCIP_EXPORT 1101 void SCIPsortDownIntIntIntReal( 1102 int* intarray1, /**< int array to be sorted */ 1103 int* intarray2, /**< int array to be permuted in the same way */ 1104 int* intarray3, /**< int array to be permuted in the same way */ 1105 SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */ 1106 int len /**< length of arrays */ 1107 ); 1108 1109 /** sort of four joint arrays of ints/pointers/ints/Reals, sorted by first array in non-increasing order */ 1110 SCIP_EXPORT 1111 void SCIPsortDownIntPtrIntReal( 1112 int* intarray1, /**< int array to be sorted */ 1113 void** ptrarray, /**< pointer array to be permuted in the same way */ 1114 int* intarray2, /**< int array to be permuted in the same way */ 1115 SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */ 1116 int len /**< length of arrays */ 1117 ); 1118 1119 /** sort an array of Longints in non-increasing order */ 1120 SCIP_EXPORT 1121 void SCIPsortDownLong( 1122 SCIP_Longint* longarray, /**< SCIP_Longint array to be sorted */ 1123 int len /**< length of arrays */ 1124 ); 1125 1126 /** sort of two joint arrays of Long/pointer, sorted by the first array in non-increasing order */ 1127 SCIP_EXPORT 1128 void SCIPsortDownLongPtr( 1129 SCIP_Longint* longarray, /**< SCIP_Longint array to be sorted */ 1130 void** ptrarray, /**< pointer array to be permuted in the same way */ 1131 int len /**< length of arrays */ 1132 ); 1133 1134 /** sort of three arrays of Long/pointer/ints, sorted by the first array in non-increasing order */ 1135 SCIP_EXPORT 1136 void SCIPsortDownLongPtrInt( 1137 SCIP_Longint* longarray, /**< SCIP_Longint array to be sorted */ 1138 void** ptrarray, /**< pointer array to be permuted in the same way */ 1139 int* intarray, /**< int array to be permuted in the same way */ 1140 int len /**< length of arrays */ 1141 ); 1142 1143 /** sort of four arrays of Long/pointer/Real/Bool, sorted by the first array in non-increasing order */ 1144 SCIP_EXPORT 1145 void SCIPsortDownLongPtrRealBool( 1146 SCIP_Longint* longarray, /**< SCIP_Longint array to be sorted */ 1147 void** ptrarray, /**< pointer array to be permuted in the same way */ 1148 SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */ 1149 SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */ 1150 int len /**< length of arrays */ 1151 ); 1152 1153 /** sort of five arrays of Long/pointer/Real/Real/Bool, sorted by the first array in non-increasing order */ 1154 SCIP_EXPORT 1155 void SCIPsortDownLongPtrRealRealBool( 1156 SCIP_Longint* longarray, /**< SCIP_Longint array to be sorted */ 1157 void** ptrarray, /**< pointer array to be permuted in the same way */ 1158 SCIP_Real* realarray, /**< first SCIP_Real array to be permuted in the same way */ 1159 SCIP_Real* realarray2, /**< second SCIP_Real array to be permuted in the same way */ 1160 SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */ 1161 int len /**< length of arrays */ 1162 ); 1163 1164 /** sort of six arrays of Long/pointer/Real/Real/int/Bool, sorted by the first array in non-increasing order */ 1165 SCIP_EXPORT 1166 void SCIPsortDownLongPtrRealRealIntBool( 1167 SCIP_Longint* longarray, /**< SCIP_Longint array to be sorted */ 1168 void** ptrarray, /**< pointer array to be permuted in the same way */ 1169 SCIP_Real* realarray, /**< first SCIP_Real array to be permuted in the same way */ 1170 SCIP_Real* realarray2, /**< second SCIP_Real array to be permuted in the same way */ 1171 int* intarray, /**< int array to be permuted in the same way */ 1172 SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */ 1173 int len /**< length of arrays */ 1174 ); 1175 1176 /** sort of four joint arrays of Long/pointer/pointer/ints, sorted by first array in non-increasing order */ 1177 SCIP_EXPORT 1178 void SCIPsortDownLongPtrPtrInt( 1179 SCIP_Longint* longarray, /**< SCIP_Longint array to be sorted */ 1180 void** ptrarray1, /**< first pointer array to be permuted in the same way */ 1181 void** ptrarray2, /**< second pointer array to be permuted in the same way */ 1182 int* intarray, /**< int array to be permuted in the same way */ 1183 int len /**< length of arrays */ 1184 ); 1185 1186 /** sort of five joint arrays of Long/pointer/pointer/ints/ints, sorted by first array in non-increasing order */ 1187 SCIP_EXPORT 1188 void SCIPsortDownLongPtrPtrIntInt( 1189 SCIP_Longint* longarray, /**< SCIP_Longint array to be sorted */ 1190 void** ptrarray1, /**< first pointer array to be permuted in the same way */ 1191 void** ptrarray2, /**< second pointer array to be permuted in the same way */ 1192 int* intarray1, /**< first int array to be permuted in the same way */ 1193 int* intarray2, /**< second int array to be permuted in the same way */ 1194 int len /**< length of arrays */ 1195 ); 1196 1197 /** sort of five joint arrays of Long/pointer/pointer/Bool/ints, sorted by first array in non-increasing order */ 1198 SCIP_EXPORT 1199 void SCIPsortDownLongPtrPtrBoolInt( 1200 SCIP_Longint* longarray, /**< SCIP_Longint array to be sorted */ 1201 void** ptrarray1, /**< first pointer array to be permuted in the same way */ 1202 void** ptrarray2, /**< second pointer array to be permuted in the same way */ 1203 SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */ 1204 int* intarray, /**< int array to be sorted */ 1205 int len /**< length of arrays */ 1206 ); 1207 1208 /** sort of five joint arrays of pointer/ints/ints/Bool/Bool, sorted by first array in non-increasing order */ 1209 SCIP_EXPORT 1210 void SCIPsortDownPtrIntIntBoolBool( 1211 void** ptrarray, /**< pointer array to be sorted */ 1212 int* intarray1, /**< first int array to be permuted in the same way */ 1213 int* intarray2, /**< second int array to be permuted in the same way */ 1214 SCIP_Bool* boolarray1, /**< first SCIP_Bool array to be permuted in the same way */ 1215 SCIP_Bool* boolarray2, /**< second SCIP_Bool array to be permuted in the same way */ 1216 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 1217 int len /**< length of arrays */ 1218 ); 1219 1220 /** sort of six joint arrays of ints/pointer/ints/ints/Bool/Bool, sorted by first array in non-increasing order */ 1221 SCIP_EXPORT 1222 void SCIPsortDownIntPtrIntIntBoolBool( 1223 int* intarray1, /**< int array to be sorted */ 1224 void** ptrarray, /**< pointer array to be permuted in the same way */ 1225 int* intarray2, /**< second int array to be permuted in the same way */ 1226 int* intarray3, /**< thrid int array to be permuted in the same way */ 1227 SCIP_Bool* boolarray1, /**< first SCIP_Bool array to be permuted in the same way */ 1228 SCIP_Bool* boolarray2, /**< second SCIP_Bool array to be permuted in the same way */ 1229 int len /**< length of arrays */ 1230 ); 1231 1232 /* 1233 * Sorted vectors 1234 */ 1235 1236 /* upwards insertion */ 1237 1238 /** insert a new element into an index array in non-decreasing order */ 1239 SCIP_EXPORT 1240 void SCIPsortedvecInsertInd( 1241 int* indarray, /**< pointer to the index array where an element is to be inserted */ 1242 SCIP_DECL_SORTINDCOMP((*indcomp)), /**< data element comparator */ 1243 void* dataptr, /**< pointer to data field that is given to the external compare method */ 1244 int keyval, /**< key value of new element */ 1245 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1246 int* pos /**< pointer to store the insertion position, or NULL */ 1247 ); 1248 1249 /** insert a new element into an array of pointers in non-decreasing order */ 1250 SCIP_EXPORT 1251 void SCIPsortedvecInsertPtr( 1252 void** ptrarray, /**< pointer to the pointer array where an element is to be inserted */ 1253 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 1254 void* keyval, /**< key value of new element */ 1255 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1256 int* pos /**< pointer to store the insertion position, or NULL */ 1257 ); 1258 1259 /** insert a new element into two joint arrays of pointers/pointers sorted by first array in non-decreasing order */ 1260 SCIP_EXPORT 1261 void SCIPsortedvecInsertPtrPtr( 1262 void** ptrarray1, /**< first pointer array where an element is to be inserted */ 1263 void** ptrarray2, /**< second pointer array where an element is to be inserted */ 1264 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 1265 void* keyval, /**< key value of new element */ 1266 void* field1val, /**< additional value of new element */ 1267 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1268 int* pos /**< pointer to store the insertion position, or NULL */ 1269 ); 1270 1271 /** insert a new element into two joint arrays of pointers/Reals, sorted by first array in non-decreasing order */ 1272 SCIP_EXPORT 1273 void SCIPsortedvecInsertPtrReal( 1274 void** ptrarray, /**< pointer array where an element is to be inserted */ 1275 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */ 1276 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 1277 void* keyval, /**< key value of new element */ 1278 SCIP_Real field1val, /**< additional value of new element */ 1279 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1280 int* pos /**< pointer to store the insertion position, or NULL */ 1281 ); 1282 1283 /** insert a new element into two joint arrays of pointers/ints, sorted by first array in non-decreasing order */ 1284 SCIP_EXPORT 1285 void SCIPsortedvecInsertPtrInt( 1286 void** ptrarray, /**< pointer array where an element is to be inserted */ 1287 int* intarray, /**< int array where an element is to be inserted */ 1288 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 1289 void* keyval, /**< key value of new element */ 1290 int field1val, /**< additional value of new element */ 1291 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1292 int* pos /**< pointer to store the insertion position, or NULL */ 1293 ); 1294 1295 /** insert a new element into two joint arrays of pointers/Bools, sorted by first array in non-decreasing order */ 1296 SCIP_EXPORT 1297 void SCIPsortedvecInsertPtrBool( 1298 void** ptrarray, /**< pointer array where an element is to be inserted */ 1299 SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be inserted */ 1300 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 1301 void* keyval, /**< key value of new element */ 1302 SCIP_Bool field1val, /**< additional value of new element */ 1303 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1304 int* pos /**< pointer to store the insertion position, or NULL */ 1305 ); 1306 1307 /** insert a new element into three joint arrays of pointers/ints/ints, sorted by first array in non-decreasing order */ 1308 SCIP_EXPORT 1309 void SCIPsortedvecInsertPtrIntInt( 1310 void** ptrarray, /**< pointer array where an element is to be inserted */ 1311 int* intarray1, /**< first int array where an element is to be inserted */ 1312 int* intarray2, /**< second int array where an element is to be inserted */ 1313 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 1314 void* keyval, /**< key value of new element */ 1315 int field1val, /**< additional value of new element */ 1316 int field2val, /**< additional value of new element */ 1317 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1318 int* pos /**< pointer to store the insertion position, or NULL */ 1319 ); 1320 1321 /** insert a new element into three joint arrays of pointers/Reals/ints, sorted by first array in non-decreasing order */ 1322 SCIP_EXPORT 1323 void SCIPsortedvecInsertPtrRealInt( 1324 void** ptrarray, /**< pointer array where an element is to be inserted */ 1325 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */ 1326 int* intarray, /**< int array where an element is to be inserted */ 1327 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 1328 void* keyval, /**< key value of new element */ 1329 SCIP_Real field1val, /**< additional value of new element */ 1330 int field2val, /**< additional value of new element */ 1331 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1332 int* pos /**< pointer to store the insertion position, or NULL */ 1333 ); 1334 1335 /** insert a new element into four joint arrays of pointers/Reals/Reals/ints, sorted by first array in non-decreasing order */ 1336 SCIP_EXPORT 1337 void SCIPsortedvecInsertPtrRealRealInt( 1338 void** ptrarray, /**< pointer array where an element is to be inserted */ 1339 SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be inserted */ 1340 SCIP_Real* realarray2, /**< SCIP_Real array where an element is to be inserted */ 1341 int* intarray, /**< int array where an element is to be inserted */ 1342 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 1343 void* keyval, /**< key value of new element */ 1344 SCIP_Real field1val, /**< additional value of new element */ 1345 SCIP_Real field2val, /**< additional value of new element */ 1346 int field3val, /**< additional value of new element */ 1347 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1348 int* pos /**< pointer to store the insertion position, or NULL */ 1349 ); 1350 1351 /** insert a new element into four joint arrays of pointers/Reals/Reals/SCIP_Bools/SCIP_Bools, sorted by first array in non-decreasing order */ 1352 SCIP_EXPORT 1353 void SCIPsortedvecInsertPtrRealRealBoolBool( 1354 void** ptrarray, /**< pointer array where an element is to be inserted */ 1355 SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be inserted */ 1356 SCIP_Real* realarray2, /**< SCIP_Real array where an element is to be inserted */ 1357 SCIP_Bool* boolarray1, /**< SCIP_Bool array where an element is to be inserted */ 1358 SCIP_Bool* boolarray2, /**< SCIP_Bool array where an element is to be inserted */ 1359 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 1360 void* keyval, /**< key value of new element */ 1361 SCIP_Real field1val, /**< additional value of new element */ 1362 SCIP_Real field2val, /**< additional value of new element */ 1363 SCIP_Bool field3val, /**< additional value of new element */ 1364 SCIP_Bool field4val, /**< additional value of new element */ 1365 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1366 int* pos /**< pointer to store the insertion position, or NULL */ 1367 ); 1368 1369 /** insert a new element into four joint arrays of pointers/Reals/Reals/ints/SCIP_Bools, sorted by first array in non-decreasing order */ 1370 SCIP_EXPORT 1371 void SCIPsortedvecInsertPtrRealRealIntBool( 1372 void** ptrarray, /**< pointer array where an element is to be inserted */ 1373 SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be inserted */ 1374 SCIP_Real* realarray2, /**< SCIP_Real array where an element is to be inserted */ 1375 int* intarray, /**< int array where an element is to be inserted */ 1376 SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be inserted */ 1377 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 1378 void* keyval, /**< key value of new element */ 1379 SCIP_Real field1val, /**< additional value of new element */ 1380 SCIP_Real field2val, /**< additional value of new element */ 1381 int field3val, /**< additional value of new element */ 1382 SCIP_Bool field4val, /**< additional value of new element */ 1383 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1384 int* pos /**< pointer to store the insertion position, or NULL */ 1385 ); 1386 1387 /** insert a new element into three joint arrays of pointers/Reals/Bools, sorted by first array in non-decreasing order */ 1388 SCIP_EXPORT 1389 void SCIPsortedvecInsertPtrRealBool( 1390 void** ptrarray, /**< pointer array where an element is to be inserted */ 1391 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */ 1392 SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be inserted */ 1393 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 1394 void* keyval, /**< key value of new element */ 1395 SCIP_Real field1val, /**< additional value of new element */ 1396 SCIP_Bool field2val, /**< additional value of new element */ 1397 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1398 int* pos /**< pointer to store the insertion position, or NULL */ 1399 ); 1400 1401 /** insert a new element into three joint arrays of pointers/pointers/Ints, sorted by first array in non-decreasing order */ 1402 SCIP_EXPORT 1403 void SCIPsortedvecInsertPtrPtrInt( 1404 void** ptrarray1, /**< first pointer array where an element is to be inserted */ 1405 void** ptrarray2, /**< second pointer array where an element is to be inserted */ 1406 int* intarray, /**< int array where an element is to be inserted */ 1407 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 1408 void* keyval, /**< key value of new element */ 1409 void* field1val, /**< additional value of new element */ 1410 int field2val, /**< additional value of new element */ 1411 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1412 int* pos /**< pointer to store the insertion position, or NULL */ 1413 ); 1414 1415 /** insert a new element into three joint arrays of pointers/pointers/Reals, sorted by first array in non-decreasing order */ 1416 SCIP_EXPORT 1417 void SCIPsortedvecInsertPtrPtrReal( 1418 void** ptrarray1, /**< first pointer array where an element is to be inserted */ 1419 void** ptrarray2, /**< second pointer array where an element is to be inserted */ 1420 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */ 1421 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 1422 void* keyval, /**< key value of new element */ 1423 void* field1val, /**< additional value of new element */ 1424 SCIP_Real field2val, /**< additional value of new element */ 1425 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1426 int* pos /**< pointer to store the insertion position, or NULL */ 1427 ); 1428 1429 /** insert a new element into four joint arrays of pointers/pointers/ints/ints, sorted by first array in non-decreasing order */ 1430 SCIP_EXPORT 1431 void SCIPsortedvecInsertPtrPtrIntInt( 1432 void** ptrarray1, /**< first pointer array where an element is to be inserted */ 1433 void** ptrarray2, /**< second pointer array where an element is to be inserted */ 1434 int* intarray1, /**< first int array where an element is to be inserted */ 1435 int* intarray2, /**< second int array where an element is to be inserted */ 1436 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 1437 void* keyval, /**< key value of new element */ 1438 void* field1val, /**< additional value of new element */ 1439 int field2val, /**< additional value of new element */ 1440 int field3val, /**< additional value of new element */ 1441 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1442 int* pos /**< pointer to store the insertion position, or NULL */ 1443 ); 1444 1445 /** insert a new element into four joint arrays of pointers/Reals/ints/ints, sorted by first array in non-decreasing order */ 1446 SCIP_EXPORT 1447 void SCIPsortedvecInsertPtrRealIntInt( 1448 void** ptrarray, /**< pointer array where an element is to be inserted */ 1449 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */ 1450 int* intarray1, /**< first int array where an element is to be inserted */ 1451 int* intarray2, /**< second int array where an element is to be inserted */ 1452 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 1453 void* keyval, /**< key value of new element */ 1454 SCIP_Real field1val, /**< additional value of new element */ 1455 int field2val, /**< additional value of new element */ 1456 int field3val, /**< additional value of new element */ 1457 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1458 int* pos /**< pointer to store the insertion position, or NULL */ 1459 ); 1460 1461 /** insert a new element into four joint arrays of pointer/pointer/Reals/ints, sorted by first array in non-decreasing order */ 1462 SCIP_EXPORT 1463 void SCIPsortedvecInsertPtrPtrRealInt( 1464 void** ptrarray1, /**< first pointer array where an element is to be inserted */ 1465 void** ptrarray2, /**< second pointer array where an element is to be inserted */ 1466 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */ 1467 int* intarray, /**< int array where an element is to be inserted */ 1468 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 1469 void* keyval, /**< key value of new element */ 1470 void* field1val, /**< additional value of new element */ 1471 SCIP_Real field2val, /**< additional value of new element */ 1472 int field3val, /**< additional value of new element */ 1473 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1474 int* pos /**< pointer to store the insertion position, or NULL */ 1475 ); 1476 1477 /** insert a new element into four joint arrays of pointer/pointer/Reals/bools, sorted by first array in non-decreasing order */ 1478 SCIP_EXPORT 1479 void SCIPsortedvecInsertPtrPtrRealBool( 1480 void** ptrarray1, /**< first pointer array where an element is to be inserted */ 1481 void** ptrarray2, /**< second pointer array where an element is to be inserted */ 1482 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */ 1483 SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be inserted */ 1484 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 1485 void* keyval, /**< key value of new element */ 1486 void* field1val, /**< additional value of new element */ 1487 SCIP_Real field2val, /**< additional value of new element */ 1488 SCIP_Bool field3val, /**< additional value of new element */ 1489 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1490 int* pos /**< pointer to store the insertion position, or NULL */ 1491 ); 1492 1493 /** insert a new element into four joint arrays of pointer/pointer/Longs/ints, sorted by first array in non-decreasing order */ 1494 SCIP_EXPORT 1495 void SCIPsortedvecInsertPtrPtrLongInt( 1496 void** ptrarray1, /**< first pointer array where an element is to be inserted */ 1497 void** ptrarray2, /**< second pointer array where an element is to be inserted */ 1498 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */ 1499 int* intarray, /**< int array to be sorted */ 1500 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 1501 void* keyval, /**< key value of new element */ 1502 void* field1val, /**< additional value of new element */ 1503 SCIP_Longint field2val, /**< additional value of new element */ 1504 int field3val, /**< additional value of new element */ 1505 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1506 int* pos /**< pointer to store the insertion position, or NULL */ 1507 ); 1508 1509 /** insert a new element into five joint arrays of pointer/pointer/Longs/ints/ints, sorted by first array in non-decreasing order */ 1510 SCIP_EXPORT 1511 void SCIPsortedvecInsertPtrPtrLongIntInt( 1512 void** ptrarray1, /**< first pointer array where an element is to be inserted */ 1513 void** ptrarray2, /**< second pointer array where an element is to be inserted */ 1514 SCIP_Longint* longarray, /**< SCIP_Longint where an element is to be inserted */ 1515 int* intarray1, /**< first int array where an element is to be inserted */ 1516 int* intarray2, /**< second int array where an element is to be inserted */ 1517 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 1518 void* keyval, /**< key value of new element */ 1519 void* field1val, /**< additional value of new element */ 1520 SCIP_Longint field2val, /**< additional value of new element */ 1521 int field3val, /**< additional value of new element */ 1522 int field4val, /**< additional value of new element */ 1523 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1524 int* pos /**< pointer to store the insertion position, or NULL */ 1525 ); 1526 1527 /** insert a new element into three joint arrays of Reals/ints/ints, sorted by first array in non-decreasing order */ 1528 SCIP_EXPORT 1529 void SCIPsortedvecInsertRealIntInt( 1530 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */ 1531 int* intarray1, /**< first int array where an element is to be inserted */ 1532 int* intarray2, /**< second int array where an element is to be inserted */ 1533 SCIP_Real keyval, /**< key value of new element */ 1534 int field2val, /**< additional value of new element */ 1535 int field3val, /**< additional value of new element */ 1536 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1537 int* pos /**< pointer to store the insertion position, or NULL */ 1538 ); 1539 1540 /** insert a new element into three joint arrays of Reals/Bools/pointers, sorted by first array in non-decreasing order */ 1541 SCIP_EXPORT 1542 void SCIPsortedvecInsertRealBoolPtr( 1543 SCIP_Real* realarray, /**< SCIP_Real array to be sorted */ 1544 SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */ 1545 void** ptrarray, /**< pointer array to be permuted in the same way */ 1546 SCIP_Real keyval, /**< key value of new element */ 1547 SCIP_Bool field1val, /**< additional value of new element */ 1548 void* field2val, /**< additional value of new element */ 1549 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1550 int* pos /**< pointer to store the insertion position, or NULL */ 1551 ); 1552 1553 /** insert a new element into two joint arrays of Reals/pointers, sorted by first array in non-decreasing order */ 1554 SCIP_EXPORT 1555 void SCIPsortedvecInsertRealPtr( 1556 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */ 1557 void** ptrarray, /**< pointer array where an element is to be inserted */ 1558 SCIP_Real keyval, /**< key value of new element */ 1559 void* field1val, /**< additional value of new element */ 1560 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1561 int* pos /**< pointer to store the insertion position, or NULL */ 1562 ); 1563 1564 /** insert a new element into an arrays of Reals, sorted in non-decreasing order */ 1565 SCIP_EXPORT 1566 void SCIPsortedvecInsertReal( 1567 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */ 1568 SCIP_Real keyval, /**< key value of new element */ 1569 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1570 int* pos /**< pointer to store the insertion position, or NULL */ 1571 ); 1572 1573 /** insert a new element into two joint arrays of Reals/ints, sorted by first array in non-decreasing order */ 1574 SCIP_EXPORT 1575 void SCIPsortedvecInsertRealInt( 1576 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */ 1577 int* intarray, /**< int array where an element is to be inserted */ 1578 SCIP_Real keyval, /**< key value of new element */ 1579 int field1val, /**< additional value of new element */ 1580 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1581 int* pos /**< pointer to store the insertion position, or NULL */ 1582 ); 1583 1584 /** insert a new element into three joint arrays of Reals/ints/Longs, sorted by first array in non-decreasing order */ 1585 SCIP_EXPORT 1586 void SCIPsortedvecInsertRealIntLong( 1587 SCIP_Real* realarray, /**< SCIP_Real array to be sorted */ 1588 int* intarray, /**< int array to be permuted in the same way */ 1589 SCIP_Longint* longarray, /**< SCIP_Longint array to be permuted in the same way */ 1590 SCIP_Real keyval, /**< key value of new element */ 1591 int field1val, /**< additional value of new element */ 1592 SCIP_Longint field2val, /**< additional value of new element */ 1593 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1594 int* pos /**< pointer to store the insertion position, or NULL */ 1595 ); 1596 1597 /** insert a new element into three joint arrays of Reals/ints/Pointer, sorted by first array in non-decreasing order */ 1598 SCIP_EXPORT 1599 void SCIPsortedvecInsertRealIntPtr( 1600 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */ 1601 int* intarray, /**< int array where an element is to be inserted */ 1602 void** ptrarray, /**< pointer array where an element is to be inserted */ 1603 SCIP_Real keyval, /**< key value of new element */ 1604 int field1val, /**< additional value of new element */ 1605 void* field2val, /**< additional value of new element */ 1606 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1607 int* pos /**< pointer to store the insertion position, or NULL */ 1608 ); 1609 1610 /** insert a new element into three joint arrays of Reals/Reals/Pointer, sorted by first array in non-decreasing order */ 1611 SCIP_EXPORT 1612 void SCIPsortedvecInsertRealRealPtr( 1613 SCIP_Real* realarray1, /**< first SCIP_Real array where an element is to be inserted */ 1614 SCIP_Real* realarray2, /**< second SCIP_Real array where an element is to be inserted */ 1615 void** ptrarray, /**< pointer array where an element is to be inserted */ 1616 SCIP_Real keyval, /**< key value of new element */ 1617 SCIP_Real field1val, /**< additional value of new element */ 1618 void* field2val, /**< additional value of new element */ 1619 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1620 int* pos /**< pointer to store the insertion position, or NULL */ 1621 ); 1622 1623 /** insert a new element into four joint arrays of Reals/pointers/pointers/ints, sorted by first array in non-decreasing order */ 1624 SCIP_EXPORT 1625 void SCIPsortedvecInsertRealPtrPtrInt( 1626 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */ 1627 void** ptrarray1, /**< pointer array where an element is to be inserted */ 1628 void** ptrarray2, /**< pointer array where an element is to be inserted */ 1629 int* intarray, /**< int array where an element is to be inserted */ 1630 SCIP_Real keyval, /**< key value of new element */ 1631 void* field1val, /**< additional value of new element */ 1632 void* field2val, /**< additional value of new element */ 1633 int intval, /**< additional value of new element */ 1634 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1635 int* pos /**< pointer to store the insertion position, or NULL */ 1636 ); 1637 1638 /** insert a new element into five joint arrays of Reals/pointers/pointers/ints/ints, sorted by first array in non-decreasing order */ 1639 SCIP_EXPORT 1640 void SCIPsortedvecInsertRealPtrPtrIntInt( 1641 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */ 1642 void** ptrarray1, /**< pointer array where an element is to be inserted */ 1643 void** ptrarray2, /**< pointer array where an element is to be inserted */ 1644 int* intarray1, /**< int array where an element is to be inserted */ 1645 int* intarray2, /**< int array where an element is to be inserted */ 1646 SCIP_Real keyval, /**< key value of new element */ 1647 void* field1val, /**< additional value of new element */ 1648 void* field2val, /**< additional value of new element */ 1649 int intval1, /**< additional value of new element */ 1650 int intval2, /**< additional value of new element */ 1651 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1652 int* pos /**< pointer to store the insertion position, or NULL */ 1653 ); 1654 1655 /** insert a new element into four joint arrays of Reals/Long/Reals/ints, sorted by first array in non-decreasing order */ 1656 SCIP_EXPORT 1657 void SCIPsortedvecInsertRealLongRealInt( 1658 SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be inserted */ 1659 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */ 1660 SCIP_Real* realarray3, /**< SCIP_Real array where an element is to be inserted */ 1661 int* intarray, /**< int array where an element is to be inserted */ 1662 SCIP_Real keyval, /**< key value of new element */ 1663 SCIP_Longint field1val, /**< additional value of new element */ 1664 SCIP_Real field2val, /**< additional value of new element */ 1665 int field3val, /**< additional value of new element */ 1666 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1667 int* pos /**< pointer to store the insertion position, or NULL */ 1668 ); 1669 1670 /** insert a new element into four joint arrays of Reals/Reals/ints/ints, sorted by first array in non-decreasing order */ 1671 SCIP_EXPORT 1672 void SCIPsortedvecInsertRealRealIntInt( 1673 SCIP_Real* realarray1, /**< first SCIP_Real array where an element is to be inserted */ 1674 SCIP_Real* realarray2, /**< second SCIP_Real array where an element is to be inserted */ 1675 int* intarray1, /**< first int array where an element is to be inserted */ 1676 int* intarray2, /**< second int array where an element is to be inserted */ 1677 SCIP_Real keyval, /**< key value of new element */ 1678 SCIP_Real field1val, /**< additional value of new element */ 1679 int field2val, /**< additional value of new element */ 1680 int field3val, /**< additional value of new element */ 1681 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1682 int* pos /**< pointer to store the insertion position, or NULL */ 1683 ); 1684 1685 /** insert a new element into four joint arrays of Reals/Reals/Reals/ints, sorted by first array in non-decreasing order */ 1686 SCIP_EXPORT 1687 void SCIPsortedvecInsertRealRealRealInt( 1688 SCIP_Real* realarray1, /**< first SCIP_Real array where an element is to be inserted */ 1689 SCIP_Real* realarray2, /**< second SCIP_Real array where an element is to be inserted */ 1690 SCIP_Real* realarray3, /**< third SCIP_Real array where an element is to be inserted */ 1691 int* intarray, /**< int array where an element is to be inserted */ 1692 SCIP_Real keyval, /**< key value of new element */ 1693 SCIP_Real field1val, /**< additional value of new element */ 1694 SCIP_Real field2val, /**< additional value of new element */ 1695 int field3val, /**< additional value of new element */ 1696 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1697 int* pos /**< pointer to store the insertion position, or NULL */ 1698 ); 1699 1700 /** insert a new element into four joint arrays of Reals/Reals/Reals/pointers, sorted by first array in non-decreasing order */ 1701 SCIP_EXPORT 1702 void SCIPsortedvecInsertRealRealRealPtr( 1703 SCIP_Real* realarray1, /**< first SCIP_Real array where an element is to be inserted */ 1704 SCIP_Real* realarray2, /**< second SCIP_Real array where an element is to be inserted */ 1705 SCIP_Real* realarray3, /**< third SCIP_Real array where an element is to be inserted */ 1706 void** ptrarray, /**< pointer array where an element is to be inserted */ 1707 SCIP_Real keyval, /**< key value of new element */ 1708 SCIP_Real field1val, /**< additional value of new element */ 1709 SCIP_Real field2val, /**< additional value of new element */ 1710 void* field3val, /**< additional value of new element */ 1711 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1712 int* pos /**< pointer to store the insertion position, or NULL */ 1713 ); 1714 1715 /** insert a new element into five joint arrays of Reals/Reals/Reals/Bools/pointers, sorted by first array in non-decreasing order */ 1716 SCIP_EXPORT 1717 void SCIPsortedvecInsertRealRealRealBoolPtr( 1718 SCIP_Real* realarray1, /**< first SCIP_Real array where an element is to be inserted */ 1719 SCIP_Real* realarray2, /**< second SCIP_Real array where an element is to be inserted */ 1720 SCIP_Real* realarray3, /**< third SCIP_Real array where an element is to be inserted */ 1721 SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be inserted */ 1722 void** ptrarray, /**< pointer array where an element is to be inserted */ 1723 SCIP_Real keyval, /**< key value of new element */ 1724 SCIP_Real field1val, /**< additional value of new element */ 1725 SCIP_Real field2val, /**< additional value of new element */ 1726 SCIP_Bool field3val, /**< additional value of new element */ 1727 void* field4val, /**< additional value of new element */ 1728 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1729 int* pos /**< pointer to store the insertion position, or NULL */ 1730 ); 1731 1732 /** insert a new element into six joint arrays of Reals/Reals/Reals/Bools/Bools/pointers, sorted by first array in non-decreasing order */ 1733 SCIP_EXPORT 1734 void SCIPsortedvecInsertRealRealRealBoolBoolPtr( 1735 SCIP_Real* realarray1, /**< first SCIP_Real array where an element is to be inserted */ 1736 SCIP_Real* realarray2, /**< second SCIP_Real array where an element is to be inserted */ 1737 SCIP_Real* realarray3, /**< third SCIP_Real array where an element is to be inserted */ 1738 SCIP_Bool* boolarray1, /**< SCIP_Bool array where an element is to be inserted */ 1739 SCIP_Bool* boolarray2, /**< SCIP_Bool array where an element is to be inserted */ 1740 void** ptrarray, /**< pointer array where an element is to be inserted */ 1741 SCIP_Real keyval, /**< key value of new element */ 1742 SCIP_Real field1val, /**< additional value of new element */ 1743 SCIP_Real field2val, /**< additional value of new element */ 1744 SCIP_Bool field3val, /**< additional value of new element */ 1745 SCIP_Bool field4val, /**< additional value of new element */ 1746 void* field5val, /**< additional value of new element */ 1747 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1748 int* pos /**< pointer to store the insertion position, or NULL */ 1749 ); 1750 1751 /** insert a new element into an array of ints in non-decreasing order */ 1752 SCIP_EXPORT 1753 void SCIPsortedvecInsertInt( 1754 int* intarray, /**< int array where an element is to be inserted */ 1755 int keyval, /**< key value of new element */ 1756 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1757 int* pos /**< pointer to store the insertion position, or NULL */ 1758 ); 1759 1760 /** insert a new element into two joint arrays of ints/ints, sorted by first array in non-decreasing order */ 1761 SCIP_EXPORT 1762 void SCIPsortedvecInsertIntInt( 1763 int* intarray1, /**< int array where an element is to be inserted */ 1764 int* intarray2, /**< second int array where an element is to be inserted */ 1765 int keyval, /**< key value of new element */ 1766 int field1val, /**< additional value of new element */ 1767 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1768 int* pos /**< pointer to store the insertion position, or NULL */ 1769 ); 1770 1771 /** insert a new element into two joint arrays of ints/pointers, sorted by first array in non-decreasing order */ 1772 SCIP_EXPORT 1773 void SCIPsortedvecInsertIntPtr( 1774 int* intarray, /**< int array where an element is to be inserted */ 1775 void** ptrarray, /**< pointer array where an element is to be inserted */ 1776 int keyval, /**< key value of new element */ 1777 void* field1val, /**< additional value of new element */ 1778 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1779 int* pos /**< pointer to store the insertion position, or NULL */ 1780 ); 1781 1782 /** insert a new element into two joint arrays of ints/reals, sorted by first array in non-decreasing order */ 1783 SCIP_EXPORT 1784 void SCIPsortedvecInsertIntReal( 1785 int* intarray, /**< int array where an element is to be inserted */ 1786 SCIP_Real* realarray, /**< real array where an element is to be inserted */ 1787 int keyval, /**< key value of new element */ 1788 SCIP_Real field1val, /**< additional value of new element */ 1789 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1790 int* pos /**< pointer to store the insertion position, or NULL */ 1791 ); 1792 1793 /** insert a new element into three joint arrays of ints/ints/ints, sorted by first array in non-decreasing order */ 1794 SCIP_EXPORT 1795 void SCIPsortedvecInsertIntIntInt( 1796 int* intarray1, /**< int array where an element is to be inserted */ 1797 int* intarray2, /**< second int array where an element is to be inserted */ 1798 int* intarray3, /**< third int array where an element is to be inserted */ 1799 int keyval, /**< key value of new element */ 1800 int field1val, /**< additional value of new element */ 1801 int field2val, /**< additional value of new element */ 1802 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1803 int* pos /**< pointer to store the insertion position, or NULL */ 1804 ); 1805 1806 /** insert a new element into three joint arrays of ints/ints/SCIP_Longint, sorted by first array in non-decreasing order */ 1807 SCIP_EXPORT 1808 void SCIPsortedvecInsertIntIntLong( 1809 int* intarray1, /**< int array where an element is to be inserted */ 1810 int* intarray2, /**< second int array where an element is to be inserted */ 1811 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */ 1812 int keyval, /**< key value of new element */ 1813 int field1val, /**< additional value of new element */ 1814 SCIP_Longint field2val, /**< additional value of new element */ 1815 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1816 int* pos /**< pointer to store the insertion position, or NULL */ 1817 ); 1818 1819 /** insert a new element into three joint arrays of ints/SCIP_Real/SCIP_Longint, sorted by first array in non-decreasing order */ 1820 SCIP_EXPORT 1821 void SCIPsortedvecInsertIntRealLong( 1822 int* intarray, /**< int array where an element is to be inserted */ 1823 SCIP_Real* realarray, /**< SCIP_Real where an element is to be inserted */ 1824 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */ 1825 int keyval, /**< key value of new element */ 1826 SCIP_Real field1val, /**< additional value of new element */ 1827 SCIP_Longint field2val, /**< additional value of new element */ 1828 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1829 int* pos /**< pointer to store the insertion position, or NULL */ 1830 ); 1831 1832 /** insert a new element into three joint arrays of ints/ints/pointers, sorted by first array in non-decreasing order */ 1833 SCIP_EXPORT 1834 void SCIPsortedvecInsertIntIntPtr( 1835 int* intarray1, /**< first int array where an element is to be inserted */ 1836 int* intarray2, /**< second int array where an element is to be inserted */ 1837 void** ptrarray, /**< pointer array where an element is to be inserted */ 1838 int keyval, /**< key value of new element */ 1839 int field1val, /**< additional value of new element */ 1840 void* field2val, /**< additional value of new element */ 1841 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1842 int* pos /**< pointer to store the insertion position, or NULL */ 1843 ); 1844 1845 /** insert a new element into three joint arrays of ints/ints/Reals, sorted by first array in non-decreasing order */ 1846 SCIP_EXPORT 1847 void SCIPsortedvecInsertIntIntReal( 1848 int* intarray1, /**< first int array where an element is to be inserted */ 1849 int* intarray2, /**< second int array where an element is to be inserted */ 1850 SCIP_Real* realarray, /**< real array where an element is to be inserted */ 1851 int keyval, /**< key value of new element */ 1852 int field1val, /**< additional value of new element */ 1853 SCIP_Real field2val, /**< additional value of new element */ 1854 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1855 int* pos /**< pointer to store the insertion position, or NULL */ 1856 ); 1857 1858 /** insert a new element into three joint arrays of ints/pointers/Reals, sorted by first array in non-decreasing order */ 1859 SCIP_EXPORT 1860 void SCIPsortedvecInsertIntPtrReal( 1861 int* intarray, /**< int array where an element is to be inserted */ 1862 void** ptrarray, /**< pointer array where an element is to be inserted */ 1863 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */ 1864 int keyval, /**< key value of new element */ 1865 void* field1val, /**< additional value of new element */ 1866 SCIP_Real field2val, /**< additional value of new element */ 1867 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1868 int* pos /**< pointer to store the insertion position, or NULL */ 1869 ); 1870 1871 /** insert a new element into four joint arrays of ints/ints/ints/pointers, sorted by first array in non-decreasing order */ 1872 SCIP_EXPORT 1873 void SCIPsortedvecInsertIntIntIntPtr( 1874 int* intarray1, /**< first int array where an element is to be inserted */ 1875 int* intarray2, /**< second int array where an element is to be inserted */ 1876 int* intarray3, /**< second int array where an element is to be inserted */ 1877 void** ptrarray, /**< pointer array where an element is to be inserted */ 1878 int keyval, /**< key value of new element */ 1879 int field1val, /**< additional value of new element */ 1880 int field2val, /**< additional value of new element */ 1881 void* field3val, /**< additional value of new element */ 1882 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1883 int* pos /**< pointer to store the insertion position, or NULL */ 1884 ); 1885 1886 /** insert a new element into four joint arrays of ints/ints/ints/reals, sorted by first array in non-decreasing order */ 1887 SCIP_EXPORT 1888 void SCIPsortedvecInsertIntIntIntReal( 1889 int* intarray1, /**< first int array where an element is to be inserted */ 1890 int* intarray2, /**< second int array where an element is to be inserted */ 1891 int* intarray3, /**< second int array where an element is to be inserted */ 1892 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */ 1893 int keyval, /**< key value of new element */ 1894 int field1val, /**< additional value of new element */ 1895 int field2val, /**< additional value of new element */ 1896 SCIP_Real field3val, /**< additional value of new element */ 1897 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1898 int* pos /**< pointer to store the insertion position, or NULL */ 1899 ); 1900 1901 /** insert a new element into four joint arrays of ints/pointers/ints/reals, sorted by first array in non-decreasing order */ 1902 SCIP_EXPORT 1903 void SCIPsortedvecInsertIntPtrIntReal( 1904 int* intarray1, /**< first int array where an element is to be inserted */ 1905 void** ptrarray, /**< pointer array where an element is to be inserted */ 1906 int* intarray2, /**< second int array where an element is to be inserted */ 1907 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */ 1908 int keyval, /**< key value of new element */ 1909 void* field1val, /**< additional value of new element */ 1910 int field2val, /**< additional value of new element */ 1911 SCIP_Real field3val, /**< additional value of new element */ 1912 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1913 int* pos /**< pointer to store the insertion position, or NULL */ 1914 ); 1915 1916 /** insert a new element into an array of Longints, sorted in non-decreasing order */ 1917 SCIP_EXPORT 1918 void SCIPsortedvecInsertLong( 1919 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */ 1920 SCIP_Longint keyval, /**< key value of new element */ 1921 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1922 int* pos /**< pointer to store the insertion position, or NULL */ 1923 ); 1924 1925 /** insert a new element into two joint arrays of Long/pointer, sorted by the first array in non-decreasing order */ 1926 SCIP_EXPORT 1927 void SCIPsortedvecInsertLongPtr( 1928 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */ 1929 void** ptrarray, /**< pointer array where an element is to be inserted */ 1930 SCIP_Longint keyval, /**< key value of new element */ 1931 void* field1val, /**< additional value of new element */ 1932 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1933 int* pos /**< pointer to store the insertion position, or NULL */ 1934 ); 1935 1936 /** insert a new element into three joint arrays of Long/pointer/ints, sorted by the first array in non-decreasing order */ 1937 SCIP_EXPORT 1938 void SCIPsortedvecInsertLongPtrInt( 1939 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */ 1940 void** ptrarray, /**< pointer array where an element is to be inserted */ 1941 int* intarray, /**< int array where an element is to be inserted */ 1942 SCIP_Longint keyval, /**< key value of new element */ 1943 void* field1val, /**< additional value of new element */ 1944 int field2val, /**< additional value of new element */ 1945 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1946 int* pos /**< pointer to store the insertion position, or NULL */ 1947 ); 1948 1949 /** insert a new element into four joint arrays of Long/pointer/Real/Bool, sorted by the first array in non-decreasing order */ 1950 SCIP_EXPORT 1951 void SCIPsortedvecInsertLongPtrRealBool( 1952 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */ 1953 void** ptrarray, /**< pointer array where an element is to be inserted */ 1954 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */ 1955 SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be inserted */ 1956 SCIP_Longint keyval, /**< key value of new element */ 1957 void* field1val, /**< additional value of new element */ 1958 SCIP_Real field2val, /**< additional value of new element */ 1959 SCIP_Bool field3val, /**< additional value of new element */ 1960 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1961 int* pos /**< pointer to store the insertion position, or NULL */ 1962 ); 1963 1964 /** insert a new element into five joint arrays of Long/pointer/Real/Real/Bool, sorted by the first array in non-decreasing order */ 1965 SCIP_EXPORT 1966 void SCIPsortedvecInsertLongPtrRealRealBool( 1967 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */ 1968 void** ptrarray, /**< pointer array where an element is to be inserted */ 1969 SCIP_Real* realarray, /**< first SCIP_Real array where an element is to be inserted */ 1970 SCIP_Real* realarray2, /**< second SCIP_Real array where an element is to be inserted */ 1971 SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be inserted */ 1972 SCIP_Longint keyval, /**< key value of new element */ 1973 void* field1val, /**< additional value of new element */ 1974 SCIP_Real field2val, /**< additional value of new element */ 1975 SCIP_Real field3val, /**< additional value of new element */ 1976 SCIP_Bool field4val, /**< additional value of new element */ 1977 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1978 int* pos /**< pointer to store the insertion position, or NULL */ 1979 ); 1980 1981 /** insert a new element into six joint arrays of Long/pointer/Real/Real/int/Bool, sorted by the first array in non-decreasing order */ 1982 SCIP_EXPORT 1983 void SCIPsortedvecInsertLongPtrRealRealIntBool( 1984 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */ 1985 void** ptrarray, /**< pointer array where an element is to be inserted */ 1986 SCIP_Real* realarray, /**< first SCIP_Real array where an element is to be inserted */ 1987 SCIP_Real* realarray2, /**< second SCIP_Real array where an element is to be inserted */ 1988 int* intarray, /**< int array where an element is to be inserted */ 1989 SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be inserted */ 1990 SCIP_Longint keyval, /**< key value of new element */ 1991 void* field1val, /**< additional value of new element */ 1992 SCIP_Real field2val, /**< additional value of new element */ 1993 SCIP_Real field3val, /**< additional value of new element */ 1994 int field4val, /**< additional value of new element */ 1995 SCIP_Bool field5val, /**< additional value of new element */ 1996 int* len, /**< pointer to length of arrays (will be increased by 1) */ 1997 int* pos /**< pointer to store the insertion position, or NULL */ 1998 ); 1999 2000 /** insert a new element into four joint arrays of Long/pointer/pointer/ints, sorted by first array in non-decreasing order */ 2001 SCIP_EXPORT 2002 void SCIPsortedvecInsertLongPtrPtrInt( 2003 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */ 2004 void** ptrarray1, /**< first pointer array where an element is to be inserted */ 2005 void** ptrarray2, /**< second pointer array where an element is to be inserted */ 2006 int* intarray, /**< int array where an element is to be inserted */ 2007 SCIP_Longint keyval, /**< key value of new element */ 2008 void* field1val, /**< additional value of new element */ 2009 void* field2val, /**< additional value of new element */ 2010 int field3val, /**< additional value of new element */ 2011 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2012 int* pos /**< pointer to store the insertion position, or NULL */ 2013 ); 2014 2015 /** insert a new element into five joint arrays of Long/pointer/pointer/ints/ints, sorted by first array in non-decreasing order */ 2016 SCIP_EXPORT 2017 void SCIPsortedvecInsertLongPtrPtrIntInt( 2018 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */ 2019 void** ptrarray1, /**< first pointer array where an element is to be inserted */ 2020 void** ptrarray2, /**< second pointer array where an element is to be inserted */ 2021 int* intarray1, /**< first int array where an element is to be inserted */ 2022 int* intarray2, /**< second int array where an element is to be inserted */ 2023 SCIP_Longint keyval, /**< key value of new element */ 2024 void* field1val, /**< additional value of new element */ 2025 void* field2val, /**< additional value of new element */ 2026 int field3val, /**< additional value of new element */ 2027 int field4val, /**< additional value of new element */ 2028 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2029 int* pos /**< pointer to store the insertion position, or NULL */ 2030 ); 2031 2032 /** insert a new element into five joint arrays of Long/pointer/pointer/Bool/ints, sorted by first array in non-decreasing order */ 2033 SCIP_EXPORT 2034 void SCIPsortedvecInsertLongPtrPtrBoolInt( 2035 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */ 2036 void** ptrarray1, /**< first pointer array where an element is to be inserted */ 2037 void** ptrarray2, /**< second pointer array where an element is to be inserted */ 2038 SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be inserted */ 2039 int* intarray, /**< int array to be sorted */ 2040 SCIP_Longint keyval, /**< key value of new element */ 2041 void* field1val, /**< additional value of new element */ 2042 void* field2val, /**< additional value of new element */ 2043 SCIP_Bool field3val, /**< additional value of new element */ 2044 int field4val, /**< additional value of new element */ 2045 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2046 int* pos /**< pointer to store the insertion position, or NULL */ 2047 ); 2048 2049 /** insert a new element into five joint arrays of pointer/ints/ints/Bool/Bool, sorted by first array in non-decreasing order */ 2050 SCIP_EXPORT 2051 void SCIPsortedvecInsertPtrIntIntBoolBool( 2052 void** ptrarray, /**< pointer array to be sorted */ 2053 int* intarray1, /**< first int array to be permuted in the same way */ 2054 int* intarray2, /**< second int array to be permuted in the same way */ 2055 SCIP_Bool* boolarray1, /**< first SCIP_Bool array to be permuted in the same way */ 2056 SCIP_Bool* boolarray2, /**< second SCIP_Bool array to be permuted in the same way */ 2057 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 2058 void* keyval, /**< key value of new element */ 2059 int field1val, /**< additional value of new element */ 2060 int field2val, /**< additional value of new element */ 2061 SCIP_Bool field3val, /**< additional value of new element */ 2062 SCIP_Bool field4val, /**< additional value of new element */ 2063 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2064 int* pos /**< pointer to store the insertion position, or NULL */ 2065 ); 2066 2067 /** insert a new element into six joint arrays of ints/pointer/ints/ints/Bool/Bool, sorted by first array in non-decreasing order */ 2068 SCIP_EXPORT 2069 void SCIPsortedvecInsertIntPtrIntIntBoolBool( 2070 int* intarray1, /**< int array to be sorted */ 2071 void** ptrarray, /**< pointer array to be permuted in the same way */ 2072 int* intarray2, /**< second int array to be permuted in the same way */ 2073 int* intarray3, /**< thrid int array to be permuted in the same way */ 2074 SCIP_Bool* boolarray1, /**< first SCIP_Bool array to be permuted in the same way */ 2075 SCIP_Bool* boolarray2, /**< second SCIP_Bool array to be permuted in the same way */ 2076 int keyval, /**< key value of new element */ 2077 void* field1val, /**< additional value of new element */ 2078 int field2val, /**< additional value of new element */ 2079 int field3val, /**< additional value of new element */ 2080 SCIP_Bool field4val, /**< additional value of new element */ 2081 SCIP_Bool field5val, /**< additional value of new element */ 2082 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2083 int* pos /**< pointer to store the insertion position, or NULL */ 2084 ); 2085 2086 2087 /* downwards insertion */ 2088 2089 /** insert a new element into an index array in non-increasing order */ 2090 SCIP_EXPORT 2091 void SCIPsortedvecInsertDownInd( 2092 int* indarray, /**< pointer to the index array where an element is to be inserted */ 2093 SCIP_DECL_SORTINDCOMP((*indcomp)), /**< data element comparator */ 2094 void* dataptr, /**< pointer to data field that is given to the external compare method */ 2095 int keyval, /**< key value of new element */ 2096 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2097 int* pos /**< pointer to store the insertion position, or NULL */ 2098 ); 2099 2100 /** insert a new element into an array of pointers in non-increasing order */ 2101 SCIP_EXPORT 2102 void SCIPsortedvecInsertDownPtr( 2103 void** ptrarray, /**< pointer array where an element is to be inserted */ 2104 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 2105 void* keyval, /**< key value of new element */ 2106 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2107 int* pos /**< pointer to store the insertion position, or NULL */ 2108 ); 2109 2110 /** insert a new element into two joint arrays of pointers/pointers, sorted by first array in non-increasing order */ 2111 SCIP_EXPORT 2112 void SCIPsortedvecInsertDownPtrPtr( 2113 void** ptrarray1, /**< first pointer array where an element is to be inserted */ 2114 void** ptrarray2, /**< second pointer array where an element is to be inserted */ 2115 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 2116 void* keyval, /**< key value of new element */ 2117 void* field1val, /**< additional value of new element */ 2118 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2119 int* pos /**< pointer to store the insertion position, or NULL */ 2120 ); 2121 2122 /** insert a new element into two joint arrays of pointers/Reals, sorted by first array in non-increasing order */ 2123 SCIP_EXPORT 2124 void SCIPsortedvecInsertDownPtrReal( 2125 void** ptrarray, /**< pointer array where an element is to be inserted */ 2126 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */ 2127 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 2128 void* keyval, /**< key value of new element */ 2129 SCIP_Real field1val, /**< additional value of new element */ 2130 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2131 int* pos /**< pointer to store the insertion position, or NULL */ 2132 ); 2133 2134 /** insert a new element into two joint arrays of pointers/ints, sorted by first array in non-increasing order */ 2135 SCIP_EXPORT 2136 void SCIPsortedvecInsertDownPtrInt( 2137 void** ptrarray, /**< pointer array where an element is to be inserted */ 2138 int* intarray, /**< int array where an element is to be inserted */ 2139 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 2140 void* keyval, /**< key value of new element */ 2141 int field1val, /**< additional value of new element */ 2142 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2143 int* pos /**< pointer to store the insertion position, or NULL */ 2144 ); 2145 2146 /** insert a new element into two joint arrays of pointers/Bools, sorted by first array in non-increasing order */ 2147 SCIP_EXPORT 2148 void SCIPsortedvecInsertDownPtrBool( 2149 void** ptrarray, /**< pointer array where an element is to be inserted */ 2150 SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be inserted */ 2151 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 2152 void* keyval, /**< key value of new element */ 2153 SCIP_Bool field1val, /**< additional value of new element */ 2154 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2155 int* pos /**< pointer to store the insertion position, or NULL */ 2156 ); 2157 2158 /** insert a new element into three joint arrays of pointers/ints/ints, sorted by first array in non-increasing order */ 2159 SCIP_EXPORT 2160 void SCIPsortedvecInsertDownPtrIntInt( 2161 void** ptrarray, /**< pointer array where an element is to be inserted */ 2162 int* intarray1, /**< first int array where an element is to be inserted */ 2163 int* intarray2, /**< second int array where an element is to be inserted */ 2164 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 2165 void* keyval, /**< key value of new element */ 2166 int field1val, /**< additional value of new element */ 2167 int field2val, /**< additional value of new element */ 2168 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2169 int* pos /**< pointer to store the insertion position, or NULL */ 2170 ); 2171 2172 /** insert a new element into three joint arrays of pointers/Reals/ints, sorted by first array in non-increasing order */ 2173 SCIP_EXPORT 2174 void SCIPsortedvecInsertDownPtrRealInt( 2175 void** ptrarray, /**< pointer array where an element is to be inserted */ 2176 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */ 2177 int* intarray, /**< int array where an element is to be inserted */ 2178 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 2179 void* keyval, /**< key value of new element */ 2180 SCIP_Real field1val, /**< additional value of new element */ 2181 int field2val, /**< additional value of new element */ 2182 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2183 int* pos /**< pointer to store the insertion position, or NULL */ 2184 ); 2185 2186 /** insert a new element into three joint arrays of pointers/Reals/Bools, sorted by first array in non-increasing order */ 2187 SCIP_EXPORT 2188 void SCIPsortedvecInsertDownPtrRealBool( 2189 void** ptrarray, /**< pointer array where an element is to be inserted */ 2190 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */ 2191 SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be inserted */ 2192 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 2193 void* keyval, /**< key value of new element */ 2194 SCIP_Real field1val, /**< additional value of new element */ 2195 SCIP_Bool field2val, /**< additional value of new element */ 2196 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2197 int* pos /**< pointer to store the insertion position, or NULL */ 2198 ); 2199 2200 /** insert a new element into three joint arrays of pointers/pointers/Ints, sorted by first array in non-increasing order */ 2201 SCIP_EXPORT 2202 void SCIPsortedvecInsertDownPtrPtrInt( 2203 void** ptrarray1, /**< first pointer array where an element is to be inserted */ 2204 void** ptrarray2, /**< second pointer array where an element is to be inserted */ 2205 int* intarray, /**< int array where an element is to be inserted */ 2206 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 2207 void* keyval, /**< key value of new element */ 2208 void* field1val, /**< additional value of new element */ 2209 int field2val, /**< additional value of new element */ 2210 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2211 int* pos /**< pointer to store the insertion position, or NULL */ 2212 ); 2213 2214 /** insert a new element into three joint arrays of pointers/pointers/Reals, sorted by first array in non-increasing order */ 2215 SCIP_EXPORT 2216 void SCIPsortedvecInsertDownPtrPtrReal( 2217 void** ptrarray1, /**< first pointer array where an element is to be inserted */ 2218 void** ptrarray2, /**< second pointer array where an element is to be inserted */ 2219 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */ 2220 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 2221 void* keyval, /**< key value of new element */ 2222 void* field1val, /**< additional value of new element */ 2223 SCIP_Real field2val, /**< additional value of new element */ 2224 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2225 int* pos /**< pointer to store the insertion position, or NULL */ 2226 ); 2227 2228 /** insert a new element into four joint arrays of pointers/pointers/ints/ints, sorted by first array in non-increasing order */ 2229 SCIP_EXPORT 2230 void SCIPsortedvecInsertDownPtrPtrIntInt( 2231 void** ptrarray1, /**< first pointer array where an element is to be inserted */ 2232 void** ptrarray2, /**< second pointer array where an element is to be inserted */ 2233 int* intarray1, /**< first int array where an element is to be inserted */ 2234 int* intarray2, /**< second int array where an element is to be inserted */ 2235 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 2236 void* keyval, /**< key value of new element */ 2237 void* field1val, /**< additional value of new element */ 2238 int field2val, /**< additional value of new element */ 2239 int field3val, /**< additional value of new element */ 2240 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2241 int* pos /**< pointer to store the insertion position, or NULL */ 2242 ); 2243 2244 /** insert a new element into four joint arrays of pointers/Reals/ints/ints, sorted by first array in non-increasing order */ 2245 SCIP_EXPORT 2246 void SCIPsortedvecInsertDownPtrRealIntInt( 2247 void** ptrarray, /**< pointer array where an element is to be inserted */ 2248 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */ 2249 int* intarray1, /**< first int array where an element is to be inserted */ 2250 int* intarray2, /**< second int array where an element is to be inserted */ 2251 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 2252 void* keyval, /**< key value of new element */ 2253 SCIP_Real field1val, /**< additional value of new element */ 2254 int field2val, /**< additional value of new element */ 2255 int field3val, /**< additional value of new element */ 2256 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2257 int* pos /**< pointer to store the insertion position, or NULL */ 2258 ); 2259 2260 /** insert a new element into four joint arrays of pointer/pointer/Reals/ints, sorted by first array in non-increasing order */ 2261 SCIP_EXPORT 2262 void SCIPsortedvecInsertDownPtrPtrRealInt( 2263 void** ptrarray1, /**< first pointer array where an element is to be inserted */ 2264 void** ptrarray2, /**< second pointer array where an element is to be inserted */ 2265 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */ 2266 int* intarray, /**< int array where an element is to be inserted */ 2267 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 2268 void* keyval, /**< key value of new element */ 2269 void* field1val, /**< additional value of new element */ 2270 SCIP_Real field2val, /**< additional value of new element */ 2271 int field3val, /**< additional value of new element */ 2272 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2273 int* pos /**< pointer to store the insertion position, or NULL */ 2274 ); 2275 2276 /** insert a new element into four joint arrays of pointer/pointer/Reals/bools, sorted by first array in non-increasing order */ 2277 SCIP_EXPORT 2278 void SCIPsortedvecInsertDownPtrPtrRealBool( 2279 void** ptrarray1, /**< first pointer array where an element is to be inserted */ 2280 void** ptrarray2, /**< second pointer array where an element is to be inserted */ 2281 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */ 2282 SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be inserted */ 2283 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 2284 void* keyval, /**< key value of new element */ 2285 void* field1val, /**< additional value of new element */ 2286 SCIP_Real field2val, /**< additional value of new element */ 2287 SCIP_Bool field3val, /**< additional value of new element */ 2288 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2289 int* pos /**< pointer to store the insertion position, or NULL */ 2290 ); 2291 2292 2293 /** insert a new element into four joint arrays of pointer/pointer/Longs/ints, sorted by first array in non-increasing order */ 2294 SCIP_EXPORT 2295 void SCIPsortedvecInsertDownPtrPtrLongInt( 2296 void** ptrarray1, /**< first pointer array where an element is to be inserted */ 2297 void** ptrarray2, /**< second pointer array where an element is to be inserted */ 2298 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */ 2299 int* intarray, /**< int array where an element is to be inserted */ 2300 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 2301 void* keyval, /**< key value of new element */ 2302 void* field1val, /**< additional value of new element */ 2303 SCIP_Longint field2val, /**< additional value of new element */ 2304 int field3val, /**< additional value of new element */ 2305 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2306 int* pos /**< pointer to store the insertion position, or NULL */ 2307 ); 2308 2309 /** insert a new element into five joint arrays of pointer/pointer/Longs/ints/ints, sorted by first array in non-increasing order */ 2310 SCIP_EXPORT 2311 void SCIPsortedvecInsertDownPtrPtrLongIntInt( 2312 void** ptrarray1, /**< first pointer array where an element is to be inserted */ 2313 void** ptrarray2, /**< second pointer array where an element is to be inserted */ 2314 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */ 2315 int* intarray1, /**< first int array where an element is to be inserted */ 2316 int* intarray2, /**< second int array where an element is to be inserted */ 2317 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 2318 void* keyval, /**< key value of new element */ 2319 void* field1val, /**< additional value of new element */ 2320 SCIP_Longint field2val, /**< additional value of new element */ 2321 int field3val, /**< additional value of new element */ 2322 int field4val, /**< additional value of new element */ 2323 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2324 int* pos /**< pointer to store the insertion position, or NULL */ 2325 ); 2326 2327 /** insert a new element into an array of Reals, sorted in non-increasing order */ 2328 SCIP_EXPORT 2329 void SCIPsortedvecInsertDownReal( 2330 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */ 2331 SCIP_Real keyval, /**< key value of new element */ 2332 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2333 int* pos /**< pointer to store the insertion position, or NULL */ 2334 ); 2335 2336 /** insert a new element into three joint arrays of Reals/Bools/pointers, sorted by first array in non-increasing order */ 2337 SCIP_EXPORT 2338 void SCIPsortedvecInsertDownRealBoolPtr( 2339 SCIP_Real* realarray, /**< SCIP_Real array to be sorted */ 2340 SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */ 2341 void** ptrarray, /**< pointer array to be permuted in the same way */ 2342 SCIP_Real keyval, /**< key value of new element */ 2343 SCIP_Bool field1val, /**< additional value of new element */ 2344 void* field2val, /**< additional value of new element */ 2345 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2346 int* pos /**< pointer to store the insertion position, or NULL */ 2347 ); 2348 2349 /** insert a new element into two joint arrays of Reals/pointers, sorted by first array in non-increasing order */ 2350 SCIP_EXPORT 2351 void SCIPsortedvecInsertDownRealPtr( 2352 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */ 2353 void** ptrarray, /**< pointer array where an element is to be inserted */ 2354 SCIP_Real keyval, /**< key value of new element */ 2355 void* field1val, /**< additional value of new element */ 2356 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2357 int* pos /**< pointer to store the insertion position, or NULL */ 2358 ); 2359 2360 /** insert a new element into three joint arrays of Reals/pointers, sorted by first array in non-increasing order */ 2361 SCIP_EXPORT 2362 void SCIPsortedvecInsertDownRealPtrPtr( 2363 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */ 2364 void** ptrarray1, /**< first pointer array where an element is to be inserted */ 2365 void** ptrarray2, /**< second pointer array where an element is to be inserted */ 2366 SCIP_Real keyval, /**< key value of new element */ 2367 void* field1val, /**< additional value of new element */ 2368 void* field2val, /**< additional value of new element */ 2369 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2370 int* pos /**< pointer to store the insertion position, or NULL */ 2371 ); 2372 2373 /** insert a new element into two joint arrays of Reals/ints, sorted by first array in non-increasing order */ 2374 SCIP_EXPORT 2375 void SCIPsortedvecInsertDownRealInt( 2376 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */ 2377 int* intarray, /**< int array where an element is to be inserted */ 2378 SCIP_Real keyval, /**< key value of new element */ 2379 int field1val, /**< additional value of new element */ 2380 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2381 int* pos /**< pointer to store the insertion position, or NULL */ 2382 ); 2383 2384 /** insert a new element into three joint arrays of Reals/ints/ints, sorted by first array in non-increasing order */ 2385 SCIP_EXPORT 2386 void SCIPsortedvecInsertDownRealIntInt( 2387 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */ 2388 int* intarray1, /**< int array where an element is to be inserted */ 2389 int* intarray2, /**< int array where an element is to be inserted */ 2390 SCIP_Real keyval, /**< key value of new element */ 2391 int field1val, /**< additional value of new element */ 2392 int field2val, /**< additional value of new element */ 2393 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2394 int* pos /**< pointer to store the insertion position, or NULL */ 2395 ); 2396 2397 /** insert a new element into three joint arrays of Reals/Reals/ints, sorted by first array in non-increasing order */ 2398 SCIP_EXPORT 2399 void SCIPsortedvecInsertDownRealRealInt( 2400 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */ 2401 SCIP_Real* realarray2, /**< SCIP_Real array where an element is to be inserted */ 2402 int* intarray, /**< int array where an element is to be inserted */ 2403 SCIP_Real keyval, /**< key value of new element */ 2404 SCIP_Real field1val, /**< additional value of new element */ 2405 int field2val, /**< additional value of new element */ 2406 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2407 int* pos /**< pointer to store the insertion position, or NULL */ 2408 ); 2409 2410 /** insert a new element into three joint arrays of Reals/ints/Longs, sorted by first array in non-increasing order */ 2411 SCIP_EXPORT 2412 void SCIPsortedvecInsertDownRealIntLong( 2413 SCIP_Real* realarray, /**< SCIP_Real array to be sorted */ 2414 int* intarray, /**< int array to be permuted in the same way */ 2415 SCIP_Longint* longarray, /**< SCIP_Longint array to be permuted in the same way */ 2416 SCIP_Real keyval, /**< key value of new element */ 2417 int field1val, /**< additional value of new element */ 2418 SCIP_Longint field2val, /**< additional value of new element */ 2419 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2420 int* pos /**< pointer to store the insertion position, or NULL */ 2421 ); 2422 2423 /** insert a new element into three joint arrays of Reals/ints/Pointer, sorted by first array in non-increasing order */ 2424 SCIP_EXPORT 2425 void SCIPsortedvecInsertDownRealIntPtr( 2426 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */ 2427 int* intarray, /**< int array where an element is to be inserted */ 2428 void** ptrarray, /**< pointer array where an element is to be inserted */ 2429 SCIP_Real keyval, /**< key value of new element */ 2430 int field1val, /**< additional value of new element */ 2431 void* field2val, /**< additional value of new element */ 2432 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2433 int* pos /**< pointer to store the insertion position, or NULL */ 2434 ); 2435 2436 2437 /** insert a new element into three joint arrays of Reals/Reals/Pointer, sorted by first array in non-increasing order */ 2438 SCIP_EXPORT 2439 void SCIPsortedvecInsertDownRealRealPtr( 2440 SCIP_Real* realarray1, /**< first SCIP_Real array where an element is to be inserted */ 2441 SCIP_Real* realarray2, /**< second SCIP_Real array where an element is to be inserted */ 2442 void** ptrarray, /**< pointer array where an element is to be inserted */ 2443 SCIP_Real keyval, /**< key value of new element */ 2444 SCIP_Real field1val, /**< additional value of new element */ 2445 void* field2val, /**< additional value of new element */ 2446 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2447 int* pos /**< pointer to store the insertion position, or NULL */ 2448 ); 2449 2450 /** insert a new element into three joint arrays of Reals/Reals/Pointer/Pointer, sorted by first array in non-increasing order */ 2451 SCIP_EXPORT 2452 void SCIPsortedvecInsertDownRealRealPtrPtr( 2453 SCIP_Real* realarray1, /**< first SCIP_Real array where an element is to be inserted */ 2454 SCIP_Real* realarray2, /**< second SCIP_Real array where an element is to be inserted */ 2455 void** ptrarray1, /**< pointer array where an element is to be inserted */ 2456 void** ptrarray2, /**< pointer array where an element is to be inserted */ 2457 SCIP_Real keyval, /**< key value of new element */ 2458 SCIP_Real field1val, /**< additional value of new element */ 2459 void* field2val, /**< additional value of new element */ 2460 void* field3val, /**< additional value of new element */ 2461 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2462 int* pos /**< pointer to store the insertion position, or NULL */ 2463 ); 2464 2465 /** insert a new element into four joint arrays of Reals/pointers/pointers/ints, sorted by first array in non-increasing order */ 2466 SCIP_EXPORT 2467 void SCIPsortedvecInsertDownRealPtrPtrInt( 2468 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */ 2469 void** ptrarray1, /**< pointer array where an element is to be inserted */ 2470 void** ptrarray2, /**< pointer array where an element is to be inserted */ 2471 int* intarray, /**< int array where an element is to be inserted */ 2472 SCIP_Real keyval, /**< key value of new element */ 2473 void* field1val, /**< additional value of new element */ 2474 void* field2val, /**< additional value of new element */ 2475 int intval, /**< additional value of new element */ 2476 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2477 int* pos /**< pointer to store the insertion position, or NULL */ 2478 ); 2479 2480 /** insert a new element into five joint arrays of Reals/pointers/pointers/ints/ints, sorted by first array in non-increasing order */ 2481 SCIP_EXPORT 2482 void SCIPsortedvecInsertDownRealPtrPtrIntInt( 2483 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */ 2484 void** ptrarray1, /**< pointer array where an element is to be inserted */ 2485 void** ptrarray2, /**< pointer array where an element is to be inserted */ 2486 int* intarray1, /**< int array where an element is to be inserted */ 2487 int* intarray2, /**< int array where an element is to be inserted */ 2488 SCIP_Real keyval, /**< key value of new element */ 2489 void* field1val, /**< additional value of new element */ 2490 void* field2val, /**< additional value of new element */ 2491 int intval1, /**< additional value of new element */ 2492 int intval2, /**< additional value of new element */ 2493 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2494 int* pos /**< pointer to store the insertion position, or NULL */ 2495 ); 2496 2497 /** insert a new element into four joint arrays of Reals/Longs/Reals/ints, sorted by first array in non-increasing order */ 2498 SCIP_EXPORT 2499 void SCIPsortedvecInsertDownRealLongRealInt( 2500 SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be inserted */ 2501 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */ 2502 SCIP_Real* realarray3, /**< SCIP_Real array where an element is to be inserted */ 2503 int* intarray, /**< int array where an element is to be inserted */ 2504 SCIP_Real keyval, /**< key value of new element */ 2505 SCIP_Longint field1val, /**< additional value of new element */ 2506 SCIP_Real field2val, /**< additional value of new element */ 2507 int field3val, /**< additional value of new element */ 2508 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2509 int* pos /**< pointer to store the insertion position, or NULL */ 2510 ); 2511 2512 /** insert a new element into four joint arrays of Reals/Reals/ints/ints, sorted by first array in non-increasing order */ 2513 SCIP_EXPORT 2514 void SCIPsortedvecInsertDownRealRealIntInt( 2515 SCIP_Real* realarray1, /**< first SCIP_Real array where an element is to be inserted */ 2516 SCIP_Real* realarray2, /**< second SCIP_Real array where an element is to be inserted */ 2517 int* intarray1, /**< first int array where an element is to be inserted */ 2518 int* intarray2, /**< second int array where an element is to be inserted */ 2519 SCIP_Real keyval, /**< key value of new element */ 2520 SCIP_Real field1val, /**< additional value of new element */ 2521 int field2val, /**< additional value of new element */ 2522 int field3val, /**< additional value of new element */ 2523 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2524 int* pos /**< pointer to store the insertion position, or NULL */ 2525 ); 2526 2527 /** insert a new element into four joint arrays of Reals/Reals/Reals/ints, sorted by first array in non-increasing order */ 2528 SCIP_EXPORT 2529 void SCIPsortedvecInsertDownRealRealRealInt( 2530 SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be inserted */ 2531 SCIP_Real* realarray2, /**< SCIP_Real array where an element is to be inserted */ 2532 SCIP_Real* realarray3, /**< SCIP_Real array where an element is to be inserted */ 2533 int* intarray, /**< int array where an element is to be inserted */ 2534 SCIP_Real keyval, /**< key value of new element */ 2535 SCIP_Real field1val, /**< additional value of new element */ 2536 SCIP_Real field2val, /**< additional value of new element */ 2537 int field3val, /**< additional value of new element */ 2538 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2539 int* pos /**< pointer to store the insertion position, or NULL */ 2540 ); 2541 2542 /** insert a new element into four joint arrays of Reals/Reals/Reals/pointers, sorted by first array in non-increasing order */ 2543 SCIP_EXPORT 2544 void SCIPsortedvecInsertDownRealRealRealPtr( 2545 SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be inserted */ 2546 SCIP_Real* realarray2, /**< SCIP_Real array where an element is to be inserted */ 2547 SCIP_Real* realarray3, /**< SCIP_Real array where an element is to be inserted */ 2548 void** ptrarray, /**< pointer array where an element is to be inserted */ 2549 SCIP_Real keyval, /**< key value of new element */ 2550 SCIP_Real field1val, /**< additional value of new element */ 2551 SCIP_Real field2val, /**< additional value of new element */ 2552 void* field3val, /**< additional value of new element */ 2553 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2554 int* pos /**< pointer to store the insertion position, or NULL */ 2555 ); 2556 2557 /** insert a new element into five joint arrays of Reals/Reals/Reals/Bools/pointers, sorted by first array in non-increasing order */ 2558 SCIP_EXPORT 2559 void SCIPsortedvecInsertDownRealRealRealBoolPtr( 2560 SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be inserted */ 2561 SCIP_Real* realarray2, /**< SCIP_Real array where an element is to be inserted */ 2562 SCIP_Real* realarray3, /**< SCIP_Real array where an element is to be inserted */ 2563 SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be inserted */ 2564 void** ptrarray, /**< pointer array where an element is to be inserted */ 2565 SCIP_Real keyval, /**< key value of new element */ 2566 SCIP_Real field1val, /**< additional value of new element */ 2567 SCIP_Real field2val, /**< additional value of new element */ 2568 SCIP_Bool field3val, /**< additional value of new element */ 2569 void* field4val, /**< additional value of new element */ 2570 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2571 int* pos /**< pointer to store the insertion position, or NULL */ 2572 ); 2573 2574 /** insert a new element into six joint arrays of Reals/Reals/Reals/Bools/Bools/pointers, sorted by first array in non-increasing order */ 2575 SCIP_EXPORT 2576 void SCIPsortedvecInsertDownRealRealRealBoolBoolPtr( 2577 SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be inserted */ 2578 SCIP_Real* realarray2, /**< SCIP_Real array where an element is to be inserted */ 2579 SCIP_Real* realarray3, /**< SCIP_Real array where an element is to be inserted */ 2580 SCIP_Bool* boolarray1, /**< SCIP_Bool array where an element is to be inserted */ 2581 SCIP_Bool* boolarray2, /**< SCIP_Bool array where an element is to be inserted */ 2582 void** ptrarray, /**< pointer array where an element is to be inserted */ 2583 SCIP_Real keyval, /**< key value of new element */ 2584 SCIP_Real field1val, /**< additional value of new element */ 2585 SCIP_Real field2val, /**< additional value of new element */ 2586 SCIP_Bool field3val, /**< additional value of new element */ 2587 SCIP_Bool field4val, /**< additional value of new element */ 2588 void* field5val, /**< additional value of new element */ 2589 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2590 int* pos /**< pointer to store the insertion position, or NULL */ 2591 ); 2592 2593 /** insert a new element into an array of ints in non-increasing order */ 2594 SCIP_EXPORT 2595 void SCIPsortedvecInsertDownInt( 2596 int* intarray, /**< int array where an element is to be inserted */ 2597 int keyval, /**< key value of new element */ 2598 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2599 int* pos /**< pointer to store the insertion position, or NULL */ 2600 ); 2601 2602 /** insert a new element into two joint arrays of ints/ints, sorted by first array in non-increasing order */ 2603 SCIP_EXPORT 2604 void SCIPsortedvecInsertDownIntInt( 2605 int* intarray1, /**< int array where an element is to be inserted */ 2606 int* intarray2, /**< second int array where an element is to be inserted */ 2607 int keyval, /**< key value of new element */ 2608 int field1val, /**< additional value of new element */ 2609 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2610 int* pos /**< pointer to store the insertion position, or NULL */ 2611 ); 2612 2613 /** insert a new element into two joint arrays of ints/reals, sorted by first array in non-increasing order */ 2614 SCIP_EXPORT 2615 void SCIPsortedvecInsertDownIntReal( 2616 int* intarray, /**< int array where an element is to be inserted */ 2617 SCIP_Real* realarray, /**< real array where an element is to be inserted */ 2618 int keyval, /**< key value of new element */ 2619 SCIP_Real field1val, /**< additional value of new element */ 2620 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2621 int* pos /**< pointer to store the insertion position, or NULL */ 2622 ); 2623 2624 /** insert a new element into three joint arrays of ints/ints/ints, sorted by first array in non-increasing order */ 2625 SCIP_EXPORT 2626 void SCIPsortedvecInsertDownIntIntInt( 2627 int* intarray1, /**< int array where an element is to be inserted */ 2628 int* intarray2, /**< second int array where an element is to be inserted */ 2629 int* intarray3, /**< third int array where an element is to be inserted */ 2630 int keyval, /**< key value of new element */ 2631 int field1val, /**< additional value of new element */ 2632 int field2val, /**< additional value of new element */ 2633 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2634 int* pos /**< pointer to store the insertion position, or NULL */ 2635 ); 2636 2637 /** insert a new element into three joint arrays of ints/ints/SCIP_Longint, sorted by first array in non-increasing order */ 2638 SCIP_EXPORT 2639 void SCIPsortedvecInsertDownIntIntLong( 2640 int* intarray1, /**< int array where an element is to be inserted */ 2641 int* intarray2, /**< second int array where an element is to be inserted */ 2642 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */ 2643 int keyval, /**< key value of new element */ 2644 int field1val, /**< additional value of new element */ 2645 SCIP_Longint field2val, /**< additional value of new element */ 2646 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2647 int* pos /**< pointer to store the insertion position, or NULL */ 2648 ); 2649 2650 /** insert a new element into three joint arrays of ints/ints/pointers, sorted by first array in non-increasing order */ 2651 SCIP_EXPORT 2652 void SCIPsortedvecInsertDownIntIntPtr( 2653 int* intarray1, /**< int array where an element is to be inserted */ 2654 int* intarray2, /**< second int array where an element is to be inserted */ 2655 void** ptrarray, /**< pointer array where an element is to be inserted */ 2656 int keyval, /**< key value of new element */ 2657 int field1val, /**< additional value of new element */ 2658 void* field2val, /**< additional value of new element */ 2659 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2660 int* pos /**< pointer to store the insertion position, or NULL */ 2661 ); 2662 2663 /** insert a new element into three joint arrays of ints/ints/Reals, sorted by first array in non-increasing order */ 2664 SCIP_EXPORT 2665 void SCIPsortedvecInsertDownIntIntReal( 2666 int* intarray1, /**< int array where an element is to be inserted */ 2667 int* intarray2, /**< second int array where an element is to be inserted */ 2668 SCIP_Real* realarray, /**< real array where an element is to be inserted */ 2669 int keyval, /**< key value of new element */ 2670 int field1val, /**< additional value of new element */ 2671 SCIP_Real field2val, /**< additional value of new element */ 2672 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2673 int* pos /**< pointer to store the insertion position, or NULL */ 2674 ); 2675 2676 /** insert a new element into two joint arrays of ints/pointers, sorted by first array in non-increasing order */ 2677 SCIP_EXPORT 2678 void SCIPsortedvecInsertDownIntPtr( 2679 int* intarray, /**< int array where an element is to be inserted */ 2680 void** ptrarray, /**< pointer array where an element is to be inserted */ 2681 int keyval, /**< key value of new element */ 2682 void* field1val, /**< additional value of new element */ 2683 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2684 int* pos /**< pointer to store the insertion position, or NULL */ 2685 ); 2686 2687 /** insert a new element into four joint arrays of ints/pointers/ints/Reals, sorted by first array in non-increasing order */ 2688 SCIP_EXPORT 2689 void SCIPsortedvecInsertDownIntIntIntPtr( 2690 int* intarray1, /**< int array where an element is to be inserted */ 2691 int* intarray2, /**< int array where an element is to be inserted */ 2692 int* intarray3, /**< int array where an element is to be inserted */ 2693 void** ptrarray, /**< pointer array where an element is to be inserted */ 2694 int keyval, /**< key value of new element */ 2695 int field1val, /**< additional value of new element */ 2696 int field2val, /**< additional value of new element */ 2697 void* field3val, /**< additional value of new element */ 2698 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2699 int* pos /**< pointer to store the insertion position, or NULL */ 2700 ); 2701 2702 /** insert a new element into four joint arrays of ints/int/ints/reals, sorted by first array in non-increasing order */ 2703 SCIP_EXPORT 2704 void SCIPsortedvecInsertDownIntIntIntReal( 2705 int* intarray1, /**< int array where an element is to be inserted */ 2706 int* intarray2, /**< int array where an element is to be inserted */ 2707 int* intarray3, /**< int array where an element is to be inserted */ 2708 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */ 2709 int keyval, /**< key value of new element */ 2710 int field1val, /**< additional value of new element */ 2711 int field2val, /**< additional value of new element */ 2712 SCIP_Real field3val, /**< additional value of new element */ 2713 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2714 int* pos /**< pointer to store the insertion position, or NULL */ 2715 ); 2716 2717 /** insert a new element into four joint arrays of ints/pointers/ints/reals, sorted by first array in non-increasing order */ 2718 SCIP_EXPORT 2719 void SCIPsortedvecInsertDownIntPtrIntReal( 2720 int* intarray1, /**< int array where an element is to be inserted */ 2721 void** ptrarray, /**< pointer array where an element is to be inserted */ 2722 int* intarray2, /**< int array where an element is to be inserted */ 2723 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */ 2724 int keyval, /**< key value of new element */ 2725 void* field1val, /**< additional value of new element */ 2726 int field2val, /**< additional value of new element */ 2727 SCIP_Real field3val, /**< additional value of new element */ 2728 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2729 int* pos /**< pointer to store the insertion position, or NULL */ 2730 ); 2731 2732 /** insert a new element into an array of Longints, sorted in non-increasing order */ 2733 SCIP_EXPORT 2734 void SCIPsortedvecInsertDownLong( 2735 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */ 2736 SCIP_Longint keyval, /**< key value of new element */ 2737 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2738 int* pos /**< pointer to store the insertion position, or NULL */ 2739 ); 2740 2741 /** insert a new element into two joint arrays of Long/pointer, sorted by the first array in non-increasing order */ 2742 SCIP_EXPORT 2743 void SCIPsortedvecInsertDownLongPtr( 2744 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */ 2745 void** ptrarray, /**< pointer array where an element is to be inserted */ 2746 SCIP_Longint keyval, /**< key value of new element */ 2747 void* field1val, /**< additional value of new element */ 2748 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2749 int* pos /**< pointer to store the insertion position, or NULL */ 2750 ); 2751 2752 /** insert a new element into three joint arrays of Long/pointer/ints, sorted by the first array in non-increasing order */ 2753 SCIP_EXPORT 2754 void SCIPsortedvecInsertDownLongPtrInt( 2755 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */ 2756 void** ptrarray, /**< pointer array where an element is to be inserted */ 2757 int* intarray, /**< int array where an element is to be inserted */ 2758 SCIP_Longint keyval, /**< key value of new element */ 2759 void* field1val, /**< additional value of new element */ 2760 int field2val, /**< additional value of new element */ 2761 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2762 int* pos /**< pointer to store the insertion position, or NULL */ 2763 ); 2764 2765 /** insert a new element into four joint arrays of Long/pointer/Real/Bool, sorted by the first array in non-increasing order */ 2766 SCIP_EXPORT 2767 void SCIPsortedvecInsertDownLongPtrRealBool( 2768 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */ 2769 void** ptrarray, /**< pointer array where an element is to be inserted */ 2770 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */ 2771 SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be inserted */ 2772 SCIP_Longint keyval, /**< key value of new element */ 2773 void* field1val, /**< additional value of new element */ 2774 SCIP_Real field2val, /**< additional value of new element */ 2775 SCIP_Bool field3val, /**< additional value of new element */ 2776 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2777 int* pos /**< pointer to store the insertion position, or NULL */ 2778 ); 2779 2780 /** insert a new element into five joint arrays of Long/pointer/Real/Real/Bool, sorted by the first array in non-increasing order */ 2781 SCIP_EXPORT 2782 void SCIPsortedvecInsertDownLongPtrRealRealBool( 2783 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */ 2784 void** ptrarray, /**< pointer array where an element is to be inserted */ 2785 SCIP_Real* realarray, /**< first SCIP_Real array where an element is to be inserted */ 2786 SCIP_Real* realarray2, /**< second SCIP_Real array where an element is to be inserted */ 2787 SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be inserted */ 2788 SCIP_Longint keyval, /**< key value of new element */ 2789 void* field1val, /**< additional value of new element */ 2790 SCIP_Real field2val, /**< additional value of new element */ 2791 SCIP_Real field3val, /**< additional value of new element */ 2792 SCIP_Bool field4val, /**< additional value of new element */ 2793 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2794 int* pos /**< pointer to store the insertion position, or NULL */ 2795 ); 2796 2797 /** insert a new element into six joint arrays of Long/pointer/Real/Real/int/Bool, sorted by the first array in non-increasing order */ 2798 SCIP_EXPORT 2799 void SCIPsortedvecInsertDownLongPtrRealRealIntBool( 2800 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */ 2801 void** ptrarray, /**< pointer array where an element is to be inserted */ 2802 SCIP_Real* realarray, /**< first SCIP_Real array where an element is to be inserted */ 2803 SCIP_Real* realarray2, /**< second SCIP_Real array where an element is to be inserted */ 2804 int* intarray, /**< int array where an element is to be inserted */ 2805 SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be inserted */ 2806 SCIP_Longint keyval, /**< key value of new element */ 2807 void* field1val, /**< additional value of new element */ 2808 SCIP_Real field2val, /**< additional value of new element */ 2809 SCIP_Real field3val, /**< additional value of new element */ 2810 int field4val, /**< additional value of new element */ 2811 SCIP_Bool field5val, /**< additional value of new element */ 2812 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2813 int* pos /**< pointer to store the insertion position, or NULL */ 2814 ); 2815 2816 /** insert a new element into four joint arrays of Long/pointer/pointer/ints, sorted by first array in non-increasing order */ 2817 SCIP_EXPORT 2818 void SCIPsortedvecInsertDownLongPtrPtrInt( 2819 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */ 2820 void** ptrarray1, /**< first pointer array where an element is to be inserted */ 2821 void** ptrarray2, /**< second pointer array where an element is to be inserted */ 2822 int* intarray, /**< int array where an element is to be inserted */ 2823 SCIP_Longint keyval, /**< key value of new element */ 2824 void* field1val, /**< additional value of new element */ 2825 void* field2val, /**< additional value of new element */ 2826 int field3val, /**< additional value of new element */ 2827 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2828 int* pos /**< pointer to store the insertion position, or NULL */ 2829 ); 2830 2831 /** insert a new element into five joint arrays of Long/pointer/pointer/ints/ints, sorted by first array in non-increasing order */ 2832 SCIP_EXPORT 2833 void SCIPsortedvecInsertDownLongPtrPtrIntInt( 2834 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */ 2835 void** ptrarray1, /**< first pointer array where an element is to be inserted */ 2836 void** ptrarray2, /**< second pointer array where an element is to be inserted */ 2837 int* intarray1, /**< first int array where an element is to be inserted */ 2838 int* intarray2, /**< second int array where an element is to be inserted */ 2839 SCIP_Longint keyval, /**< key value of new element */ 2840 void* field1val, /**< additional value of new element */ 2841 void* field2val, /**< additional value of new element */ 2842 int field3val, /**< additional value of new element */ 2843 int field4val, /**< additional value of new element */ 2844 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2845 int* pos /**< pointer to store the insertion position, or NULL */ 2846 ); 2847 2848 /** insert a new element into five joint arrays of Long/pointer/pointer/Bool/ints, sorted by first array in non-increasing order */ 2849 SCIP_EXPORT 2850 void SCIPsortedvecInsertDownLongPtrPtrBoolInt( 2851 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */ 2852 void** ptrarray1, /**< first pointer array where an element is to be inserted */ 2853 void** ptrarray2, /**< second pointer array where an element is to be inserted */ 2854 SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be inserted */ 2855 int* intarray, /**< int array where an element is to be inserted */ 2856 SCIP_Longint keyval, /**< key value of new element */ 2857 void* field1val, /**< additional value of new element */ 2858 void* field2val, /**< additional value of new element */ 2859 SCIP_Bool field3val, /**< additional value of new element */ 2860 int field4val, /**< additional value of new element */ 2861 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2862 int* pos /**< pointer to store the insertion position, or NULL */ 2863 ); 2864 2865 /** insert a new element into five joint arrays of pointer/ints/ints/Bool/Bool, sorted by first array in non-increasing order */ 2866 SCIP_EXPORT 2867 void SCIPsortedvecInsertDownPtrIntIntBoolBool( 2868 void** ptrarray, /**< pointer array to be sorted */ 2869 int* intarray1, /**< first int array to be permuted in the same way */ 2870 int* intarray2, /**< second int array to be permuted in the same way */ 2871 SCIP_Bool* boolarray1, /**< first SCIP_Bool array to be permuted in the same way */ 2872 SCIP_Bool* boolarray2, /**< second SCIP_Bool array to be permuted in the same way */ 2873 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 2874 void* keyval, /**< key value of new element */ 2875 int field1val, /**< additional value of new element */ 2876 int field2val, /**< additional value of new element */ 2877 SCIP_Bool field3val, /**< additional value of new element */ 2878 SCIP_Bool field4val, /**< additional value of new element */ 2879 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2880 int* pos /**< pointer to store the insertion position, or NULL */ 2881 ); 2882 2883 /** insert a new element into six joint arrays of ints/pointer/ints/ints/Bool/Bool, sorted by first array in non-increased order */ 2884 SCIP_EXPORT 2885 void SCIPsortedvecInsertDownIntPtrIntIntBoolBool( 2886 int* intarray1, /**< int array to be sorted */ 2887 void** ptrarray, /**< pointer array to be permuted in the same way */ 2888 int* intarray2, /**< second int array to be permuted in the same way */ 2889 int* intarray3, /**< thrid int array to be permuted in the same way */ 2890 SCIP_Bool* boolarray1, /**< first SCIP_Bool array to be permuted in the same way */ 2891 SCIP_Bool* boolarray2, /**< second SCIP_Bool array to be permuted in the same way */ 2892 int keyval, /**< key value of new element */ 2893 void* field1val, /**< additional value of new element */ 2894 int field2val, /**< additional value of new element */ 2895 int field3val, /**< additional value of new element */ 2896 SCIP_Bool field4val, /**< additional value of new element */ 2897 SCIP_Bool field5val, /**< additional value of new element */ 2898 int* len, /**< pointer to length of arrays (will be increased by 1) */ 2899 int* pos /**< pointer to store the insertion position, or NULL */ 2900 ); 2901 2902 /* upwards position deletion */ 2903 2904 /** delete the element at the given position from an index array in non-decreasing order */ 2905 SCIP_EXPORT 2906 void SCIPsortedvecDelPosInd( 2907 int* indarray, /**< pointer to the index array where an element is to be deleted */ 2908 SCIP_DECL_SORTINDCOMP((*indcomp)), /**< data element comparator */ 2909 void* dataptr, /**< pointer to data field that is given to the external compare method */ 2910 int pos, /**< array position of element to be deleted */ 2911 int* len /**< pointer to length of arrays (will be decreased by 1) */ 2912 ); 2913 2914 /** delete the element at the given position from an array of pointers in non-decreasing order */ 2915 SCIP_EXPORT 2916 void SCIPsortedvecDelPosPtr( 2917 void** ptrarray, /**< pointer array where an element is to be deleted */ 2918 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 2919 int pos, /**< array position of element to be deleted */ 2920 int* len /**< pointer to length of arrays (will be decreased by 1) */ 2921 ); 2922 2923 /** delete the element at the given position from two joint arrays of pointers/pointers, sorted by first array in non-decreasing order */ 2924 SCIP_EXPORT 2925 void SCIPsortedvecDelPosPtrPtr( 2926 void** ptrarray1, /**< first pointer array where an element is to be deleted */ 2927 void** ptrarray2, /**< second pointer array where an element is to be deleted */ 2928 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 2929 int pos, /**< array position of element to be deleted */ 2930 int* len /**< pointer to length of arrays (will be decreased by 1) */ 2931 ); 2932 2933 /** delete the element at the given position from two joint arrays of pointers/Reals, sorted by first array in non-decreasing order */ 2934 SCIP_EXPORT 2935 void SCIPsortedvecDelPosPtrReal( 2936 void** ptrarray, /**< pointer array where an element is to be deleted */ 2937 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */ 2938 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 2939 int pos, /**< array position of element to be deleted */ 2940 int* len /**< pointer to length of arrays (will be decreased by 1) */ 2941 ); 2942 2943 /** delete the element at the given position from two joint arrays of pointers/ints, sorted by first array in non-decreasing order */ 2944 SCIP_EXPORT 2945 void SCIPsortedvecDelPosPtrInt( 2946 void** ptrarray, /**< pointer array where an element is to be deleted */ 2947 int* intarray, /**< int array where an element is to be deleted */ 2948 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 2949 int pos, /**< array position of element to be deleted */ 2950 int* len /**< pointer to length of arrays (will be decreased by 1) */ 2951 ); 2952 2953 /** delete the element at the given position from two joint arrays of pointers/Bools, sorted by first array in non-decreasing order */ 2954 SCIP_EXPORT 2955 void SCIPsortedvecDelPosPtrBool( 2956 void** ptrarray, /**< pointer array where an element is to be inserted */ 2957 SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be inserted */ 2958 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 2959 int pos, /**< array position of element to be deleted */ 2960 int* len /**< pointer to length of arrays (will be increased by 1) */ 2961 ); 2962 2963 /** delete the element at the given position from three joint arrays of pointers/ints/ints, sorted by first array in non-decreasing order */ 2964 SCIP_EXPORT 2965 void SCIPsortedvecDelPosPtrIntInt( 2966 void** ptrarray, /**< pointer array where an element is to be deleted */ 2967 int* intarray1, /**< first int array where an element is to be deleted */ 2968 int* intarray2, /**< second int array where an element is to be deleted */ 2969 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 2970 int pos, /**< array position of element to be deleted */ 2971 int* len /**< pointer to length of arrays (will be decreased by 1) */ 2972 ); 2973 2974 /** delete the element at the given position from three joint arrays of pointers/Reals/ints, sorted by first array in non-decreasing order */ 2975 SCIP_EXPORT 2976 void SCIPsortedvecDelPosPtrRealInt( 2977 void** ptrarray, /**< pointer array where an element is to be deleted */ 2978 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */ 2979 int* intarray, /**< int array where an element is to be deleted */ 2980 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 2981 int pos, /**< array position of element to be deleted */ 2982 int* len /**< pointer to length of arrays (will be decreased by 1) */ 2983 ); 2984 2985 /** delete the element at the given position from four joint arrays of pointers/RealsReals//ints, sorted by first array in non-decreasing order */ 2986 SCIP_EXPORT 2987 void SCIPsortedvecDelPosPtrRealRealInt( 2988 void** ptrarray, /**< pointer array where an element is to be deleted */ 2989 SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be deleted */ 2990 SCIP_Real* realarray2, /**< SCIP_Real array where an element is to be deleted */ 2991 int* intarray, /**< int array where an element is to be deleted */ 2992 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 2993 int pos, /**< array position of element to be deleted */ 2994 int* len /**< pointer to length of arrays (will be decreased by 1) */ 2995 ); 2996 2997 /** delete the element at the given position from four joint arrays of pointers/RealsReals/SCIP_Bools/SCIP_Bools, sorted by first array in non-decreasing order */ 2998 SCIP_EXPORT 2999 void SCIPsortedvecDelPosPtrRealRealBoolBool( 3000 void** ptrarray, /**< pointer array where an element is to be deleted */ 3001 SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be deleted */ 3002 SCIP_Real* realarray2, /**< SCIP_Real array where an element is to be deleted */ 3003 SCIP_Bool* boolarray1, /**< SCIP_Bool array where an element is to be deleted */ 3004 SCIP_Bool* boolarray2, /**< SCIP_Bool array where an element is to be deleted */ 3005 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 3006 int pos, /**< array position of element to be deleted */ 3007 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3008 ); 3009 3010 /** delete the element at the given position from four joint arrays of pointers/RealsReals/ints/SCIP_Bools, sorted by first array in non-decreasing order */ 3011 SCIP_EXPORT 3012 void SCIPsortedvecDelPosPtrRealRealIntBool( 3013 void** ptrarray, /**< pointer array where an element is to be deleted */ 3014 SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be deleted */ 3015 SCIP_Real* realarray2, /**< SCIP_Real array where an element is to be deleted */ 3016 int* intarray, /**< int array where an element is to be deleted */ 3017 SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be deleted */ 3018 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 3019 int pos, /**< array position of element to be deleted */ 3020 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3021 ); 3022 3023 /** delete the element at the given position from three joint arrays of pointers/Reals/Bools, sorted by first array in non-decreasing order */ 3024 SCIP_EXPORT 3025 void SCIPsortedvecDelPosPtrRealBool( 3026 void** ptrarray, /**< pointer array where an element is to be deleted */ 3027 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */ 3028 SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be deleted */ 3029 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 3030 int pos, /**< array position of element to be deleted */ 3031 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3032 ); 3033 3034 /** delete the element at the given position from three joint arrays of pointers/pointers/Ints, sorted by first array in non-decreasing order */ 3035 SCIP_EXPORT 3036 void SCIPsortedvecDelPosPtrPtrInt( 3037 void** ptrarray1, /**< first pointer array where an element is to be deleted */ 3038 void** ptrarray2, /**< second pointer array where an element is to be deleted */ 3039 int* intarray, /**< int array where an element is to be deleted */ 3040 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 3041 int pos, /**< array position of element to be deleted */ 3042 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3043 ); 3044 3045 /** delete the element at the given position from three joint arrays of pointers/pointers/Reals, sorted by first array in non-decreasing order */ 3046 SCIP_EXPORT 3047 void SCIPsortedvecDelPosPtrPtrReal( 3048 void** ptrarray1, /**< first pointer array where an element is to be deleted */ 3049 void** ptrarray2, /**< second pointer array where an element is to be deleted */ 3050 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */ 3051 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 3052 int pos, /**< array position of element to be deleted */ 3053 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3054 ); 3055 3056 /** delete the element at the given position from four joint arrays of pointers/pointers/ints/ints, sorted by first array in non-decreasing order */ 3057 SCIP_EXPORT 3058 void SCIPsortedvecDelPosPtrPtrIntInt( 3059 void** ptrarray1, /**< first pointer array where an element is to be deleted */ 3060 void** ptrarray2, /**< second pointer array where an element is to be deleted */ 3061 int* intarray1, /**< first int array where an element is to be deleted */ 3062 int* intarray2, /**< second array where an element is to be deleted */ 3063 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 3064 int pos, /**< array position of element to be deleted */ 3065 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3066 ); 3067 3068 /** delete the element at the given position from four joint arrays of pointers/Reals/ints/ints, sorted by first array in non-decreasing order */ 3069 SCIP_EXPORT 3070 void SCIPsortedvecDelPosPtrRealIntInt( 3071 void** ptrarray, /**< pointer array where an element is to be deleted */ 3072 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */ 3073 int* intarray1, /**< first int array where an element is to be deleted */ 3074 int* intarray2, /**< second int array where an element is to be deleted */ 3075 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 3076 int pos, /**< array position of element to be deleted */ 3077 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3078 ); 3079 3080 /** deletes the element at the given position from four joint arrays of pointer/pointer/Reals/ints, sorted by first array in non-decreasing order */ 3081 SCIP_EXPORT 3082 void SCIPsortedvecDelPosPtrPtrRealInt( 3083 void** ptrarray1, /**< first pointer array where an element is to be deleted */ 3084 void** ptrarray2, /**< second pointer array where an element is to be deleted */ 3085 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */ 3086 int* intarray, /**< int array where an element is to be deleted */ 3087 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 3088 int pos, /**< array position of element to be deleted */ 3089 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3090 ); 3091 3092 /** deletes the element at the given position from four joint arrays of pointer/pointer/Reals/bools, sorted by first array in non-decreasing order */ 3093 SCIP_EXPORT 3094 void SCIPsortedvecDelPosPtrPtrRealBool( 3095 void** ptrarray1, /**< first pointer array where an element is to be deleted */ 3096 void** ptrarray2, /**< second pointer array where an element is to be deleted */ 3097 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */ 3098 SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be deleted */ 3099 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 3100 int pos, /**< array position of element to be deleted */ 3101 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3102 ); 3103 3104 /** deletes the element at the given position from four joint arrays of pointer/pointer/Longs/ints, sorted by first array in non-decreasing order */ 3105 SCIP_EXPORT 3106 void SCIPsortedvecDelPosPtrPtrLongInt( 3107 void** ptrarray1, /**< first pointer array where an element is to be deleted */ 3108 void** ptrarray2, /**< second pointer array where an element is to be deleted */ 3109 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */ 3110 int* intarray, /**< int array where an element is to be deleted */ 3111 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 3112 int pos, /**< array position of element to be deleted */ 3113 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3114 ); 3115 3116 /** deletes the element at the given position from five joint arrays of pointer/pointer/Longs/ints/ints, sorted by first array in non-decreasing order */ 3117 SCIP_EXPORT 3118 void SCIPsortedvecDelPosPtrPtrLongIntInt( 3119 void** ptrarray1, /**< first pointer array where an element is to be deleted */ 3120 void** ptrarray2, /**< second pointer array where an element is to be deleted */ 3121 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */ 3122 int* intarray1, /**< first int array where an element is to be deleted */ 3123 int* intarray2, /**< second int array where an element is to be deleted */ 3124 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 3125 int pos, /**< array position of element to be deleted */ 3126 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3127 ); 3128 3129 /** delete the element at the given position from three joint arrays of Reals/Bools/pointers, sorted by first array in non-decreasing order */ 3130 SCIP_EXPORT 3131 void SCIPsortedvecDelPosRealBoolPtr( 3132 SCIP_Real* realarray, /**< SCIP_Real array to be sorted */ 3133 SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */ 3134 void** ptrarray, /**< pointer array to be permuted in the same way */ 3135 int pos, /**< array position of element to be deleted */ 3136 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3137 ); 3138 3139 /** delete the element at the given position from two joint arrays of Reals/pointers, sorted by first array in non-decreasing order */ 3140 SCIP_EXPORT 3141 void SCIPsortedvecDelPosRealPtr( 3142 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */ 3143 void** ptrarray, /**< pointer array where an element is to be deleted */ 3144 int pos, /**< array position of element to be deleted */ 3145 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3146 ); 3147 3148 /** delete the element at the given position from an arrays of Reals, sorted in non-decreasing order */ 3149 SCIP_EXPORT 3150 void SCIPsortedvecDelPosReal( 3151 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */ 3152 int pos, /**< array position of element to be deleted */ 3153 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3154 ); 3155 3156 /** delete the element at the given position from two joint arrays of Reals/ints, sorted by first array in non-decreasing order */ 3157 SCIP_EXPORT 3158 void SCIPsortedvecDelPosRealInt( 3159 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */ 3160 int* intarray, /**< int array where an element is to be deleted */ 3161 int pos, /**< array position of element to be deleted */ 3162 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3163 ); 3164 3165 /** delete the element at the given position from two joint arrays of Reals/ints, sorted by first array in non-decreasing order */ 3166 SCIP_EXPORT 3167 void SCIPsortedvecDelPosRealIntInt( 3168 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */ 3169 int* intarray1, /**< int array where an element is to be deleted */ 3170 int* intarray2, /**< int array where an element is to be deleted */ 3171 int pos, /**< array position of element to be deleted */ 3172 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3173 ); 3174 3175 /** delete the element at the given position from three joint arrays of Reals/ints/Longs, sorted by first array in non-decreasing order */ 3176 SCIP_EXPORT 3177 void SCIPsortedvecDelPosRealIntLong( 3178 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */ 3179 int* intarray, /**< int array where an element is to be deleted */ 3180 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */ 3181 int pos, /**< array position of element to be deleted */ 3182 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3183 ); 3184 3185 /** delete the element at the given position from three joint arrays of Reals/ints/Pointer, sorted by first array in non-decreasing order */ 3186 SCIP_EXPORT 3187 void SCIPsortedvecDelPosRealIntPtr( 3188 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */ 3189 int* intarray, /**< int array where an element is to be deleted */ 3190 void** ptrarray, /**< pointer array where an element is to be deleted */ 3191 int pos, /**< array position of element to be deleted */ 3192 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3193 ); 3194 3195 /** delete the element at the given position from three joint arrays of Reals/Reals/Pointer, sorted by first array in non-decreasing order */ 3196 SCIP_EXPORT 3197 void SCIPsortedvecDelPosRealRealPtr( 3198 SCIP_Real* realarray1, /**< first SCIP_Real array where an element is to be deleted */ 3199 SCIP_Real* realarray2, /**< second SCIP_Real array where an element is to be deleted */ 3200 void** ptrarray, /**< pointer array where an element is to be deleted */ 3201 int pos, /**< array position of element to be deleted */ 3202 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3203 ); 3204 3205 /** delete the element at the given position from four joint arrays of Reals/pointers/pointers/ints, sorted by first array in non-decreasing order */ 3206 SCIP_EXPORT 3207 void SCIPsortedvecDelPosRealPtrPtrInt( 3208 SCIP_Real* realarray, /**< first SCIP_Real array where an element is to be deleted */ 3209 void** ptrarray1, /**< first pointer array where an element is to be deleted */ 3210 void** ptrarray2, /**< second pointer array where an element is to be deleted */ 3211 int* intarray, /**< int array where an element is to be deleted */ 3212 int pos, /**< array position of element to be deleted */ 3213 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3214 ); 3215 3216 /** delete the element at the given position from five joint arrays of Reals/pointers/pointers/ints/ints, sorted by first array in non-decreasing order */ 3217 SCIP_EXPORT 3218 void SCIPsortedvecDelPosRealPtrPtrIntInt( 3219 SCIP_Real* realarray, /**< first SCIP_Real array where an element is to be deleted */ 3220 void** ptrarray1, /**< first pointer array where an element is to be deleted */ 3221 void** ptrarray2, /**< second pointer array where an element is to be deleted */ 3222 int* intarray1, /**< int array where an element is to be deleted */ 3223 int* intarray2, /**< int array where an element is to be deleted */ 3224 int pos, /**< array position of element to be deleted */ 3225 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3226 ); 3227 3228 /** delete the element at the given position from four joint arrays of Reals/Long/Reals/ints, sorted by first array in non-decreasing order */ 3229 SCIP_EXPORT 3230 void SCIPsortedvecDelPosRealLongRealInt( 3231 SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be deleted */ 3232 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */ 3233 SCIP_Real* realarray3, /**< SCIP_Real array where an element is to be deleted */ 3234 int* intarray, /**< int array where an element is to be deleted */ 3235 int pos, /**< array position of element to be deleted */ 3236 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3237 ); 3238 3239 /** delete the element at the given position from four joint arrays of Reals/Reals/ints/ints, sorted by first array in non-decreasing order */ 3240 SCIP_EXPORT 3241 void SCIPsortedvecDelPosRealRealIntInt( 3242 SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be deleted */ 3243 SCIP_Real* realarray2, /**< SCIP_Real array where an element is to be deleted */ 3244 int* intarray1, /**< int array where an element is to be deleted */ 3245 int* intarray2, /**< int array where an element is to be deleted */ 3246 int pos, /**< array position of element to be deleted */ 3247 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3248 ); 3249 3250 /** delete the element at the given position from four joint arrays of Reals/Reals/Reals/ints, sorted by first array in non-decreasing order */ 3251 SCIP_EXPORT 3252 void SCIPsortedvecDelPosRealRealRealInt( 3253 SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be deleted */ 3254 SCIP_Real* realarray2, /**< SCIP_Real array where an element is to be deleted */ 3255 SCIP_Real* realarray3, /**< SCIP_Real array where an element is to be deleted */ 3256 int* intarray, /**< int array where an element is to be deleted */ 3257 int pos, /**< array position of element to be deleted */ 3258 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3259 ); 3260 3261 /** delete the element at the given position from four joint arrays of Reals/Reals/Reals/pointers, sorted by first array in non-decreasing order */ 3262 SCIP_EXPORT 3263 void SCIPsortedvecDelPosRealRealRealPtr( 3264 SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be deleted */ 3265 SCIP_Real* realarray2, /**< SCIP_Real array where an element is to be deleted */ 3266 SCIP_Real* realarray3, /**< SCIP_Real array where an element is to be deleted */ 3267 void** ptrarray, /**< pointer array where an element is to be deleted */ 3268 int pos, /**< array position of element to be deleted */ 3269 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3270 ); 3271 3272 /** delete the element at the given position from five joint arrays of Reals/Reals/Reals/Bools/pointers, sorted by first array in non-decreasing order */ 3273 SCIP_EXPORT 3274 void SCIPsortedvecDelPosRealRealRealBoolPtr( 3275 SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be deleted */ 3276 SCIP_Real* realarray2, /**< SCIP_Real array where an element is to be deleted */ 3277 SCIP_Real* realarray3, /**< SCIP_Real array where an element is to be deleted */ 3278 SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be deleted */ 3279 void** ptrarray, /**< pointer array where an element is to be deleted */ 3280 int pos, /**< array position of element to be deleted */ 3281 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3282 ); 3283 3284 /** delete the element at the given position from six joint arrays of Reals/Reals/Reals/Bools/Bools/pointers, sorted by first array in non-decreasing order */ 3285 SCIP_EXPORT 3286 void SCIPsortedvecDelPosRealRealRealBoolBoolPtr( 3287 SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be deleted */ 3288 SCIP_Real* realarray2, /**< SCIP_Real array where an element is to be deleted */ 3289 SCIP_Real* realarray3, /**< SCIP_Real array where an element is to be deleted */ 3290 SCIP_Bool* boolarray1, /**< SCIP_Bool array where an element is to be deleted */ 3291 SCIP_Bool* boolarray2, /**< SCIP_Bool array where an element is to be deleted */ 3292 void** ptrarray, /**< pointer array where an element is to be deleted */ 3293 int pos, /**< array position of element to be deleted */ 3294 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3295 ); 3296 3297 /** delete the element at the given position from an array of ints in non-decreasing order */ 3298 SCIP_EXPORT 3299 void SCIPsortedvecDelPosInt( 3300 int* intarray, /**< int array where an element is to be deleted */ 3301 int pos, /**< array position of element to be deleted */ 3302 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3303 ); 3304 3305 /** delete the element at the given position from two joint arrays of ints/ints, sorted by first array in non-decreasing order */ 3306 SCIP_EXPORT 3307 void SCIPsortedvecDelPosIntInt( 3308 int* intarray1, /**< int array where an element is to be deleted */ 3309 int* intarray2, /**< second int array where an element is to be deleted */ 3310 int pos, /**< array position of element to be deleted */ 3311 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3312 ); 3313 3314 /** delete the element at the given position from two joint arrays of ints/reals, sorted by first array in non-decreasing order */ 3315 SCIP_EXPORT 3316 void SCIPsortedvecDelPosIntReal( 3317 int* intarray, /**< int array where an element is to be deleted */ 3318 SCIP_Real* realarray, /**< real array where an element is to be deleted */ 3319 int pos, /**< array position of element to be deleted */ 3320 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3321 ); 3322 3323 /** delete the element at the given position from three joint arrays of ints/ints/ints, sorted by first array in non-decreasing order */ 3324 SCIP_EXPORT 3325 void SCIPsortedvecDelPosIntIntInt( 3326 int* intarray1, /**< int array where an element is to be deleted */ 3327 int* intarray2, /**< second int array where an element is to be deleted */ 3328 int* intarray3, /**< third int array where an element is to be deleted */ 3329 int pos, /**< array position of element to be deleted */ 3330 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3331 ); 3332 3333 /** delete the element at the given position from three joint arrays of ints/ints/SCIP_Longint, sorted by first array in non-decreasing order */ 3334 SCIP_EXPORT 3335 void SCIPsortedvecDelPosIntIntLong( 3336 int* intarray1, /**< int array where an element is to be deleted */ 3337 int* intarray2, /**< second int array where an element is to be deleted */ 3338 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */ 3339 int pos, /**< array position of element to be deleted */ 3340 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3341 ); 3342 3343 /** delete the element at the given position from three joint arrays of ints/SCIP_Real/SCIP_Longint, sorted by first array in non-decreasing order */ 3344 SCIP_EXPORT 3345 void SCIPsortedvecDelPosIntRealLong( 3346 int* intarray, /**< int array where an element is to be deleted */ 3347 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */ 3348 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */ 3349 int pos, /**< array position of element to be deleted */ 3350 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3351 ); 3352 3353 /** delete the element at the given position from three joint arrays of ints/ints/pointers, sorted by first array in non-decreasing order */ 3354 SCIP_EXPORT 3355 void SCIPsortedvecDelPosIntIntPtr( 3356 int* intarray1, /**< int array where an element is to be deleted */ 3357 int* intarray2, /**< second int array where an element is to be deleted */ 3358 void** ptrarray, /**< pointer array where an element is to be deleted */ 3359 int pos, /**< array position of element to be deleted */ 3360 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3361 ); 3362 3363 /** delete the element at the given position from three joint arrays of ints/ints/Reals, sorted by first array in non-decreasing order */ 3364 SCIP_EXPORT 3365 void SCIPsortedvecDelPosIntIntReal( 3366 int* intarray1, /**< int array where an element is to be deleted */ 3367 int* intarray2, /**< second int array where an element is to be deleted */ 3368 SCIP_Real* realarray, /**< real array where an element is to be deleted */ 3369 int pos, /**< array position of element to be deleted */ 3370 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3371 ); 3372 3373 /** delete the element at the given position from two joint arrays of ints/pointers, sorted by first array in non-decreasing order */ 3374 SCIP_EXPORT 3375 void SCIPsortedvecDelPosIntPtr( 3376 int* intarray, /**< int array where an element is to be deleted */ 3377 void** ptrarray, /**< pointer array where an element is to be deleted */ 3378 int pos, /**< array position of element to be deleted */ 3379 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3380 ); 3381 3382 /** delete the element at the given position from three joint arrays of ints/pointers/Reals, sorted by first array in non-decreasing order */ 3383 SCIP_EXPORT 3384 void SCIPsortedvecDelPosIntPtrReal( 3385 int* intarray, /**< int array where an element is to be deleted */ 3386 void** ptrarray, /**< pointer array where an element is to be deleted */ 3387 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */ 3388 int pos, /**< array position of element to be deleted */ 3389 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3390 ); 3391 3392 /** delete the element at the given position from four joint arrays of ints/ints/ints/pointers, sorted by first array in non-decreasing order */ 3393 SCIP_EXPORT 3394 void SCIPsortedvecDelPosIntIntIntPtr( 3395 int* intarray1, /**< int array where an element is to be deleted */ 3396 int* intarray2, /**< int array where an element is to be deleted */ 3397 int* intarray3, /**< int array where an element is to be deleted */ 3398 void** ptrarray, /**< pointer array where an element is to be deleted */ 3399 int pos, /**< array position of element to be deleted */ 3400 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3401 ); 3402 3403 /** delete the element at the given position from four joint arrays of ints/ints/ints/reals, sorted by first array in non-decreasing order */ 3404 SCIP_EXPORT 3405 void SCIPsortedvecDelPosIntIntIntReal( 3406 int* intarray1, /**< int array where an element is to be deleted */ 3407 int* intarray2, /**< int array where an element is to be deleted */ 3408 int* intarray3, /**< int array where an element is to be deleted */ 3409 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */ 3410 int pos, /**< array position of element to be deleted */ 3411 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3412 ); 3413 3414 /** delete the element at the given position from four joint arrays of ints/pointers/ints/Reals, sorted by first array in non-decreasing order */ 3415 SCIP_EXPORT 3416 void SCIPsortedvecDelPosIntPtrIntReal( 3417 int* intarray1, /**< int array where an element is to be deleted */ 3418 void** ptrarray, /**< pointer array where an element is to be deleted */ 3419 int* intarray2, /**< int array where an element is to be deleted */ 3420 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */ 3421 int pos, /**< array position of element to be deleted */ 3422 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3423 ); 3424 3425 /** delete the element at the given position from an array of Longints, sorted by in non-decreasing order */ 3426 SCIP_EXPORT 3427 void SCIPsortedvecDelPosLong( 3428 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */ 3429 int pos, /**< array position of element to be deleted */ 3430 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3431 ); 3432 3433 /** delete the element at the given position from two joint arrays of Long/pointer, sorted by the first array in non-decreasing order */ 3434 SCIP_EXPORT 3435 void SCIPsortedvecDelPosLongPtr( 3436 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */ 3437 void** ptrarray, /**< pointer array where an element is to be deleted */ 3438 int pos, /**< array position of element to be deleted */ 3439 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3440 ); 3441 3442 /** delete the element at the given position from three joint arrays of Long/pointer/int, sorted by the first array in non-decreasing order */ 3443 SCIP_EXPORT 3444 void SCIPsortedvecDelPosLongPtrInt( 3445 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */ 3446 void** ptrarray, /**< pointer array where an element is to be deleted */ 3447 int* intarray, /**< int array where an element is to be deleted */ 3448 int pos, /**< array position of element to be deleted */ 3449 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3450 ); 3451 3452 /** delete the element at the given position from four joint arrays of Long/pointer/Real/Bool, sorted by the first array in non-decreasing order */ 3453 SCIP_EXPORT 3454 void SCIPsortedvecDelPosLongPtrRealBool( 3455 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */ 3456 void** ptrarray, /**< pointer array where an element is to be deleted */ 3457 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */ 3458 SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be deleted */ 3459 int pos, /**< array position of element to be deleted */ 3460 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3461 ); 3462 3463 /** delete the element at the given position from five joint arrays of Long/pointer/Real/Real/Bool, sorted by the first array in non-decreasing order */ 3464 SCIP_EXPORT 3465 void SCIPsortedvecDelPosLongPtrRealRealBool( 3466 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */ 3467 void** ptrarray, /**< pointer array where an element is to be deleted */ 3468 SCIP_Real* realarray, /**< first SCIP_Real array where an element is to be deleted */ 3469 SCIP_Real* realarray2, /**< second SCIP_Real array where an element is to be deleted */ 3470 SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be deleted */ 3471 int pos, /**< array position of element to be deleted */ 3472 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3473 ); 3474 3475 /** delete the element at the given position from six joint arrays of Long/pointer/Real/Real/int/Bool, sorted by the first array in non-decreasing order */ 3476 SCIP_EXPORT 3477 void SCIPsortedvecDelPosLongPtrRealRealIntBool( 3478 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */ 3479 void** ptrarray, /**< pointer array where an element is to be deleted */ 3480 SCIP_Real* realarray, /**< first SCIP_Real array where an element is to be deleted */ 3481 SCIP_Real* realarray2, /**< second SCIP_Real array where an element is to be deleted */ 3482 int* intarray, /**< int array where an element is to be deleted */ 3483 SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be deleted */ 3484 int pos, /**< array position of element to be deleted */ 3485 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3486 ); 3487 3488 /** delete the element at the given position from four joint arrays of Long/pointer/pointer/ints, sorted by first array in non-decreasing order */ 3489 SCIP_EXPORT 3490 void SCIPsortedvecDelPosLongPtrPtrInt( 3491 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */ 3492 void** ptrarray1, /**< first pointer array where an element is to be deleted */ 3493 void** ptrarray2, /**< second pointer array where an element is to be deleted */ 3494 int* intarray, /**< int array where an element is to be deleted */ 3495 int pos, /**< array position of element to be deleted */ 3496 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3497 ); 3498 3499 /** delete the element at the given position from five joint arrays of Long/pointer/pointer/ints/ints, sorted by first array in non-decreasing order */ 3500 SCIP_EXPORT 3501 void SCIPsortedvecDelPosLongPtrPtrIntInt( 3502 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */ 3503 void** ptrarray1, /**< first pointer array where an element is to be deleted */ 3504 void** ptrarray2, /**< second pointer array where an element is to be deleted */ 3505 int* intarray1, /**< first int array where an element is to be deleted */ 3506 int* intarray2, /**< second int array where an element is to be deleted */ 3507 int pos, /**< array position of element to be deleted */ 3508 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3509 ); 3510 3511 /** delete the element at the given position from five joint arrays of Long/pointer/pointer/Bool/ints, sorted by first array in non-decreasing order */ 3512 SCIP_EXPORT 3513 void SCIPsortedvecDelPosLongPtrPtrBoolInt( 3514 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */ 3515 void** ptrarray1, /**< first pointer array where an element is to be deleted */ 3516 void** ptrarray2, /**< second pointer array where an element is to be deleted */ 3517 SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be deleted */ 3518 int* intarray, /**< int array where an element is to be deleted */ 3519 int pos, /**< array position of element to be deleted */ 3520 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3521 ); 3522 3523 /** delete the element at the given position from five joint arrays of pointer/ints/ints/Bool/Bool, sorted by first array in non-decreasing order */ 3524 SCIP_EXPORT 3525 void SCIPsortedvecDelPosPtrIntIntBoolBool( 3526 void** ptrarray, /**< pointer array to be sorted */ 3527 int* intarray1, /**< first int array to be permuted in the same way */ 3528 int* intarray2, /**< second int array to be permuted in the same way */ 3529 SCIP_Bool* boolarray1, /**< first SCIP_Bool array to be permuted in the same way */ 3530 SCIP_Bool* boolarray2, /**< second SCIP_Bool array to be permuted in the same way */ 3531 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 3532 int pos, /**< array position of element to be deleted */ 3533 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3534 ); 3535 3536 /** delete the element at the given position from six joint arrays of ints/pointer/ints/ints/Bool/Bool, sorted by first array in non-decreasing order */ 3537 SCIP_EXPORT 3538 void SCIPsortedvecDelPosIntPtrIntIntBoolBool( 3539 int* intarray1, /**< int array to be sorted */ 3540 void** ptrarray, /**< pointer array to be permuted in the same way */ 3541 int* intarray2, /**< second int array to be permuted in the same way */ 3542 int* intarray3, /**< thrid int array to be permuted in the same way */ 3543 SCIP_Bool* boolarray1, /**< first SCIP_Bool array to be permuted in the same way */ 3544 SCIP_Bool* boolarray2, /**< second SCIP_Bool array to be permuted in the same way */ 3545 int pos, /**< array position of element to be deleted */ 3546 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3547 ); 3548 3549 /* downwards position deletion */ 3550 3551 /** delete the element at the given position from an index array in non-increasing order */ 3552 SCIP_EXPORT 3553 void SCIPsortedvecDelPosDownInd( 3554 int* indarray, /**< pointer to the index array where an element is to be deleted */ 3555 SCIP_DECL_SORTINDCOMP((*indcomp)), /**< data element comparator */ 3556 void* dataptr, /**< pointer to data field that is given to the external compare method */ 3557 int pos, /**< array position of element to be deleted */ 3558 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3559 ); 3560 3561 /** delete the element at the given position from an array of pointers in non-increasing order */ 3562 SCIP_EXPORT 3563 void SCIPsortedvecDelPosDownPtr( 3564 void** ptrarray, /**< pointer array where an element is to be deleted */ 3565 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 3566 int pos, /**< array position of element to be deleted */ 3567 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3568 ); 3569 3570 /** delete the element at the given position from two joint arrays of pointers/pointers, sorted by first array in non-increasing order */ 3571 SCIP_EXPORT 3572 void SCIPsortedvecDelPosDownPtrPtr( 3573 void** ptrarray1, /**< first pointer array where an element is to be deleted */ 3574 void** ptrarray2, /**< second pointer array where an element is to be deleted */ 3575 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 3576 int pos, /**< array position of element to be deleted */ 3577 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3578 ); 3579 3580 /** delete the element at the given position from two joint arrays of pointers/Reals, sorted by first array in non-increasing order */ 3581 SCIP_EXPORT 3582 void SCIPsortedvecDelPosDownPtrReal( 3583 void** ptrarray, /**< pointer array where an element is to be deleted */ 3584 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */ 3585 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 3586 int pos, /**< array position of element to be deleted */ 3587 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3588 ); 3589 3590 /** delete the element at the given position from two joint arrays of pointers/ints, sorted by first array in non-increasing order */ 3591 SCIP_EXPORT 3592 void SCIPsortedvecDelPosDownPtrInt( 3593 void** ptrarray, /**< pointer array where an element is to be deleted */ 3594 int* intarray, /**< int array where an element is to be deleted */ 3595 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 3596 int pos, /**< array position of element to be deleted */ 3597 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3598 ); 3599 3600 /** delete the element at the given position from two joint arrays of pointers/Bools, sorted by first array in non-increasing order */ 3601 SCIP_EXPORT 3602 void SCIPsortedvecDelPosDownPtrBool( 3603 void** ptrarray, /**< pointer array where an element is to be inserted */ 3604 SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be inserted */ 3605 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 3606 int pos, /**< array position of element to be deleted */ 3607 int* len /**< pointer to length of arrays (will be increased by 1) */ 3608 ); 3609 3610 /** delete the element at the given position from three joint arrays of pointers/ints/ints, sorted by first array in non-increasing order */ 3611 SCIP_EXPORT 3612 void SCIPsortedvecDelPosDownPtrIntInt( 3613 void** ptrarray, /**< pointer array where an element is to be deleted */ 3614 int* intarray1, /**< first int array where an element is to be deleted */ 3615 int* intarray2, /**< second int array where an element is to be deleted */ 3616 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 3617 int pos, /**< array position of element to be deleted */ 3618 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3619 ); 3620 3621 /** delete the element at the given position from three joint arrays of pointers/Reals/ints, sorted by first array in non-increasing order */ 3622 SCIP_EXPORT 3623 void SCIPsortedvecDelPosDownPtrRealInt( 3624 void** ptrarray, /**< pointer array where an element is to be deleted */ 3625 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */ 3626 int* intarray, /**< int array where an element is to be deleted */ 3627 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 3628 int pos, /**< array position of element to be deleted */ 3629 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3630 ); 3631 3632 /** delete the element at the given position from three joint arrays of pointers/Reals/Bools, sorted by first array in non-increasing order */ 3633 SCIP_EXPORT 3634 void SCIPsortedvecDelPosDownPtrRealBool( 3635 void** ptrarray, /**< pointer array where an element is to be deleted */ 3636 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */ 3637 SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be deleted */ 3638 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 3639 int pos, /**< array position of element to be deleted */ 3640 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3641 ); 3642 3643 /** delete the element at the given position from three joint arrays of pointers/pointers/Ints, sorted by first array in non-increasing order */ 3644 SCIP_EXPORT 3645 void SCIPsortedvecDelPosDownPtrPtrInt( 3646 void** ptrarray1, /**< first pointer array where an element is to be deleted */ 3647 void** ptrarray2, /**< second pointer array where an element is to be deleted */ 3648 int* intarray, /**< int array where an element is to be deleted */ 3649 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 3650 int pos, /**< array position of element to be deleted */ 3651 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3652 ); 3653 3654 /** delete the element at the given position from three joint arrays of pointers/pointers/Reals, sorted by first array in non-increasing order */ 3655 SCIP_EXPORT 3656 void SCIPsortedvecDelPosDownPtrPtrReal( 3657 void** ptrarray1, /**< first pointer array where an element is to be deleted */ 3658 void** ptrarray2, /**< second pointer array where an element is to be deleted */ 3659 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */ 3660 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 3661 int pos, /**< array position of element to be deleted */ 3662 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3663 ); 3664 3665 /** delete the element at the given position from four joint arrays of pointers/pointers/ints/ints, sorted by first array in non-increasing order */ 3666 SCIP_EXPORT 3667 void SCIPsortedvecDelPosDownPtrPtrIntInt( 3668 void** ptrarray1, /**< first pointer array where an element is to be deleted */ 3669 void** ptrarray2, /**< second pointer array where an element is to be deleted */ 3670 int* intarray1, /**< first int array where an element is to be deleted */ 3671 int* intarray2, /**< second int array where an element is to be deleted */ 3672 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 3673 int pos, /**< array position of element to be deleted */ 3674 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3675 ); 3676 3677 /** delete the element at the given position from four joint arrays of pointers/Reals/ints/ints, sorted by first array in non-increasing order */ 3678 SCIP_EXPORT 3679 void SCIPsortedvecDelPosDownPtrRealIntInt( 3680 void** ptrarray, /**< pointer array where an element is to be deleted */ 3681 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */ 3682 int* intarray1, /**< first int array where an element is to be deleted */ 3683 int* intarray2, /**< second int array where an element is to be deleted */ 3684 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 3685 int pos, /**< array position of element to be deleted */ 3686 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3687 ); 3688 3689 /** deletes the element at the given position from four joint arrays of pointer/pointer/Reals/ints, sorted by first array in non-increasing order */ 3690 SCIP_EXPORT 3691 void SCIPsortedvecDelPosDownPtrPtrRealInt( 3692 void** ptrarray1, /**< first pointer array where an element is to be deleted */ 3693 void** ptrarray2, /**< second pointer array where an element is to be deleted */ 3694 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */ 3695 int* intarray, /**< int array where an element is to be deleted */ 3696 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 3697 int pos, /**< array position of element to be deleted */ 3698 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3699 ); 3700 3701 /** deletes the element at the given position from four joint arrays of pointer/pointer/Reals/bools, sorted by first array in non-increasing order */ 3702 SCIP_EXPORT 3703 void SCIPsortedvecDelPosDownPtrPtrRealBool( 3704 void** ptrarray1, /**< first pointer array where an element is to be deleted */ 3705 void** ptrarray2, /**< second pointer array where an element is to be deleted */ 3706 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */ 3707 SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be deleted */ 3708 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 3709 int pos, /**< array position of element to be deleted */ 3710 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3711 ); 3712 3713 /** deletes the element at the given position from four joint arrays of pointer/pointer/Longs/ints, sorted by first array in non-increasing order */ 3714 SCIP_EXPORT 3715 void SCIPsortedvecDelPosDownPtrPtrLongInt( 3716 void** ptrarray1, /**< first pointer array where an element is to be deleted */ 3717 void** ptrarray2, /**< second pointer array where an element is to be deleted */ 3718 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */ 3719 int* intarray, /**< int array where an element is to be deleted */ 3720 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 3721 int pos, /**< array position of element to be deleted */ 3722 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3723 ); 3724 3725 /** deletes the element at the given position from five joint arrays of pointer/pointer/Longs/ints/ints, sorted by first array in non-increasing order */ 3726 SCIP_EXPORT 3727 void SCIPsortedvecDelPosDownPtrPtrLongIntInt( 3728 void** ptrarray1, /**< first pointer array where an element is to be deleted */ 3729 void** ptrarray2, /**< second pointer array where an element is to be deleted */ 3730 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */ 3731 int* intarray1, /**< first int array where an element is to be deleted */ 3732 int* intarray2, /**< second int array where an element is to be deleted */ 3733 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 3734 int pos, /**< array position of element to be deleted */ 3735 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3736 ); 3737 3738 /** delete the element at the given position from an array of Reals, sorted in non-increasing order */ 3739 SCIP_EXPORT 3740 void SCIPsortedvecDelPosDownReal( 3741 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */ 3742 int pos, /**< array position of element to be deleted */ 3743 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3744 ); 3745 3746 3747 /** delete the element at the given position from three joint arrays of Reals/Bools/pointers, sorted by first array in non-increasing order */ 3748 SCIP_EXPORT 3749 void SCIPsortedvecDelPosDownRealBoolPtr( 3750 SCIP_Real* realarray, /**< SCIP_Real array to be sorted */ 3751 SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */ 3752 void** ptrarray, /**< pointer array to be permuted in the same way */ 3753 int pos, /**< array position of element to be deleted */ 3754 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3755 ); 3756 3757 /** delete the element at the given position from two joint arrays of Reals/pointers, sorted by first array in non-increasing order */ 3758 SCIP_EXPORT 3759 void SCIPsortedvecDelPosDownRealPtr( 3760 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */ 3761 void** ptrarray, /**< pointer array where an element is to be deleted */ 3762 int pos, /**< array position of element to be deleted */ 3763 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3764 ); 3765 3766 /** delete the element at the given position from two joint arrays of Reals/ints, sorted by first array in non-increasing order */ 3767 SCIP_EXPORT 3768 void SCIPsortedvecDelPosDownRealInt( 3769 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */ 3770 int* intarray, /**< pointer array where an element is to be deleted */ 3771 int pos, /**< array position of element to be deleted */ 3772 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3773 ); 3774 3775 /** delete the element at the given position from two joint arrays of Reals/ints, sorted by first array in non-increasing order */ 3776 SCIP_EXPORT 3777 void SCIPsortedvecDelPosDownRealIntInt( 3778 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */ 3779 int* intarray1, /**< first int array where an element is to be deleted */ 3780 int* intarray2, /**< second int array where an element is to be deleted */ 3781 int pos, /**< array position of element to be deleted */ 3782 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3783 ); 3784 3785 /** delete the element at the given position from three joint arrays of Reals/ints/Longs, sorted by first array in non-increasing order */ 3786 SCIP_EXPORT 3787 void SCIPsortedvecDelPosDownRealIntLong( 3788 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */ 3789 int* intarray, /**< int array where an element is to be deleted */ 3790 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */ 3791 int pos, /**< array position of element to be deleted */ 3792 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3793 ); 3794 3795 /** delete the element at the given position from three joint arrays of Reals/ints/Pointer, sorted by first array in non-increasing order */ 3796 SCIP_EXPORT 3797 void SCIPsortedvecDelPosDownRealIntPtr( 3798 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */ 3799 int* intarray, /**< int array where an element is to be deleted */ 3800 void** ptrarray, /**< pointer array where an element is to be deleted */ 3801 int pos, /**< array position of element to be deleted */ 3802 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3803 ); 3804 3805 /** delete the element at the given position from three joint arrays of Reals/Reals/ints, sorted by first array in non-increasing order */ 3806 SCIP_EXPORT 3807 void SCIPsortedvecDelPosDownRealRealInt( 3808 SCIP_Real* realarray1, /**< first SCIP_Real array where an element is to be deleted */ 3809 SCIP_Real* realarray2, /**< second SCIP_Real array where an element is to be deleted */ 3810 int* intarray, /**< integer array where an element is to be deleted */ 3811 int pos, /**< array position of element to be deleted */ 3812 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3813 ); 3814 3815 /** delete the element at the given position from three joint arrays of Reals/Reals/Pointer, sorted by first array in non-increasing order */ 3816 SCIP_EXPORT 3817 void SCIPsortedvecDelPosDownRealRealPtr( 3818 SCIP_Real* realarray1, /**< first SCIP_Real array where an element is to be deleted */ 3819 SCIP_Real* realarray2, /**< second SCIP_Real array where an element is to be deleted */ 3820 void** ptrarray, /**< pointer array where an element is to be deleted */ 3821 int pos, /**< array position of element to be deleted */ 3822 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3823 ); 3824 3825 /** delete the element at the given position from three joint arrays of Reals/Reals/Pointer/Pointer, sorted by first array in non-increasing order */ 3826 SCIP_EXPORT 3827 void SCIPsortedvecDelPosDownRealRealPtrPtr( 3828 SCIP_Real* realarray1, /**< first SCIP_Real array where an element is to be deleted */ 3829 SCIP_Real* realarray2, /**< second SCIP_Real array where an element is to be deleted */ 3830 void** ptrarray1, /**< pointer array where an element is to be deleted */ 3831 void** ptrarray2, /**< pointer array where an element is to be deleted */ 3832 int pos, /**< array position of element to be deleted */ 3833 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3834 ); 3835 3836 /** delete the element at the given position from three joint arrays of Reals/Reals/Pointer, sorted by first array in non-increasing order */ 3837 SCIP_EXPORT 3838 void SCIPsortedvecDelPosDownRealPtrPtr( 3839 SCIP_Real* realarray, /**< first SCIP_Real array where an element is to be deleted */ 3840 void** ptrarray1, /**< first pointer array where an element is to be deleted */ 3841 void** ptrarray2, /**< second pointer array where an element is to be deleted */ 3842 int pos, /**< array position of element to be deleted */ 3843 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3844 ); 3845 3846 /** delete the element at the given position from four joint arrays of Reals/pointers/pointers/ints, sorted by first array in non-increasing order */ 3847 SCIP_EXPORT 3848 void SCIPsortedvecDelPosDownRealPtrPtrInt( 3849 SCIP_Real* realarray, /**< first SCIP_Real array where an element is to be deleted */ 3850 void** ptrarray1, /**< first pointer array where an element is to be deleted */ 3851 void** ptrarray2, /**< second pointer array where an element is to be deleted */ 3852 int* intarray, /**< int array where an element is to be deleted */ 3853 int pos, /**< array position of element to be deleted */ 3854 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3855 ); 3856 3857 /** delete the element at the given position from five joint arrays of Reals/pointers/pointers/ints/ints, sorted by first array in non-increasing order */ 3858 SCIP_EXPORT 3859 void SCIPsortedvecDelPosDownRealPtrPtrIntInt( 3860 SCIP_Real* realarray, /**< first SCIP_Real array where an element is to be deleted */ 3861 void** ptrarray1, /**< first pointer array where an element is to be deleted */ 3862 void** ptrarray2, /**< second pointer array where an element is to be deleted */ 3863 int* intarray1, /**< int array where an element is to be deleted */ 3864 int* intarray2, /**< int array where an element is to be deleted */ 3865 int pos, /**< array position of element to be deleted */ 3866 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3867 ); 3868 3869 /** delete the element at the given position from four joint arrays of Reals/Long/Reals/ints, sorted by first array in non-increasing order */ 3870 SCIP_EXPORT 3871 void SCIPsortedvecDelPosDownRealLongRealInt( 3872 SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be deleted */ 3873 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */ 3874 SCIP_Real* realarray3, /**< SCIP_Real array where an element is to be deleted */ 3875 int* intarray, /**< int array where an element is to be deleted */ 3876 int pos, /**< array position of element to be deleted */ 3877 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3878 ); 3879 3880 /** delete the element at the given position from four joint arrays of Reals/Reals/ints/ints, sorted by first array in non-increasing order */ 3881 SCIP_EXPORT 3882 void SCIPsortedvecDelPosDownRealRealIntInt( 3883 SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be deleted */ 3884 SCIP_Real* realarray2, /**< SCIP_Real array where an element is to be deleted */ 3885 int* intarray1, /**< int array where an element is to be deleted */ 3886 int* intarray2, /**< int array where an element is to be deleted */ 3887 int pos, /**< array position of element to be deleted */ 3888 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3889 ); 3890 3891 /** delete the element at the given position from four joint arrays of Reals/Reals/Reals/ints, sorted by first array in non-increasing order */ 3892 SCIP_EXPORT 3893 void SCIPsortedvecDelPosDownRealRealRealInt( 3894 SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be deleted */ 3895 SCIP_Real* realarray2, /**< SCIP_Real array where an element is to be deleted */ 3896 SCIP_Real* realarray3, /**< SCIP_Real array where an element is to be deleted */ 3897 int* intarray, /**< int array where an element is to be deleted */ 3898 int pos, /**< array position of element to be deleted */ 3899 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3900 ); 3901 3902 /** delete the element at the given position from four joint arrays of Reals/Reals/Reals/pointers, sorted by first array in non-increasing order */ 3903 SCIP_EXPORT 3904 void SCIPsortedvecDelPosDownRealRealRealPtr( 3905 SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be deleted */ 3906 SCIP_Real* realarray2, /**< SCIP_Real array where an element is to be deleted */ 3907 SCIP_Real* realarray3, /**< SCIP_Real array where an element is to be deleted */ 3908 void** ptrarray, /**< pointer array where an element is to be deleted */ 3909 int pos, /**< array position of element to be deleted */ 3910 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3911 ); 3912 3913 /** delete the element at the given position from five joint arrays of Reals/Reals/Reals/Bools/pointers, sorted by first array in non-increasing order */ 3914 SCIP_EXPORT 3915 void SCIPsortedvecDelPosDownRealRealRealBoolPtr( 3916 SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be deleted */ 3917 SCIP_Real* realarray2, /**< SCIP_Real array where an element is to be deleted */ 3918 SCIP_Real* realarray3, /**< SCIP_Real array where an element is to be deleted */ 3919 SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be deleted */ 3920 void** ptrarray, /**< pointer array where an element is to be deleted */ 3921 int pos, /**< array position of element to be deleted */ 3922 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3923 ); 3924 3925 /** delete the element at the given position from six joint arrays of Reals/Reals/Reals/Bools/Bools/pointers, sorted by first array in non-increasing order */ 3926 SCIP_EXPORT 3927 void SCIPsortedvecDelPosDownRealRealRealBoolBoolPtr( 3928 SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be deleted */ 3929 SCIP_Real* realarray2, /**< SCIP_Real array where an element is to be deleted */ 3930 SCIP_Real* realarray3, /**< SCIP_Real array where an element is to be deleted */ 3931 SCIP_Bool* boolarray1, /**< SCIP_Bool array where an element is to be deleted */ 3932 SCIP_Bool* boolarray2, /**< SCIP_Bool array where an element is to be deleted */ 3933 void** ptrarray, /**< pointer array where an element is to be deleted */ 3934 int pos, /**< array position of element to be deleted */ 3935 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3936 ); 3937 3938 /** delete the element at the given position from an array of ints in non-increasing order */ 3939 SCIP_EXPORT 3940 void SCIPsortedvecDelPosDownInt( 3941 int* intarray, /**< int array where an element is to be deleted */ 3942 int pos, /**< array position of element to be deleted */ 3943 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3944 ); 3945 3946 /** delete the element at the given position from two joint arrays of ints/ints, sorted by first array in non-increasing order */ 3947 SCIP_EXPORT 3948 void SCIPsortedvecDelPosDownIntInt( 3949 int* intarray1, /**< int array where an element is to be deleted */ 3950 int* intarray2, /**< second int array where an element is to be deleted */ 3951 int pos, /**< array position of element to be deleted */ 3952 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3953 ); 3954 3955 /** delete the element at the given position from two joint arrays of ints/reals, sorted by first array in non-increasing order */ 3956 SCIP_EXPORT 3957 void SCIPsortedvecDelPosDownIntReal( 3958 int* intarray, /**< int array where an element is to be deleted */ 3959 SCIP_Real* realarray, /**< real array where an element is to be deleted */ 3960 int pos, /**< array position of element to be deleted */ 3961 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3962 ); 3963 3964 /** delete the element at the given position from three joint arrays of ints/ints/ints, sorted by first array in non-increasing order */ 3965 SCIP_EXPORT 3966 void SCIPsortedvecDelPosDownIntIntInt( 3967 int* intarray1, /**< int array where an element is to be deleted */ 3968 int* intarray2, /**< second int array where an element is to be deleted */ 3969 int* intarray3, /**< third int array where an element is to be deleted */ 3970 int pos, /**< array position of element to be deleted */ 3971 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3972 ); 3973 3974 /** delete the element at the given position from three joint arrays of ints/ints/SCIP_Longint, sorted by first array in non-increasing order */ 3975 SCIP_EXPORT 3976 void SCIPsortedvecDelPosDownIntIntLong( 3977 int* intarray1, /**< int array where an element is to be deleted */ 3978 int* intarray2, /**< second int array where an element is to be deleted */ 3979 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */ 3980 int pos, /**< array position of element to be deleted */ 3981 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3982 ); 3983 3984 /** delete the element at the given position from three joint arrays of ints/ints/pointers, sorted by first array in non-increasing order */ 3985 SCIP_EXPORT 3986 void SCIPsortedvecDelPosDownIntIntPtr( 3987 int* intarray1, /**< int array where an element is to be deleted */ 3988 int* intarray2, /**< second int array where an element is to be deleted */ 3989 void** ptrarray, /**< pointer array where an element is to be deleted */ 3990 int pos, /**< array position of element to be deleted */ 3991 int* len /**< pointer to length of arrays (will be decreased by 1) */ 3992 ); 3993 3994 /** delete the element at the given position from three joint arrays of ints/ints/Reals, sorted by first array in non-increasing order */ 3995 SCIP_EXPORT 3996 void SCIPsortedvecDelPosDownIntIntReal( 3997 int* intarray1, /**< int array where an element is to be deleted */ 3998 int* intarray2, /**< second int array where an element is to be deleted */ 3999 SCIP_Real* realarray, /**< real array where an element is to be deleted */ 4000 int pos, /**< array position of element to be deleted */ 4001 int* len /**< pointer to length of arrays (will be decreased by 1) */ 4002 ); 4003 4004 /** delete the element at the given position from two joint arrays of ints/pointers, sorted by first array in non-increasing order */ 4005 SCIP_EXPORT 4006 void SCIPsortedvecDelPosDownIntPtr( 4007 int* intarray, /**< int array where an element is to be deleted */ 4008 void** ptrarray, /**< pointer array where an element is to be deleted */ 4009 int pos, /**< array position of element to be deleted */ 4010 int* len /**< pointer to length of arrays (will be decreased by 1) */ 4011 ); 4012 4013 /** delete the element at the given position from four joint arrays of ints/ints/ints/pointers, sorted by first array in non-decreasing order */ 4014 SCIP_EXPORT 4015 void SCIPsortedvecDelPosDownIntIntIntPtr( 4016 int* intarray1, /**< int array where an element is to be deleted */ 4017 int* intarray2, /**< int array where an element is to be deleted */ 4018 int* intarray3, /**< int array where an element is to be deleted */ 4019 void** ptrarray, /**< pointer array where an element is to be deleted */ 4020 int pos, /**< array position of element to be deleted */ 4021 int* len /**< pointer to length of arrays (will be decreased by 1) */ 4022 ); 4023 4024 /** delete the element at the given position from four joint arrays of ints/ints/ints/reals, sorted by first array in non-decreasing order */ 4025 SCIP_EXPORT 4026 void SCIPsortedvecDelPosDownIntIntIntReal( 4027 int* intarray1, /**< int array where an element is to be deleted */ 4028 int* intarray2, /**< int array where an element is to be deleted */ 4029 int* intarray3, /**< int array where an element is to be deleted */ 4030 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */ 4031 int pos, /**< array position of element to be deleted */ 4032 int* len /**< pointer to length of arrays (will be decreased by 1) */ 4033 ); 4034 4035 /** delete the element at the given position from four joint arrays of ints/pointers/ints/reals, sorted by first array in non-decreasing order */ 4036 SCIP_EXPORT 4037 void SCIPsortedvecDelPosDownIntPtrIntReal( 4038 int* intarray1, /**< int array where an element is to be deleted */ 4039 void** ptrarray, /**< pointer array where an element is to be deleted */ 4040 int* intarray2, /**< int array where an element is to be deleted */ 4041 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */ 4042 int pos, /**< array position of element to be deleted */ 4043 int* len /**< pointer to length of arrays (will be decreased by 1) */ 4044 ); 4045 4046 /** delete the element at the given position from an array of Longints, sorted in non-increasing order */ 4047 SCIP_EXPORT 4048 void SCIPsortedvecDelPosDownLong( 4049 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */ 4050 int pos, /**< array position of element to be deleted */ 4051 int* len /**< pointer to length of arrays (will be decreased by 1) */ 4052 ); 4053 4054 /** delete the element at the given position from two arrays of Long/pointer, sorted by the first array in non-increasing order */ 4055 SCIP_EXPORT 4056 void SCIPsortedvecDelPosDownLongPtr( 4057 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */ 4058 void** ptrarray, /**< pointer array where an element is to be deleted */ 4059 int pos, /**< array position of element to be deleted */ 4060 int* len /**< pointer to length of arrays (will be decreased by 1) */ 4061 ); 4062 4063 /** delete the element at the given position from three joint arrays of Long/pointer/int, sorted by the first array in non-increasing order */ 4064 SCIP_EXPORT 4065 void SCIPsortedvecDelPosDownLongPtrInt( 4066 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */ 4067 void** ptrarray, /**< pointer array where an element is to be deleted */ 4068 int* intarray, /**< int array where an element is to be deleted */ 4069 int pos, /**< array position of element to be deleted */ 4070 int* len /**< pointer to length of arrays (will be decreased by 1) */ 4071 ); 4072 4073 /** delete the element at the given position from three joint arrays of Long/pointer/Real/Bool, sorted by the first array in non-increasing order */ 4074 SCIP_EXPORT 4075 void SCIPsortedvecDelPosDownLongPtrRealBool( 4076 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */ 4077 void** ptrarray, /**< pointer array where an element is to be deleted */ 4078 SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */ 4079 SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be deleted */ 4080 int pos, /**< array position of element to be deleted */ 4081 int* len /**< pointer to length of arrays (will be decreased by 1) */ 4082 ); 4083 4084 /** delete the element at the given position from five joint arrays of Long/pointer/Real/Real/Bool, sorted by the first array in non-increasing order */ 4085 SCIP_EXPORT 4086 void SCIPsortedvecDelPosDownLongPtrRealRealBool( 4087 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */ 4088 void** ptrarray, /**< pointer array where an element is to be deleted */ 4089 SCIP_Real* realarray, /**< first SCIP_Real array where an element is to be deleted */ 4090 SCIP_Real* realarray2, /**< second SCIP_Real array where an element is to be deleted */ 4091 SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be deleted */ 4092 int pos, /**< array position of element to be deleted */ 4093 int* len /**< pointer to length of arrays (will be decreased by 1) */ 4094 ); 4095 4096 /** delete the element at the given position from six joint arrays of Long/pointer/Real/Real/int/Bool, sorted by the first array in non-increasing order */ 4097 SCIP_EXPORT 4098 void SCIPsortedvecDelPosDownLongPtrRealRealIntBool( 4099 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */ 4100 void** ptrarray, /**< pointer array where an element is to be deleted */ 4101 SCIP_Real* realarray, /**< first SCIP_Real array where an element is to be deleted */ 4102 SCIP_Real* realarray2, /**< second SCIP_Real array where an element is to be deleted */ 4103 int* intarray, /**< int array where an element is to be deleted */ 4104 SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be deleted */ 4105 int pos, /**< array position of element to be deleted */ 4106 int* len /**< pointer to length of arrays (will be decreased by 1) */ 4107 ); 4108 4109 4110 /** delete the element at the given position from four joint arrays of Long/pointer/pointer/ints, sorted by first array in non-increasing order */ 4111 SCIP_EXPORT 4112 void SCIPsortedvecDelPosDownLongPtrPtrInt( 4113 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */ 4114 void** ptrarray1, /**< first pointer array where an element is to be deleted */ 4115 void** ptrarray2, /**< second pointer array where an element is to be deleted */ 4116 int* intarray, /**< int array where an element is to be deleted */ 4117 int pos, /**< array position of element to be deleted */ 4118 int* len /**< pointer to length of arrays (will be decreased by 1) */ 4119 ); 4120 4121 /** delete the element at the given position from five joint arrays of Long/pointer/pointer/ints/ints, sorted by first array in non-increasing order */ 4122 SCIP_EXPORT 4123 void SCIPsortedvecDelPosDownLongPtrPtrIntInt( 4124 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */ 4125 void** ptrarray1, /**< first pointer array where an element is to be deleted */ 4126 void** ptrarray2, /**< second pointer array where an element is to be deleted */ 4127 int* intarray1, /**< first int array where an element is to be deleted */ 4128 int* intarray2, /**< second int array where an element is to be deleted */ 4129 int pos, /**< array position of element to be deleted */ 4130 int* len /**< pointer to length of arrays (will be decreased by 1) */ 4131 ); 4132 4133 /** delete the element at the given position from five joint arrays of Long/pointer/pointer/Bool/ints, sorted by first array in non-increasing order */ 4134 SCIP_EXPORT 4135 void SCIPsortedvecDelPosDownLongPtrPtrBoolInt( 4136 SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */ 4137 void** ptrarray1, /**< first pointer array where an element is to be deleted */ 4138 void** ptrarray2, /**< second pointer array where an element is to be deleted */ 4139 SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be deleted */ 4140 int* intarray, /**< int array where an element is to be deleted */ 4141 int pos, /**< array position of element to be deleted */ 4142 int* len /**< pointer to length of arrays (will be decreased by 1) */ 4143 ); 4144 4145 /** delete the element at the given position from five joint arrays of pointer/ints/ints/Bool/Bool, sorted by first array in non-increasing order */ 4146 SCIP_EXPORT 4147 void SCIPsortedvecDelPosDownPtrIntIntBoolBool( 4148 void** ptrarray, /**< pointer array to be sorted */ 4149 int* intarray1, /**< first int array to be permuted in the same way */ 4150 int* intarray2, /**< second int array to be permuted in the same way */ 4151 SCIP_Bool* boolarray1, /**< first SCIP_Bool array to be permuted in the same way */ 4152 SCIP_Bool* boolarray2, /**< second SCIP_Bool array to be permuted in the same way */ 4153 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 4154 int pos, /**< array position of element to be deleted */ 4155 int* len /**< pointer to length of arrays (will be decreased by 1) */ 4156 ); 4157 4158 /** delete the element at the given position from six joint arrays of ints/pointer/ints/ints/Bool/Bool, sorted by first array in non-increasing order */ 4159 SCIP_EXPORT 4160 void SCIPsortedvecDelPosDownIntPtrIntIntBoolBool( 4161 int* intarray1, /**< int array to be sorted */ 4162 void** ptrarray, /**< pointer array to be permuted in the same way */ 4163 int* intarray2, /**< second int array to be permuted in the same way */ 4164 int* intarray3, /**< thrid int array to be permuted in the same way */ 4165 SCIP_Bool* boolarray1, /**< first SCIP_Bool array to be permuted in the same way */ 4166 SCIP_Bool* boolarray2, /**< second SCIP_Bool array to be permuted in the same way */ 4167 int pos, /**< array position of element to be deleted */ 4168 int* len /**< pointer to length of arrays (will be decreased by 1) */ 4169 ); 4170 4171 4172 /* upwards binary search */ 4173 4174 /** Finds the position at which 'val' is located in the sorted vector by binary search. 4175 * If the element exists, the method returns TRUE and stores the position of the element in '*pos'. 4176 * If the element does not exist, the method returns FALSE and stores the position of the element that follows 4177 * 'val' in the ordering in '*pos', i.e., '*pos' is the position at which 'val' would be inserted. 4178 * Note that if the element is not found, '*pos' may be equal to len if all existing elements are smaller than 'val'. 4179 */ 4180 SCIP_EXPORT 4181 SCIP_Bool SCIPsortedvecFindInd( 4182 int* indarray, /**< index array to be searched */ 4183 SCIP_DECL_SORTINDCOMP((*indcomp)), /**< data element comparator */ 4184 void* dataptr, /**< pointer to data field that is given to the external compare method */ 4185 int val, /**< value to search */ 4186 int len, /**< length of array */ 4187 int* pos /**< pointer to store position of element */ 4188 ); 4189 4190 /** Finds the position at which 'val' is located in the sorted vector by binary search. 4191 * If the element exists, the method returns TRUE and stores the position of the element in '*pos'. 4192 * If the element does not exist, the method returns FALSE and stores the position of the element that follows 4193 * 'val' in the ordering in '*pos', i.e., '*pos' is the position at which 'val' would be inserted. 4194 * Note that if the element is not found, '*pos' may be equal to len if all existing elements are smaller than 'val'. 4195 */ 4196 SCIP_EXPORT 4197 SCIP_Bool SCIPsortedvecFindPtr( 4198 void** ptrarray, /**< pointer array to be searched */ 4199 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 4200 void* val, /**< value to search */ 4201 int len, /**< length of array */ 4202 int* pos /**< pointer to store position of element */ 4203 ); 4204 4205 /** Finds the position at which 'val' is located in the sorted vector by binary search. 4206 * If the element exists, the method returns TRUE and stores the position of the element in '*pos'. 4207 * If the element does not exist, the method returns FALSE and stores the position of the element that follows 4208 * 'val' in the ordering in '*pos', i.e., '*pos' is the position at which 'val' would be inserted. 4209 * Note that if the element is not found, '*pos' may be equal to len if all existing elements are smaller than 'val'. 4210 */ 4211 SCIP_EXPORT 4212 SCIP_Bool SCIPsortedvecFindReal( 4213 SCIP_Real* realarray, /**< SCIP_Real array to be searched */ 4214 SCIP_Real val, /**< value to search */ 4215 int len, /**< length of array */ 4216 int* pos /**< pointer to store position of element */ 4217 ); 4218 4219 /** Finds the position at which 'val' is located in the sorted vector by binary search. 4220 * If the element exists, the method returns TRUE and stores the position of the element in '*pos'. 4221 * If the element does not exist, the method returns FALSE and stores the position of the element that follows 4222 * 'val' in the ordering in '*pos', i.e., '*pos' is the position at which 'val' would be inserted. 4223 * Note that if the element is not found, '*pos' may be equal to len if all existing elements are smaller than 'val'. 4224 */ 4225 SCIP_EXPORT 4226 SCIP_Bool SCIPsortedvecFindInt( 4227 int* intarray, /**< int array to be searched */ 4228 int val, /**< value to search */ 4229 int len, /**< length of array */ 4230 int* pos /**< pointer to store position of element */ 4231 ); 4232 4233 /** Finds the position at which 'val' is located in the sorted vector by binary search. 4234 * If the element exists, the method returns TRUE and stores the position of the element in '*pos'. 4235 * If the element does not exist, the method returns FALSE and stores the position of the element that follows 4236 * 'val' in the ordering in '*pos', i.e., '*pos' is the position at which 'val' would be inserted. 4237 * Note that if the element is not found, '*pos' may be equal to len if all existing elements are smaller than 'val'. 4238 */ 4239 SCIP_EXPORT 4240 SCIP_Bool SCIPsortedvecFindLong( 4241 SCIP_Longint* longarray, /**< SCIP_Longint array to be searched */ 4242 SCIP_Longint val, /**< value to search */ 4243 int len, /**< length of array */ 4244 int* pos /**< pointer to store position of element */ 4245 ); 4246 4247 4248 /* downwards binary search */ 4249 4250 /** Finds the position at which 'val' is located in the sorted vector by binary search. 4251 * If the element exists, the method returns TRUE and stores the position of the element in '*pos'. 4252 * If the element does not exist, the method returns FALSE and stores the position of the element that follows 4253 * 'val' in the ordering in '*pos', i.e., '*pos' is the position at which 'val' would be inserted. 4254 * Note that if the element is not found, '*pos' may be equal to len if all existing elements are smaller than 'val'. 4255 */ 4256 SCIP_EXPORT 4257 SCIP_Bool SCIPsortedvecFindDownInd( 4258 int* indarray, /**< index array to be searched */ 4259 SCIP_DECL_SORTINDCOMP((*indcomp)), /**< data element comparator */ 4260 void* dataptr, /**< pointer to data field that is given to the external compare method */ 4261 int val, /**< value to search */ 4262 int len, /**< length of array */ 4263 int* pos /**< pointer to store position of element */ 4264 ); 4265 4266 /** Finds the position at which 'val' is located in the sorted vector by binary search. 4267 * If the element exists, the method returns TRUE and stores the position of the element in '*pos'. 4268 * If the element does not exist, the method returns FALSE and stores the position of the element that follows 4269 * 'val' in the ordering in '*pos', i.e., '*pos' is the position at which 'val' would be inserted. 4270 * Note that if the element is not found, '*pos' may be equal to len if all existing elements are smaller than 'val'. 4271 */ 4272 SCIP_EXPORT 4273 SCIP_Bool SCIPsortedvecFindDownPtr( 4274 void** ptrarray, /**< pointer array to be searched */ 4275 SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */ 4276 void* val, /**< value to search */ 4277 int len, /**< length of array */ 4278 int* pos /**< pointer to store position of element */ 4279 ); 4280 4281 /** Finds the position at which 'val' is located in the sorted vector by binary search. 4282 * If the element exists, the method returns TRUE and stores the position of the element in '*pos'. 4283 * If the element does not exist, the method returns FALSE and stores the position of the element that follows 4284 * 'val' in the ordering in '*pos', i.e., '*pos' is the position at which 'val' would be inserted. 4285 * Note that if the element is not found, '*pos' may be equal to len if all existing elements are smaller than 'val'. 4286 */ 4287 SCIP_EXPORT 4288 SCIP_Bool SCIPsortedvecFindDownReal( 4289 SCIP_Real* realarray, /**< SCIP_Real array to be searched */ 4290 SCIP_Real val, /**< value to search */ 4291 int len, /**< length of array */ 4292 int* pos /**< pointer to store position of element */ 4293 ); 4294 4295 /** Finds the position at which 'val' is located in the sorted vector by binary search. 4296 * If the element exists, the method returns TRUE and stores the position of the element in '*pos'. 4297 * If the element does not exist, the method returns FALSE and stores the position of the element that follows 4298 * 'val' in the ordering in '*pos', i.e., '*pos' is the position at which 'val' would be inserted. 4299 * Note that if the element is not found, '*pos' may be equal to len if all existing elements are smaller than 'val'. 4300 */ 4301 SCIP_EXPORT 4302 SCIP_Bool SCIPsortedvecFindDownInt( 4303 int* intarray, /**< int array to be searched */ 4304 int val, /**< value to search */ 4305 int len, /**< length of array */ 4306 int* pos /**< pointer to store position of element */ 4307 ); 4308 4309 /** Finds the position at which 'val' is located in the sorted vector by binary search. 4310 * If the element exists, the method returns TRUE and stores the position of the element in '*pos'. 4311 * If the element does not exist, the method returns FALSE and stores the position of the element that follows 4312 * 'val' in the ordering in '*pos', i.e., '*pos' is the position at which 'val' would be inserted. 4313 * Note that if the element is not found, '*pos' may be equal to len if all existing elements are smaller than 'val'. 4314 */ 4315 SCIP_EXPORT 4316 SCIP_Bool SCIPsortedvecFindDownLong( 4317 SCIP_Longint* longarray, /**< SCIP_Longint array to be searched */ 4318 SCIP_Longint val, /**< value to search */ 4319 int len, /**< length of array */ 4320 int* pos /**< pointer to store position of element */ 4321 ); 4322 4323 /**@} */ 4324 4325 #ifdef __cplusplus 4326 } 4327 #endif 4328 4329 #endif 4330