Scippy

SCIP

Solving Constraint Integer Programs

pub_misc.h
Go to the documentation of this file.
1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2 /* */
3 /* This file is part of the program and library */
4 /* SCIP --- Solving Constraint Integer Programs */
5 /* */
6 /* Copyright (C) 2002-2016 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 email to scip@zib.de. */
13 /* */
14 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
15 
16 /**@file pub_misc.h
17  * @brief public data structures and miscellaneous methods
18  * @author Tobias Achterberg
19  * @author Gerald Gamrath
20  * @author Stefan Heinz
21  * @author Gregor Hendel
22  * @author Michael Winkler
23  * @author Kati Wolter
24  *
25  * This file contains a bunch of data structures and miscellaneous methods:
26  *
27  * - \ref DataStructures "Data structures"
28  * - \ref MiscellaneousMethods "Miscellaneous Methods"
29  */
30 
31 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
32 
33 #ifndef __SCIP_PUB_MISC_H__
34 #define __SCIP_PUB_MISC_H__
35 
36 /* on SunOS, the function finite(a) (for the SCIPisFinite macro below) is declared in ieeefp.h */
37 #ifdef __sun
38 #include <ieeefp.h>
39 #endif
40 #include <math.h>
41 
42 #include "scip/def.h"
43 #include "blockmemshell/memory.h"
44 #include "scip/type_retcode.h"
45 #include "scip/type_misc.h"
46 #include "scip/type_message.h"
47 #include "scip/type_var.h"
48 
49 /* in optimized mode some of the function are handled via defines, for that the structs are needed */
50 #ifdef NDEBUG
51 #include "scip/struct_misc.h"
52 #endif
53 
54 #ifdef __cplusplus
55 extern "C" {
56 #endif
57 
58 /*
59  * methods for statistical tests
60  */
61 
62 /**@defgroup STATISTICALTESTS Methods for statistical tests
63  *
64  * @{
65  */
66 
67 /** get critical value of a Student-T distribution for a given number of degrees of freedom at a confidence level */
68 extern
70  SCIP_CONFIDENCELEVEL clevel, /**< (one-sided) confidence level */
71  int df /**< degrees of freedom */
72  );
73 
74 /** compute a t-value for the hypothesis that x and y are from the same population; Assuming that
75  * x and y represent normally distributed random samples with equal variance, the returned value
76  * comes from a Student-T distribution with countx + county - 2 degrees of freedom; this
77  * value can be compared with a critical value (see also SCIPstudentTGetCriticalValue()) at
78  * a predefined confidence level for checking if x and y significantly differ in location
79  */
80 extern
82  SCIP_Real meanx, /**< the mean of the first distribution */
83  SCIP_Real meany, /**< the mean of the second distribution */
84  SCIP_Real variancex, /**< the variance of the x-distribution */
85  SCIP_Real variancey, /**< the variance of the y-distribution */
86  SCIP_Real countx, /**< number of samples of x */
87  SCIP_Real county /**< number of samples of y */
88  );
89 
90 /** returns the value of the Gauss error function evaluated at a given point */
91 extern
93  SCIP_Real x /**< value to evaluate */
94  );
95 
96 /** get critical value of a standard normal distribution at a given confidence level */
97 extern
99  SCIP_CONFIDENCELEVEL clevel /**< (one-sided) confidence level */
100  );
101 
102 /** calculates the cumulative distribution P(-infinity <= x <= value) that a normally distributed
103  * random variable x takes a value between -infinity and parameter \p value.
104  *
105  * The distribution is given by the respective mean and deviation. This implementation
106  * uses the error function erf().
107  */
108 extern
110  SCIP_Real mean, /**< the mean value of the distribution */
111  SCIP_Real variance, /**< the square of the deviation of the distribution */
112  SCIP_Real value /**< the upper limit of the calculated distribution integral */
113  );
114 
115 /**@} */
116 
117 /*
118  * GML graphical printing methods
119  * For a detailed format decription see http://docs.yworks.com/yfiles/doc/developers-guide/gml.html
120  */
121 
122 /**@defgroup GMLgraph GML graphical printing
123  *
124  * @{
125  */
126 
127 
128 /** writes a node section to the given graph file */
129 extern
130 void SCIPgmlWriteNode(
131  FILE* file, /**< file to write to */
132  unsigned int id, /**< id of the node */
133  const char* label, /**< label of the node */
134  const char* nodetype, /**< type of the node, or NULL */
135  const char* fillcolor, /**< color of the node's interior, or NULL */
136  const char* bordercolor /**< color of the node's border, or NULL */
137  );
138 
139 /** writes a node section including weight to the given graph file */
140 extern
142  FILE* file, /**< file to write to */
143  unsigned int id, /**< id of the node */
144  const char* label, /**< label of the node */
145  const char* nodetype, /**< type of the node, or NULL */
146  const char* fillcolor, /**< color of the node's interior, or NULL */
147  const char* bordercolor, /**< color of the node's border, or NULL */
148  SCIP_Real weight /**< weight of node */
149  );
150 
151 /** writes an edge section to the given graph file */
152 extern
153 void SCIPgmlWriteEdge(
154  FILE* file, /**< file to write to */
155  unsigned int source, /**< source node id of the node */
156  unsigned int target, /**< target node id of the edge */
157  const char* label, /**< label of the edge, or NULL */
158  const char* color /**< color of the edge, or NULL */
159  );
160 
161 /** writes an arc section to the given graph file */
162 extern
163 void SCIPgmlWriteArc(
164  FILE* file, /**< file to write to */
165  unsigned int source, /**< source node id of the node */
166  unsigned int target, /**< target node id of the edge */
167  const char* label, /**< label of the edge, or NULL */
168  const char* color /**< color of the edge, or NULL */
169  );
170 
171 /** writes the starting line to a GML graph file, does not open a file */
172 extern
174  FILE* file, /**< file to write to */
175  SCIP_Bool directed /**< is the graph directed */
176  );
177 
178 /** writes the ending lines to a GML graph file, does not close a file */
179 extern
181  FILE* file /**< file to close */
182  );
183 
184 /**@} */
185 
186 
187 /** @defgroup DataStructures Data Structures
188  *
189  * Below you find a list of available data structures
190  *
191  * @{
192  */
193 
194 
195 /*
196  * Sparse solution
197  */
198 
199 /**@defgroup SparseSol Sparse solution
200  *
201  * @{
202  */
203 
204 /** creates a sparse solution */
205 extern
207  SCIP_SPARSESOL** sparsesol, /**< pointer to store the created sparse solution */
208  SCIP_VAR** vars, /**< variables in the sparse solution, must not contain continuous variables */
209  int nvars, /**< number of variables to store, size of the lower and upper bound arrays */
210  SCIP_Bool cleared /**< should the lower and upper bound arrays be cleared (entries set to 0) */
211  );
212 
213 /** frees sparse solution */
214 extern
215 void SCIPsparseSolFree(
216  SCIP_SPARSESOL** sparsesol /**< pointer to a sparse solution */
217  );
218 
219 /** returns the variables in the given sparse solution */
220 extern
222  SCIP_SPARSESOL* sparsesol /**< a sparse solution */
223  );
224 
225 /** returns the number of variables in the given sparse solution */
226 extern
228  SCIP_SPARSESOL* sparsesol /**< a sparse solution */
229  );
230 
231 /** returns the the lower bound array for all variables for a given sparse solution */
232 extern
234  SCIP_SPARSESOL* sparsesol /**< a sparse solution */
235  );
236 
237 /** returns the the upper bound array for all variables for a given sparse solution */
238 extern
240  SCIP_SPARSESOL* sparsesol /**< a sparse solution */
241  );
242 
243 /** constructs the first solution of sparse solution (all variables are set to their lower bound value */
244 extern
246  SCIP_SPARSESOL* sparsesol, /**< sparse solutions */
247  SCIP_Longint* sol, /**< array to store the first solution */
248  int nvars /**< number of variables */
249  );
250 
251 /** constructs the next solution of the sparse solution and return whether there was one more or not */
252 extern
254  SCIP_SPARSESOL* sparsesol, /**< sparse solutions */
255  SCIP_Longint* sol, /**< current solution array which get changed to the next solution */
256  int nvars /**< number of variables */
257  );
258 
259 /**@} */
260 
261 
262 /*
263  * Queue
264  */
265 
266 /**@defgroup Queue Queue
267  *
268  * @{
269  */
270 
271 
272 /** creates a (circular) queue, best used if the size will be fixed or will not be increased that much */
273 extern
275  SCIP_QUEUE** queue, /**< pointer to the new queue */
276  int initsize, /**< initial number of available element slots */
277  SCIP_Real sizefac /**< memory growing factor applied, if more element slots are needed */
278  );
279 
280 
281 /** frees queue, but not the data elements themselves */
282 extern
283 void SCIPqueueFree(
284  SCIP_QUEUE** queue /**< pointer to a queue */
285  );
286 
287 /** clears the queue, but doesn't free the data elements themselves */
288 extern
289 void SCIPqueueClear(
290  SCIP_QUEUE* queue /**< queue */
291  );
292 
293 /** inserts element at the end of the queue */
294 extern
296  SCIP_QUEUE* queue, /**< queue */
297  void* elem /**< element to be inserted */
298  );
299 
300 /** removes and returns the first element of the queue */
301 extern
302 void* SCIPqueueRemove(
303  SCIP_QUEUE* queue /**< queue */
304  );
305 
306 /** returns the first element of the queue without removing it */
307 extern
308 void* SCIPqueueFirst(
309  SCIP_QUEUE* queue /**< queue */
310  );
311 
312 /** returns whether the queue is empty */
313 extern
315  SCIP_QUEUE* queue /**< queue */
316  );
317 
318 /** returns the number of elements in the queue */
319 extern
320 int SCIPqueueNElems(
321  SCIP_QUEUE* queue /**< queue */
322  );
323 
324 /**@} */
325 
326 /*
327  * Priority Queue
328  */
329 
330 /**@defgroup PriorityQueue Priority Queue
331  *
332  * @{
333  */
334 
335 /** creates priority queue */
336 extern
338  SCIP_PQUEUE** pqueue, /**< pointer to a priority queue */
339  int initsize, /**< initial number of available element slots */
340  SCIP_Real sizefac, /**< memory growing factor applied, if more element slots are needed */
341  SCIP_DECL_SORTPTRCOMP((*ptrcomp)) /**< data element comparator */
342  );
343 
344 /** frees priority queue, but not the data elements themselves */
345 extern
346 void SCIPpqueueFree(
347  SCIP_PQUEUE** pqueue /**< pointer to a priority queue */
348  );
349 
350 /** clears the priority queue, but doesn't free the data elements themselves */
351 extern
352 void SCIPpqueueClear(
353  SCIP_PQUEUE* pqueue /**< priority queue */
354  );
355 
356 /** inserts element into priority queue */
357 extern
359  SCIP_PQUEUE* pqueue, /**< priority queue */
360  void* elem /**< element to be inserted */
361  );
362 
363 /** removes and returns best element from the priority queue */
364 extern
365 void* SCIPpqueueRemove(
366  SCIP_PQUEUE* pqueue /**< priority queue */
367  );
368 
369 /** returns the best element of the queue without removing it */
370 extern
371 void* SCIPpqueueFirst(
372  SCIP_PQUEUE* pqueue /**< priority queue */
373  );
374 
375 /** returns the number of elements in the queue */
376 extern
377 int SCIPpqueueNElems(
378  SCIP_PQUEUE* pqueue /**< priority queue */
379  );
380 
381 /** returns the elements of the queue; changing the returned array may destroy the queue's ordering! */
382 extern
383 void** SCIPpqueueElems(
384  SCIP_PQUEUE* pqueue /**< priority queue */
385  );
386 
387 /**@} */
388 
389 
390 /*
391  * Hash Table
392  */
393 
394 /**@defgroup HashTable Hash Table
395  *
396  *@{
397  */
398 
399 /** returns a reasonable hash table size (a prime number) that is at least as large as the specified value */
400 extern
402  int minsize /**< minimal size of the hash table */
403  );
404 
405 /** creates a hash table */
406 extern
408  SCIP_HASHTABLE** hashtable, /**< pointer to store the created hash table */
409  BMS_BLKMEM* blkmem, /**< block memory used to store hash table entries */
410  int tablesize, /**< size of the hash table */
411  SCIP_DECL_HASHGETKEY((*hashgetkey)), /**< gets the key of the given element */
412  SCIP_DECL_HASHKEYEQ ((*hashkeyeq)), /**< returns TRUE iff both keys are equal */
413  SCIP_DECL_HASHKEYVAL((*hashkeyval)), /**< returns the hash value of the key */
414  void* userptr /**< user pointer */
415  );
416 
417 /** frees the hash table */
418 extern
419 void SCIPhashtableFree(
420  SCIP_HASHTABLE** hashtable /**< pointer to the hash table */
421  );
422 
423 /** removes all elements of the hash table
424  *
425  * @note From a performance point of view you should not fill and clear a hash table too often since the clearing can
426  * be expensive. Clearing is done by looping over all buckets and removing the hash table lists one-by-one.
427  *
428  * @deprecated Please use SCIPhashtableRemoveAll()
429  */
430 extern
431 void SCIPhashtableClear(
432  SCIP_HASHTABLE* hashtable /**< hash table */
433  );
434 
435 /** inserts element in hash table (multiple inserts of same element possible)
436  *
437  * @note A pointer to a hashtablelist returned by SCIPhashtableRetrieveNext() might get invalid when adding an element
438  * to the hash table, due to dynamic resizing.
439  */
440 extern
442  SCIP_HASHTABLE* hashtable, /**< hash table */
443  void* element /**< element to insert into the table */
444  );
445 
446 /** inserts element in hash table (multiple insertion of same element is checked and results in an error)
447  *
448  * @note A pointer to a hashtablelist returned by SCIPhashtableRetrieveNext() might get invalid when adding a new
449  * element to the hash table, due to dynamic resizing.
450  */
451 extern
453  SCIP_HASHTABLE* hashtable, /**< hash table */
454  void* element /**< element to insert into the table */
455  );
456 
457 /** retrieve element with key from hash table, returns NULL if not existing */
458 extern
460  SCIP_HASHTABLE* hashtable, /**< hash table */
461  void* key /**< key to retrieve */
462  );
463 
464 /** retrieve element with key from hash table, returns NULL if not existing
465  * can be used to retrieve all entries with the same key (one-by-one)
466  *
467  * @note The returned hashtablelist pointer might get invalid when adding a new element to the hash table.
468  */
469 extern
471  SCIP_HASHTABLE* hashtable, /**< hash table */
472  SCIP_HASHTABLELIST** hashtablelist, /**< input: entry in hash table list from which to start searching, or NULL
473  * output: entry in hash table list corresponding to element after
474  * retrieved one, or NULL */
475  void* key /**< key to retrieve */
476  );
477 
478 /** returns whether the given element exists in the table */
479 extern
481  SCIP_HASHTABLE* hashtable, /**< hash table */
482  void* element /**< element to search in the table */
483  );
484 
485 /** removes element from the hash table, if it exists */
486 extern
488  SCIP_HASHTABLE* hashtable, /**< hash table */
489  void* element /**< element to remove from the table */
490  );
491 
492 /** removes all elements of the hash table
493  *
494  * @note From a performance point of view you should not fill and clear a hash table too often since the clearing can
495  * be expensive. Clearing is done by looping over all buckets and removing the hash table lists one-by-one.
496  */
497 extern
499  SCIP_HASHTABLE* hashtable /**< hash table */
500  );
501 
502 /** returns number of hash table elements */
503 extern
505  SCIP_HASHTABLE* hashtable /**< hash table */
506  );
507 
508 /** returns the load of the given hash table in percentage */
509 extern
511  SCIP_HASHTABLE* hashtable /**< hash table */
512  );
513 
514 /** prints statistics about hash table usage */
515 extern
517  SCIP_HASHTABLE* hashtable, /**< hash table */
518  SCIP_MESSAGEHDLR* messagehdlr /**< message handler */
519  );
520 
521 /** standard hash key comparator for string keys */
522 extern
523 SCIP_DECL_HASHKEYEQ(SCIPhashKeyEqString);
524 
525 /** standard hashing function for string keys */
526 extern
527 SCIP_DECL_HASHKEYVAL(SCIPhashKeyValString);
528 
529 /** gets the element as the key */
530 extern
531 SCIP_DECL_HASHGETKEY(SCIPhashGetKeyStandard);
532 
533 /** returns TRUE iff both keys(pointer) are equal */
534 extern
535 SCIP_DECL_HASHKEYEQ(SCIPhashKeyEqPtr);
536 
537 /** returns the hash value of the key */
538 extern
539 SCIP_DECL_HASHKEYVAL(SCIPhashKeyValPtr);
540 
541 /**@} */
542 
543 
544 /*
545  * Hash Map
546  */
547 
548 /**@defgroup HashMap Hash Map
549  *
550  *@{
551  */
552 
553 /** creates a hash map mapping pointers to pointers */
554 extern
556  SCIP_HASHMAP** hashmap, /**< pointer to store the created hash map */
557  BMS_BLKMEM* blkmem, /**< block memory used to store hash map entries */
558  int mapsize /**< size of the hash map */
559  );
560 
561 /** frees the hash map */
562 extern
563 void SCIPhashmapFree(
564  SCIP_HASHMAP** hashmap /**< pointer to the hash map */
565  );
566 
567 /** inserts new origin->image pair in hash map (must not be called for already existing origins!) */
568 extern
570  SCIP_HASHMAP* hashmap, /**< hash map */
571  void* origin, /**< origin to set image for */
572  void* image /**< new image for origin */
573  );
574 
575 /** retrieves image of given origin from the hash map, or NULL if no image exists */
576 extern
577 void* SCIPhashmapGetImage(
578  SCIP_HASHMAP* hashmap, /**< hash map */
579  void* origin /**< origin to retrieve image for */
580  );
581 
582 /** sets image for given origin in the hash map, either by modifying existing origin->image pair or by appending a
583  * new origin->image pair
584  */
585 extern
587  SCIP_HASHMAP* hashmap, /**< hash map */
588  void* origin, /**< origin to set image for */
589  void* image /**< new image for origin */
590  );
591 
592 /** checks whether an image to the given origin exists in the hash map */
593 extern
595  SCIP_HASHMAP* hashmap, /**< hash map */
596  void* origin /**< origin to search for */
597  );
598 
599 /** removes origin->image pair from the hash map, if it exists */
600 extern
602  SCIP_HASHMAP* hashmap, /**< hash map */
603  void* origin /**< origin to remove from the list */
604  );
605 
606 /** prints statistics about hash map usage */
607 extern
609  SCIP_HASHMAP* hashmap, /**< hash map */
610  SCIP_MESSAGEHDLR* messagehdlr /**< message handler */
611  );
612 
613 /** indicates whether a hash map has no entries */
614 extern
616  SCIP_HASHMAP* hashmap /**< hash map */
617  );
618 
619 /** gives the number of entries in a hash map */
620 extern
622  SCIP_HASHMAP* hashmap /**< hash map */
623  );
624 
625 /** gives the number of lists (buckets) in a hash map */
626 extern
628  SCIP_HASHMAP* hashmap /**< hash map */
629  );
630 
631 /** gives a specific list (bucket) in a hash map */
632 extern
634  SCIP_HASHMAP* hashmap, /**< hash map */
635  int listindex /**< index of hash map list */
636  );
637 
638 /** gives the number of entries in a list of a hash map */
639 extern
641  SCIP_HASHMAPLIST* hashmaplist /**< hash map list, can be NULL */
642  );
643 
644 /** retrieves origin of given entry in a hash map */
645 extern
647  SCIP_HASHMAPLIST* hashmaplist /**< hash map list */
648  );
649 
650 /** retrieves image of given entry in a hash map */
651 extern
653  SCIP_HASHMAPLIST* hashmaplist /**< hash map list */
654  );
655 
656 /** retrieves next entry from given entry in a hash map list, or NULL if at end of list. */
657 extern
659  SCIP_HASHMAPLIST* hashmaplist /**< hash map list */
660  );
661 
662 /** removes all entries in a hash map. */
663 extern
665  SCIP_HASHMAP* hashmap /**< hash map */
666  );
667 
668 /**@} */
669 
670 
671 
672 /*
673  * Activity
674  */
675 
676 /**@defgroup ResourceActivity Resource activity
677  *
678  *@{
679  */
680 
681 /** create a resource activity */
682 extern
684  SCIP_RESOURCEACTIVITY** activity, /**< pointer to store the resource activity */
685  SCIP_VAR* var, /**< start time variable of the activity */
686  int duration, /**< duration of the activity */
687  int demand /**< demand of the activity */
688  );
689 
690 /** frees a resource activity */
691 extern
692 void SCIPactivityFree(
693  SCIP_RESOURCEACTIVITY** activity /**< pointer to the resource activity */
694  );
695 
696 #ifndef NDEBUG
697 
698 /** returns the start time variable of the resource activity */
699 extern
701  SCIP_RESOURCEACTIVITY* activity /**< resource activity */
702  );
703 
704 /** returns the duration of the resource activity */
705 extern
707  SCIP_RESOURCEACTIVITY* activity /**< resource activity */
708  );
709 
710 /** returns the demand of the resource activity */
711 extern
713  SCIP_RESOURCEACTIVITY* activity /**< resource activity */
714  );
715 
716 /** returns the energy of the resource activity */
717 extern
719  SCIP_RESOURCEACTIVITY* activity /**< resource activity */
720  );
721 
722 #else
723 
724 #define SCIPactivityGetVar(activity) ((activity)->var)
725 #define SCIPactivityGetDuration(activity) ((activity)->duration)
726 #define SCIPactivityGetDemand(activity) ((activity)->demand)
727 #define SCIPactivityGetEnergy(activity) ((activity)->duration * (activity)->demand)
728 
729 #endif
730 
731 /**@} */
732 
733 
734 /*
735  * Resource Profile
736  */
737 
738 /**@defgroup ResourceProfile Resource Profile
739  *
740  *@{
741  */
742 
743 /** creates resource profile */
744 extern
746  SCIP_PROFILE** profile, /**< pointer to store the resource profile */
747  int capacity /**< resource capacity */
748  );
749 
750 /** frees given resource profile */
751 extern
752 void SCIPprofileFree(
753  SCIP_PROFILE** profile /**< pointer to the resource profile */
754  );
755 
756 /** output of the given resource profile */
757 extern
758 void SCIPprofilePrint(
759  SCIP_PROFILE* profile, /**< resource profile to output */
760  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
761  FILE* file /**< output file (or NULL for standard output) */
762  );
763 
764 /** returns the capacity of the resource profile */
765 extern
767  SCIP_PROFILE* profile /**< resource profile to use */
768  );
769 
770 /** returns the number time points of the resource profile */
771 extern
773  SCIP_PROFILE* profile /**< resource profile to use */
774  );
775 
776 /** returns the time points of the resource profile */
777 extern
779  SCIP_PROFILE* profile /**< resource profile to use */
780  );
781 
782 /** returns the loads of the resource profile */
783 extern
785  SCIP_PROFILE* profile /**< resource profile to use */
786  );
787 
788 /** returns the time point for given position of the resource profile */
789 extern
791  SCIP_PROFILE* profile, /**< resource profile to use */
792  int pos /**< position */
793  );
794 
795 /** returns the loads of the resource profile at the given position */
796 extern
798  SCIP_PROFILE* profile, /**< resource profile */
799  int pos /**< position */
800  );
801 
802 /** returns if the given time point exists in the resource profile and stores the position of the given time point if it
803  * exists; otherwise the position of the next smaller existing time point is stored
804  */
805 extern
807  SCIP_PROFILE* profile, /**< resource profile to search */
808  int timepoint, /**< time point to search for */
809  int* pos /**< pointer to store the position */
810  );
811 
812 /** insert a core into resource profile; if the core is non-empty the resource profile will be updated otherwise nothing
813  * happens
814  */
815 extern
817  SCIP_PROFILE* profile, /**< resource profile to use */
818  int left, /**< left side of the core */
819  int right, /**< right side of the core */
820  int height, /**< height of the core */
821  int* pos, /**< pointer to store the first position were it gets infeasible */
822  SCIP_Bool* infeasible /**< pointer to store if the core does not fit due to capacity */
823  );
824 
825 /** subtracts the height from the resource profile during core time */
826 extern
828  SCIP_PROFILE* profile, /**< resource profile to use */
829  int left, /**< left side of the core */
830  int right, /**< right side of the core */
831  int height /**< height of the core */
832  );
833 
834 /** return the earliest possible starting point within the time interval [lb,ub] for a given core (given by its height
835  * and duration)
836  */
837 extern
839  SCIP_PROFILE* profile, /**< resource profile to use */
840  int est, /**< earliest starting time of the given core */
841  int lst, /**< latest starting time of the given core */
842  int duration, /**< duration of the core */
843  int height, /**< height of the core */
844  SCIP_Bool* infeasible /**< pointer store if the corer cannot be inserted */
845  );
846 
847 /** return the latest possible starting point within the time interval [lb,ub] for a given core (given by its height and
848  * duration)
849  */
850 extern
852  SCIP_PROFILE* profile, /**< resource profile to use */
853  int lb, /**< earliest possible start point */
854  int ub, /**< latest possible start point */
855  int duration, /**< duration of the core */
856  int height, /**< height of the core */
857  SCIP_Bool* infeasible /**< pointer store if the core cannot be inserted */
858  );
859 
860 /**@} */
861 
862 /*
863  * Directed graph
864  */
865 
866 /**@defgroup DirectedGraph Directed Graph
867  *
868  *@{
869  */
870 
871 /** creates directed graph structure */
872 extern
874  SCIP_DIGRAPH** digraph, /**< pointer to store the created directed graph */
875  int nnodes /**< number of nodes */
876  );
877 
878 /** resize directed graph structure */
879 extern
881  SCIP_DIGRAPH* digraph, /**< directed graph */
882  int nnodes /**< new number of nodes */
883  );
884 
885 /** copies directed graph structure
886  *
887  * @note The data in nodedata is copied verbatim. This possibly has to be adapted by the user.
888  */
889 extern
891  SCIP_DIGRAPH** targetdigraph, /**< pointer to store the copied directed graph */
892  SCIP_DIGRAPH* sourcedigraph /**< source directed graph */
893  );
894 
895 /** sets the sizes of the successor lists for the nodes in a directed graph and allocates memory for the lists */
896 extern
898  SCIP_DIGRAPH* digraph, /**< directed graph */
899  int* sizes /**< sizes of the successor lists */
900  );
901 
902 /** frees given directed graph structure */
903 extern
904 void SCIPdigraphFree(
905  SCIP_DIGRAPH** digraph /**< pointer to the directed graph */
906  );
907 
908 /** add (directed) arc and a related data to the directed graph structure
909  *
910  * @note if the arc is already contained, it is added a second time
911  */
912 extern
914  SCIP_DIGRAPH* digraph, /**< directed graph */
915  int startnode, /**< start node of the arc */
916  int endnode, /**< start node of the arc */
917  void* data /**< data that should be stored for the arc; or NULL */
918  );
919 
920 /** add (directed) arc to the directed graph structure, if it is not contained, yet
921  *
922  * @note if there already exists an arc from startnode to endnode, the new arc is not added,
923  * even if its data is different
924  */
925 extern
927  SCIP_DIGRAPH* digraph, /**< directed graph */
928  int startnode, /**< start node of the arc */
929  int endnode, /**< start node of the arc */
930  void* data /**< data that should be stored for the arc; or NULL */
931  );
932 
933 /** sets the number of successors to a given value */
934 extern
936  SCIP_DIGRAPH* digraph, /**< directed graph */
937  int node, /**< node for which the number of successors has to be changed */
938  int nsuccessors /**< new number of successors */
939  );
940 
941 /** returns the number of nodes of the given digraph */
942 extern
944  SCIP_DIGRAPH* digraph /**< directed graph */
945  );
946 
947 /** returns the node data, or NULL if no data exist */
948 extern
950  SCIP_DIGRAPH* digraph, /**< directed graph */
951  int node /**< node for which the node data is returned */
952  );
953 
954 /** sets the node data */
955 extern
957  SCIP_DIGRAPH* digraph, /**< directed graph */
958  void* dataptr, /**< user node data pointer, or NULL */
959  int node /**< node for which the node data is returned */
960  );
961 
962 /** returns the total number of arcs in the given digraph */
963 extern
965  SCIP_DIGRAPH* digraph /**< directed graph */
966  );
967 
968 /** returns the number of successor nodes of the given node */
969 extern
971  SCIP_DIGRAPH* digraph, /**< directed graph */
972  int node /**< node for which the number of outgoing arcs is returned */
973  );
974 
975 /** returns the array of indices of the successor nodes; this array must not be changed from outside */
976 extern
978  SCIP_DIGRAPH* digraph, /**< directed graph */
979  int node /**< node for which the array of outgoing arcs is returned */
980  );
981 
982 /** returns the array of data corresponding to the arcs originating at the given node, or NULL if no data exist; this
983  * array must not be changed from outside
984  */
985 extern
987  SCIP_DIGRAPH* digraph, /**< directed graph */
988  int node /**< node for which the data corresponding to the outgoing arcs is returned */
989  );
990 
991 /** Compute undirected connected components on the given graph.
992  *
993  * @note For each arc, its reverse is added, so the graph does not need to be the directed representation of an
994  * undirected graph.
995  */
996 extern
998  SCIP_DIGRAPH* digraph, /**< directed graph */
999  int minsize, /**< all components with less nodes are ignored */
1000  int* components, /**< array with as many slots as there are nodes in the directed graph
1001  * to store for each node the component to which it belongs
1002  * (components are numbered 0 to ncomponents - 1); or NULL, if components
1003  * are accessed one-by-one using SCIPdigraphGetComponent() */
1004  int* ncomponents /**< pointer to store the number of components; or NULL, if the
1005  * number of components is accessed by SCIPdigraphGetNComponents() */
1006  );
1007 
1008 /** Computes all strongly connected components of an undirected connected component with Tarjan's Algorithm.
1009  * The resulting strongly connected components are sorted topologically (starting from the end of the
1010  * strongcomponents array).
1011  *
1012  * @note In general a topological sort of the strongly connected components is not unique.
1013  */
1014 extern
1016  SCIP_DIGRAPH* digraph, /**< directed graph */
1017  int compidx, /**< number of the undirected connected component */
1018  int* strongcomponents, /**< array to store the strongly connected components
1019  * (length >= size of the component) */
1020  int* strongcompstartidx, /**< array to store the start indices of the strongly connected
1021  * components (length >= size of the component) */
1022  int* nstrongcomponents /**< pointer to store the number of strongly connected
1023  * components */
1024  );
1025 
1026 /** Performes an (almost) topological sort on the undirected components of the given directed graph. The undirected
1027  * components should be computed before using SCIPdigraphComputeUndirectedComponents().
1028  *
1029  * @note In general a topological sort is not unique. Note, that there might be directed cycles, that are randomly
1030  * broken, which is the reason for having only almost topologically sorted arrays.
1031  */
1032 extern
1034  SCIP_DIGRAPH* digraph /**< directed graph */
1035  );
1036 
1037 /** returns the number of previously computed undirected components for the given directed graph */
1038 extern
1040  SCIP_DIGRAPH* digraph /**< directed graph */
1041  );
1042 
1043 /** Returns the previously computed undirected component of the given number for the given directed graph.
1044  * If the components were sorted using SCIPdigraphTopoSortComponents(), the component is (almost) topologically sorted.
1045  */
1046 extern
1048  SCIP_DIGRAPH* digraph, /**< directed graph */
1049  int compidx, /**< number of the component to return */
1050  int** nodes, /**< pointer to store the nodes in the component; or NULL, if not needed */
1051  int* nnodes /**< pointer to store the number of nodes in the component;
1052  * or NULL, if not needed */
1053  );
1054 
1055 /** frees the component information for the given directed graph */
1056 extern
1058  SCIP_DIGRAPH* digraph /**< directed graph */
1059  );
1060 
1061 /** output of the given directed graph via the given message handler */
1062 extern
1063 void SCIPdigraphPrint(
1064  SCIP_DIGRAPH* digraph, /**< directed graph */
1065  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
1066  FILE* file /**< output file (or NULL for standard output) */
1067  );
1068 
1069 /** prints the given directed graph structure in GML format into the given file */
1070 extern
1071 void SCIPdigraphPrintGml(
1072  SCIP_DIGRAPH* digraph, /**< directed graph */
1073  FILE* file /**< file to write to */
1074  );
1075 
1076 
1077 /** output of the given directed graph via the given message handler */
1078 extern
1080  SCIP_DIGRAPH* digraph, /**< directed graph */
1081  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
1082  FILE* file /**< output file (or NULL for standard output) */
1083  );
1084 
1085 /**@} */
1086 
1087 /*
1088  * Binary search tree
1089  */
1090 
1091 /**@defgroup BinaryTree Binary Tree
1092  *
1093  *@{
1094  */
1095 
1096 /** creates a binary tree node with sorting value and user data */
1097 extern
1099  SCIP_BT* tree, /**< binary search tree */
1100  SCIP_BTNODE** node, /**< pointer to store the created search node */
1101  void* dataptr /**< user node data pointer, or NULL */
1102  );
1103 
1104 /** frees the binary node including the rooted subtree
1105  *
1106  * @note The user pointer (object) is not freed. If needed, it has to be done by the user.
1107  */
1108 extern
1109 void SCIPbtnodeFree(
1110  SCIP_BT* tree, /**< binary tree */
1111  SCIP_BTNODE** node /**< node to be freed */
1112  );
1113 
1114 /** returns the user data pointer stored in that node */
1115 extern
1116 void* SCIPbtnodeGetData(
1117  SCIP_BTNODE* node /**< node */
1118  );
1119 
1120 /** returns the parent which can be NULL if the given node is the root */
1121 extern
1123  SCIP_BTNODE* node /**< node */
1124  );
1125 
1126 /** returns left child which can be NULL if the given node is a leaf */
1127 extern
1129  SCIP_BTNODE* node /**< node */
1130  );
1131 
1132 /** returns right child which can be NULL if the given node is a leaf */
1133 extern
1135  SCIP_BTNODE* node /**< node */
1136  );
1137 
1138 /** returns the sibling of the node or NULL if does not exist */
1139 extern
1141  SCIP_BTNODE* node /**< node */
1142  );
1143 
1144 /** returns whether the node is a root node */
1145 extern
1147  SCIP_BTNODE* node /**< node */
1148  );
1149 
1150 /** returns whether the node is a leaf */
1151 extern
1153  SCIP_BTNODE* node /**< node */
1154  );
1155 
1156 /** returns TRUE if the given node is left child */
1157 extern
1159  SCIP_BTNODE* node /**< node */
1160  );
1161 
1162 /** returns TRUE if the given node is right child */
1163 extern
1165  SCIP_BTNODE* node /**< node */
1166  );
1167 
1168 #ifdef NDEBUG
1169 
1170 /* In optimized mode, the function calls are overwritten by defines to reduce the number of function calls and
1171  * speed up the algorithms.
1172  */
1173 
1174 #define SCIPbtnodeGetData(node) ((node)->dataptr)
1175 #define SCIPbtnodeGetParent(node) ((node)->parent)
1176 #define SCIPbtnodeGetLeftchild(node) ((node)->left)
1177 #define SCIPbtnodeGetRightchild(node) ((node)->right)
1178 #define SCIPbtnodeGetSibling(node) ((node)->parent == NULL ? NULL : \
1179  (node)->parent->left == (node) ? (node)->parent->right : (node)->parent->left)
1180 #define SCIPbtnodeIsRoot(node) ((node)->parent == NULL)
1181 #define SCIPbtnodeIsLeaf(node) ((node)->left == NULL && (node)->right == NULL)
1182 #define SCIPbtnodeIsLeftchild(node) ((node)->parent == NULL ? FALSE : (node)->parent->left == (node) ? TRUE : FALSE)
1183 #define SCIPbtnodeIsRightchild(node) ((node)->parent == NULL ? FALSE : (node)->parent->right == (node) ? TRUE : FALSE)
1184 
1185 #endif
1186 
1187 /** sets the give node data
1188  *
1189  * @note The old user pointer is not freed.
1190  */
1191 extern
1192 void SCIPbtnodeSetData(
1193  SCIP_BTNODE* node, /**< node */
1194  void* dataptr /**< node user data pointer */
1195  );
1196 
1197 /** sets parent node
1198  *
1199  * @note The old parent including the rooted subtree is not delete.
1200  */
1201 extern
1202 void SCIPbtnodeSetParent(
1203  SCIP_BTNODE* node, /**< node */
1204  SCIP_BTNODE* parent /**< new parent node, or NULL */
1205  );
1206 
1207 /** sets left child
1208  *
1209  * @note The old left child including the rooted subtree is not delete.
1210  */
1211 extern
1213  SCIP_BTNODE* node, /**< node */
1214  SCIP_BTNODE* left /**< new left child, or NULL */
1215  );
1216 
1217 /** sets right child
1218  *
1219  * @note The old right child including the rooted subtree is not delete.
1220  */
1221 extern
1223  SCIP_BTNODE* node, /**< node */
1224  SCIP_BTNODE* right /**< new right child, or NULL */
1225  );
1226 
1227 /** creates an binary tree */
1228 extern
1230  SCIP_BT** tree, /**< pointer to store the created binary tree */
1231  BMS_BLKMEM* blkmem /**< block memory used to create nodes */
1232  );
1233 
1234 /** frees binary tree
1235  *
1236  * @note The user pointers (object) of the search nodes are not freed. If needed, it has to be done by the user.
1237  */
1238 extern
1239 void SCIPbtFree(
1240  SCIP_BT** tree /**< pointer to binary tree */
1241  );
1242 
1243 /** prints the binary tree in GML format into the given file */
1244 extern
1245 void SCIPbtPrintGml(
1246  SCIP_BT* tree, /**< binary tree */
1247  FILE* file /**< file to write to */
1248  );
1249 
1250 /** returns whether the binary tree is empty (has no nodes) */
1251 extern
1253  SCIP_BT * tree /**< binary tree */
1254  );
1255 
1256 /** returns the root node of the binary tree or NULL if the binary tree is empty */
1257 extern
1259  SCIP_BT* tree /**< tree to be evaluated */
1260  );
1261 
1262 #ifdef NDEBUG
1263 
1264 /* In optimized mode, the function calls are overwritten by defines to reduce the number of function calls and
1265  * speed up the algorithms.
1266  */
1267 
1268 #define SCIPbtIsEmpty(tree) (tree->root == NULL)
1269 #define SCIPbtGetRoot(tree) (tree->root)
1270 
1271 #endif
1272 
1273 /** sets root node
1274  *
1275  * @note The old root including the rooted subtree is not delete.
1276  */
1277 extern
1278 void SCIPbtSetRoot(
1279  SCIP_BT* tree, /**< tree to be evaluated */
1280  SCIP_BTNODE* root /**< new root, or NULL */
1281  );
1282 
1283 /**@} */
1284 
1285 /**@} */
1286 
1287 /*
1288  * Sorting algorithms
1289  */
1290 
1291 /**@defgroup SortingAlgorithms Sorting Algorithms
1292  *
1293  * @{
1294  */
1295 
1296 /** default comparer for integers */
1297 extern
1298 SCIP_DECL_SORTPTRCOMP(SCIPsortCompInt);
1299 
1300 /* first all upwards-sorting methods */
1301 
1302 /** sort an indexed element set in non-decreasing order, resulting in a permutation index array */
1303 extern
1304 void SCIPsort(
1305  int* perm, /**< pointer to store the resulting permutation */
1306  SCIP_DECL_SORTINDCOMP((*indcomp)), /**< data element comparator */
1307  void* dataptr, /**< pointer to data field that is given to the external compare method */
1308  int len /**< number of elements to be sorted (valid index range) */
1309  );
1310 
1311 /** sort an index array in non-decreasing order */
1312 extern
1313 void SCIPsortInd(
1314  int* indarray, /**< pointer to the index array to be sorted */
1315  SCIP_DECL_SORTINDCOMP((*indcomp)), /**< data element comparator */
1316  void* dataptr, /**< pointer to data field that is given to the external compare method */
1317  int len /**< length of array */
1318  );
1319 
1320 /** sort of an array of pointers in non-decreasing order */
1321 extern
1322 void SCIPsortPtr(
1323  void** ptrarray, /**< pointer array to be sorted */
1324  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
1325  int len /**< length of array */
1326  );
1327 
1328 /** sort of two joint arrays of pointers/pointers, sorted by first array in non-decreasing order */
1329 extern
1330 void SCIPsortPtrPtr(
1331  void** ptrarray1, /**< first pointer array to be sorted */
1332  void** ptrarray2, /**< second pointer array to be permuted in the same way */
1333  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
1334  int len /**< length of arrays */
1335  );
1336 
1337 /** sort of two joint arrays of pointers/Reals, sorted by first array in non-decreasing order */
1338 extern
1339 void SCIPsortPtrReal(
1340  void** ptrarray, /**< pointer array to be sorted */
1341  SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */
1342  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
1343  int len /**< length of arrays */
1344  );
1345 
1346 /** sort of two joint arrays of pointers/ints, sorted by first array in non-decreasing order */
1347 extern
1348 void SCIPsortPtrInt(
1349  void** ptrarray, /**< pointer array to be sorted */
1350  int* intarray, /**< int array to be permuted in the same way */
1351  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
1352  int len /**< length of arrays */
1353  );
1354 
1355 /** sort of two joint arrays of pointers/Bools, sorted by first array in non-decreasing order */
1356 extern
1357 void SCIPsortPtrBool(
1358  void** ptrarray, /**< pointer array to be sorted */
1359  SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */
1360  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
1361  int len /**< length of arrays */
1362  );
1363 
1364 
1365 /** sort of three joint arrays of pointers/ints/ints, sorted by first array in non-decreasing order */
1366 extern
1367 void SCIPsortPtrIntInt(
1368  void** ptrarray, /**< pointer array to be sorted */
1369  int* intarray1, /**< first int array to be permuted in the same way */
1370  int* intarray2, /**< second int array to be permuted in the same way */
1371  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
1372  int len /**< length of arrays */
1373  );
1374 
1375 /** sort of three joint arrays of pointers/Reals/ints, sorted by first array in non-decreasing order */
1376 extern
1377 void SCIPsortPtrRealInt(
1378  void** ptrarray, /**< pointer array to be sorted */
1379  SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */
1380  int* intarray, /**< int array to be permuted in the same way */
1381  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
1382  int len /**< length of arrays */
1383  );
1384 
1385 /** sort of three joint arrays of pointers/Reals/Bools, sorted by first array in non-decreasing order */
1386 extern
1387 void SCIPsortPtrRealBool(
1388  void** ptrarray, /**< pointer array to be sorted */
1389  SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */
1390  SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */
1391  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
1392  int len /**< length of arrays */
1393  );
1394 
1395 /** sort of three joint arrays of pointers/Reals/Reals, sorted by first array in non-decreasing order */
1396 extern
1397 void SCIPsortPtrRealReal(
1398  void** ptrarray, /**< pointer array to be sorted */
1399  SCIP_Real* realarray1, /**< first SCIP_Real array to be permuted in the same way */
1400  SCIP_Real* realarray2, /**< second SCIP_Real array to be permuted in the same way */
1401  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
1402  int len /**< length of arrays */
1403  );
1404 
1405 /** sort of three joint arrays of pointers/pointers/ints, sorted by first array in non-decreasing order */
1406 extern
1407 void SCIPsortPtrPtrInt(
1408  void** ptrarray1, /**< first pointer array to be sorted */
1409  void** ptrarray2, /**< second pointer array to be permuted in the same way */
1410  int* intarray, /**< int array to be permuted in the same way */
1411  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
1412  int len /**< length of arrays */
1413  );
1414 
1415 /** sort of three joint arrays of pointers/pointers/Reals, sorted by first array in non-decreasing order */
1416 extern
1417 void SCIPsortPtrPtrReal(
1418  void** ptrarray1, /**< first pointer array to be sorted */
1419  void** ptrarray2, /**< second pointer array to be permuted in the same way */
1420  SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */
1421  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
1422  int len /**< length of arrays */
1423  );
1424 
1425 /** sort of four joint arrays of pointers/pointers/ints/ints, sorted by first array in non-decreasing order */
1426 extern
1428  void** ptrarray1, /**< first pointer array to be sorted */
1429  void** ptrarray2, /**< second pointer array to be permuted in the same way */
1430  int* intarray1, /**< first int array to be permuted in the same way */
1431  int* intarray2, /**< second int array to be permuted in the same way */
1432  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
1433  int len /**< length of arrays */
1434  );
1435 
1436 /** sort of four joint arrays of pointers/Reals/ints/ints, sorted by first array in non-decreasing order */
1437 extern
1439  void** ptrarray, /**< pointer array to be sorted */
1440  SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */
1441  int* intarray1, /**< first int array to be permuted in the same way */
1442  int* intarray2, /**< second int array to be permuted in the same way */
1443  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
1444  int len /**< length of arrays */
1445  );
1446 
1447 /** sort of four joint arrays of pointer/pointer/Reals/ints, sorted by first array in non-decreasing order */
1448 extern
1450  void** ptrarray1, /**< first pointer array to be sorted */
1451  void** ptrarray2, /**< second pointer array to be permuted in the same way */
1452  SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */
1453  int* intarray, /**< int array to be permuted in the same way */
1454  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
1455  int len /**< length of arrays */
1456  );
1457 
1458 /** sort of four joint arrays of pointer/pointer/Reals/Bools, sorted by first array in non-decreasing order */
1459 extern
1461  void** ptrarray1, /**< first pointer array to be sorted */
1462  void** ptrarray2, /**< second pointer array to be permuted in the same way */
1463  SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */
1464  SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */
1465  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
1466  int len /**< length of arrays */
1467  );
1468 
1469 /** sort of four joint arrays of pointer/pointer/Longs/ints, sorted by first array in non-decreasing order */
1470 extern
1472  void** ptrarray1, /**< first pointer array to be sorted */
1473  void** ptrarray2, /**< second pointer array to be permuted in the same way */
1474  SCIP_Longint* longarray, /**< SCIP_Longint array to be permuted in the same way */
1475  int* intarray, /**< int array to be permuted in the same way */
1476  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
1477  int len /**< length of arrays */
1478  );
1479 
1480 /** sort of five joint arrays of pointer/pointer/Longs/ints/ints, sorted by first array in non-decreasing order */
1481 extern
1483  void** ptrarray1, /**< first pointer array to be sorted */
1484  void** ptrarray2, /**< second pointer array to be permuted in the same way */
1485  SCIP_Longint* longarray, /**< SCIP_Longint array to be permuted in the same way */
1486  int* intarray1, /**< first int array to be permuted in the same way */
1487  int* intarray2, /**< second int array to be permuted in the same way */
1488  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
1489  int len /**< length of arrays */
1490  );
1491 
1492 /** sort an array of Reals in non-decreasing order */
1493 extern
1494 void SCIPsortReal(
1495  SCIP_Real* realarray, /**< SCIP_Real array to be sorted */
1496  int len /**< length of arrays */
1497  );
1498 
1499 /** sort of two joint arrays of Reals/pointers, sorted by first array in non-decreasing order */
1500 extern
1501 void SCIPsortRealPtr(
1502  SCIP_Real* realarray, /**< SCIP_Real array to be sorted */
1503  void** ptrarray, /**< pointer array to be permuted in the same way */
1504  int len /**< length of arrays */
1505  );
1506 
1507 /** sort of two joint arrays of Reals/ints, sorted by first array in non-decreasing order */
1508 extern
1509 void SCIPsortRealInt(
1510  SCIP_Real* realarray, /**< SCIP_Real array to be sorted */
1511  int* intarray, /**< int array to be permuted in the same way */
1512  int len /**< length of arrays */
1513  );
1514 
1515 /** sort of three joint arrays of Reals/ints/ints, sorted by first array in non-decreasing order */
1516 extern
1517 void SCIPsortRealIntInt(
1518  SCIP_Real* realarray, /**< SCIP_Real array to be sorted */
1519  int* intarray1, /**< int array to be permuted in the same way */
1520  int* intarray2, /**< int array to be permuted in the same way */
1521  int len /**< length of arrays */
1522  );
1523 
1524 /** sort of three joint arrays of Reals/Bools/Pointer, sorted by first array in non-decreasing order */
1525 extern
1526 void SCIPsortRealBoolPtr(
1527  SCIP_Real* realarray, /**< SCIP_Real array to be sorted */
1528  SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */
1529  void** ptrarray, /**< pointer array to be permuted in the same way */
1530  int len /**< length of arrays */
1531  );
1532 
1533 /** sort of three joint arrays of Reals/ints/Longs, sorted by first array in non-decreasing order */
1534 extern
1535 void SCIPsortRealIntLong(
1536  SCIP_Real* realarray, /**< SCIP_Real array to be sorted */
1537  int* intarray, /**< int array to be permuted in the same way */
1538  SCIP_Longint* longarray, /**< SCIP_Longint array to be permuted in the same way */
1539  int len /**< length of arrays */
1540  );
1541 
1542 /** sort of three joint arrays of Reals/ints/Pointer, sorted by first array in non-decreasing order */
1543 extern
1544 void SCIPsortRealIntPtr(
1545  SCIP_Real* realarray, /**< SCIP_Real array to be sorted */
1546  int* intarray, /**< int array to be permuted in the same way */
1547  void** ptrarray, /**< pointer array to be permuted in the same way */
1548  int len /**< length of arrays */
1549  );
1550 
1551 /** sort of three joint arrays of Reals/Reals/Pointer, sorted by first array in non-decreasing order */
1552 extern
1553 void SCIPsortRealRealPtr(
1554  SCIP_Real* realarray1, /**< first SCIP_Real array to be sorted */
1555  SCIP_Real* realarray2, /**< second SCIP_Real array to be permuted in the same way */
1556  void** ptrarray, /**< pointer array to be permuted in the same way */
1557  int len /**< length of arrays */
1558  );
1559 
1560 /** sort of four joint arrays of Reals/pointers/pointers/ints, sorted by first array in non-decreasing order */
1561 extern
1563  SCIP_Real* realarray, /**< SCIP_Real array to be sorted */
1564  void** ptrarray1, /**< pointer array to be permuted in the same way */
1565  void** ptrarray2, /**< pointer array to be permuted in the same way */
1566  int* intarray, /**< int array to be sorted */
1567  int len /**< length of arrays */
1568  );
1569 
1570 /** sort of five joint arrays of Reals/pointers/pointers/ints/ints, sorted by first array in non-decreasing order */
1571 extern
1573  SCIP_Real* realarray, /**< SCIP_Real array to be sorted */
1574  void** ptrarray1, /**< pointer array to be permuted in the same way */
1575  void** ptrarray2, /**< pointer array to be permuted in the same way */
1576  int* intarray1, /**< int array to be sorted */
1577  int* intarray2, /**< int array to be sorted */
1578  int len /**< length of arrays */
1579  );
1580 
1581 /** sort of four joint arrays of Reals/Longs/Reals/ints, sorted by first array in non-decreasing order */
1582 extern
1584  SCIP_Real* realarray1, /**< SCIP_Real array to be sorted */
1585  SCIP_Longint* longarray, /**< SCIP_Longint array to be permuted in the same way */
1586  SCIP_Real* realarray3, /**< SCIP_Real array to be permuted in the same way */
1587  int* intarray, /**< int array to be permuted in the same way */
1588  int len /**< length of arrays */
1589  );
1590 
1591 /** sort of four joint arrays of Reals/Reals/ints/ints, sorted by first array in non-decreasing order */
1592 extern
1594  SCIP_Real* realarray1, /**< SCIP_Real array to be sorted */
1595  SCIP_Real* realarray2, /**< SCIP_Real array to be permuted in the same way */
1596  int* intarray1, /**< int array to be permuted in the same way */
1597  int* intarray2, /**< int array to be permuted in the same way */
1598  int len /**< length of arrays */
1599  );
1600 
1601 /** sort of four joint arrays of Reals/Reals/Reals/ints, sorted by first array in non-decreasing order */
1602 extern
1604  SCIP_Real* realarray1, /**< SCIP_Real array to be sorted */
1605  SCIP_Real* realarray2, /**< SCIP_Real array to be permuted in the same way */
1606  SCIP_Real* realarray3, /**< SCIP_Real array to be permuted in the same way */
1607  int* intarray, /**< int array to be permuted in the same way */
1608  int len /**< length of arrays */
1609  );
1610 
1611 /** sort of four joint arrays of Reals/Reals/Reals/pointers, sorted by first array in non-decreasing order */
1612 extern
1614  SCIP_Real* realarray1, /**< SCIP_Real array to be sorted */
1615  SCIP_Real* realarray2, /**< SCIP_Real array to be permuted in the same way */
1616  SCIP_Real* realarray3, /**< SCIP_Real array to be permuted in the same way */
1617  void** ptrarray, /**< pointer array to be permuted in the same way */
1618  int len /**< length of arrays */
1619  );
1620 
1621 /** sort of five joint arrays of Reals/Reals/Reals/Bools/pointers, sorted by first array in non-decreasing order */
1622 extern
1624  SCIP_Real* realarray1, /**< SCIP_Real array to be sorted */
1625  SCIP_Real* realarray2, /**< SCIP_Real array to be permuted in the same way */
1626  SCIP_Real* realarray3, /**< SCIP_Real array to be permuted in the same way */
1627  SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */
1628  void** ptrarray, /**< pointer array to be permuted in the same way */
1629  int len /**< length of arrays */
1630  );
1631 
1632 /** sort of six joint arrays of Reals/Reals/Reals/Bools/Bools/pointers, sorted by first array in non-decreasing order */
1633 extern
1635  SCIP_Real* realarray1, /**< SCIP_Real array to be sorted */
1636  SCIP_Real* realarray2, /**< SCIP_Real array to be permuted in the same way */
1637  SCIP_Real* realarray3, /**< SCIP_Real array to be permuted in the same way */
1638  SCIP_Bool* boolarray1, /**< SCIP_Bool array to be permuted in the same way */
1639  SCIP_Bool* boolarray2, /**< SCIP_Bool array to be permuted in the same way */
1640  void** ptrarray, /**< pointer array to be permuted in the same way */
1641  int len /**< length of arrays */
1642  );
1643 
1644 /** sort array of ints in non-decreasing order */
1645 extern
1646 void SCIPsortInt(
1647  int* intarray, /**< int array to be sorted */
1648  int len /**< length of arrays */
1649  );
1650 
1651 /** sort of two joint arrays of ints/ints, sorted by first array in non-decreasing order */
1652 extern
1653 void SCIPsortIntInt(
1654  int* intarray1, /**< int array to be sorted */
1655  int* intarray2, /**< second int array to be permuted in the same way */
1656  int len /**< length of arrays */
1657  );
1658 
1659 /** sort of two joint arrays of ints/pointers, sorted by first array in non-decreasing order */
1660 extern
1661 void SCIPsortIntPtr(
1662  int* intarray, /**< int array to be sorted */
1663  void** ptrarray, /**< pointer array to be permuted in the same way */
1664  int len /**< length of arrays */
1665  );
1666 
1667 /** sort of two joint arrays of ints/reals, sorted by first array in non-decreasing order */
1668 extern
1669 void SCIPsortIntReal(
1670  int* intarray, /**< int array to be sorted */
1671  SCIP_Real* realarray, /**< real array to be permuted in the same way */
1672  int len /**< length of arrays */
1673  );
1674 
1675 /** sort of three joint arrays of ints/ints/ints, sorted by first array in non-decreasing order */
1676 extern
1677 void SCIPsortIntIntInt(
1678  int* intarray1, /**< int array to be sorted */
1679  int* intarray2, /**< second int array to be permuted in the same way */
1680  int* intarray3, /**< third int array to be permuted in the same way */
1681  int len /**< length of arrays */
1682  );
1683 
1684 /** sort of three joint arrays of ints/ints/Longints, sorted by first array in non-decreasing order */
1685 extern
1686 void SCIPsortIntIntLong(
1687  int* intarray1, /**< int array to be sorted */
1688  int* intarray2, /**< second int array to be permuted in the same way */
1689  SCIP_Longint* longarray, /**< SCIP_Longint array to be permuted in the same way */
1690  int len /**< length of arrays */
1691  );
1692 
1693 /** sort of three joint arrays of ints/ints/pointers, sorted by first array in non-decreasing order */
1694 extern
1695 void SCIPsortIntIntPtr(
1696  int* intarray1, /**< int array to be sorted */
1697  int* intarray2, /**< second int array to be permuted in the same way */
1698  void** ptrarray, /**< pointer array to be permuted in the same way */
1699  int len /**< length of arrays */
1700  );
1701 
1702 /** sort of three joint arrays of ints/ints/reals, sorted by first array in non-decreasing order */
1703 extern
1704 void SCIPsortIntIntReal(
1705  int* intarray1, /**< int array to be sorted */
1706  int* intarray2, /**< second int array to be permuted in the same way */
1707  SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */
1708  int len /**< length of arrays */
1709  );
1710 
1711 /** sort of three joint arrays of ints/pointers/reals, sorted by first array in non-decreasing order */
1712 extern
1713 void SCIPsortIntPtrReal(
1714  int* intarray, /**< int array to be sorted */
1715  void** ptrarray, /**< pointer array to be permuted in the same way */
1716  SCIP_Real* realarray, /**< real array to be permuted in the same way */
1717  int len /**< length of arrays */
1718  );
1719 
1720 /** sort of four joint arrays of ints/ints/ints/pointers, sorted by first array in non-decreasing order */
1721 extern
1723  int* intarray1, /**< int array to be sorted */
1724  int* intarray2, /**< int array to be permuted in the same way */
1725  int* intarray3, /**< int array to be permuted in the same way */
1726  void** ptrarray, /**< pointer array to be permuted in the same way */
1727  int len /**< length of arrays */
1728  );
1729 
1730 /** sort of four joint arrays of ints/ints/ints/reals, sorted by first array in non-decreasing order */
1731 extern
1733  int* intarray1, /**< int array to be sorted */
1734  int* intarray2, /**< int array to be permuted in the same way */
1735  int* intarray3, /**< int array to be permuted in the same way */
1736  SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */
1737  int len /**< length of arrays */
1738  );
1739 
1740 /** sort of four joint arrays of ints/pointers/ints/reals, sorted by first array in non-decreasing order */
1741 extern
1743  int* intarray1, /**< int array to be sorted */
1744  void** ptrarray, /**< pointer array to be permuted in the same way */
1745  int* intarray2, /**< int array to be permuted in the same way */
1746  SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */
1747  int len /**< length of arrays */
1748  );
1749 
1750 /** sort an array of Longints in non-decreasing order */
1751 extern
1752 void SCIPsortLong(
1753  SCIP_Longint* longarray, /**< SCIP_Longint array to be sorted */
1754  int len /**< length of arrays */
1755  );
1756 
1757 /** sort of two joint arrays of Long/pointer, sorted by the first array in non-decreasing order */
1758 extern
1759 void SCIPsortLongPtr(
1760  SCIP_Longint* longarray, /**< SCIP_Longint array to be sorted */
1761  void** ptrarray, /**< pointer array to be permuted in the same way */
1762  int len /**< length of arrays */
1763  );
1764 
1765 /** sort of three arrays of Long/pointer/ints, sorted by the first array in non-decreasing order */
1766 extern
1767 void SCIPsortLongPtrInt(
1768  SCIP_Longint* longarray, /**< SCIP_Longint array to be sorted */
1769  void** ptrarray, /**< pointer array to be permuted in the same way */
1770  int* intarray, /**< int array to be permuted in the same way */
1771  int len /**< length of arrays */
1772  );
1773 
1774 /** sort of four arrays of Long/pointer/Real/Bool, sorted by the first array in non-decreasing order */
1775 extern
1777  SCIP_Longint* longarray, /**< SCIP_Longint array to be sorted */
1778  void** ptrarray, /**< pointer array to be permuted in the same way */
1779  SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */
1780  SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */
1781  int len /**< length of arrays */
1782  );
1783 
1784 /** sort of five arrays of Long/pointer/Real/Real/Bool, sorted by the first array in non-decreasing order */
1785 extern
1787  SCIP_Longint* longarray, /**< SCIP_Longint array to be sorted */
1788  void** ptrarray, /**< pointer array to be permuted in the same way */
1789  SCIP_Real* realarray, /**< first SCIP_Real array to be permuted in the same way */
1790  SCIP_Real* realarray2, /**< second SCIP_Real array to be permuted in the same way */
1791  SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */
1792  int len /**< length of arrays */
1793  );
1794 
1795 /** sort of six arrays of Long/pointer/Real/Real/int/Bool, sorted by the first array in non-decreasing order */
1796 extern
1798  SCIP_Longint* longarray, /**< SCIP_Longint array to be sorted */
1799  void** ptrarray, /**< pointer array to be permuted in the same way */
1800  SCIP_Real* realarray, /**< first SCIP_Real array to be permuted in the same way */
1801  SCIP_Real* realarray2, /**< second SCIP_Real array to be permuted in the same way */
1802  int* intarray, /**< int array to be permuted in the same way */
1803  SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */
1804  int len /**< length of arrays */
1805  );
1806 
1807 /** sort of four joint arrays of Long/pointer/pointer/ints, sorted by first array in non-decreasing order */
1808 extern
1810  SCIP_Longint* longarray, /**< SCIP_Longint array to be sorted */
1811  void** ptrarray1, /**< first pointer array to be permuted in the same way */
1812  void** ptrarray2, /**< second pointer array to be permuted in the same way */
1813  int* intarray, /**< int array to be permuted in the same way */
1814  int len /**< length of arrays */
1815  );
1816 
1817 /** sort of five joint arrays of Long/pointer/pointer/ints/ints, sorted by first array in non-decreasing order */
1818 extern
1820  SCIP_Longint* longarray, /**< SCIP_Longint array to be sorted */
1821  void** ptrarray1, /**< first pointer array to be permuted in the same way */
1822  void** ptrarray2, /**< second pointer array to be permuted in the same way */
1823  int* intarray1, /**< first int array to be permuted in the same way */
1824  int* intarray2, /**< second int array to be permuted in the same way */
1825  int len /**< length of arrays */
1826  );
1827 
1828 /** sort of five joint arrays of Long/pointer/pointer/Bool/ints, sorted by first array in non-decreasing order */
1829 extern
1831  SCIP_Longint* longarray, /**< SCIP_Longint array to be sorted */
1832  void** ptrarray1, /**< first pointer array to be permuted in the same way */
1833  void** ptrarray2, /**< second pointer array to be permuted in the same way */
1834  SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */
1835  int* intarray, /**< int array to be sorted */
1836  int len /**< length of arrays */
1837  );
1838 
1839 /** sort of five joint arrays of pointer/ints/ints/Bool/Bool, sorted by first array in non-decreasing order */
1840 extern
1842  void** ptrarray, /**< pointer array to be sorted */
1843  int* intarray1, /**< first int array to be permuted in the same way */
1844  int* intarray2, /**< second int array to be permuted in the same way */
1845  SCIP_Bool* boolarray1, /**< first SCIP_Bool array to be permuted in the same way */
1846  SCIP_Bool* boolarray2, /**< second SCIP_Bool array to be permuted in the same way */
1847  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
1848  int len /**< length of arrays */
1849  );
1850 
1851 /** sort of six joint arrays of ints/pointer/ints/ints/Bool/Bool, sorted by first array in non-decreasing order */
1852 extern
1854  int* intarray1, /**< int array to be sorted */
1855  void** ptrarray, /**< pointer array to be permuted in the same way */
1856  int* intarray2, /**< second int array to be permuted in the same way */
1857  int* intarray3, /**< thrid int array to be permuted in the same way */
1858  SCIP_Bool* boolarray1, /**< first SCIP_Bool array to be permuted in the same way */
1859  SCIP_Bool* boolarray2, /**< second SCIP_Bool array to be permuted in the same way */
1860  int len /**< length of arrays */
1861  );
1862 
1863 /* now all downwards-sorting methods */
1864 
1865 /** sort an indexed element set in non-increasing order, resulting in a permutation index array */
1866 extern
1867 void SCIPsortDown(
1868  int* perm, /**< pointer to store the resulting permutation */
1869  SCIP_DECL_SORTINDCOMP((*indcomp)), /**< data element comparator */
1870  void* dataptr, /**< pointer to data field that is given to the external compare method */
1871  int len /**< number of elements to be sorted (valid index range) */
1872  );
1873 
1874 /** sort an index array in non-increasing order */
1875 extern
1876 void SCIPsortDownInd(
1877  int* indarray, /**< pointer to the index array to be sorted */
1878  SCIP_DECL_SORTINDCOMP((*indcomp)), /**< data element comparator */
1879  void* dataptr, /**< pointer to data field that is given to the external compare method */
1880  int len /**< length of array */
1881  );
1882 
1883 /** sort of an array of pointers in non-increasing order */
1884 extern
1885 void SCIPsortDownPtr(
1886  void** ptrarray, /**< pointer array to be sorted */
1887  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
1888  int len /**< length of array */
1889  );
1890 
1891 /** sort of two joint arrays of pointers/pointers, sorted by first array in non-increasing order */
1892 extern
1893 void SCIPsortDownPtrPtr(
1894  void** ptrarray1, /**< first pointer array to be sorted */
1895  void** ptrarray2, /**< second pointer array to be permuted in the same way */
1896  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
1897  int len /**< length of arrays */
1898  );
1899 
1900 /** sort of two joint arrays of pointers/Reals, sorted by first array in non-increasing order */
1901 extern
1902 void SCIPsortDownPtrReal(
1903  void** ptrarray, /**< pointer array to be sorted */
1904  SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */
1905  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
1906  int len /**< length of arrays */
1907  );
1908 
1909 /** sort of two joint arrays of pointers/ints, sorted by first array in non-increasing order */
1910 extern
1911 void SCIPsortDownPtrInt(
1912  void** ptrarray, /**< pointer array to be sorted */
1913  int* intarray, /**< int array to be permuted in the same way */
1914  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
1915  int len /**< length of arrays */
1916  );
1917 
1918 /** sort of two joint arrays of pointers/Bools, sorted by first array in non-increasing order */
1919 extern
1920 void SCIPsortDownPtrBool(
1921  void** ptrarray, /**< pointer array to be sorted */
1922  SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */
1923  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
1924  int len /**< length of arrays */
1925  );
1926 
1927 /** sort of three joint arrays of pointers/ints/ints, sorted by first array in non-increasing order */
1928 extern
1930  void** ptrarray, /**< pointer array to be sorted */
1931  int* intarray1, /**< first int array to be permuted in the same way */
1932  int* intarray2, /**< second int array to be permuted in the same way */
1933  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
1934  int len /**< length of arrays */
1935  );
1936 
1937 /** sort of three joint arrays of pointers/Reals/ints, sorted by first array in non-increasing order */
1938 extern
1940  void** ptrarray, /**< pointer array to be sorted */
1941  SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */
1942  int* intarray, /**< int array to be permuted in the same way */
1943  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
1944  int len /**< length of arrays */
1945  );
1946 
1947 /** sort of three joint arrays of pointers/Reals/Bools, sorted by first array in non-increasing order */
1948 extern
1950  void** ptrarray, /**< pointer array to be sorted */
1951  SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */
1952  SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */
1953  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
1954  int len /**< length of arrays */
1955  );
1956 
1957 /** sort of three joint arrays of pointers/pointers/ints, sorted by first array in non-increasing order */
1958 extern
1960  void** ptrarray1, /**< first pointer array to be sorted */
1961  void** ptrarray2, /**< second pointer array to be permuted in the same way */
1962  int* intarray, /**< int array to be permuted in the same way */
1963  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
1964  int len /**< length of arrays */
1965  );
1966 
1967 /** sort of three joint arrays of pointers/pointers/Reals, sorted by first array in non-increasing order */
1968 extern
1970  void** ptrarray1, /**< first pointer array to be sorted */
1971  void** ptrarray2, /**< second pointer array to be permuted in the same way */
1972  SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */
1973  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
1974  int len /**< length of arrays */
1975  );
1976 
1977 /** sort of four joint arrays of pointers/pointers/ints/ints, sorted by first array in non-increasing order */
1978 extern
1980  void** ptrarray1, /**< first pointer array to be sorted */
1981  void** ptrarray2, /**< second pointer array to be permuted in the same way */
1982  int* intarray1, /**< first int array to be permuted in the same way */
1983  int* intarray2, /**< second int array to be permuted in the same way */
1984  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
1985  int len /**< length of arrays */
1986  );
1987 
1988 /** sort of four joint arrays of pointers/Reals/ints/ints, sorted by first array in non-increasing order */
1989 extern
1991  void** ptrarray, /**< pointer array to be sorted */
1992  SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */
1993  int* intarray1, /**< first int array to be permuted in the same way */
1994  int* intarray2, /**< second int array to be permuted in the same way */
1995  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
1996  int len /**< length of arrays */
1997  );
1998 
1999 /** sort of four joint arrays of pointer/pointer/Reals/ints, sorted by first array in non-increasing order */
2000 extern
2002  void** ptrarray1, /**< first pointer array to be sorted */
2003  void** ptrarray2, /**< second pointer array to be permuted in the same way */
2004  SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */
2005  int* intarray, /**< int array to be permuted in the same way */
2006  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
2007  int len /**< length of arrays */
2008  );
2009 
2010 /** sort of four joint arrays of pointer/pointer/Reals/bools, sorted by first array in non-increasing order */
2011 extern
2013  void** ptrarray1, /**< first pointer array to be sorted */
2014  void** ptrarray2, /**< second pointer array to be permuted in the same way */
2015  SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */
2016  SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */
2017  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
2018  int len /**< length of arrays */
2019  );
2020 
2021 /** sort of four joint arrays of pointer/pointer/Longs/ints, sorted by first array in non-increasing order */
2022 extern
2024  void** ptrarray1, /**< first pointer array to be sorted */
2025  void** ptrarray2, /**< second pointer array to be permuted in the same way */
2026  SCIP_Longint* longarray, /**< SCIP_Longint array to be permuted in the same way */
2027  int* intarray, /**< int array to be permuted in the same way */
2028  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
2029  int len /**< length of arrays */
2030  );
2031 
2032 /** sort of five joint arrays of pointer/pointer/Longs/ints/ints, sorted by first array in non-increasing order */
2033 extern
2035  void** ptrarray1, /**< first pointer array to be sorted */
2036  void** ptrarray2, /**< second pointer array to be permuted in the same way */
2037  SCIP_Longint* longarray, /**< SCIP_Longint array to be permuted in the same way */
2038  int* intarray1, /**< first int array to be permuted in the same way */
2039  int* intarray2, /**< second int array to be permuted in the same way */
2040  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
2041  int len /**< length of arrays */
2042  );
2043 
2044 /** sort an array of Reals in non-increasing order */
2045 extern
2046 void SCIPsortDownReal(
2047  SCIP_Real* realarray, /**< SCIP_Real array to be sorted */
2048  int len /**< length of arrays */
2049  );
2050 
2051 /** sort of two joint arrays of Reals/pointers, sorted by first array in non-increasing order */
2052 extern
2053 void SCIPsortDownRealPtr(
2054  SCIP_Real* realarray, /**< SCIP_Real array to be sorted */
2055  void** ptrarray, /**< pointer array to be permuted in the same way */
2056  int len /**< length of arrays */
2057  );
2058 
2059 /** sort of two joint arrays of Reals/ints, sorted by first array in non-increasing order */
2060 extern
2061 void SCIPsortDownRealInt(
2062  SCIP_Real* realarray, /**< SCIP_Real array to be sorted */
2063  int* intarray, /**< pointer array to be permuted in the same way */
2064  int len /**< length of arrays */
2065  );
2066 
2067 /** sort of three joint arrays of Reals/Bools/Pointer, sorted by first array in non-increasing order */
2068 extern
2070  SCIP_Real* realarray, /**< SCIP_Real array to be sorted */
2071  SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */
2072  void** ptrarray, /**< pointer array to be permuted in the same way */
2073  int len /**< length of arrays */
2074  );
2075 
2076 /** sort of three joint arrays of Reals/ints/Longs, sorted by first array in non-increasing order */
2077 extern
2079  SCIP_Real* realarray, /**< SCIP_Real array to be sorted */
2080  int* intarray, /**< int array to be permuted in the same way */
2081  SCIP_Longint* longarray, /**< SCIP_Longint array to be permuted in the same way */
2082  int len /**< length of arrays */
2083  );
2084 
2085 /** sort of three joint arrays of Reals/ints/Pointer, sorted by first array in non-increasing order */
2086 extern
2088  SCIP_Real* realarray, /**< SCIP_Real array to be sorted */
2089  int* intarray, /**< int array to be permuted in the same way */
2090  void** ptrarray, /**< pointer array to be permuted in the same way */
2091  int len /**< length of arrays */
2092  );
2093 
2094 /** sort of three joint arrays of Reals/Reals/Pointer, sorted by first array in non-increasing order */
2095 extern
2097  SCIP_Real* realarray1, /**< first SCIP_Real array to be sorted */
2098  SCIP_Real* realarray2, /**< second SCIP_Real array to be permuted in the same way */
2099  void** ptrarray, /**< pointer array to be permuted in the same way */
2100  int len /**< length of arrays */
2101  );
2102 
2103 /** sort of four joint arrays of Reals/pointers/pointers/ints, sorted by first array in non-increasing order */
2104 extern
2106  SCIP_Real* realarray, /**< SCIP_Real array to be sorted */
2107  void** ptrarray1, /**< pointer array to be permuted in the same way */
2108  void** ptrarray2, /**< pointer array to be permuted in the same way */
2109  int* intarray, /**< int array to be sorted */
2110  int len /**< length of arrays */
2111  );
2112 
2113 /** sort of five joint arrays of Reals/pointers/pointers/ints/ints, sorted by first array in non-increasing order */
2114 extern
2116  SCIP_Real* realarray, /**< SCIP_Real array to be sorted */
2117  void** ptrarray1, /**< pointer array to be permuted in the same way */
2118  void** ptrarray2, /**< pointer array to be permuted in the same way */
2119  int* intarray1, /**< int array to be sorted */
2120  int* intarray2, /**< int array to be sorted */
2121  int len /**< length of arrays */
2122  );
2123 
2124 /** sort of four joint arrays of Reals/Longs/Reals/ints, sorted by first array in non-increasing order */
2125 extern
2127  SCIP_Real* realarray1, /**< SCIP_Real array to be sorted */
2128  SCIP_Longint* longarray, /**< SCIP_Longint array to be permuted in the same way */
2129  SCIP_Real* realarray3, /**< SCIP_Real array to be permuted in the same way */
2130  int* intarray, /**< int array to be permuted in the same way */
2131  int len /**< length of arrays */
2132  );
2133 
2134 /** sort of four joint arrays of Reals/Reals/ints/ints, sorted by first array in non-increasing order */
2135 extern
2137  SCIP_Real* realarray1, /**< SCIP_Real array to be sorted */
2138  SCIP_Real* realarray2, /**< SCIP_Real array to be permuted in the same way */
2139  int* intarray1, /**< int array to be permuted in the same way */
2140  int* intarray2, /**< int array to be permuted in the same way */
2141  int len /**< length of arrays */
2142  );
2143 
2144 
2145 /** sort of four joint arrays of Reals/Reals/Reals/ints, sorted by first array in non-increasing order */
2146 extern
2148  SCIP_Real* realarray1, /**< SCIP_Real array to be sorted */
2149  SCIP_Real* realarray2, /**< SCIP_Real array to be permuted in the same way */
2150  SCIP_Real* realarray3, /**< SCIP_Real array to be permuted in the same way */
2151  int* intarray, /**< int array to be permuted in the same way */
2152  int len /**< length of arrays */
2153  );
2154 
2155 /** sort of four joint arrays of Reals/Reals/Reals/pointers, sorted by first array in non-increasing order */
2156 extern
2158  SCIP_Real* realarray1, /**< SCIP_Real array to be sorted */
2159  SCIP_Real* realarray2, /**< SCIP_Real array to be permuted in the same way */
2160  SCIP_Real* realarray3, /**< SCIP_Real array to be permuted in the same way */
2161  void** ptrarray, /**< pointer array to be permuted in the same way */
2162  int len /**< length of arrays */
2163  );
2164 
2165 /** sort of three joint arrays of Reals/pointers, sorted by first array in non-decreasing order */
2166 extern
2168  SCIP_Real* realarray, /**< SCIP_Real array to be sorted */
2169  void** ptrarray1, /**< pointer array to be permuted in the same way */
2170  void** ptrarray2, /**< pointer array to be permuted in the same way */
2171  int len /**< length of arrays */
2172  );
2173 
2174 /** sort of five joint arrays of Reals/Reals/Reals/Bools/pointers, sorted by first array in non-increasing order */
2175 extern
2177  SCIP_Real* realarray1, /**< SCIP_Real array to be sorted */
2178  SCIP_Real* realarray2, /**< SCIP_Real array to be permuted in the same way */
2179  SCIP_Real* realarray3, /**< SCIP_Real array to be permuted in the same way */
2180  SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */
2181  void** ptrarray, /**< pointer array to be permuted in the same way */
2182  int len /**< length of arrays */
2183  );
2184 
2185 /** sort of six joint arrays of Reals/Reals/Reals/Bools/Bools/pointers, sorted by first array in non-increasing order */
2186 extern
2188  SCIP_Real* realarray1, /**< SCIP_Real array to be sorted */
2189  SCIP_Real* realarray2, /**< SCIP_Real array to be permuted in the same way */
2190  SCIP_Real* realarray3, /**< SCIP_Real array to be permuted in the same way */
2191  SCIP_Bool* boolarray1, /**< SCIP_Bool array to be permuted in the same way */
2192  SCIP_Bool* boolarray2, /**< SCIP_Bool array to be permuted in the same way */
2193  void** ptrarray, /**< pointer array to be permuted in the same way */
2194  int len /**< length of arrays */
2195  );
2196 
2197 /** sort array of ints in non-increasing order */
2198 extern
2199 void SCIPsortDownInt(
2200  int* intarray, /**< int array to be sorted */
2201  int len /**< length of arrays */
2202  );
2203 
2204 /** sort of two joint arrays of ints/ints, sorted by first array in non-increasing order */
2205 extern
2206 void SCIPsortDownIntInt(
2207  int* intarray1, /**< int array to be sorted */
2208  int* intarray2, /**< second int array to be permuted in the same way */
2209  int len /**< length of arrays */
2210  );
2211 
2212 /** sort of two joint arrays of ints/pointers, sorted by first array in non-increasing order */
2213 extern
2214 void SCIPsortDownIntPtr(
2215  int* intarray, /**< int array to be sorted */
2216  void** ptrarray, /**< pointer array to be permuted in the same way */
2217  int len /**< length of arrays */
2218  );
2219 
2220 /** sort of two joint arrays of ints/reals, sorted by first array in non-increasing order */
2221 extern
2222 void SCIPsortDownIntReal(
2223  int* intarray, /**< int array to be sorted */
2224  SCIP_Real* realarray, /**< real array to be permuted in the same way */
2225  int len /**< length of arrays */
2226  );
2227 
2228 /** sort of three joint arrays of ints/ints/ints, sorted by first array in non-increasing order */
2229 extern
2231  int* intarray1, /**< int array to be sorted */
2232  int* intarray2, /**< second int array to be permuted in the same way */
2233  int* intarray3, /**< third int array to be permuted in the same way */
2234  int len /**< length of arrays */
2235  );
2236 
2237 /** sort of three joint arrays of ints/ints/SCIP_Longint, sorted by first array in non-increasing order */
2238 extern
2240  int* intarray1, /**< int array to be sorted */
2241  int* intarray2, /**< second int array to be permuted in the same way */
2242  SCIP_Longint* longarray, /**< SCIP_Longint array to be permuted in the same way */
2243  int len /**< length of arrays */
2244  );
2245 
2246 /** sort of three joint arrays of ints/ints/pointers, sorted by first array in non-increasing order */
2247 extern
2249  int* intarray1, /**< int array to be sorted */
2250  int* intarray2, /**< second int array to be permuted in the same way */
2251  void** ptrarray, /**< pointer array to be permuted in the same way */
2252  int len /**< length of arrays */
2253  );
2254 
2255 /** sort of three joint arrays of ints/ints/Reals, sorted by first array in non-increasing order */
2256 extern
2258  int* intarray1, /**< int array to be sorted */
2259  int* intarray2, /**< second int array to be permuted in the same way */
2260  SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */
2261  int len /**< length of arrays */
2262  );
2263 
2264 /** sort of four joint arrays of ints/ints/ints/pointers, sorted by first array in non-increasing order */
2265 extern
2267  int* intarray1, /**< int array to be sorted */
2268  int* intarray2, /**< int array to be permuted in the same way */
2269  int* intarray3, /**< int array to be permuted in the same way */
2270  void** ptrarray, /**< pointer array to be permuted in the same way */
2271  int len /**< length of arrays */
2272  );
2273 
2274 /** sort of four joint arrays of ints/ints/ints/reals, sorted by first array in non-increasing order */
2275 extern
2277  int* intarray1, /**< int array to be sorted */
2278  int* intarray2, /**< int array to be permuted in the same way */
2279  int* intarray3, /**< int array to be permuted in the same way */
2280  SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */
2281  int len /**< length of arrays */
2282  );
2283 
2284 /** sort of four joint arrays of ints/pointers/ints/Reals, sorted by first array in non-increasing order */
2285 extern
2287  int* intarray1, /**< int array to be sorted */
2288  void** ptrarray, /**< pointer array to be permuted in the same way */
2289  int* intarray2, /**< int array to be permuted in the same way */
2290  SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */
2291  int len /**< length of arrays */
2292  );
2293 
2294 /** sort an array of Longints in non-increasing order */
2295 extern
2296 void SCIPsortDownLong(
2297  SCIP_Longint* longarray, /**< SCIP_Longint array to be sorted */
2298  int len /**< length of arrays */
2299  );
2300 
2301 /** sort of two joint arrays of Long/pointer, sorted by the first array in non-increasing order */
2302 extern
2303 void SCIPsortDownLongPtr(
2304  SCIP_Longint* longarray, /**< SCIP_Longint array to be sorted */
2305  void** ptrarray, /**< pointer array to be permuted in the same way */
2306  int len /**< length of arrays */
2307  );
2308 
2309 /** sort of three arrays of Long/pointer/ints, sorted by the first array in non-increasing order */
2310 extern
2312  SCIP_Longint* longarray, /**< SCIP_Longint array to be sorted */
2313  void** ptrarray, /**< pointer array to be permuted in the same way */
2314  int* intarray, /**< int array to be permuted in the same way */
2315  int len /**< length of arrays */
2316  );
2317 
2318 /** sort of four arrays of Long/pointer/Real/Bool, sorted by the first array in non-increasing order */
2319 extern
2321  SCIP_Longint* longarray, /**< SCIP_Longint array to be sorted */
2322  void** ptrarray, /**< pointer array to be permuted in the same way */
2323  SCIP_Real* realarray, /**< SCIP_Real array to be permuted in the same way */
2324  SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */
2325  int len /**< length of arrays */
2326  );
2327 
2328 /** sort of five arrays of Long/pointer/Real/Real/Bool, sorted by the first array in non-increasing order */
2329 extern
2331  SCIP_Longint* longarray, /**< SCIP_Longint array to be sorted */
2332  void** ptrarray, /**< pointer array to be permuted in the same way */
2333  SCIP_Real* realarray, /**< first SCIP_Real array to be permuted in the same way */
2334  SCIP_Real* realarray2, /**< second SCIP_Real array to be permuted in the same way */
2335  SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */
2336  int len /**< length of arrays */
2337  );
2338 
2339 /** sort of six arrays of Long/pointer/Real/Real/int/Bool, sorted by the first array in non-increasing order */
2340 extern
2342  SCIP_Longint* longarray, /**< SCIP_Longint array to be sorted */
2343  void** ptrarray, /**< pointer array to be permuted in the same way */
2344  SCIP_Real* realarray, /**< first SCIP_Real array to be permuted in the same way */
2345  SCIP_Real* realarray2, /**< second SCIP_Real array to be permuted in the same way */
2346  int* intarray, /**< int array to be permuted in the same way */
2347  SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */
2348  int len /**< length of arrays */
2349  );
2350 
2351 /** sort of four joint arrays of Long/pointer/pointer/ints, sorted by first array in non-increasing order */
2352 extern
2354  SCIP_Longint* longarray, /**< SCIP_Longint array to be sorted */
2355  void** ptrarray1, /**< first pointer array to be permuted in the same way */
2356  void** ptrarray2, /**< second pointer array to be permuted in the same way */
2357  int* intarray, /**< int array to be permuted in the same way */
2358  int len /**< length of arrays */
2359  );
2360 
2361 /** sort of five joint arrays of Long/pointer/pointer/ints/ints, sorted by first array in non-increasing order */
2362 extern
2364  SCIP_Longint* longarray, /**< SCIP_Longint array to be sorted */
2365  void** ptrarray1, /**< first pointer array to be permuted in the same way */
2366  void** ptrarray2, /**< second pointer array to be permuted in the same way */
2367  int* intarray1, /**< first int array to be permuted in the same way */
2368  int* intarray2, /**< second int array to be permuted in the same way */
2369  int len /**< length of arrays */
2370  );
2371 
2372 /** sort of five joint arrays of Long/pointer/pointer/Bool/ints, sorted by first array in non-increasing order */
2373 extern
2375  SCIP_Longint* longarray, /**< SCIP_Longint array to be sorted */
2376  void** ptrarray1, /**< first pointer array to be permuted in the same way */
2377  void** ptrarray2, /**< second pointer array to be permuted in the same way */
2378  SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */
2379  int* intarray, /**< int array to be sorted */
2380  int len /**< length of arrays */
2381  );
2382 
2383 /** sort of five joint arrays of pointer/ints/ints/Bool/Bool, sorted by first array in non-increasing order */
2384 extern
2386  void** ptrarray, /**< pointer array to be sorted */
2387  int* intarray1, /**< first int array to be permuted in the same way */
2388  int* intarray2, /**< second int array to be permuted in the same way */
2389  SCIP_Bool* boolarray1, /**< first SCIP_Bool array to be permuted in the same way */
2390  SCIP_Bool* boolarray2, /**< second SCIP_Bool array to be permuted in the same way */
2391  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
2392  int len /**< length of arrays */
2393  );
2394 
2395 /** sort of six joint arrays of ints/pointer/ints/ints/Bool/Bool, sorted by first array in non-increasing order */
2396 extern
2398  int* intarray1, /**< int array to be sorted */
2399  void** ptrarray, /**< pointer array to be permuted in the same way */
2400  int* intarray2, /**< second int array to be permuted in the same way */
2401  int* intarray3, /**< thrid int array to be permuted in the same way */
2402  SCIP_Bool* boolarray1, /**< first SCIP_Bool array to be permuted in the same way */
2403  SCIP_Bool* boolarray2, /**< second SCIP_Bool array to be permuted in the same way */
2404  int len /**< length of arrays */
2405  );
2406 
2407 /*
2408  * Sorted vectors
2409  */
2410 
2411 /* upwards insertion */
2412 
2413 /** insert a new element into an index array in non-decreasing order */
2414 extern
2416  int* indarray, /**< pointer to the index array where an element is to be inserted */
2417  SCIP_DECL_SORTINDCOMP((*indcomp)), /**< data element comparator */
2418  void* dataptr, /**< pointer to data field that is given to the external compare method */
2419  int keyval, /**< key value of new element */
2420  int* len, /**< pointer to length of arrays (will be increased by 1) */
2421  int* pos /**< pointer to store the insertion position, or NULL */
2422  );
2423 
2424 /** insert a new element into an array of pointers in non-decreasing order */
2425 extern
2427  void** ptrarray, /**< pointer to the pointer array where an element is to be inserted */
2428  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
2429  void* keyval, /**< key value of new element */
2430  int* len, /**< pointer to length of arrays (will be increased by 1) */
2431  int* pos /**< pointer to store the insertion position, or NULL */
2432  );
2433 
2434 /** insert a new element into two joint arrays of pointers/pointers sorted by first array in non-decreasing order */
2435 extern
2437  void** ptrarray1, /**< first pointer array where an element is to be inserted */
2438  void** ptrarray2, /**< second pointer array where an element is to be inserted */
2439  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
2440  void* keyval, /**< key value of new element */
2441  void* field1val, /**< additional value of new element */
2442  int* len, /**< pointer to length of arrays (will be increased by 1) */
2443  int* pos /**< pointer to store the insertion position, or NULL */
2444  );
2445 
2446 /** insert a new element into two joint arrays of pointers/Reals, sorted by first array in non-decreasing order */
2447 extern
2449  void** ptrarray, /**< pointer array where an element is to be inserted */
2450  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */
2451  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
2452  void* keyval, /**< key value of new element */
2453  SCIP_Real field1val, /**< additional value of new element */
2454  int* len, /**< pointer to length of arrays (will be increased by 1) */
2455  int* pos /**< pointer to store the insertion position, or NULL */
2456  );
2457 
2458 /** insert a new element into two joint arrays of pointers/ints, sorted by first array in non-decreasing order */
2459 extern
2461  void** ptrarray, /**< pointer array where an element is to be inserted */
2462  int* intarray, /**< int array where an element is to be inserted */
2463  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
2464  void* keyval, /**< key value of new element */
2465  int field1val, /**< additional value of new element */
2466  int* len, /**< pointer to length of arrays (will be increased by 1) */
2467  int* pos /**< pointer to store the insertion position, or NULL */
2468  );
2469 
2470 /** insert a new element into two joint arrays of pointers/Bools, sorted by first array in non-decreasing order */
2471 extern
2473  void** ptrarray, /**< pointer array where an element is to be inserted */
2474  SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be inserted */
2475  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
2476  void* keyval, /**< key value of new element */
2477  SCIP_Bool field1val, /**< additional value of new element */
2478  int* len, /**< pointer to length of arrays (will be increased by 1) */
2479  int* pos /**< pointer to store the insertion position, or NULL */
2480  );
2481 
2482 /** insert a new element into three joint arrays of pointers/ints/ints, sorted by first array in non-decreasing order */
2483 extern
2485  void** ptrarray, /**< pointer array where an element is to be inserted */
2486  int* intarray1, /**< first int array where an element is to be inserted */
2487  int* intarray2, /**< second int array where an element is to be inserted */
2488  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
2489  void* keyval, /**< key value of new element */
2490  int field1val, /**< additional value of new element */
2491  int field2val, /**< additional value of new element */
2492  int* len, /**< pointer to length of arrays (will be increased by 1) */
2493  int* pos /**< pointer to store the insertion position, or NULL */
2494  );
2495 
2496 /** insert a new element into three joint arrays of pointers/Reals/ints, sorted by first array in non-decreasing order */
2497 extern
2499  void** ptrarray, /**< pointer array where an element is to be inserted */
2500  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */
2501  int* intarray, /**< int array where an element is to be inserted */
2502  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
2503  void* keyval, /**< key value of new element */
2504  SCIP_Real field1val, /**< additional value of new element */
2505  int field2val, /**< additional value of new element */
2506  int* len, /**< pointer to length of arrays (will be increased by 1) */
2507  int* pos /**< pointer to store the insertion position, or NULL */
2508  );
2509 
2510 /** insert a new element into three joint arrays of pointers/Reals/Bools, sorted by first array in non-decreasing order */
2511 extern
2513  void** ptrarray, /**< pointer array where an element is to be inserted */
2514  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */
2515  SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be inserted */
2516  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
2517  void* keyval, /**< key value of new element */
2518  SCIP_Real field1val, /**< additional value of new element */
2519  SCIP_Bool field2val, /**< additional value of new element */
2520  int* len, /**< pointer to length of arrays (will be increased by 1) */
2521  int* pos /**< pointer to store the insertion position, or NULL */
2522  );
2523 
2524 /** insert a new element into three joint arrays of pointers/pointers/Ints, sorted by first array in non-decreasing order */
2525 extern
2527  void** ptrarray1, /**< first pointer array where an element is to be inserted */
2528  void** ptrarray2, /**< second pointer array where an element is to be inserted */
2529  int* intarray, /**< int array where an element is to be inserted */
2530  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
2531  void* keyval, /**< key value of new element */
2532  void* field1val, /**< additional value of new element */
2533  int field2val, /**< additional value of new element */
2534  int* len, /**< pointer to length of arrays (will be increased by 1) */
2535  int* pos /**< pointer to store the insertion position, or NULL */
2536  );
2537 
2538 /** insert a new element into three joint arrays of pointers/pointers/Reals, sorted by first array in non-decreasing order */
2539 extern
2541  void** ptrarray1, /**< first pointer array where an element is to be inserted */
2542  void** ptrarray2, /**< second pointer array where an element is to be inserted */
2543  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */
2544  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
2545  void* keyval, /**< key value of new element */
2546  void* field1val, /**< additional value of new element */
2547  SCIP_Real field2val, /**< additional value of new element */
2548  int* len, /**< pointer to length of arrays (will be increased by 1) */
2549  int* pos /**< pointer to store the insertion position, or NULL */
2550  );
2551 
2552 /** insert a new element into four joint arrays of pointers/pointers/ints/ints, sorted by first array in non-decreasing order */
2553 extern
2555  void** ptrarray1, /**< first pointer array where an element is to be inserted */
2556  void** ptrarray2, /**< second pointer array where an element is to be inserted */
2557  int* intarray1, /**< first int array where an element is to be inserted */
2558  int* intarray2, /**< second int array where an element is to be inserted */
2559  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
2560  void* keyval, /**< key value of new element */
2561  void* field1val, /**< additional value of new element */
2562  int field2val, /**< additional value of new element */
2563  int field3val, /**< additional value of new element */
2564  int* len, /**< pointer to length of arrays (will be increased by 1) */
2565  int* pos /**< pointer to store the insertion position, or NULL */
2566  );
2567 
2568 /** insert a new element into four joint arrays of pointers/Reals/ints/ints, sorted by first array in non-decreasing order */
2569 extern
2571  void** ptrarray, /**< pointer array where an element is to be inserted */
2572  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */
2573  int* intarray1, /**< first int array where an element is to be inserted */
2574  int* intarray2, /**< second int array where an element is to be inserted */
2575  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
2576  void* keyval, /**< key value of new element */
2577  SCIP_Real field1val, /**< additional value of new element */
2578  int field2val, /**< additional value of new element */
2579  int field3val, /**< additional value of new element */
2580  int* len, /**< pointer to length of arrays (will be increased by 1) */
2581  int* pos /**< pointer to store the insertion position, or NULL */
2582  );
2583 
2584 /** insert a new element into four joint arrays of pointer/pointer/Reals/ints, sorted by first array in non-decreasing order */
2585 extern
2587  void** ptrarray1, /**< first pointer array where an element is to be inserted */
2588  void** ptrarray2, /**< second pointer array where an element is to be inserted */
2589  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */
2590  int* intarray, /**< int array where an element is to be inserted */
2591  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
2592  void* keyval, /**< key value of new element */
2593  void* field1val, /**< additional value of new element */
2594  SCIP_Real field2val, /**< additional value of new element */
2595  int field3val, /**< additional value of new element */
2596  int* len, /**< pointer to length of arrays (will be increased by 1) */
2597  int* pos /**< pointer to store the insertion position, or NULL */
2598  );
2599 
2600 /** insert a new element into four joint arrays of pointer/pointer/Reals/bools, sorted by first array in non-decreasing order */
2601 extern
2603  void** ptrarray1, /**< first pointer array where an element is to be inserted */
2604  void** ptrarray2, /**< second pointer array where an element is to be inserted */
2605  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */
2606  SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be inserted */
2607  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
2608  void* keyval, /**< key value of new element */
2609  void* field1val, /**< additional value of new element */
2610  SCIP_Real field2val, /**< additional value of new element */
2611  SCIP_Bool field3val, /**< additional value of new element */
2612  int* len, /**< pointer to length of arrays (will be increased by 1) */
2613  int* pos /**< pointer to store the insertion position, or NULL */
2614  );
2615 
2616 /** insert a new element into four joint arrays of pointer/pointer/Longs/ints, sorted by first array in non-decreasing order */
2617 extern
2619  void** ptrarray1, /**< first pointer array where an element is to be inserted */
2620  void** ptrarray2, /**< second pointer array where an element is to be inserted */
2621  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */
2622  int* intarray, /**< int array to be sorted */
2623  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
2624  void* keyval, /**< key value of new element */
2625  void* field1val, /**< additional value of new element */
2626  SCIP_Longint field2val, /**< additional value of new element */
2627  int field3val, /**< additional value of new element */
2628  int* len, /**< pointer to length of arrays (will be increased by 1) */
2629  int* pos /**< pointer to store the insertion position, or NULL */
2630  );
2631 
2632 /** insert a new element into five joint arrays of pointer/pointer/Longs/ints/ints, sorted by first array in non-decreasing order */
2633 extern
2635  void** ptrarray1, /**< first pointer array where an element is to be inserted */
2636  void** ptrarray2, /**< second pointer array where an element is to be inserted */
2637  SCIP_Longint* longarray, /**< SCIP_Longint where an element is to be inserted */
2638  int* intarray1, /**< first int array where an element is to be inserted */
2639  int* intarray2, /**< second int array where an element is to be inserted */
2640  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
2641  void* keyval, /**< key value of new element */
2642  void* field1val, /**< additional value of new element */
2643  SCIP_Longint field2val, /**< additional value of new element */
2644  int field3val, /**< additional value of new element */
2645  int field4val, /**< 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 Reals/ints/ints, sorted by first array in non-decreasing order */
2651 extern
2653  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */
2654  int* intarray1, /**< first int array where an element is to be inserted */
2655  int* intarray2, /**< second int array where an element is to be inserted */
2656  SCIP_Real keyval, /**< key value of new element */
2657  int field2val, /**< additional value of new element */
2658  int field3val, /**< 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 Reals/Bools/pointers, sorted by first array in non-decreasing order */
2664 extern
2666  SCIP_Real* realarray, /**< SCIP_Real array to be sorted */
2667  SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */
2668  void** ptrarray, /**< pointer array to be permuted in the same way */
2669  SCIP_Real keyval, /**< key value of new element */
2670  SCIP_Bool field1val, /**< additional value of new element */
2671  void* 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 Reals/pointers, sorted by first array in non-decreasing order */
2677 extern
2679  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */
2680  void** ptrarray, /**< pointer array where an element is to be inserted */
2681  SCIP_Real 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 an arrays of Reals, sorted in non-decreasing order */
2688 extern
2690  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */
2691  SCIP_Real keyval, /**< key value of new element */
2692  int* len, /**< pointer to length of arrays (will be increased by 1) */
2693  int* pos /**< pointer to store the insertion position, or NULL */
2694  );
2695 
2696 /** insert a new element into two joint arrays of Reals/ints, sorted by first array in non-decreasing order */
2697 extern
2699  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */
2700  int* intarray, /**< int array where an element is to be inserted */
2701  SCIP_Real keyval, /**< key value of new element */
2702  int field1val, /**< additional value of new element */
2703  int* len, /**< pointer to length of arrays (will be increased by 1) */
2704  int* pos /**< pointer to store the insertion position, or NULL */
2705  );
2706 
2707 /** insert a new element into three joint arrays of Reals/ints/Longs, sorted by first array in non-decreasing order */
2708 extern
2710  SCIP_Real* realarray, /**< SCIP_Real array to be sorted */
2711  int* intarray, /**< int array to be permuted in the same way */
2712  SCIP_Longint* longarray, /**< SCIP_Longint array to be permuted in the same way */
2713  SCIP_Real keyval, /**< key value of new element */
2714  int field1val, /**< additional value of new element */
2715  SCIP_Longint field2val, /**< additional value of new element */
2716  int* len, /**< pointer to length of arrays (will be increased by 1) */
2717  int* pos /**< pointer to store the insertion position, or NULL */
2718  );
2719 
2720 /** insert a new element into three joint arrays of Reals/ints/Pointer, sorted by first array in non-decreasing order */
2721 extern
2723  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */
2724  int* intarray, /**< int array where an element is to be inserted */
2725  void** ptrarray, /**< pointer array where an element is to be inserted */
2726  SCIP_Real keyval, /**< key value of new element */
2727  int field1val, /**< additional value of new element */
2728  void* field2val, /**< additional value of new element */
2729  int* len, /**< pointer to length of arrays (will be increased by 1) */
2730  int* pos /**< pointer to store the insertion position, or NULL */
2731  );
2732 
2733 /** insert a new element into three joint arrays of Reals/Reals/Pointer, sorted by first array in non-decreasing order */
2734 extern
2736  SCIP_Real* realarray1, /**< first SCIP_Real array where an element is to be inserted */
2737  SCIP_Real* realarray2, /**< second SCIP_Real array where an element is to be inserted */
2738  void** ptrarray, /**< pointer array where an element is to be inserted */
2739  SCIP_Real keyval, /**< key value of new element */
2740  SCIP_Real field1val, /**< additional value of new element */
2741  void* field2val, /**< additional value of new element */
2742  int* len, /**< pointer to length of arrays (will be increased by 1) */
2743  int* pos /**< pointer to store the insertion position, or NULL */
2744  );
2745 
2746 /** insert a new element into four joint arrays of Reals/pointers/pointers/ints, sorted by first array in non-decreasing order */
2747 extern
2749  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */
2750  void** ptrarray1, /**< pointer array where an element is to be inserted */
2751  void** ptrarray2, /**< pointer array where an element is to be inserted */
2752  int* intarray, /**< int array where an element is to be inserted */
2753  SCIP_Real keyval, /**< key value of new element */
2754  void* field1val, /**< additional value of new element */
2755  void* field2val, /**< additional value of new element */
2756  int intval, /**< additional value of new element */
2757  int* len, /**< pointer to length of arrays (will be increased by 1) */
2758  int* pos /**< pointer to store the insertion position, or NULL */
2759  );
2760 
2761 /** insert a new element into five joint arrays of Reals/pointers/pointers/ints/ints, sorted by first array in non-decreasing order */
2762 extern
2764  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */
2765  void** ptrarray1, /**< pointer array where an element is to be inserted */
2766  void** ptrarray2, /**< pointer array where an element is to be inserted */
2767  int* intarray1, /**< int array where an element is to be inserted */
2768  int* intarray2, /**< int array where an element is to be inserted */
2769  SCIP_Real keyval, /**< key value of new element */
2770  void* field1val, /**< additional value of new element */
2771  void* field2val, /**< additional value of new element */
2772  int intval1, /**< additional value of new element */
2773  int intval2, /**< additional value of new element */
2774  int* len, /**< pointer to length of arrays (will be increased by 1) */
2775  int* pos /**< pointer to store the insertion position, or NULL */
2776  );
2777 
2778 /** insert a new element into four joint arrays of Reals/Long/Reals/ints, sorted by first array in non-decreasing order */
2779 extern
2781  SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be inserted */
2782  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */
2783  SCIP_Real* realarray3, /**< SCIP_Real array where an element is to be inserted */
2784  int* intarray, /**< int array where an element is to be inserted */
2785  SCIP_Real keyval, /**< key value of new element */
2786  SCIP_Longint field1val, /**< additional value of new element */
2787  SCIP_Real field2val, /**< additional value of new element */
2788  int field3val, /**< additional value of new element */
2789  int* len, /**< pointer to length of arrays (will be increased by 1) */
2790  int* pos /**< pointer to store the insertion position, or NULL */
2791  );
2792 
2793 /** insert a new element into four joint arrays of Reals/Reals/ints/ints, sorted by first array in non-decreasing order */
2794 extern
2796  SCIP_Real* realarray1, /**< first SCIP_Real array where an element is to be inserted */
2797  SCIP_Real* realarray2, /**< second SCIP_Real array where an element is to be inserted */
2798  int* intarray1, /**< first int array where an element is to be inserted */
2799  int* intarray2, /**< second int array where an element is to be inserted */
2800  SCIP_Real keyval, /**< key value of new element */
2801  SCIP_Real field1val, /**< additional value of new element */
2802  int field2val, /**< additional value of new element */
2803  int field3val, /**< additional value of new element */
2804  int* len, /**< pointer to length of arrays (will be increased by 1) */
2805  int* pos /**< pointer to store the insertion position, or NULL */
2806  );
2807 
2808 /** insert a new element into four joint arrays of Reals/Reals/Reals/ints, sorted by first array in non-decreasing order */
2809 extern
2811  SCIP_Real* realarray1, /**< first SCIP_Real array where an element is to be inserted */
2812  SCIP_Real* realarray2, /**< second SCIP_Real array where an element is to be inserted */
2813  SCIP_Real* realarray3, /**< third SCIP_Real array where an element is to be inserted */
2814  int* intarray, /**< int array where an element is to be inserted */
2815  SCIP_Real keyval, /**< key value of new element */
2816  SCIP_Real field1val, /**< additional value of new element */
2817  SCIP_Real field2val, /**< additional value of new element */
2818  int field3val, /**< additional value of new element */
2819  int* len, /**< pointer to length of arrays (will be increased by 1) */
2820  int* pos /**< pointer to store the insertion position, or NULL */
2821  );
2822 
2823 /** insert a new element into four joint arrays of Reals/Reals/Reals/pointers, sorted by first array in non-decreasing order */
2824 extern
2826  SCIP_Real* realarray1, /**< first SCIP_Real array where an element is to be inserted */
2827  SCIP_Real* realarray2, /**< second SCIP_Real array where an element is to be inserted */
2828  SCIP_Real* realarray3, /**< third SCIP_Real array where an element is to be inserted */
2829  void** ptrarray, /**< pointer array where an element is to be inserted */
2830  SCIP_Real keyval, /**< key value of new element */
2831  SCIP_Real field1val, /**< additional value of new element */
2832  SCIP_Real field2val, /**< additional value of new element */
2833  void* field3val, /**< additional value of new element */
2834  int* len, /**< pointer to length of arrays (will be increased by 1) */
2835  int* pos /**< pointer to store the insertion position, or NULL */
2836  );
2837 
2838 /** insert a new element into five joint arrays of Reals/Reals/Reals/Bools/pointers, sorted by first array in non-decreasing order */
2839 extern
2841  SCIP_Real* realarray1, /**< first SCIP_Real array where an element is to be inserted */
2842  SCIP_Real* realarray2, /**< second SCIP_Real array where an element is to be inserted */
2843  SCIP_Real* realarray3, /**< third SCIP_Real array where an element is to be inserted */
2844  SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be inserted */
2845  void** ptrarray, /**< pointer array where an element is to be inserted */
2846  SCIP_Real keyval, /**< key value of new element */
2847  SCIP_Real field1val, /**< additional value of new element */
2848  SCIP_Real field2val, /**< additional value of new element */
2849  SCIP_Bool field3val, /**< additional value of new element */
2850  void* field4val, /**< additional value of new element */
2851  int* len, /**< pointer to length of arrays (will be increased by 1) */
2852  int* pos /**< pointer to store the insertion position, or NULL */
2853  );
2854 
2855 /** insert a new element into six joint arrays of Reals/Reals/Reals/Bools/Bools/pointers, sorted by first array in non-decreasing order */
2856 extern
2858  SCIP_Real* realarray1, /**< first SCIP_Real array where an element is to be inserted */
2859  SCIP_Real* realarray2, /**< second SCIP_Real array where an element is to be inserted */
2860  SCIP_Real* realarray3, /**< third SCIP_Real array where an element is to be inserted */
2861  SCIP_Bool* boolarray1, /**< SCIP_Bool array where an element is to be inserted */
2862  SCIP_Bool* boolarray2, /**< SCIP_Bool array where an element is to be inserted */
2863  void** ptrarray, /**< pointer array where an element is to be inserted */
2864  SCIP_Real keyval, /**< key value of new element */
2865  SCIP_Real field1val, /**< additional value of new element */
2866  SCIP_Real field2val, /**< additional value of new element */
2867  SCIP_Bool field3val, /**< additional value of new element */
2868  SCIP_Bool field4val, /**< additional value of new element */
2869  void* field5val, /**< additional value of new element */
2870  int* len, /**< pointer to length of arrays (will be increased by 1) */
2871  int* pos /**< pointer to store the insertion position, or NULL */
2872  );
2873 
2874 /** insert a new element into an array of ints in non-decreasing order */
2875 extern
2877  int* intarray, /**< int array where an element is to be inserted */
2878  int keyval, /**< key 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 two joint arrays of ints/ints, sorted by first array in non-decreasing order */
2884 extern
2886  int* intarray1, /**< int array where an element is to be inserted */
2887  int* intarray2, /**< second int array where an element is to be inserted */
2888  int keyval, /**< key value of new element */
2889  int field1val, /**< additional value of new element */
2890  int* len, /**< pointer to length of arrays (will be increased by 1) */
2891  int* pos /**< pointer to store the insertion position, or NULL */
2892  );
2893 
2894 /** insert a new element into two joint arrays of ints/pointers, sorted by first array in non-decreasing order */
2895 extern
2897  int* intarray, /**< int array where an element is to be inserted */
2898  void** ptrarray, /**< pointer array where an element is to be inserted */
2899  int keyval, /**< key value of new element */
2900  void* field1val, /**< additional value of new element */
2901  int* len, /**< pointer to length of arrays (will be increased by 1) */
2902  int* pos /**< pointer to store the insertion position, or NULL */
2903  );
2904 
2905 /** insert a new element into two joint arrays of ints/reals, sorted by first array in non-decreasing order */
2906 extern
2908  int* intarray, /**< int array where an element is to be inserted */
2909  SCIP_Real* realarray, /**< real array where an element is to be inserted */
2910  int keyval, /**< key value of new element */
2911  SCIP_Real field1val, /**< additional value of new element */
2912  int* len, /**< pointer to length of arrays (will be increased by 1) */
2913  int* pos /**< pointer to store the insertion position, or NULL */
2914  );
2915 
2916 /** insert a new element into three joint arrays of ints/ints/ints, sorted by first array in non-decreasing order */
2917 extern
2919  int* intarray1, /**< int array where an element is to be inserted */
2920  int* intarray2, /**< second int array where an element is to be inserted */
2921  int* intarray3, /**< third int array where an element is to be inserted */
2922  int keyval, /**< key value of new element */
2923  int field1val, /**< additional value of new element */
2924  int field2val, /**< additional value of new element */
2925  int* len, /**< pointer to length of arrays (will be increased by 1) */
2926  int* pos /**< pointer to store the insertion position, or NULL */
2927  );
2928 
2929 /** insert a new element into three joint arrays of ints/ints/SCIP_Longint, sorted by first array in non-decreasing order */
2930 extern
2932  int* intarray1, /**< int array where an element is to be inserted */
2933  int* intarray2, /**< second int array where an element is to be inserted */
2934  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */
2935  int keyval, /**< key value of new element */
2936  int field1val, /**< additional value of new element */
2937  SCIP_Longint field2val, /**< additional value of new element */
2938  int* len, /**< pointer to length of arrays (will be increased by 1) */
2939  int* pos /**< pointer to store the insertion position, or NULL */
2940  );
2941 
2942 /** insert a new element into three joint arrays of ints/ints/pointers, sorted by first array in non-decreasing order */
2943 extern
2945  int* intarray1, /**< first int array where an element is to be inserted */
2946  int* intarray2, /**< second int array where an element is to be inserted */
2947  void** ptrarray, /**< pointer array where an element is to be inserted */
2948  int keyval, /**< key value of new element */
2949  int field1val, /**< additional value of new element */
2950  void* field2val, /**< additional value of new element */
2951  int* len, /**< pointer to length of arrays (will be increased by 1) */
2952  int* pos /**< pointer to store the insertion position, or NULL */
2953  );
2954 
2955 /** insert a new element into three joint arrays of ints/ints/Reals, sorted by first array in non-decreasing order */
2956 extern
2958  int* intarray1, /**< first int array where an element is to be inserted */
2959  int* intarray2, /**< second int array where an element is to be inserted */
2960  SCIP_Real* realarray, /**< real array where an element is to be inserted */
2961  int keyval, /**< key value of new element */
2962  int field1val, /**< additional value of new element */
2963  SCIP_Real field2val, /**< additional value of new element */
2964  int* len, /**< pointer to length of arrays (will be increased by 1) */
2965  int* pos /**< pointer to store the insertion position, or NULL */
2966  );
2967 
2968 /** insert a new element into three joint arrays of ints/pointers/Reals, sorted by first array in non-decreasing order */
2969 extern
2971  int* intarray, /**< int array where an element is to be inserted */
2972  void** ptrarray, /**< pointer array where an element is to be inserted */
2973  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */
2974  int keyval, /**< key value of new element */
2975  void* field1val, /**< additional value of new element */
2976  SCIP_Real field2val, /**< additional value of new element */
2977  int* len, /**< pointer to length of arrays (will be increased by 1) */
2978  int* pos /**< pointer to store the insertion position, or NULL */
2979  );
2980 
2981 /** insert a new element into four joint arrays of ints/ints/ints/pointers, sorted by first array in non-decreasing order */
2982 extern
2984  int* intarray1, /**< first int array where an element is to be inserted */
2985  int* intarray2, /**< second int array where an element is to be inserted */
2986  int* intarray3, /**< second int array where an element is to be inserted */
2987  void** ptrarray, /**< pointer array where an element is to be inserted */
2988  int keyval, /**< key value of new element */
2989  int field1val, /**< additional value of new element */
2990  int field2val, /**< additional value of new element */
2991  void* field3val, /**< additional value of new element */
2992  int* len, /**< pointer to length of arrays (will be increased by 1) */
2993  int* pos /**< pointer to store the insertion position, or NULL */
2994  );
2995 
2996 /** insert a new element into four joint arrays of ints/ints/ints/reals, sorted by first array in non-decreasing order */
2997 extern
2999  int* intarray1, /**< first int array where an element is to be inserted */
3000  int* intarray2, /**< second int array where an element is to be inserted */
3001  int* intarray3, /**< second int array where an element is to be inserted */
3002  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */
3003  int keyval, /**< key value of new element */
3004  int field1val, /**< additional value of new element */
3005  int field2val, /**< additional value of new element */
3006  SCIP_Real field3val, /**< additional value of new element */
3007  int* len, /**< pointer to length of arrays (will be increased by 1) */
3008  int* pos /**< pointer to store the insertion position, or NULL */
3009  );
3010 
3011 /** insert a new element into four joint arrays of ints/pointers/ints/reals, sorted by first array in non-decreasing order */
3012 extern
3014  int* intarray1, /**< first int array where an element is to be inserted */
3015  void** ptrarray, /**< pointer array where an element is to be inserted */
3016  int* intarray2, /**< second int array where an element is to be inserted */
3017  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */
3018  int keyval, /**< key value of new element */
3019  void* field1val, /**< additional value of new element */
3020  int field2val, /**< additional value of new element */
3021  SCIP_Real field3val, /**< additional value of new element */
3022  int* len, /**< pointer to length of arrays (will be increased by 1) */
3023  int* pos /**< pointer to store the insertion position, or NULL */
3024  );
3025 
3026 /** insert a new element into an array of Longints, sorted in non-decreasing order */
3027 extern
3029  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */
3030  SCIP_Longint keyval, /**< key value of new element */
3031  int* len, /**< pointer to length of arrays (will be increased by 1) */
3032  int* pos /**< pointer to store the insertion position, or NULL */
3033  );
3034 
3035 /** insert a new element into two joint arrays of Long/pointer, sorted by the first array in non-decreasing order */
3036 extern
3038  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */
3039  void** ptrarray, /**< pointer array where an element is to be inserted */
3040  SCIP_Longint keyval, /**< key value of new element */
3041  void* field1val, /**< additional value of new element */
3042  int* len, /**< pointer to length of arrays (will be increased by 1) */
3043  int* pos /**< pointer to store the insertion position, or NULL */
3044  );
3045 
3046 /** insert a new element into three joint arrays of Long/pointer/ints, sorted by the first array in non-decreasing order */
3047 extern
3049  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */
3050  void** ptrarray, /**< pointer array where an element is to be inserted */
3051  int* intarray, /**< int array where an element is to be inserted */
3052  SCIP_Longint keyval, /**< key value of new element */
3053  void* field1val, /**< additional value of new element */
3054  int field2val, /**< additional value of new element */
3055  int* len, /**< pointer to length of arrays (will be increased by 1) */
3056  int* pos /**< pointer to store the insertion position, or NULL */
3057  );
3058 
3059 /** insert a new element into four joint arrays of Long/pointer/Real/Bool, sorted by the first array in non-decreasing order */
3060 extern
3062  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */
3063  void** ptrarray, /**< pointer array where an element is to be inserted */
3064  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */
3065  SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be inserted */
3066  SCIP_Longint keyval, /**< key value of new element */
3067  void* field1val, /**< additional value of new element */
3068  SCIP_Real field2val, /**< additional value of new element */
3069  SCIP_Bool field3val, /**< additional value of new element */
3070  int* len, /**< pointer to length of arrays (will be increased by 1) */
3071  int* pos /**< pointer to store the insertion position, or NULL */
3072  );
3073 
3074 /** insert a new element into five joint arrays of Long/pointer/Real/Real/Bool, sorted by the first array in non-decreasing order */
3075 extern
3077  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */
3078  void** ptrarray, /**< pointer array where an element is to be inserted */
3079  SCIP_Real* realarray, /**< first SCIP_Real array where an element is to be inserted */
3080  SCIP_Real* realarray2, /**< second SCIP_Real array where an element is to be inserted */
3081  SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be inserted */
3082  SCIP_Longint keyval, /**< key value of new element */
3083  void* field1val, /**< additional value of new element */
3084  SCIP_Real field2val, /**< additional value of new element */
3085  SCIP_Real field3val, /**< additional value of new element */
3086  SCIP_Bool field4val, /**< additional value of new element */
3087  int* len, /**< pointer to length of arrays (will be increased by 1) */
3088  int* pos /**< pointer to store the insertion position, or NULL */
3089  );
3090 
3091 /** insert a new element into six joint arrays of Long/pointer/Real/Real/int/Bool, sorted by the first array in non-decreasing order */
3092 extern
3094  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */
3095  void** ptrarray, /**< pointer array where an element is to be inserted */
3096  SCIP_Real* realarray, /**< first SCIP_Real array where an element is to be inserted */
3097  SCIP_Real* realarray2, /**< second SCIP_Real array where an element is to be inserted */
3098  int* intarray, /**< int array where an element is to be inserted */
3099  SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be inserted */
3100  SCIP_Longint keyval, /**< key value of new element */
3101  void* field1val, /**< additional value of new element */
3102  SCIP_Real field2val, /**< additional value of new element */
3103  SCIP_Real field3val, /**< additional value of new element */
3104  int field4val, /**< additional value of new element */
3105  SCIP_Bool field5val, /**< additional value of new element */
3106  int* len, /**< pointer to length of arrays (will be increased by 1) */
3107  int* pos /**< pointer to store the insertion position, or NULL */
3108  );
3109 
3110 /** insert a new element into four joint arrays of Long/pointer/pointer/ints, sorted by first array in non-decreasing order */
3111 extern
3113  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */
3114  void** ptrarray1, /**< first pointer array where an element is to be inserted */
3115  void** ptrarray2, /**< second pointer array where an element is to be inserted */
3116  int* intarray, /**< int array where an element is to be inserted */
3117  SCIP_Longint keyval, /**< key value of new element */
3118  void* field1val, /**< additional value of new element */
3119  void* field2val, /**< additional value of new element */
3120  int field3val, /**< additional value of new element */
3121  int* len, /**< pointer to length of arrays (will be increased by 1) */
3122  int* pos /**< pointer to store the insertion position, or NULL */
3123  );
3124 
3125 /** insert a new element into five joint arrays of Long/pointer/pointer/ints/ints, sorted by first array in non-decreasing order */
3126 extern
3128  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */
3129  void** ptrarray1, /**< first pointer array where an element is to be inserted */
3130  void** ptrarray2, /**< second pointer array where an element is to be inserted */
3131  int* intarray1, /**< first int array where an element is to be inserted */
3132  int* intarray2, /**< second int array where an element is to be inserted */
3133  SCIP_Longint keyval, /**< key value of new element */
3134  void* field1val, /**< additional value of new element */
3135  void* field2val, /**< additional value of new element */
3136  int field3val, /**< additional value of new element */
3137  int field4val, /**< additional value of new element */
3138  int* len, /**< pointer to length of arrays (will be increased by 1) */
3139  int* pos /**< pointer to store the insertion position, or NULL */
3140  );
3141 
3142 /** insert a new element into five joint arrays of Long/pointer/pointer/Bool/ints, sorted by first array in non-decreasing order */
3143 extern
3145  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */
3146  void** ptrarray1, /**< first pointer array where an element is to be inserted */
3147  void** ptrarray2, /**< second pointer array where an element is to be inserted */
3148  SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be inserted */
3149  int* intarray, /**< int array to be sorted */
3150  SCIP_Longint keyval, /**< key value of new element */
3151  void* field1val, /**< additional value of new element */
3152  void* field2val, /**< additional value of new element */
3153  SCIP_Bool field3val, /**< additional value of new element */
3154  int field4val, /**< additional value of new element */
3155  int* len, /**< pointer to length of arrays (will be increased by 1) */
3156  int* pos /**< pointer to store the insertion position, or NULL */
3157  );
3158 
3159 /** insert a new element into five joint arrays of pointer/ints/ints/Bool/Bool, sorted by first array in non-decreasing order */
3160 extern
3162  void** ptrarray, /**< pointer array to be sorted */
3163  int* intarray1, /**< first int array to be permuted in the same way */
3164  int* intarray2, /**< second int array to be permuted in the same way */
3165  SCIP_Bool* boolarray1, /**< first SCIP_Bool array to be permuted in the same way */
3166  SCIP_Bool* boolarray2, /**< second SCIP_Bool array to be permuted in the same way */
3167  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
3168  void* keyval, /**< key value of new element */
3169  int field1val, /**< additional value of new element */
3170  int field2val, /**< additional value of new element */
3171  SCIP_Bool field3val, /**< additional value of new element */
3172  SCIP_Bool field4val, /**< additional value of new element */
3173  int* len, /**< pointer to length of arrays (will be increased by 1) */
3174  int* pos /**< pointer to store the insertion position, or NULL */
3175  );
3176 
3177 /** insert a new element into six joint arrays of ints/pointer/ints/ints/Bool/Bool, sorted by first array in non-decreasing order */
3178 extern
3180  int* intarray1, /**< int array to be sorted */
3181  void** ptrarray, /**< pointer array to be permuted in the same way */
3182  int* intarray2, /**< second int array to be permuted in the same way */
3183  int* intarray3, /**< thrid int array to be permuted in the same way */
3184  SCIP_Bool* boolarray1, /**< first SCIP_Bool array to be permuted in the same way */
3185  SCIP_Bool* boolarray2, /**< second SCIP_Bool array to be permuted in the same way */
3186  int keyval, /**< key value of new element */
3187  void* field1val, /**< additional value of new element */
3188  int field2val, /**< additional value of new element */
3189  int field3val, /**< additional value of new element */
3190  SCIP_Bool field4val, /**< additional value of new element */
3191  SCIP_Bool field5val, /**< additional value of new element */
3192  int* len, /**< pointer to length of arrays (will be increased by 1) */
3193  int* pos /**< pointer to store the insertion position, or NULL */
3194  );
3195 
3196 
3197 /* downwards insertion */
3198 
3199 /** insert a new element into an index array in non-increasing order */
3200 extern
3202  int* indarray, /**< pointer to the index array where an element is to be inserted */
3203  SCIP_DECL_SORTINDCOMP((*indcomp)), /**< data element comparator */
3204  void* dataptr, /**< pointer to data field that is given to the external compare method */
3205  int keyval, /**< key value of new element */
3206  int* len, /**< pointer to length of arrays (will be increased by 1) */
3207  int* pos /**< pointer to store the insertion position, or NULL */
3208  );
3209 
3210 /** insert a new element into an array of pointers in non-increasing order */
3211 extern
3213  void** ptrarray, /**< pointer array where an element is to be inserted */
3214  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
3215  void* keyval, /**< key value of new element */
3216  int* len, /**< pointer to length of arrays (will be increased by 1) */
3217  int* pos /**< pointer to store the insertion position, or NULL */
3218  );
3219 
3220 /** insert a new element into two joint arrays of pointers/pointers, sorted by first array in non-increasing order */
3221 extern
3223  void** ptrarray1, /**< first pointer array where an element is to be inserted */
3224  void** ptrarray2, /**< second pointer array where an element is to be inserted */
3225  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
3226  void* keyval, /**< key value of new element */
3227  void* field1val, /**< additional value of new element */
3228  int* len, /**< pointer to length of arrays (will be increased by 1) */
3229  int* pos /**< pointer to store the insertion position, or NULL */
3230  );
3231 
3232 /** insert a new element into two joint arrays of pointers/Reals, sorted by first array in non-increasing order */
3233 extern
3235  void** ptrarray, /**< pointer array where an element is to be inserted */
3236  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */
3237  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
3238  void* keyval, /**< key value of new element */
3239  SCIP_Real field1val, /**< additional value of new element */
3240  int* len, /**< pointer to length of arrays (will be increased by 1) */
3241  int* pos /**< pointer to store the insertion position, or NULL */
3242  );
3243 
3244 /** insert a new element into two joint arrays of pointers/ints, sorted by first array in non-increasing order */
3245 extern
3247  void** ptrarray, /**< pointer array where an element is to be inserted */
3248  int* intarray, /**< int array where an element is to be inserted */
3249  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
3250  void* keyval, /**< key value of new element */
3251  int field1val, /**< additional value of new element */
3252  int* len, /**< pointer to length of arrays (will be increased by 1) */
3253  int* pos /**< pointer to store the insertion position, or NULL */
3254  );
3255 
3256 /** insert a new element into two joint arrays of pointers/Bools, sorted by first array in non-increasing order */
3257 extern
3259  void** ptrarray, /**< pointer array where an element is to be inserted */
3260  SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be inserted */
3261  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
3262  void* keyval, /**< key value of new element */
3263  SCIP_Bool field1val, /**< additional value of new element */
3264  int* len, /**< pointer to length of arrays (will be increased by 1) */
3265  int* pos /**< pointer to store the insertion position, or NULL */
3266  );
3267 
3268 /** insert a new element into three joint arrays of pointers/ints/ints, sorted by first array in non-increasing order */
3269 extern
3271  void** ptrarray, /**< pointer array where an element is to be inserted */
3272  int* intarray1, /**< first int array where an element is to be inserted */
3273  int* intarray2, /**< second int array where an element is to be inserted */
3274  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
3275  void* keyval, /**< key value of new element */
3276  int field1val, /**< additional value of new element */
3277  int field2val, /**< additional value of new element */
3278  int* len, /**< pointer to length of arrays (will be increased by 1) */
3279  int* pos /**< pointer to store the insertion position, or NULL */
3280  );
3281 
3282 /** insert a new element into three joint arrays of pointers/Reals/ints, sorted by first array in non-increasing order */
3283 extern
3285  void** ptrarray, /**< pointer array where an element is to be inserted */
3286  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */
3287  int* intarray, /**< int array where an element is to be inserted */
3288  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
3289  void* keyval, /**< key value of new element */
3290  SCIP_Real field1val, /**< additional value of new element */
3291  int field2val, /**< additional value of new element */
3292  int* len, /**< pointer to length of arrays (will be increased by 1) */
3293  int* pos /**< pointer to store the insertion position, or NULL */
3294  );
3295 
3296 /** insert a new element into three joint arrays of pointers/Reals/Bools, sorted by first array in non-increasing order */
3297 extern
3299  void** ptrarray, /**< pointer array where an element is to be inserted */
3300  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */
3301  SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be inserted */
3302  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
3303  void* keyval, /**< key value of new element */
3304  SCIP_Real field1val, /**< additional value of new element */
3305  SCIP_Bool field2val, /**< additional value of new element */
3306  int* len, /**< pointer to length of arrays (will be increased by 1) */
3307  int* pos /**< pointer to store the insertion position, or NULL */
3308  );
3309 
3310 /** insert a new element into three joint arrays of pointers/pointers/Ints, sorted by first array in non-increasing order */
3311 extern
3313  void** ptrarray1, /**< first pointer array where an element is to be inserted */
3314  void** ptrarray2, /**< second pointer array where an element is to be inserted */
3315  int* intarray, /**< int array where an element is to be inserted */
3316  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
3317  void* keyval, /**< key value of new element */
3318  void* field1val, /**< additional value of new element */
3319  int field2val, /**< additional value of new element */
3320  int* len, /**< pointer to length of arrays (will be increased by 1) */
3321  int* pos /**< pointer to store the insertion position, or NULL */
3322  );
3323 
3324 /** insert a new element into three joint arrays of pointers/pointers/Reals, sorted by first array in non-increasing order */
3325 extern
3327  void** ptrarray1, /**< first pointer array where an element is to be inserted */
3328  void** ptrarray2, /**< second pointer array where an element is to be inserted */
3329  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */
3330  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
3331  void* keyval, /**< key value of new element */
3332  void* field1val, /**< additional value of new element */
3333  SCIP_Real field2val, /**< additional value of new element */
3334  int* len, /**< pointer to length of arrays (will be increased by 1) */
3335  int* pos /**< pointer to store the insertion position, or NULL */
3336  );
3337 
3338 /** insert a new element into four joint arrays of pointers/pointers/ints/ints, sorted by first array in non-increasing order */
3339 extern
3341  void** ptrarray1, /**< first pointer array where an element is to be inserted */
3342  void** ptrarray2, /**< second pointer array where an element is to be inserted */
3343  int* intarray1, /**< first int array where an element is to be inserted */
3344  int* intarray2, /**< second int array where an element is to be inserted */
3345  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
3346  void* keyval, /**< key value of new element */
3347  void* field1val, /**< additional value of new element */
3348  int field2val, /**< additional value of new element */
3349  int field3val, /**< additional value of new element */
3350  int* len, /**< pointer to length of arrays (will be increased by 1) */
3351  int* pos /**< pointer to store the insertion position, or NULL */
3352  );
3353 
3354 /** insert a new element into four joint arrays of pointers/Reals/ints/ints, sorted by first array in non-increasing order */
3355 extern
3357  void** ptrarray, /**< pointer array where an element is to be inserted */
3358  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */
3359  int* intarray1, /**< first int array where an element is to be inserted */
3360  int* intarray2, /**< second int array where an element is to be inserted */
3361  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
3362  void* keyval, /**< key value of new element */
3363  SCIP_Real field1val, /**< additional value of new element */
3364  int field2val, /**< additional value of new element */
3365  int field3val, /**< additional value of new element */
3366  int* len, /**< pointer to length of arrays (will be increased by 1) */
3367  int* pos /**< pointer to store the insertion position, or NULL */
3368  );
3369 
3370 /** insert a new element into four joint arrays of pointer/pointer/Reals/ints, sorted by first array in non-increasing order */
3371 extern
3373  void** ptrarray1, /**< first pointer array where an element is to be inserted */
3374  void** ptrarray2, /**< second pointer array where an element is to be inserted */
3375  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */
3376  int* intarray, /**< int array where an element is to be inserted */
3377  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
3378  void* keyval, /**< key value of new element */
3379  void* field1val, /**< additional value of new element */
3380  SCIP_Real field2val, /**< additional value of new element */
3381  int field3val, /**< additional value of new element */
3382  int* len, /**< pointer to length of arrays (will be increased by 1) */
3383  int* pos /**< pointer to store the insertion position, or NULL */
3384  );
3385 
3386 /** insert a new element into four joint arrays of pointer/pointer/Reals/bools, sorted by first array in non-increasing order */
3387 extern
3389  void** ptrarray1, /**< first pointer array where an element is to be inserted */
3390  void** ptrarray2, /**< second pointer array where an element is to be inserted */
3391  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */
3392  SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be inserted */
3393  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
3394  void* keyval, /**< key value of new element */
3395  void* field1val, /**< additional value of new element */
3396  SCIP_Real field2val, /**< additional value of new element */
3397  SCIP_Bool field3val, /**< additional value of new element */
3398  int* len, /**< pointer to length of arrays (will be increased by 1) */
3399  int* pos /**< pointer to store the insertion position, or NULL */
3400  );
3401 
3402 
3403 /** insert a new element into four joint arrays of pointer/pointer/Longs/ints, sorted by first array in non-increasing order */
3404 extern
3406  void** ptrarray1, /**< first pointer array where an element is to be inserted */
3407  void** ptrarray2, /**< second pointer array where an element is to be inserted */
3408  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */
3409  int* intarray, /**< int array where an element is to be inserted */
3410  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
3411  void* keyval, /**< key value of new element */
3412  void* field1val, /**< additional value of new element */
3413  SCIP_Longint field2val, /**< additional value of new element */
3414  int field3val, /**< additional value of new element */
3415  int* len, /**< pointer to length of arrays (will be increased by 1) */
3416  int* pos /**< pointer to store the insertion position, or NULL */
3417  );
3418 
3419 /** insert a new element into five joint arrays of pointer/pointer/Longs/ints/ints, sorted by first array in non-increasing order */
3420 extern
3422  void** ptrarray1, /**< first pointer array where an element is to be inserted */
3423  void** ptrarray2, /**< second pointer array where an element is to be inserted */
3424  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */
3425  int* intarray1, /**< first int array where an element is to be inserted */
3426  int* intarray2, /**< second int array where an element is to be inserted */
3427  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
3428  void* keyval, /**< key value of new element */
3429  void* field1val, /**< additional value of new element */
3430  SCIP_Longint field2val, /**< additional value of new element */
3431  int field3val, /**< additional value of new element */
3432  int field4val, /**< additional value of new element */
3433  int* len, /**< pointer to length of arrays (will be increased by 1) */
3434  int* pos /**< pointer to store the insertion position, or NULL */
3435  );
3436 
3437 /** insert a new element into an array of Reals, sorted in non-increasing order */
3438 extern
3440  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */
3441  SCIP_Real keyval, /**< key value of new element */
3442  int* len, /**< pointer to length of arrays (will be increased by 1) */
3443  int* pos /**< pointer to store the insertion position, or NULL */
3444  );
3445 
3446 /** insert a new element into three joint arrays of Reals/Bools/pointers, sorted by first array in non-increasing order */
3447 extern
3449  SCIP_Real* realarray, /**< SCIP_Real array to be sorted */
3450  SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */
3451  void** ptrarray, /**< pointer array to be permuted in the same way */
3452  SCIP_Real keyval, /**< key value of new element */
3453  SCIP_Bool field1val, /**< additional value of new element */
3454  void* field2val, /**< additional value of new element */
3455  int* len, /**< pointer to length of arrays (will be increased by 1) */
3456  int* pos /**< pointer to store the insertion position, or NULL */
3457  );
3458 
3459 /** insert a new element into two joint arrays of Reals/pointers, sorted by first array in non-increasing order */
3460 extern
3462  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */
3463  void** ptrarray, /**< pointer array where an element is to be inserted */
3464  SCIP_Real keyval, /**< key value of new element */
3465  void* field1val, /**< additional value of new element */
3466  int* len, /**< pointer to length of arrays (will be increased by 1) */
3467  int* pos /**< pointer to store the insertion position, or NULL */
3468  );
3469 
3470 /** insert a new element into three joint arrays of Reals/pointers, sorted by first array in non-increasing order */
3471 extern
3473  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */
3474  void** ptrarray1, /**< first pointer array where an element is to be inserted */
3475  void** ptrarray2, /**< second pointer array where an element is to be inserted */
3476  SCIP_Real keyval, /**< key value of new element */
3477  void* field1val, /**< additional value of new element */
3478  void* field2val, /**< additional value of new element */
3479  int* len, /**< pointer to length of arrays (will be increased by 1) */
3480  int* pos /**< pointer to store the insertion position, or NULL */
3481  );
3482 
3483 /** insert a new element into two joint arrays of Reals/ints, sorted by first array in non-increasing order */
3484 extern
3486  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */
3487  int* intarray, /**< int array where an element is to be inserted */
3488  SCIP_Real keyval, /**< key value of new element */
3489  int field1val, /**< additional value of new element */
3490  int* len, /**< pointer to length of arrays (will be increased by 1) */
3491  int* pos /**< pointer to store the insertion position, or NULL */
3492  );
3493 
3494 /** insert a new element into three joint arrays of Reals/ints/ints, sorted by first array in non-increasing order */
3495 extern
3497  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */
3498  int* intarray1, /**< int array where an element is to be inserted */
3499  int* intarray2, /**< int array where an element is to be inserted */
3500  SCIP_Real keyval, /**< key value of new element */
3501  int field1val, /**< additional value of new element */
3502  int field2val, /**< additional value of new element */
3503  int* len, /**< pointer to length of arrays (will be increased by 1) */
3504  int* pos /**< pointer to store the insertion position, or NULL */
3505  );
3506 
3507 /** insert a new element into three joint arrays of Reals/ints/Longs, sorted by first array in non-increasing order */
3508 extern
3510  SCIP_Real* realarray, /**< SCIP_Real array to be sorted */
3511  int* intarray, /**< int array to be permuted in the same way */
3512  SCIP_Longint* longarray, /**< SCIP_Longint array to be permuted in the same way */
3513  SCIP_Real keyval, /**< key value of new element */
3514  int field1val, /**< additional value of new element */
3515  SCIP_Longint field2val, /**< additional value of new element */
3516  int* len, /**< pointer to length of arrays (will be increased by 1) */
3517  int* pos /**< pointer to store the insertion position, or NULL */
3518  );
3519 
3520 /** insert a new element into three joint arrays of Reals/ints/Pointer, sorted by first array in non-increasing order */
3521 extern
3523  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */
3524  int* intarray, /**< int array where an element is to be inserted */
3525  void** ptrarray, /**< pointer array where an element is to be inserted */
3526  SCIP_Real keyval, /**< key value of new element */
3527  int field1val, /**< additional value of new element */
3528  void* field2val, /**< additional value of new element */
3529  int* len, /**< pointer to length of arrays (will be increased by 1) */
3530  int* pos /**< pointer to store the insertion position, or NULL */
3531  );
3532 
3533 /** insert a new element into three joint arrays of Reals/Reals/Pointer, sorted by first array in non-increasing order */
3534 extern
3536  SCIP_Real* realarray1, /**< first SCIP_Real array where an element is to be inserted */
3537  SCIP_Real* realarray2, /**< second SCIP_Real array where an element is to be inserted */
3538  void** ptrarray, /**< pointer array where an element is to be inserted */
3539  SCIP_Real keyval, /**< key value of new element */
3540  SCIP_Real field1val, /**< additional value of new element */
3541  void* field2val, /**< additional value of new element */
3542  int* len, /**< pointer to length of arrays (will be increased by 1) */
3543  int* pos /**< pointer to store the insertion position, or NULL */
3544  );
3545 
3546 /** insert a new element into four joint arrays of Reals/pointers/pointers/ints, sorted by first array in non-increasing order */
3547 extern
3549  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */
3550  void** ptrarray1, /**< pointer array where an element is to be inserted */
3551  void** ptrarray2, /**< pointer array where an element is to be inserted */
3552  int* intarray, /**< int array where an element is to be inserted */
3553  SCIP_Real keyval, /**< key value of new element */
3554  void* field1val, /**< additional value of new element */
3555  void* field2val, /**< additional value of new element */
3556  int intval, /**< additional value of new element */
3557  int* len, /**< pointer to length of arrays (will be increased by 1) */
3558  int* pos /**< pointer to store the insertion position, or NULL */
3559  );
3560 
3561 /** insert a new element into five joint arrays of Reals/pointers/pointers/ints/ints, sorted by first array in non-increasing order */
3562 extern
3564  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */
3565  void** ptrarray1, /**< pointer array where an element is to be inserted */
3566  void** ptrarray2, /**< pointer array where an element is to be inserted */
3567  int* intarray1, /**< int array where an element is to be inserted */
3568  int* intarray2, /**< int array where an element is to be inserted */
3569  SCIP_Real keyval, /**< key value of new element */
3570  void* field1val, /**< additional value of new element */
3571  void* field2val, /**< additional value of new element */
3572  int intval1, /**< additional value of new element */
3573  int intval2, /**< additional value of new element */
3574  int* len, /**< pointer to length of arrays (will be increased by 1) */
3575  int* pos /**< pointer to store the insertion position, or NULL */
3576  );
3577 
3578 /** insert a new element into four joint arrays of Reals/Longs/Reals/ints, sorted by first array in non-increasing order */
3579 extern
3581  SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be inserted */
3582  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */
3583  SCIP_Real* realarray3, /**< SCIP_Real array where an element is to be inserted */
3584  int* intarray, /**< int array where an element is to be inserted */
3585  SCIP_Real keyval, /**< key value of new element */
3586  SCIP_Longint field1val, /**< additional value of new element */
3587  SCIP_Real field2val, /**< additional value of new element */
3588  int field3val, /**< additional value of new element */
3589  int* len, /**< pointer to length of arrays (will be increased by 1) */
3590  int* pos /**< pointer to store the insertion position, or NULL */
3591  );
3592 
3593 /** insert a new element into four joint arrays of Reals/Reals/ints/ints, sorted by first array in non-increasing order */
3594 extern
3596  SCIP_Real* realarray1, /**< first SCIP_Real array where an element is to be inserted */
3597  SCIP_Real* realarray2, /**< second SCIP_Real array where an element is to be inserted */
3598  int* intarray1, /**< first int array where an element is to be inserted */
3599  int* intarray2, /**< second int array where an element is to be inserted */
3600  SCIP_Real keyval, /**< key value of new element */
3601  SCIP_Real field1val, /**< additional value of new element */
3602  int field2val, /**< additional value of new element */
3603  int field3val, /**< additional value of new element */
3604  int* len, /**< pointer to length of arrays (will be increased by 1) */
3605  int* pos /**< pointer to store the insertion position, or NULL */
3606  );
3607 
3608 /** insert a new element into four joint arrays of Reals/Reals/Reals/ints, sorted by first array in non-increasing order */
3609 extern
3611  SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be inserted */
3612  SCIP_Real* realarray2, /**< SCIP_Real array where an element is to be inserted */
3613  SCIP_Real* realarray3, /**< SCIP_Real array where an element is to be inserted */
3614  int* intarray, /**< int array where an element is to be inserted */
3615  SCIP_Real keyval, /**< key value of new element */
3616  SCIP_Real field1val, /**< additional value of new element */
3617  SCIP_Real field2val, /**< additional value of new element */
3618  int field3val, /**< additional value of new element */
3619  int* len, /**< pointer to length of arrays (will be increased by 1) */
3620  int* pos /**< pointer to store the insertion position, or NULL */
3621  );
3622 
3623 /** insert a new element into four joint arrays of Reals/Reals/Reals/pointers, sorted by first array in non-increasing order */
3624 extern
3626  SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be inserted */
3627  SCIP_Real* realarray2, /**< SCIP_Real array where an element is to be inserted */
3628  SCIP_Real* realarray3, /**< SCIP_Real array where an element is to be inserted */
3629  void** ptrarray, /**< pointer array where an element is to be inserted */
3630  SCIP_Real keyval, /**< key value of new element */
3631  SCIP_Real field1val, /**< additional value of new element */
3632  SCIP_Real field2val, /**< additional value of new element */
3633  void* field3val, /**< additional value of new element */
3634  int* len, /**< pointer to length of arrays (will be increased by 1) */
3635  int* pos /**< pointer to store the insertion position, or NULL */
3636  );
3637 
3638 /** insert a new element into five joint arrays of Reals/Reals/Reals/Bools/pointers, sorted by first array in non-increasing order */
3639 extern
3641  SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be inserted */
3642  SCIP_Real* realarray2, /**< SCIP_Real array where an element is to be inserted */
3643  SCIP_Real* realarray3, /**< SCIP_Real array where an element is to be inserted */
3644  SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be inserted */
3645  void** ptrarray, /**< pointer array where an element is to be inserted */
3646  SCIP_Real keyval, /**< key value of new element */
3647  SCIP_Real field1val, /**< additional value of new element */
3648  SCIP_Real field2val, /**< additional value of new element */
3649  SCIP_Bool field3val, /**< additional value of new element */
3650  void* field4val, /**< additional value of new element */
3651  int* len, /**< pointer to length of arrays (will be increased by 1) */
3652  int* pos /**< pointer to store the insertion position, or NULL */
3653  );
3654 
3655 /** insert a new element into six joint arrays of Reals/Reals/Reals/Bools/Bools/pointers, sorted by first array in non-increasing order */
3656 extern
3658  SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be inserted */
3659  SCIP_Real* realarray2, /**< SCIP_Real array where an element is to be inserted */
3660  SCIP_Real* realarray3, /**< SCIP_Real array where an element is to be inserted */
3661  SCIP_Bool* boolarray1, /**< SCIP_Bool array where an element is to be inserted */
3662  SCIP_Bool* boolarray2, /**< SCIP_Bool array where an element is to be inserted */
3663  void** ptrarray, /**< pointer array where an element is to be inserted */
3664  SCIP_Real keyval, /**< key value of new element */
3665  SCIP_Real field1val, /**< additional value of new element */
3666  SCIP_Real field2val, /**< additional value of new element */
3667  SCIP_Bool field3val, /**< additional value of new element */
3668  SCIP_Bool field4val, /**< additional value of new element */
3669  void* field5val, /**< additional value of new element */
3670  int* len, /**< pointer to length of arrays (will be increased by 1) */
3671  int* pos /**< pointer to store the insertion position, or NULL */
3672  );
3673 
3674 /** insert a new element into an array of ints in non-increasing order */
3675 extern
3677  int* intarray, /**< int array where an element is to be inserted */
3678  int keyval, /**< key value of new element */
3679  int* len, /**< pointer to length of arrays (will be increased by 1) */
3680  int* pos /**< pointer to store the insertion position, or NULL */
3681  );
3682 
3683 /** insert a new element into two joint arrays of ints/ints, sorted by first array in non-increasing order */
3684 extern
3686  int* intarray1, /**< int array where an element is to be inserted */
3687  int* intarray2, /**< second int array where an element is to be inserted */
3688  int keyval, /**< key value of new element */
3689  int field1val, /**< additional value of new element */
3690  int* len, /**< pointer to length of arrays (will be increased by 1) */
3691  int* pos /**< pointer to store the insertion position, or NULL */
3692  );
3693 
3694 /** insert a new element into two joint arrays of ints/reals, sorted by first array in non-increasing order */
3695 extern
3697  int* intarray, /**< int array where an element is to be inserted */
3698  SCIP_Real* realarray, /**< real array where an element is to be inserted */
3699  int keyval, /**< key value of new element */
3700  SCIP_Real field1val, /**< additional value of new element */
3701  int* len, /**< pointer to length of arrays (will be increased by 1) */
3702  int* pos /**< pointer to store the insertion position, or NULL */
3703  );
3704 
3705 /** insert a new element into three joint arrays of ints/ints/ints, sorted by first array in non-increasing order */
3706 extern
3708  int* intarray1, /**< int array where an element is to be inserted */
3709  int* intarray2, /**< second int array where an element is to be inserted */
3710  int* intarray3, /**< third int array where an element is to be inserted */
3711  int keyval, /**< key value of new element */
3712  int field1val, /**< additional value of new element */
3713  int field2val, /**< additional value of new element */
3714  int* len, /**< pointer to length of arrays (will be increased by 1) */
3715  int* pos /**< pointer to store the insertion position, or NULL */
3716  );
3717 
3718 /** insert a new element into three joint arrays of ints/ints/SCIP_Longint, sorted by first array in non-increasing order */
3719 extern
3721  int* intarray1, /**< int array where an element is to be inserted */
3722  int* intarray2, /**< second int array where an element is to be inserted */
3723  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */
3724  int keyval, /**< key value of new element */
3725  int field1val, /**< additional value of new element */
3726  SCIP_Longint field2val, /**< additional value of new element */
3727  int* len, /**< pointer to length of arrays (will be increased by 1) */
3728  int* pos /**< pointer to store the insertion position, or NULL */
3729  );
3730 
3731 /** insert a new element into three joint arrays of ints/ints/pointers, sorted by first array in non-increasing order */
3732 extern
3734  int* intarray1, /**< int array where an element is to be inserted */
3735  int* intarray2, /**< second int array where an element is to be inserted */
3736  void** ptrarray, /**< pointer array where an element is to be inserted */
3737  int keyval, /**< key value of new element */
3738  int field1val, /**< additional value of new element */
3739  void* field2val, /**< additional value of new element */
3740  int* len, /**< pointer to length of arrays (will be increased by 1) */
3741  int* pos /**< pointer to store the insertion position, or NULL */
3742  );
3743 
3744 /** insert a new element into three joint arrays of ints/ints/Reals, sorted by first array in non-increasing order */
3745 extern
3747  int* intarray1, /**< int array where an element is to be inserted */
3748  int* intarray2, /**< second int array where an element is to be inserted */
3749  SCIP_Real* realarray, /**< real array where an element is to be inserted */
3750  int keyval, /**< key value of new element */
3751  int field1val, /**< additional value of new element */
3752  SCIP_Real field2val, /**< additional value of new element */
3753  int* len, /**< pointer to length of arrays (will be increased by 1) */
3754  int* pos /**< pointer to store the insertion position, or NULL */
3755  );
3756 
3757 /** insert a new element into two joint arrays of ints/pointers, sorted by first array in non-increasing order */
3758 extern
3760  int* intarray, /**< int array where an element is to be inserted */
3761  void** ptrarray, /**< pointer array where an element is to be inserted */
3762  int keyval, /**< key value of new element */
3763  void* field1val, /**< additional value of new element */
3764  int* len, /**< pointer to length of arrays (will be increased by 1) */
3765  int* pos /**< pointer to store the insertion position, or NULL */
3766  );
3767 
3768 /** insert a new element into four joint arrays of ints/pointers/ints/Reals, sorted by first array in non-increasing order */
3769 extern
3771  int* intarray1, /**< int array where an element is to be inserted */
3772  int* intarray2, /**< int array where an element is to be inserted */
3773  int* intarray3, /**< int array where an element is to be inserted */
3774  void** ptrarray, /**< pointer array where an element is to be inserted */
3775  int keyval, /**< key value of new element */
3776  int field1val, /**< additional value of new element */
3777  int field2val, /**< additional value of new element */
3778  void* field3val, /**< additional value of new element */
3779  int* len, /**< pointer to length of arrays (will be increased by 1) */
3780  int* pos /**< pointer to store the insertion position, or NULL */
3781  );
3782 
3783 /** insert a new element into four joint arrays of ints/int/ints/reals, sorted by first array in non-increasing order */
3784 extern
3786  int* intarray1, /**< int array where an element is to be inserted */
3787  int* intarray2, /**< int array where an element is to be inserted */
3788  int* intarray3, /**< int array where an element is to be inserted */
3789  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */
3790  int keyval, /**< key value of new element */
3791  int field1val, /**< additional value of new element */
3792  int field2val, /**< additional value of new element */
3793  SCIP_Real field3val, /**< additional value of new element */
3794  int* len, /**< pointer to length of arrays (will be increased by 1) */
3795  int* pos /**< pointer to store the insertion position, or NULL */
3796  );
3797 
3798 /** insert a new element into four joint arrays of ints/pointers/ints/reals, sorted by first array in non-increasing order */
3799 extern
3801  int* intarray1, /**< int array where an element is to be inserted */
3802  void** ptrarray, /**< pointer array where an element is to be inserted */
3803  int* intarray2, /**< int array where an element is to be inserted */
3804  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */
3805  int keyval, /**< key value of new element */
3806  void* field1val, /**< additional value of new element */
3807  int field2val, /**< additional value of new element */
3808  SCIP_Real field3val, /**< additional value of new element */
3809  int* len, /**< pointer to length of arrays (will be increased by 1) */
3810  int* pos /**< pointer to store the insertion position, or NULL */
3811  );
3812 
3813 /** insert a new element into an array of Longints, sorted in non-increasing order */
3814 extern
3816  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */
3817  SCIP_Longint keyval, /**< key value of new element */
3818  int* len, /**< pointer to length of arrays (will be increased by 1) */
3819  int* pos /**< pointer to store the insertion position, or NULL */
3820  );
3821 
3822 /** insert a new element into two joint arrays of Long/pointer, sorted by the first array in non-increasing order */
3823 extern
3825  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */
3826  void** ptrarray, /**< pointer array where an element is to be inserted */
3827  SCIP_Longint keyval, /**< key value of new element */
3828  void* field1val, /**< additional value of new element */
3829  int* len, /**< pointer to length of arrays (will be increased by 1) */
3830  int* pos /**< pointer to store the insertion position, or NULL */
3831  );
3832 
3833 /** insert a new element into three joint arrays of Long/pointer/ints, sorted by the first array in non-increasing order */
3834 extern
3836  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */
3837  void** ptrarray, /**< pointer array where an element is to be inserted */
3838  int* intarray, /**< int array where an element is to be inserted */
3839  SCIP_Longint keyval, /**< key value of new element */
3840  void* field1val, /**< additional value of new element */
3841  int field2val, /**< additional value of new element */
3842  int* len, /**< pointer to length of arrays (will be increased by 1) */
3843  int* pos /**< pointer to store the insertion position, or NULL */
3844  );
3845 
3846 /** insert a new element into four joint arrays of Long/pointer/Real/Bool, sorted by the first array in non-increasing order */
3847 extern
3849  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */
3850  void** ptrarray, /**< pointer array where an element is to be inserted */
3851  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be inserted */
3852  SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be inserted */
3853  SCIP_Longint keyval, /**< key value of new element */
3854  void* field1val, /**< additional value of new element */
3855  SCIP_Real field2val, /**< additional value of new element */
3856  SCIP_Bool field3val, /**< additional value of new element */
3857  int* len, /**< pointer to length of arrays (will be increased by 1) */
3858  int* pos /**< pointer to store the insertion position, or NULL */
3859  );
3860 
3861 /** insert a new element into five joint arrays of Long/pointer/Real/Real/Bool, sorted by the first array in non-increasing order */
3862 extern
3864  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */
3865  void** ptrarray, /**< pointer array where an element is to be inserted */
3866  SCIP_Real* realarray, /**< first SCIP_Real array where an element is to be inserted */
3867  SCIP_Real* realarray2, /**< second SCIP_Real array where an element is to be inserted */
3868  SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be inserted */
3869  SCIP_Longint keyval, /**< key value of new element */
3870  void* field1val, /**< additional value of new element */
3871  SCIP_Real field2val, /**< additional value of new element */
3872  SCIP_Real field3val, /**< additional value of new element */
3873  SCIP_Bool field4val, /**< additional value of new element */
3874  int* len, /**< pointer to length of arrays (will be increased by 1) */
3875  int* pos /**< pointer to store the insertion position, or NULL */
3876  );
3877 
3878 /** insert a new element into six joint arrays of Long/pointer/Real/Real/int/Bool, sorted by the first array in non-increasing order */
3879 extern
3881  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */
3882  void** ptrarray, /**< pointer array where an element is to be inserted */
3883  SCIP_Real* realarray, /**< first SCIP_Real array where an element is to be inserted */
3884  SCIP_Real* realarray2, /**< second SCIP_Real array where an element is to be inserted */
3885  int* intarray, /**< int array where an element is to be inserted */
3886  SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be inserted */
3887  SCIP_Longint keyval, /**< key value of new element */
3888  void* field1val, /**< additional value of new element */
3889  SCIP_Real field2val, /**< additional value of new element */
3890  SCIP_Real field3val, /**< additional value of new element */
3891  int field4val, /**< additional value of new element */
3892  SCIP_Bool field5val, /**< additional value of new element */
3893  int* len, /**< pointer to length of arrays (will be increased by 1) */
3894  int* pos /**< pointer to store the insertion position, or NULL */
3895  );
3896 
3897 /** insert a new element into four joint arrays of Long/pointer/pointer/ints, sorted by first array in non-increasing order */
3898 extern
3900  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */
3901  void** ptrarray1, /**< first pointer array where an element is to be inserted */
3902  void** ptrarray2, /**< second pointer array where an element is to be inserted */
3903  int* intarray, /**< int array where an element is to be inserted */
3904  SCIP_Longint keyval, /**< key value of new element */
3905  void* field1val, /**< additional value of new element */
3906  void* field2val, /**< additional value of new element */
3907  int field3val, /**< additional value of new element */
3908  int* len, /**< pointer to length of arrays (will be increased by 1) */
3909  int* pos /**< pointer to store the insertion position, or NULL */
3910  );
3911 
3912 /** insert a new element into five joint arrays of Long/pointer/pointer/ints/ints, sorted by first array in non-increasing order */
3913 extern
3915  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */
3916  void** ptrarray1, /**< first pointer array where an element is to be inserted */
3917  void** ptrarray2, /**< second pointer array where an element is to be inserted */
3918  int* intarray1, /**< first int array where an element is to be inserted */
3919  int* intarray2, /**< second int array where an element is to be inserted */
3920  SCIP_Longint keyval, /**< key value of new element */
3921  void* field1val, /**< additional value of new element */
3922  void* field2val, /**< additional value of new element */
3923  int field3val, /**< additional value of new element */
3924  int field4val, /**< additional value of new element */
3925  int* len, /**< pointer to length of arrays (will be increased by 1) */
3926  int* pos /**< pointer to store the insertion position, or NULL */
3927  );
3928 
3929 /** insert a new element into five joint arrays of Long/pointer/pointer/Bool/ints, sorted by first array in non-increasing order */
3930 extern
3932  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be inserted */
3933  void** ptrarray1, /**< first pointer array where an element is to be inserted */
3934  void** ptrarray2, /**< second pointer array where an element is to be inserted */
3935  SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be inserted */
3936  int* intarray, /**< int array where an element is to be inserted */
3937  SCIP_Longint keyval, /**< key value of new element */
3938  void* field1val, /**< additional value of new element */
3939  void* field2val, /**< additional value of new element */
3940  SCIP_Bool field3val, /**< additional value of new element */
3941  int field4val, /**< additional value of new element */
3942  int* len, /**< pointer to length of arrays (will be increased by 1) */
3943  int* pos /**< pointer to store the insertion position, or NULL */
3944  );
3945 
3946 /** insert a new element into five joint arrays of pointer/ints/ints/Bool/Bool, sorted by first array in non-increasing order */
3947 extern
3949  void** ptrarray, /**< pointer array to be sorted */
3950  int* intarray1, /**< first int array to be permuted in the same way */
3951  int* intarray2, /**< second int array to be permuted in the same way */
3952  SCIP_Bool* boolarray1, /**< first SCIP_Bool array to be permuted in the same way */
3953  SCIP_Bool* boolarray2, /**< second SCIP_Bool array to be permuted in the same way */
3954  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
3955  void* keyval, /**< key value of new element */
3956  int field1val, /**< additional value of new element */
3957  int field2val, /**< additional value of new element */
3958  SCIP_Bool field3val, /**< additional value of new element */
3959  SCIP_Bool field4val, /**< additional value of new element */
3960  int* len, /**< pointer to length of arrays (will be increased by 1) */
3961  int* pos /**< pointer to store the insertion position, or NULL */
3962  );
3963 
3964 /** insert a new element into six joint arrays of ints/pointer/ints/ints/Bool/Bool, sorted by first array in non-increased order */
3965 extern
3967  int* intarray1, /**< int array to be sorted */
3968  void** ptrarray, /**< pointer array to be permuted in the same way */
3969  int* intarray2, /**< second int array to be permuted in the same way */
3970  int* intarray3, /**< thrid int array to be permuted in the same way */
3971  SCIP_Bool* boolarray1, /**< first SCIP_Bool array to be permuted in the same way */
3972  SCIP_Bool* boolarray2, /**< second SCIP_Bool array to be permuted in the same way */
3973  int keyval, /**< key value of new element */
3974  void* field1val, /**< additional value of new element */
3975  int field2val, /**< additional value of new element */
3976  int field3val, /**< additional value of new element */
3977  SCIP_Bool field4val, /**< additional value of new element */
3978  SCIP_Bool field5val, /**< additional value of new element */
3979  int* len, /**< pointer to length of arrays (will be increased by 1) */
3980  int* pos /**< pointer to store the insertion position, or NULL */
3981  );
3982 
3983 /* upwards position deletion */
3984 
3985 /** delete the element at the given position from an index array in non-decreasing order */
3986 extern
3988  int* indarray, /**< pointer to the index array where an element is to be deleted */
3989  SCIP_DECL_SORTINDCOMP((*indcomp)), /**< data element comparator */
3990  void* dataptr, /**< pointer to data field that is given to the external compare method */
3991  int pos, /**< array position of element to be deleted */
3992  int* len /**< pointer to length of arrays (will be decreased by 1) */
3993  );
3994 
3995 /** delete the element at the given position from an array of pointers in non-decreasing order */
3996 extern
3998  void** ptrarray, /**< pointer array where an element is to be deleted */
3999  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
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 pointers/pointers, sorted by first array in non-decreasing order */
4005 extern
4007  void** ptrarray1, /**< first pointer array where an element is to be deleted */
4008  void** ptrarray2, /**< second pointer array where an element is to be deleted */
4009  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
4010  int pos, /**< array position of element to be deleted */
4011  int* len /**< pointer to length of arrays (will be decreased by 1) */
4012  );
4013 
4014 /** delete the element at the given position from two joint arrays of pointers/Reals, sorted by first array in non-decreasing order */
4015 extern
4017  void** ptrarray, /**< pointer array where an element is to be deleted */
4018  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */
4019  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
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 two joint arrays of pointers/ints, sorted by first array in non-decreasing order */
4025 extern
4027  void** ptrarray, /**< pointer array where an element is to be deleted */
4028  int* intarray, /**< int array where an element is to be deleted */
4029  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
4030  int pos, /**< array position of element to be deleted */
4031  int* len /**< pointer to length of arrays (will be decreased by 1) */
4032  );
4033 
4034 /** delete the element at the given position from two joint arrays of pointers/Bools, sorted by first array in non-decreasing order */
4035 extern
4037  void** ptrarray, /**< pointer array where an element is to be inserted */
4038  SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be inserted */
4039  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
4040  int pos, /**< array position of element to be deleted */
4041  int* len /**< pointer to length of arrays (will be increased by 1) */
4042  );
4043 
4044 /** delete the element at the given position from three joint arrays of pointers/ints/ints, sorted by first array in non-decreasing order */
4045 extern
4047  void** ptrarray, /**< pointer array where an element is to be deleted */
4048  int* intarray1, /**< first int array where an element is to be deleted */
4049  int* intarray2, /**< second int array where an element is to be deleted */
4050  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
4051  int pos, /**< array position of element to be deleted */
4052  int* len /**< pointer to length of arrays (will be decreased by 1) */
4053  );
4054 
4055 /** delete the element at the given position from three joint arrays of pointers/Reals/ints, sorted by first array in non-decreasing order */
4056 extern
4058  void** ptrarray, /**< pointer array where an element is to be deleted */
4059  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */
4060  int* intarray, /**< int array where an element is to be deleted */
4061  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
4062  int pos, /**< array position of element to be deleted */
4063  int* len /**< pointer to length of arrays (will be decreased by 1) */
4064  );
4065 
4066 /** delete the element at the given position from three joint arrays of pointers/Reals/Bools, sorted by first array in non-decreasing order */
4067 extern
4069  void** ptrarray, /**< pointer array where an element is to be deleted */
4070  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */
4071  SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be deleted */
4072  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
4073  int pos, /**< array position of element to be deleted */
4074  int* len /**< pointer to length of arrays (will be decreased by 1) */
4075  );
4076 
4077 /** delete the element at the given position from three joint arrays of pointers/pointers/Ints, sorted by first array in non-decreasing order */
4078 extern
4080  void** ptrarray1, /**< first pointer array where an element is to be deleted */
4081  void** ptrarray2, /**< second pointer array where an element is to be deleted */
4082  int* intarray, /**< int array where an element is to be deleted */
4083  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
4084  int pos, /**< array position of element to be deleted */
4085  int* len /**< pointer to length of arrays (will be decreased by 1) */
4086  );
4087 
4088 /** delete the element at the given position from three joint arrays of pointers/pointers/Reals, sorted by first array in non-decreasing order */
4089 extern
4091  void** ptrarray1, /**< first pointer array where an element is to be deleted */
4092  void** ptrarray2, /**< second pointer array where an element is to be deleted */
4093  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */
4094  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
4095  int pos, /**< array position of element to be deleted */
4096  int* len /**< pointer to length of arrays (will be decreased by 1) */
4097  );
4098 
4099 /** delete the element at the given position from four joint arrays of pointers/pointers/ints/ints, sorted by first array in non-decreasing order */
4100 extern
4102  void** ptrarray1, /**< first pointer array where an element is to be deleted */
4103  void** ptrarray2, /**< second pointer array where an element is to be deleted */
4104  int* intarray1, /**< first int array where an element is to be deleted */
4105  int* intarray2, /**< second array where an element is to be deleted */
4106  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
4107  int pos, /**< array position of element to be deleted */
4108  int* len /**< pointer to length of arrays (will be decreased by 1) */
4109  );
4110 
4111 /** delete the element at the given position from four joint arrays of pointers/Reals/ints/ints, sorted by first array in non-decreasing order */
4112 extern
4114  void** ptrarray, /**< pointer array where an element is to be deleted */
4115  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */
4116  int* intarray1, /**< first int array where an element is to be deleted */
4117  int* intarray2, /**< second int array where an element is to be deleted */
4118  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
4119  int pos, /**< array position of element to be deleted */
4120  int* len /**< pointer to length of arrays (will be decreased by 1) */
4121  );
4122 
4123 /** deletes the element at the given position from four joint arrays of pointer/pointer/Reals/ints, sorted by first array in non-decreasing order */
4124 extern
4126  void** ptrarray1, /**< first pointer array where an element is to be deleted */
4127  void** ptrarray2, /**< second pointer array where an element is to be deleted */
4128  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */
4129  int* intarray, /**< int array where an element is to be deleted */
4130  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
4131  int pos, /**< array position of element to be deleted */
4132  int* len /**< pointer to length of arrays (will be decreased by 1) */
4133  );
4134 
4135 /** deletes the element at the given position from four joint arrays of pointer/pointer/Reals/bools, sorted by first array in non-decreasing order */
4136 extern
4138  void** ptrarray1, /**< first pointer array where an element is to be deleted */
4139  void** ptrarray2, /**< second pointer array where an element is to be deleted */
4140  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */
4141  SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be deleted */
4142  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
4143  int pos, /**< array position of element to be deleted */
4144  int* len /**< pointer to length of arrays (will be decreased by 1) */
4145  );
4146 
4147 /** deletes the element at the given position from four joint arrays of pointer/pointer/Longs/ints, sorted by first array in non-decreasing order */
4148 extern
4150  void** ptrarray1, /**< first pointer array where an element is to be deleted */
4151  void** ptrarray2, /**< second pointer array where an element is to be deleted */
4152  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */
4153  int* intarray, /**< int array where an element is to be deleted */
4154  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
4155  int pos, /**< array position of element to be deleted */
4156  int* len /**< pointer to length of arrays (will be decreased by 1) */
4157  );
4158 
4159 /** 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 */
4160 extern
4162  void** ptrarray1, /**< first pointer array where an element is to be deleted */
4163  void** ptrarray2, /**< second pointer array where an element is to be deleted */
4164  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */
4165  int* intarray1, /**< first int array where an element is to be deleted */
4166  int* intarray2, /**< second int array where an element is to be deleted */
4167  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
4168  int pos, /**< array position of element to be deleted */
4169  int* len /**< pointer to length of arrays (will be decreased by 1) */
4170  );
4171 
4172 /** delete the element at the given position from three joint arrays of Reals/Bools/pointers, sorted by first array in non-decreasing order */
4173 extern
4175  SCIP_Real* realarray, /**< SCIP_Real array to be sorted */
4176  SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */
4177  void** ptrarray, /**< pointer array to be permuted in the same way */
4178  int pos, /**< array position of element to be deleted */
4179  int* len /**< pointer to length of arrays (will be decreased by 1) */
4180  );
4181 
4182 /** delete the element at the given position from two joint arrays of Reals/pointers, sorted by first array in non-decreasing order */
4183 extern
4185  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */
4186  void** ptrarray, /**< pointer array where an element is to be deleted */
4187  int pos, /**< array position of element to be deleted */
4188  int* len /**< pointer to length of arrays (will be decreased by 1) */
4189  );
4190 
4191 /** delete the element at the given position from an arrays of Reals, sorted in non-decreasing order */
4192 extern
4194  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */
4195  int pos, /**< array position of element to be deleted */
4196  int* len /**< pointer to length of arrays (will be decreased by 1) */
4197  );
4198 
4199 /** delete the element at the given position from two joint arrays of Reals/ints, sorted by first array in non-decreasing order */
4200 extern
4202  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */
4203  int* intarray, /**< int array where an element is to be deleted */
4204  int pos, /**< array position of element to be deleted */
4205  int* len /**< pointer to length of arrays (will be decreased by 1) */
4206  );
4207 
4208 /** delete the element at the given position from two joint arrays of Reals/ints, sorted by first array in non-decreasing order */
4209 extern
4211  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */
4212  int* intarray1, /**< int array where an element is to be deleted */
4213  int* intarray2, /**< int array where an element is to be deleted */
4214  int pos, /**< array position of element to be deleted */
4215  int* len /**< pointer to length of arrays (will be decreased by 1) */
4216  );
4217 
4218 /** delete the element at the given position from three joint arrays of Reals/ints/Longs, sorted by first array in non-decreasing order */
4219 extern
4221  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */
4222  int* intarray, /**< int array where an element is to be deleted */
4223  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */
4224  int pos, /**< array position of element to be deleted */
4225  int* len /**< pointer to length of arrays (will be decreased by 1) */
4226  );
4227 
4228 /** delete the element at the given position from three joint arrays of Reals/ints/Pointer, sorted by first array in non-decreasing order */
4229 extern
4231  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */
4232  int* intarray, /**< int array where an element is to be deleted */
4233  void** ptrarray, /**< pointer array where an element is to be deleted */
4234  int pos, /**< array position of element to be deleted */
4235  int* len /**< pointer to length of arrays (will be decreased by 1) */
4236  );
4237 
4238 /** delete the element at the given position from three joint arrays of Reals/Reals/Pointer, sorted by first array in non-decreasing order */
4239 extern
4241  SCIP_Real* realarray1, /**< first SCIP_Real array where an element is to be deleted */
4242  SCIP_Real* realarray2, /**< second SCIP_Real array where an element is to be deleted */
4243  void** ptrarray, /**< pointer array where an element is to be deleted */
4244  int pos, /**< array position of element to be deleted */
4245  int* len /**< pointer to length of arrays (will be decreased by 1) */
4246  );
4247 
4248 /** delete the element at the given position from four joint arrays of Reals/pointers/pointers/ints, sorted by first array in non-decreasing order */
4249 extern
4251  SCIP_Real* realarray, /**< first SCIP_Real array where an element is to be deleted */
4252  void** ptrarray1, /**< first pointer array where an element is to be deleted */
4253  void** ptrarray2, /**< second pointer array where an element is to be deleted */
4254  int* intarray, /**< int array where an element is to be deleted */
4255  int pos, /**< array position of element to be deleted */
4256  int* len /**< pointer to length of arrays (will be decreased by 1) */
4257  );
4258 
4259 /** 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 */
4260 extern
4262  SCIP_Real* realarray, /**< first SCIP_Real array where an element is to be deleted */
4263  void** ptrarray1, /**< first pointer array where an element is to be deleted */
4264  void** ptrarray2, /**< second pointer array where an element is to be deleted */
4265  int* intarray1, /**< int array where an element is to be deleted */
4266  int* intarray2, /**< int array where an element is to be deleted */
4267  int pos, /**< array position of element to be deleted */
4268  int* len /**< pointer to length of arrays (will be decreased by 1) */
4269  );
4270 
4271 /** delete the element at the given position from four joint arrays of Reals/Long/Reals/ints, sorted by first array in non-decreasing order */
4272 extern
4274  SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be deleted */
4275  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */
4276  SCIP_Real* realarray3, /**< SCIP_Real array where an element is to be deleted */
4277  int* intarray, /**< int array where an element is to be deleted */
4278  int pos, /**< array position of element to be deleted */
4279  int* len /**< pointer to length of arrays (will be decreased by 1) */
4280  );
4281 
4282 /** delete the element at the given position from four joint arrays of Reals/Reals/ints/ints, sorted by first array in non-decreasing order */
4283 extern
4285  SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be deleted */
4286  SCIP_Real* realarray2, /**< SCIP_Real array where an element is to be deleted */
4287  int* intarray1, /**< int array where an element is to be deleted */
4288  int* intarray2, /**< int array where an element is to be deleted */
4289  int pos, /**< array position of element to be deleted */
4290  int* len /**< pointer to length of arrays (will be decreased by 1) */
4291  );
4292 
4293 /** delete the element at the given position from four joint arrays of Reals/Reals/Reals/ints, sorted by first array in non-decreasing order */
4294 extern
4296  SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be deleted */
4297  SCIP_Real* realarray2, /**< SCIP_Real array where an element is to be deleted */
4298  SCIP_Real* realarray3, /**< SCIP_Real array where an element is to be deleted */
4299  int* intarray, /**< int array where an element is to be deleted */
4300  int pos, /**< array position of element to be deleted */
4301  int* len /**< pointer to length of arrays (will be decreased by 1) */
4302  );
4303 
4304 /** delete the element at the given position from four joint arrays of Reals/Reals/Reals/pointers, sorted by first array in non-decreasing order */
4305 extern
4307  SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be deleted */
4308  SCIP_Real* realarray2, /**< SCIP_Real array where an element is to be deleted */
4309  SCIP_Real* realarray3, /**< SCIP_Real array where an element is to be deleted */
4310  void** ptrarray, /**< pointer array where an element is to be deleted */
4311  int pos, /**< array position of element to be deleted */
4312  int* len /**< pointer to length of arrays (will be decreased by 1) */
4313  );
4314 
4315 /** 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 */
4316 extern
4318  SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be deleted */
4319  SCIP_Real* realarray2, /**< SCIP_Real array where an element is to be deleted */
4320  SCIP_Real* realarray3, /**< SCIP_Real array where an element is to be deleted */
4321  SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be deleted */
4322  void** ptrarray, /**< pointer array where an element is to be deleted */
4323  int pos, /**< array position of element to be deleted */
4324  int* len /**< pointer to length of arrays (will be decreased by 1) */
4325  );
4326 
4327 /** 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 */
4328 extern
4330  SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be deleted */
4331  SCIP_Real* realarray2, /**< SCIP_Real array where an element is to be deleted */
4332  SCIP_Real* realarray3, /**< SCIP_Real array where an element is to be deleted */
4333  SCIP_Bool* boolarray1, /**< SCIP_Bool array where an element is to be deleted */
4334  SCIP_Bool* boolarray2, /**< SCIP_Bool array where an element is to be deleted */
4335  void** ptrarray, /**< pointer array where an element is to be deleted */
4336  int pos, /**< array position of element to be deleted */
4337  int* len /**< pointer to length of arrays (will be decreased by 1) */
4338  );
4339 
4340 /** delete the element at the given position from an array of ints in non-decreasing order */
4341 extern
4343  int* intarray, /**< int array where an element is to be deleted */
4344  int pos, /**< array position of element to be deleted */
4345  int* len /**< pointer to length of arrays (will be decreased by 1) */
4346  );
4347 
4348 /** delete the element at the given position from two joint arrays of ints/ints, sorted by first array in non-decreasing order */
4349 extern
4351  int* intarray1, /**< int array where an element is to be deleted */
4352  int* intarray2, /**< second int array where an element is to be deleted */
4353  int pos, /**< array position of element to be deleted */
4354  int* len /**< pointer to length of arrays (will be decreased by 1) */
4355  );
4356 
4357 /** delete the element at the given position from two joint arrays of ints/reals, sorted by first array in non-decreasing order */
4358 extern
4360  int* intarray, /**< int array where an element is to be deleted */
4361  SCIP_Real* realarray, /**< real array where an element is to be deleted */
4362  int pos, /**< array position of element to be deleted */
4363  int* len /**< pointer to length of arrays (will be decreased by 1) */
4364  );
4365 
4366 /** delete the element at the given position from three joint arrays of ints/ints/ints, sorted by first array in non-decreasing order */
4367 extern
4369  int* intarray1, /**< int array where an element is to be deleted */
4370  int* intarray2, /**< second int array where an element is to be deleted */
4371  int* intarray3, /**< third int array where an element is to be deleted */
4372  int pos, /**< array position of element to be deleted */
4373  int* len /**< pointer to length of arrays (will be decreased by 1) */
4374  );
4375 
4376 /** delete the element at the given position from three joint arrays of ints/ints/SCIP_Longint, sorted by first array in non-decreasing order */
4377 extern
4379  int* intarray1, /**< int array where an element is to be deleted */
4380  int* intarray2, /**< second int array where an element is to be deleted */
4381  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */
4382  int pos, /**< array position of element to be deleted */
4383  int* len /**< pointer to length of arrays (will be decreased by 1) */
4384  );
4385 
4386 /** delete the element at the given position from three joint arrays of ints/ints/pointers, sorted by first array in non-decreasing order */
4387 extern
4389  int* intarray1, /**< int array where an element is to be deleted */
4390  int* intarray2, /**< second int array where an element is to be deleted */
4391  void** ptrarray, /**< pointer array where an element is to be deleted */
4392  int pos, /**< array position of element to be deleted */
4393  int* len /**< pointer to length of arrays (will be decreased by 1) */
4394  );
4395 
4396 /** delete the element at the given position from three joint arrays of ints/ints/Reals, sorted by first array in non-decreasing order */
4397 extern
4399  int* intarray1, /**< int array where an element is to be deleted */
4400  int* intarray2, /**< second int array where an element is to be deleted */
4401  SCIP_Real* realarray, /**< real array where an element is to be deleted */
4402  int pos, /**< array position of element to be deleted */
4403  int* len /**< pointer to length of arrays (will be decreased by 1) */
4404  );
4405 
4406 /** delete the element at the given position from two joint arrays of ints/pointers, sorted by first array in non-decreasing order */
4407 extern
4409  int* intarray, /**< int array where an element is to be deleted */
4410  void** ptrarray, /**< pointer array where an element is to be deleted */
4411  int pos, /**< array position of element to be deleted */
4412  int* len /**< pointer to length of arrays (will be decreased by 1) */
4413  );
4414 
4415 /** delete the element at the given position from three joint arrays of ints/pointers/Reals, sorted by first array in non-decreasing order */
4416 extern
4418  int* intarray, /**< int array where an element is to be deleted */
4419  void** ptrarray, /**< pointer array where an element is to be deleted */
4420  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */
4421  int pos, /**< array position of element to be deleted */
4422  int* len /**< pointer to length of arrays (will be decreased by 1) */
4423  );
4424 
4425 /** delete the element at the given position from four joint arrays of ints/ints/ints/pointers, sorted by first array in non-decreasing order */
4426 extern
4428  int* intarray1, /**< int array where an element is to be deleted */
4429  int* intarray2, /**< int array where an element is to be deleted */
4430  int* intarray3, /**< int array where an element is to be deleted */
4431  void** ptrarray, /**< pointer array where an element is to be deleted */
4432  int pos, /**< array position of element to be deleted */
4433  int* len /**< pointer to length of arrays (will be decreased by 1) */
4434  );
4435 
4436 /** delete the element at the given position from four joint arrays of ints/ints/ints/reals, sorted by first array in non-decreasing order */
4437 extern
4439  int* intarray1, /**< int array where an element is to be deleted */
4440  int* intarray2, /**< int array where an element is to be deleted */
4441  int* intarray3, /**< int array where an element is to be deleted */
4442  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */
4443  int pos, /**< array position of element to be deleted */
4444  int* len /**< pointer to length of arrays (will be decreased by 1) */
4445  );
4446 
4447 /** delete the element at the given position from four joint arrays of ints/pointers/ints/Reals, sorted by first array in non-decreasing order */
4448 extern
4450  int* intarray1, /**< int array where an element is to be deleted */
4451  void** ptrarray, /**< pointer array where an element is to be deleted */
4452  int* intarray2, /**< int array where an element is to be deleted */
4453  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */
4454  int pos, /**< array position of element to be deleted */
4455  int* len /**< pointer to length of arrays (will be decreased by 1) */
4456  );
4457 
4458 /** delete the element at the given position from an array of Longints, sorted by in non-decreasing order */
4459 extern
4461  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */
4462  int pos, /**< array position of element to be deleted */
4463  int* len /**< pointer to length of arrays (will be decreased by 1) */
4464  );
4465 
4466 /** delete the element at the given position from two joint arrays of Long/pointer, sorted by the first array in non-decreasing order */
4467 extern
4469  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */
4470  void** ptrarray, /**< pointer array where an element is to be deleted */
4471  int pos, /**< array position of element to be deleted */
4472  int* len /**< pointer to length of arrays (will be decreased by 1) */
4473  );
4474 
4475 /** delete the element at the given position from three joint arrays of Long/pointer/int, sorted by the first array in non-decreasing order */
4476 extern
4478  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */
4479  void** ptrarray, /**< pointer array where an element is to be deleted */
4480  int* intarray, /**< int array where an element is to be deleted */
4481  int pos, /**< array position of element to be deleted */
4482  int* len /**< pointer to length of arrays (will be decreased by 1) */
4483  );
4484 
4485 /** 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 */
4486 extern
4488  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */
4489  void** ptrarray, /**< pointer array where an element is to be deleted */
4490  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */
4491  SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be deleted */
4492  int pos, /**< array position of element to be deleted */
4493  int* len /**< pointer to length of arrays (will be decreased by 1) */
4494  );
4495 
4496 /** 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 */
4497 extern
4499  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */
4500  void** ptrarray, /**< pointer array where an element is to be deleted */
4501  SCIP_Real* realarray, /**< first SCIP_Real array where an element is to be deleted */
4502  SCIP_Real* realarray2, /**< second SCIP_Real array where an element is to be deleted */
4503  SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be deleted */
4504  int pos, /**< array position of element to be deleted */
4505  int* len /**< pointer to length of arrays (will be decreased by 1) */
4506  );
4507 
4508 /** 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 */
4509 extern
4511  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */
4512  void** ptrarray, /**< pointer array where an element is to be deleted */
4513  SCIP_Real* realarray, /**< first SCIP_Real array where an element is to be deleted */
4514  SCIP_Real* realarray2, /**< second SCIP_Real array where an element is to be deleted */
4515  int* intarray, /**< int array where an element is to be deleted */
4516  SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be deleted */
4517  int pos, /**< array position of element to be deleted */
4518  int* len /**< pointer to length of arrays (will be decreased by 1) */
4519  );
4520 
4521 /** delete the element at the given position from four joint arrays of Long/pointer/pointer/ints, sorted by first array in non-decreasing order */
4522 extern
4524  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */
4525  void** ptrarray1, /**< first pointer array where an element is to be deleted */
4526  void** ptrarray2, /**< second pointer array where an element is to be deleted */
4527  int* intarray, /**< int array where an element is to be deleted */
4528  int pos, /**< array position of element to be deleted */
4529  int* len /**< pointer to length of arrays (will be decreased by 1) */
4530  );
4531 
4532 /** 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 */
4533 extern
4535  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */
4536  void** ptrarray1, /**< first pointer array where an element is to be deleted */
4537  void** ptrarray2, /**< second pointer array where an element is to be deleted */
4538  int* intarray1, /**< first int array where an element is to be deleted */
4539  int* intarray2, /**< second int array where an element is to be deleted */
4540  int pos, /**< array position of element to be deleted */
4541  int* len /**< pointer to length of arrays (will be decreased by 1) */
4542  );
4543 
4544 /** 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 */
4545 extern
4547  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */
4548  void** ptrarray1, /**< first pointer array where an element is to be deleted */
4549  void** ptrarray2, /**< second pointer array where an element is to be deleted */
4550  SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be deleted */
4551  int* intarray, /**< int array where an element is to be deleted */
4552  int pos, /**< array position of element to be deleted */
4553  int* len /**< pointer to length of arrays (will be decreased by 1) */
4554  );
4555 
4556 /** 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 */
4557 extern
4559  void** ptrarray, /**< pointer array to be sorted */
4560  int* intarray1, /**< first int array to be permuted in the same way */
4561  int* intarray2, /**< second int array to be permuted in the same way */
4562  SCIP_Bool* boolarray1, /**< first SCIP_Bool array to be permuted in the same way */
4563  SCIP_Bool* boolarray2, /**< second SCIP_Bool array to be permuted in the same way */
4564  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
4565  int pos, /**< array position of element to be deleted */
4566  int* len /**< pointer to length of arrays (will be decreased by 1) */
4567  );
4568 
4569 /** 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 */
4570 extern
4572  int* intarray1, /**< int array to be sorted */
4573  void** ptrarray, /**< pointer array to be permuted in the same way */
4574  int* intarray2, /**< second int array to be permuted in the same way */
4575  int* intarray3, /**< thrid int array to be permuted in the same way */
4576  SCIP_Bool* boolarray1, /**< first SCIP_Bool array to be permuted in the same way */
4577  SCIP_Bool* boolarray2, /**< second SCIP_Bool array to be permuted in the same way */
4578  int pos, /**< array position of element to be deleted */
4579  int* len /**< pointer to length of arrays (will be decreased by 1) */
4580  );
4581 
4582 /* downwards position deletion */
4583 
4584 /** delete the element at the given position from an index array in non-increasing order */
4585 extern
4587  int* indarray, /**< pointer to the index array where an element is to be deleted */
4588  SCIP_DECL_SORTINDCOMP((*indcomp)), /**< data element comparator */
4589  void* dataptr, /**< pointer to data field that is given to the external compare method */
4590  int pos, /**< array position of element to be deleted */
4591  int* len /**< pointer to length of arrays (will be decreased by 1) */
4592  );
4593 
4594 /** delete the element at the given position from an array of pointers in non-increasing order */
4595 extern
4597  void** ptrarray, /**< pointer array where an element is to be deleted */
4598  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
4599  int pos, /**< array position of element to be deleted */
4600  int* len /**< pointer to length of arrays (will be decreased by 1) */
4601  );
4602 
4603 /** delete the element at the given position from two joint arrays of pointers/pointers, sorted by first array in non-increasing order */
4604 extern
4606  void** ptrarray1, /**< first pointer array where an element is to be deleted */
4607  void** ptrarray2, /**< second pointer array where an element is to be deleted */
4608  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
4609  int pos, /**< array position of element to be deleted */
4610  int* len /**< pointer to length of arrays (will be decreased by 1) */
4611  );
4612 
4613 /** delete the element at the given position from two joint arrays of pointers/Reals, sorted by first array in non-increasing order */
4614 extern
4616  void** ptrarray, /**< pointer array where an element is to be deleted */
4617  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */
4618  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
4619  int pos, /**< array position of element to be deleted */
4620  int* len /**< pointer to length of arrays (will be decreased by 1) */
4621  );
4622 
4623 /** delete the element at the given position from two joint arrays of pointers/ints, sorted by first array in non-increasing order */
4624 extern
4626  void** ptrarray, /**< pointer array where an element is to be deleted */
4627  int* intarray, /**< int array where an element is to be deleted */
4628  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
4629  int pos, /**< array position of element to be deleted */
4630  int* len /**< pointer to length of arrays (will be decreased by 1) */
4631  );
4632 
4633 /** delete the element at the given position from two joint arrays of pointers/Bools, sorted by first array in non-increasing order */
4634 extern
4636  void** ptrarray, /**< pointer array where an element is to be inserted */
4637  SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be inserted */
4638  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
4639  int pos, /**< array position of element to be deleted */
4640  int* len /**< pointer to length of arrays (will be increased by 1) */
4641  );
4642 
4643 /** delete the element at the given position from three joint arrays of pointers/ints/ints, sorted by first array in non-increasing order */
4644 extern
4646  void** ptrarray, /**< pointer array where an element is to be deleted */
4647  int* intarray1, /**< first int array where an element is to be deleted */
4648  int* intarray2, /**< second int array where an element is to be deleted */
4649  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
4650  int pos, /**< array position of element to be deleted */
4651  int* len /**< pointer to length of arrays (will be decreased by 1) */
4652  );
4653 
4654 /** delete the element at the given position from three joint arrays of pointers/Reals/ints, sorted by first array in non-increasing order */
4655 extern
4657  void** ptrarray, /**< pointer array where an element is to be deleted */
4658  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */
4659  int* intarray, /**< int array where an element is to be deleted */
4660  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
4661  int pos, /**< array position of element to be deleted */
4662  int* len /**< pointer to length of arrays (will be decreased by 1) */
4663  );
4664 
4665 /** delete the element at the given position from three joint arrays of pointers/Reals/Bools, sorted by first array in non-increasing order */
4666 extern
4668  void** ptrarray, /**< pointer array where an element is to be deleted */
4669  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */
4670  SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be deleted */
4671  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
4672  int pos, /**< array position of element to be deleted */
4673  int* len /**< pointer to length of arrays (will be decreased by 1) */
4674  );
4675 
4676 /** delete the element at the given position from three joint arrays of pointers/pointers/Ints, sorted by first array in non-increasing order */
4677 extern
4679  void** ptrarray1, /**< first pointer array where an element is to be deleted */
4680  void** ptrarray2, /**< second pointer array where an element is to be deleted */
4681  int* intarray, /**< int array where an element is to be deleted */
4682  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
4683  int pos, /**< array position of element to be deleted */
4684  int* len /**< pointer to length of arrays (will be decreased by 1) */
4685  );
4686 
4687 /** delete the element at the given position from three joint arrays of pointers/pointers/Reals, sorted by first array in non-increasing order */
4688 extern
4690  void** ptrarray1, /**< first pointer array where an element is to be deleted */
4691  void** ptrarray2, /**< second pointer array where an element is to be deleted */
4692  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */
4693  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
4694  int pos, /**< array position of element to be deleted */
4695  int* len /**< pointer to length of arrays (will be decreased by 1) */
4696  );
4697 
4698 /** delete the element at the given position from four joint arrays of pointers/pointers/ints/ints, sorted by first array in non-increasing order */
4699 extern
4701  void** ptrarray1, /**< first pointer array where an element is to be deleted */
4702  void** ptrarray2, /**< second pointer array where an element is to be deleted */
4703  int* intarray1, /**< first int array where an element is to be deleted */
4704  int* intarray2, /**< second int array where an element is to be deleted */
4705  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
4706  int pos, /**< array position of element to be deleted */
4707  int* len /**< pointer to length of arrays (will be decreased by 1) */
4708  );
4709 
4710 /** delete the element at the given position from four joint arrays of pointers/Reals/ints/ints, sorted by first array in non-increasing order */
4711 extern
4713  void** ptrarray, /**< pointer array where an element is to be deleted */
4714  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */
4715  int* intarray1, /**< first int array where an element is to be deleted */
4716  int* intarray2, /**< second int array where an element is to be deleted */
4717  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
4718  int pos, /**< array position of element to be deleted */
4719  int* len /**< pointer to length of arrays (will be decreased by 1) */
4720  );
4721 
4722 /** deletes the element at the given position from four joint arrays of pointer/pointer/Reals/ints, sorted by first array in non-increasing order */
4723 extern
4725  void** ptrarray1, /**< first pointer array where an element is to be deleted */
4726  void** ptrarray2, /**< second pointer array where an element is to be deleted */
4727  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */
4728  int* intarray, /**< int array where an element is to be deleted */
4729  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
4730  int pos, /**< array position of element to be deleted */
4731  int* len /**< pointer to length of arrays (will be decreased by 1) */
4732  );
4733 
4734 /** deletes the element at the given position from four joint arrays of pointer/pointer/Reals/bools, sorted by first array in non-increasing order */
4735 extern
4737  void** ptrarray1, /**< first pointer array where an element is to be deleted */
4738  void** ptrarray2, /**< second pointer array where an element is to be deleted */
4739  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */
4740  SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be deleted */
4741  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
4742  int pos, /**< array position of element to be deleted */
4743  int* len /**< pointer to length of arrays (will be decreased by 1) */
4744  );
4745 
4746 /** deletes the element at the given position from four joint arrays of pointer/pointer/Longs/ints, sorted by first array in non-increasing order */
4747 extern
4749  void** ptrarray1, /**< first pointer array where an element is to be deleted */
4750  void** ptrarray2, /**< second pointer array where an element is to be deleted */
4751  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */
4752  int* intarray, /**< int array where an element is to be deleted */
4753  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
4754  int pos, /**< array position of element to be deleted */
4755  int* len /**< pointer to length of arrays (will be decreased by 1) */
4756  );
4757 
4758 /** 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 */
4759 extern
4761  void** ptrarray1, /**< first pointer array where an element is to be deleted */
4762  void** ptrarray2, /**< second pointer array where an element is to be deleted */
4763  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */
4764  int* intarray1, /**< first int array where an element is to be deleted */
4765  int* intarray2, /**< second int array where an element is to be deleted */
4766  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
4767  int pos, /**< array position of element to be deleted */
4768  int* len /**< pointer to length of arrays (will be decreased by 1) */
4769  );
4770 
4771 /** delete the element at the given position from an array of Reals, sorted in non-increasing order */
4772 extern
4774  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */
4775  int pos, /**< array position of element to be deleted */
4776  int* len /**< pointer to length of arrays (will be decreased by 1) */
4777  );
4778 
4779 
4780 /** delete the element at the given position from three joint arrays of Reals/Bools/pointers, sorted by first array in non-increasing order */
4781 extern
4783  SCIP_Real* realarray, /**< SCIP_Real array to be sorted */
4784  SCIP_Bool* boolarray, /**< SCIP_Bool array to be permuted in the same way */
4785  void** ptrarray, /**< pointer array to be permuted in the same way */
4786  int pos, /**< array position of element to be deleted */
4787  int* len /**< pointer to length of arrays (will be decreased by 1) */
4788  );
4789 
4790 /** delete the element at the given position from two joint arrays of Reals/pointers, sorted by first array in non-increasing order */
4791 extern
4793  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */
4794  void** ptrarray, /**< pointer array where an element is to be deleted */
4795  int pos, /**< array position of element to be deleted */
4796  int* len /**< pointer to length of arrays (will be decreased by 1) */
4797  );
4798 
4799 /** delete the element at the given position from two joint arrays of Reals/ints, sorted by first array in non-increasing order */
4800 extern
4802  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */
4803  int* intarray, /**< pointer array where an element is to be deleted */
4804  int pos, /**< array position of element to be deleted */
4805  int* len /**< pointer to length of arrays (will be decreased by 1) */
4806  );
4807 
4808 /** delete the element at the given position from three joint arrays of Reals/ints/Longs, sorted by first array in non-increasing order */
4809 extern
4811  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */
4812  int* intarray, /**< int array where an element is to be deleted */
4813  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */
4814  int pos, /**< array position of element to be deleted */
4815  int* len /**< pointer to length of arrays (will be decreased by 1) */
4816  );
4817 
4818 /** delete the element at the given position from three joint arrays of Reals/ints/Pointer, sorted by first array in non-increasing order */
4819 extern
4821  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */
4822  int* intarray, /**< int array where an element is to be deleted */
4823  void** ptrarray, /**< pointer array where an element is to be deleted */
4824  int pos, /**< array position of element to be deleted */
4825  int* len /**< pointer to length of arrays (will be decreased by 1) */
4826  );
4827 
4828 /** delete the element at the given position from three joint arrays of Reals/Reals/Pointer, sorted by first array in non-increasing order */
4829 extern
4831  SCIP_Real* realarray1, /**< first SCIP_Real array where an element is to be deleted */
4832  SCIP_Real* realarray2, /**< second SCIP_Real array where an element is to be deleted */
4833  void** ptrarray, /**< pointer array where an element is to be deleted */
4834  int pos, /**< array position of element to be deleted */
4835  int* len /**< pointer to length of arrays (will be decreased by 1) */
4836  );
4837 
4838 /** delete the element at the given position from three joint arrays of Reals/Reals/Pointer, sorted by first array in non-increasing order */
4839 extern
4841  SCIP_Real* realarray, /**< first SCIP_Real array where an element is to be deleted */
4842  void** ptrarray1, /**< first pointer array where an element is to be deleted */
4843  void** ptrarray2, /**< second pointer array where an element is to be deleted */
4844  int pos, /**< array position of element to be deleted */
4845  int* len /**< pointer to length of arrays (will be decreased by 1) */
4846  );
4847 
4848 /** delete the element at the given position from four joint arrays of Reals/pointers/pointers/ints, sorted by first array in non-increasing order */
4849 extern
4851  SCIP_Real* realarray, /**< first SCIP_Real array where an element is to be deleted */
4852  void** ptrarray1, /**< first pointer array where an element is to be deleted */
4853  void** ptrarray2, /**< second pointer array where an element is to be deleted */
4854  int* intarray, /**< int array where an element is to be deleted */
4855  int pos, /**< array position of element to be deleted */
4856  int* len /**< pointer to length of arrays (will be decreased by 1) */
4857  );
4858 
4859 /** 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 */
4860 extern
4862  SCIP_Real* realarray, /**< first SCIP_Real array where an element is to be deleted */
4863  void** ptrarray1, /**< first pointer array where an element is to be deleted */
4864  void** ptrarray2, /**< second pointer array where an element is to be deleted */
4865  int* intarray1, /**< int array where an element is to be deleted */
4866  int* intarray2, /**< int array where an element is to be deleted */
4867  int pos, /**< array position of element to be deleted */
4868  int* len /**< pointer to length of arrays (will be decreased by 1) */
4869  );
4870 
4871 /** delete the element at the given position from four joint arrays of Reals/Long/Reals/ints, sorted by first array in non-increasing order */
4872 extern
4874  SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be deleted */
4875  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */
4876  SCIP_Real* realarray3, /**< SCIP_Real array where an element is to be deleted */
4877  int* intarray, /**< int array where an element is to be deleted */
4878  int pos, /**< array position of element to be deleted */
4879  int* len /**< pointer to length of arrays (will be decreased by 1) */
4880  );
4881 
4882 /** delete the element at the given position from four joint arrays of Reals/Reals/ints/ints, sorted by first array in non-increasing order */
4883 extern
4885  SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be deleted */
4886  SCIP_Real* realarray2, /**< SCIP_Real array where an element is to be deleted */
4887  int* intarray1, /**< int array where an element is to be deleted */
4888  int* intarray2, /**< int array where an element is to be deleted */
4889  int pos, /**< array position of element to be deleted */
4890  int* len /**< pointer to length of arrays (will be decreased by 1) */
4891  );
4892 
4893 /** delete the element at the given position from four joint arrays of Reals/Reals/Reals/ints, sorted by first array in non-increasing order */
4894 extern
4896  SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be deleted */
4897  SCIP_Real* realarray2, /**< SCIP_Real array where an element is to be deleted */
4898  SCIP_Real* realarray3, /**< SCIP_Real array where an element is to be deleted */
4899  int* intarray, /**< int array where an element is to be deleted */
4900  int pos, /**< array position of element to be deleted */
4901  int* len /**< pointer to length of arrays (will be decreased by 1) */
4902  );
4903 
4904 /** delete the element at the given position from four joint arrays of Reals/Reals/Reals/pointers, sorted by first array in non-increasing order */
4905 extern
4907  SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be deleted */
4908  SCIP_Real* realarray2, /**< SCIP_Real array where an element is to be deleted */
4909  SCIP_Real* realarray3, /**< SCIP_Real array where an element is to be deleted */
4910  void** ptrarray, /**< pointer array where an element is to be deleted */
4911  int pos, /**< array position of element to be deleted */
4912  int* len /**< pointer to length of arrays (will be decreased by 1) */
4913  );
4914 
4915 /** 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 */
4916 extern
4918  SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be deleted */
4919  SCIP_Real* realarray2, /**< SCIP_Real array where an element is to be deleted */
4920  SCIP_Real* realarray3, /**< SCIP_Real array where an element is to be deleted */
4921  SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be deleted */
4922  void** ptrarray, /**< pointer array where an element is to be deleted */
4923  int pos, /**< array position of element to be deleted */
4924  int* len /**< pointer to length of arrays (will be decreased by 1) */
4925  );
4926 
4927 /** 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 */
4928 extern
4930  SCIP_Real* realarray1, /**< SCIP_Real array where an element is to be deleted */
4931  SCIP_Real* realarray2, /**< SCIP_Real array where an element is to be deleted */
4932  SCIP_Real* realarray3, /**< SCIP_Real array where an element is to be deleted */
4933  SCIP_Bool* boolarray1, /**< SCIP_Bool array where an element is to be deleted */
4934  SCIP_Bool* boolarray2, /**< SCIP_Bool array where an element is to be deleted */
4935  void** ptrarray, /**< pointer array where an element is to be deleted */
4936  int pos, /**< array position of element to be deleted */
4937  int* len /**< pointer to length of arrays (will be decreased by 1) */
4938  );
4939 
4940 /** delete the element at the given position from an array of ints in non-increasing order */
4941 extern
4943  int* intarray, /**< int array where an element is to be deleted */
4944  int pos, /**< array position of element to be deleted */
4945  int* len /**< pointer to length of arrays (will be decreased by 1) */
4946  );
4947 
4948 /** delete the element at the given position from two joint arrays of ints/ints, sorted by first array in non-increasing order */
4949 extern
4951  int* intarray1, /**< int array where an element is to be deleted */
4952  int* intarray2, /**< second int array where an element is to be deleted */
4953  int pos, /**< array position of element to be deleted */
4954  int* len /**< pointer to length of arrays (will be decreased by 1) */
4955  );
4956 
4957 /** delete the element at the given position from two joint arrays of ints/reals, sorted by first array in non-increasing order */
4958 extern
4960  int* intarray, /**< int array where an element is to be deleted */
4961  SCIP_Real* realarray, /**< real array where an element is to be deleted */
4962  int pos, /**< array position of element to be deleted */
4963  int* len /**< pointer to length of arrays (will be decreased by 1) */
4964  );
4965 
4966 /** delete the element at the given position from three joint arrays of ints/ints/ints, sorted by first array in non-increasing order */
4967 extern
4969  int* intarray1, /**< int array where an element is to be deleted */
4970  int* intarray2, /**< second int array where an element is to be deleted */
4971  int* intarray3, /**< third int array where an element is to be deleted */
4972  int pos, /**< array position of element to be deleted */
4973  int* len /**< pointer to length of arrays (will be decreased by 1) */
4974  );
4975 
4976 /** delete the element at the given position from three joint arrays of ints/ints/SCIP_Longint, sorted by first array in non-increasing order */
4977 extern
4979  int* intarray1, /**< int array where an element is to be deleted */
4980  int* intarray2, /**< second int array where an element is to be deleted */
4981  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */
4982  int pos, /**< array position of element to be deleted */
4983  int* len /**< pointer to length of arrays (will be decreased by 1) */
4984  );
4985 
4986 /** delete the element at the given position from three joint arrays of ints/ints/pointers, sorted by first array in non-increasing order */
4987 extern
4989  int* intarray1, /**< int array where an element is to be deleted */
4990  int* intarray2, /**< second int array where an element is to be deleted */
4991  void** ptrarray, /**< pointer array where an element is to be deleted */
4992  int pos, /**< array position of element to be deleted */
4993  int* len /**< pointer to length of arrays (will be decreased by 1) */
4994  );
4995 
4996 /** delete the element at the given position from three joint arrays of ints/ints/Reals, sorted by first array in non-increasing order */
4997 extern
4999  int* intarray1, /**< int array where an element is to be deleted */
5000  int* intarray2, /**< second int array where an element is to be deleted */
5001  SCIP_Real* realarray, /**< real array where an element is to be deleted */
5002  int pos, /**< array position of element to be deleted */
5003  int* len /**< pointer to length of arrays (will be decreased by 1) */
5004  );
5005 
5006 /** delete the element at the given position from two joint arrays of ints/pointers, sorted by first array in non-increasing order */
5007 extern
5009  int* intarray, /**< int array where an element is to be deleted */
5010  void** ptrarray, /**< pointer array where an element is to be deleted */
5011  int pos, /**< array position of element to be deleted */
5012  int* len /**< pointer to length of arrays (will be decreased by 1) */
5013  );
5014 
5015 /** delete the element at the given position from four joint arrays of ints/ints/ints/pointers, sorted by first array in non-decreasing order */
5016 extern
5018  int* intarray1, /**< int array where an element is to be deleted */
5019  int* intarray2, /**< int array where an element is to be deleted */
5020  int* intarray3, /**< int array where an element is to be deleted */
5021  void** ptrarray, /**< pointer array where an element is to be deleted */
5022  int pos, /**< array position of element to be deleted */
5023  int* len /**< pointer to length of arrays (will be decreased by 1) */
5024  );
5025 
5026 /** delete the element at the given position from four joint arrays of ints/ints/ints/reals, sorted by first array in non-decreasing order */
5027 extern
5029  int* intarray1, /**< int array where an element is to be deleted */
5030  int* intarray2, /**< int array where an element is to be deleted */
5031  int* intarray3, /**< int array where an element is to be deleted */
5032  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */
5033  int pos, /**< array position of element to be deleted */
5034  int* len /**< pointer to length of arrays (will be decreased by 1) */
5035  );
5036 
5037 /** delete the element at the given position from four joint arrays of ints/pointers/ints/reals, sorted by first array in non-decreasing order */
5038 extern
5040  int* intarray1, /**< int array where an element is to be deleted */
5041  void** ptrarray, /**< pointer array where an element is to be deleted */
5042  int* intarray2, /**< int array where an element is to be deleted */
5043  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */
5044  int pos, /**< array position of element to be deleted */
5045  int* len /**< pointer to length of arrays (will be decreased by 1) */
5046  );
5047 
5048 /** delete the element at the given position from an array of Longints, sorted in non-increasing order */
5049 extern
5051  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */
5052  int pos, /**< array position of element to be deleted */
5053  int* len /**< pointer to length of arrays (will be decreased by 1) */
5054  );
5055 
5056 /** delete the element at the given position from three two arrays of Long/pointer, sorted by the first array in non-increasing order */
5057 extern
5059  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */
5060  void** ptrarray, /**< pointer array where an element is to be deleted */
5061  int pos, /**< array position of element to be deleted */
5062  int* len /**< pointer to length of arrays (will be decreased by 1) */
5063  );
5064 
5065 /** delete the element at the given position from three joint arrays of Long/pointer/int, sorted by the first array in non-increasing order */
5066 extern
5068  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */
5069  void** ptrarray, /**< pointer array where an element is to be deleted */
5070  int* intarray, /**< int array where an element is to be deleted */
5071  int pos, /**< array position of element to be deleted */
5072  int* len /**< pointer to length of arrays (will be decreased by 1) */
5073  );
5074 
5075 /** 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 */
5076 extern
5078  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */
5079  void** ptrarray, /**< pointer array where an element is to be deleted */
5080  SCIP_Real* realarray, /**< SCIP_Real array where an element is to be deleted */
5081  SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be deleted */
5082  int pos, /**< array position of element to be deleted */
5083  int* len /**< pointer to length of arrays (will be decreased by 1) */
5084  );
5085 
5086 /** 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 */
5087 extern
5089  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */
5090  void** ptrarray, /**< pointer array where an element is to be deleted */
5091  SCIP_Real* realarray, /**< first SCIP_Real array where an element is to be deleted */
5092  SCIP_Real* realarray2, /**< second SCIP_Real array where an element is to be deleted */
5093  SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be deleted */
5094  int pos, /**< array position of element to be deleted */
5095  int* len /**< pointer to length of arrays (will be decreased by 1) */
5096  );
5097 
5098 /** 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 */
5099 extern
5101  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */
5102  void** ptrarray, /**< pointer array where an element is to be deleted */
5103  SCIP_Real* realarray, /**< first SCIP_Real array where an element is to be deleted */
5104  SCIP_Real* realarray2, /**< second SCIP_Real array where an element is to be deleted */
5105  int* intarray, /**< int array where an element is to be deleted */
5106  SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be deleted */
5107  int pos, /**< array position of element to be deleted */
5108  int* len /**< pointer to length of arrays (will be decreased by 1) */
5109  );
5110 
5111 
5112 /** delete the element at the given position from four joint arrays of Long/pointer/pointer/ints, sorted by first array in non-increasing order */
5113 extern
5115  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */
5116  void** ptrarray1, /**< first pointer array where an element is to be deleted */
5117  void** ptrarray2, /**< second pointer array where an element is to be deleted */
5118  int* intarray, /**< int array where an element is to be deleted */
5119  int pos, /**< array position of element to be deleted */
5120  int* len /**< pointer to length of arrays (will be decreased by 1) */
5121  );
5122 
5123 /** 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 */
5124 extern
5126  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */
5127  void** ptrarray1, /**< first pointer array where an element is to be deleted */
5128  void** ptrarray2, /**< second pointer array where an element is to be deleted */
5129  int* intarray1, /**< first int array where an element is to be deleted */
5130  int* intarray2, /**< second int array where an element is to be deleted */
5131  int pos, /**< array position of element to be deleted */
5132  int* len /**< pointer to length of arrays (will be decreased by 1) */
5133  );
5134 
5135 /** 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 */
5136 extern
5138  SCIP_Longint* longarray, /**< SCIP_Longint array where an element is to be deleted */
5139  void** ptrarray1, /**< first pointer array where an element is to be deleted */
5140  void** ptrarray2, /**< second pointer array where an element is to be deleted */
5141  SCIP_Bool* boolarray, /**< SCIP_Bool array where an element is to be deleted */
5142  int* intarray, /**< int array where an element is to be deleted */
5143  int pos, /**< array position of element to be deleted */
5144  int* len /**< pointer to length of arrays (will be decreased by 1) */
5145  );
5146 
5147 /** 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 */
5148 extern
5150  void** ptrarray, /**< pointer array to be sorted */
5151  int* intarray1, /**< first int array to be permuted in the same way */
5152  int* intarray2, /**< second int array to be permuted in the same way */
5153  SCIP_Bool* boolarray1, /**< first SCIP_Bool array to be permuted in the same way */
5154  SCIP_Bool* boolarray2, /**< second SCIP_Bool array to be permuted in the same way */
5155  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
5156  int pos, /**< array position of element to be deleted */
5157  int* len /**< pointer to length of arrays (will be decreased by 1) */
5158  );
5159 
5160 /** 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 */
5161 extern
5163  int* intarray1, /**< int array to be sorted */
5164  void** ptrarray, /**< pointer array to be permuted in the same way */
5165  int* intarray2, /**< second int array to be permuted in the same way */
5166  int* intarray3, /**< thrid int array to be permuted in the same way */
5167  SCIP_Bool* boolarray1, /**< first SCIP_Bool array to be permuted in the same way */
5168  SCIP_Bool* boolarray2, /**< second SCIP_Bool array to be permuted in the same way */
5169  int pos, /**< array position of element to be deleted */
5170  int* len /**< pointer to length of arrays (will be decreased by 1) */
5171  );
5172 
5173 
5174 /* upwards binary search */
5175 
5176 /** Finds the position at which 'val' is located in the sorted vector by binary search.
5177  * If the element exists, the method returns TRUE and stores the position of the element in '*pos'.
5178  * If the element does not exist, the method returns FALSE and stores the position of the element that follows
5179  * 'val' in the ordering in '*pos', i.e., '*pos' is the position at which 'val' would be inserted.
5180  * Note that if the element is not found, '*pos' may be equal to len if all existing elements are smaller than 'val'.
5181  */
5182 extern
5184  int* indarray, /**< index array to be searched */
5185  SCIP_DECL_SORTINDCOMP((*indcomp)), /**< data element comparator */
5186  void* dataptr, /**< pointer to data field that is given to the external compare method */
5187  int val, /**< value to search */
5188  int len, /**< length of array */
5189  int* pos /**< pointer to store position of element */
5190  );
5191 
5192 /** Finds the position at which 'val' is located in the sorted vector by binary search.
5193  * If the element exists, the method returns TRUE and stores the position of the element in '*pos'.
5194  * If the element does not exist, the method returns FALSE and stores the position of the element that follows
5195  * 'val' in the ordering in '*pos', i.e., '*pos' is the position at which 'val' would be inserted.
5196  * Note that if the element is not found, '*pos' may be equal to len if all existing elements are smaller than 'val'.
5197  */
5198 extern
5200  void** ptrarray, /**< pointer array to be searched */
5201  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
5202  void* val, /**< value to search */
5203  int len, /**< length of array */
5204  int* pos /**< pointer to store position of element */
5205  );
5206 
5207 /** Finds the position at which 'val' is located in the sorted vector by binary search.
5208  * If the element exists, the method returns TRUE and stores the position of the element in '*pos'.
5209  * If the element does not exist, the method returns FALSE and stores the position of the element that follows
5210  * 'val' in the ordering in '*pos', i.e., '*pos' is the position at which 'val' would be inserted.
5211  * Note that if the element is not found, '*pos' may be equal to len if all existing elements are smaller than 'val'.
5212  */
5213 extern
5215  SCIP_Real* realarray, /**< SCIP_Real array to be searched */
5216  SCIP_Real val, /**< value to search */
5217  int len, /**< length of array */
5218  int* pos /**< pointer to store position of element */
5219  );
5220 
5221 /** Finds the position at which 'val' is located in the sorted vector by binary search.
5222  * If the element exists, the method returns TRUE and stores the position of the element in '*pos'.
5223  * If the element does not exist, the method returns FALSE and stores the position of the element that follows
5224  * 'val' in the ordering in '*pos', i.e., '*pos' is the position at which 'val' would be inserted.
5225  * Note that if the element is not found, '*pos' may be equal to len if all existing elements are smaller than 'val'.
5226  */
5227 extern
5229  int* intarray, /**< int array to be searched */
5230  int val, /**< value to search */
5231  int len, /**< length of array */
5232  int* pos /**< pointer to store position of element */
5233  );
5234 
5235 /** Finds the position at which 'val' is located in the sorted vector by binary search.
5236  * If the element exists, the method returns TRUE and stores the position of the element in '*pos'.
5237  * If the element does not exist, the method returns FALSE and stores the position of the element that follows
5238  * 'val' in the ordering in '*pos', i.e., '*pos' is the position at which 'val' would be inserted.
5239  * Note that if the element is not found, '*pos' may be equal to len if all existing elements are smaller than 'val'.
5240  */
5241 extern
5243  SCIP_Longint* longarray, /**< SCIP_Longint array to be searched */
5244  SCIP_Longint val, /**< value to search */
5245  int len, /**< length of array */
5246  int* pos /**< pointer to store position of element */
5247  );
5248 
5249 
5250 /* downwards binary search */
5251 
5252 /** Finds the position at which 'val' is located in the sorted vector by binary search.
5253  * If the element exists, the method returns TRUE and stores the position of the element in '*pos'.
5254  * If the element does not exist, the method returns FALSE and stores the position of the element that follows
5255  * 'val' in the ordering in '*pos', i.e., '*pos' is the position at which 'val' would be inserted.
5256  * Note that if the element is not found, '*pos' may be equal to len if all existing elements are smaller than 'val'.
5257  */
5258 extern
5260  int* indarray, /**< index array to be searched */
5261  SCIP_DECL_SORTINDCOMP((*indcomp)), /**< data element comparator */
5262  void* dataptr, /**< pointer to data field that is given to the external compare method */
5263  int val, /**< value to search */
5264  int len, /**< length of array */
5265  int* pos /**< pointer to store position of element */
5266  );
5267 
5268 /** Finds the position at which 'val' is located in the sorted vector by binary search.
5269  * If the element exists, the method returns TRUE and stores the position of the element in '*pos'.
5270  * If the element does not exist, the method returns FALSE and stores the position of the element that follows
5271  * 'val' in the ordering in '*pos', i.e., '*pos' is the position at which 'val' would be inserted.
5272  * Note that if the element is not found, '*pos' may be equal to len if all existing elements are smaller than 'val'.
5273  */
5274 extern
5276  void** ptrarray, /**< pointer array to be searched */
5277  SCIP_DECL_SORTPTRCOMP((*ptrcomp)), /**< data element comparator */
5278  void* val, /**< value to search */
5279  int len, /**< length of array */
5280  int* pos /**< pointer to store position of element */
5281  );
5282 
5283 /** Finds the position at which 'val' is located in the sorted vector by binary search.
5284  * If the element exists, the method returns TRUE and stores the position of the element in '*pos'.
5285  * If the element does not exist, the method returns FALSE and stores the position of the element that follows
5286  * 'val' in the ordering in '*pos', i.e., '*pos' is the position at which 'val' would be inserted.
5287  * Note that if the element is not found, '*pos' may be equal to len if all existing elements are smaller than 'val'.
5288  */
5289 extern
5291  SCIP_Real* realarray, /**< SCIP_Real array to be searched */
5292  SCIP_Real val, /**< value to search */
5293  int len, /**< length of array */
5294  int* pos /**< pointer to store position of element */
5295  );
5296 
5297 /** Finds the position at which 'val' is located in the sorted vector by binary search.
5298  * If the element exists, the method returns TRUE and stores the position of the element in '*pos'.
5299  * If the element does not exist, the method returns FALSE and stores the position of the element that follows
5300  * 'val' in the ordering in '*pos', i.e., '*pos' is the position at which 'val' would be inserted.
5301  * Note that if the element is not found, '*pos' may be equal to len if all existing elements are smaller than 'val'.
5302  */
5303 extern
5305  int* intarray, /**< int array to be searched */
5306  int val, /**< value to search */
5307  int len, /**< length of array */
5308  int* pos /**< pointer to store position of element */
5309  );
5310 
5311 /** Finds the position at which 'val' is located in the sorted vector by binary search.
5312  * If the element exists, the method returns TRUE and stores the position of the element in '*pos'.
5313  * If the element does not exist, the method returns FALSE and stores the position of the element that follows
5314  * 'val' in the ordering in '*pos', i.e., '*pos' is the position at which 'val' would be inserted.
5315  * Note that if the element is not found, '*pos' may be equal to len if all existing elements are smaller than 'val'.
5316  */
5317 extern
5319  SCIP_Longint* longarray, /**< SCIP_Longint array to be searched */
5320  SCIP_Longint val, /**< value to search */
5321  int len, /**< length of array */
5322  int* pos /**< pointer to store position of element */
5323  );
5324 
5325 /**@} */
5326 
5327 /**@defgroup MiscellaneousMethods Miscellaneous Methods
5328  *
5329  * Below you find a list of miscellaneous methods grouped by different categories
5330  *@{
5331  */
5332 
5333 /*
5334  * Numerical methods
5335  */
5336 
5337 /**@defgroup NumericalMethods Numerical Methods
5338  *
5339  *@{
5340  */
5341 
5342 /** returns the machine epsilon: the smallest number eps > 0, for which 1.0 + eps > 1.0 */
5343 extern
5345  void
5346  );
5347 
5348 /** calculates the greatest common divisor of the two given values */
5349 extern
5351  SCIP_Longint val1, /**< first value of greatest common devisor calculation */
5352  SCIP_Longint val2 /**< second value of greatest common devisor calculation */
5353  );
5354 
5355 /** calculates the smallest common multiple of the two given values */
5356 extern
5358  SCIP_Longint val1, /**< first value of smallest common multiple calculation */
5359  SCIP_Longint val2 /**< second value of smallest common multiple calculation */
5360  );
5361 
5362 /** converts a real number into a (approximate) rational representation, and returns TRUE iff the conversion was
5363  * successful
5364  */
5365 extern
5367  SCIP_Real val, /**< real value r to convert into rational number */
5368  SCIP_Real mindelta, /**< minimal allowed difference r - q of real r and rational q = n/d */
5369  SCIP_Real maxdelta, /**< maximal allowed difference r - q of real r and rational q = n/d */
5370  SCIP_Longint maxdnom, /**< maximal denominator allowed */
5371  SCIP_Longint* nominator, /**< pointer to store the nominator n of the rational number */
5372  SCIP_Longint* denominator /**< pointer to store the denominator d of the rational number */
5373  );
5374 
5375 /** tries to find a value, such that all given values, if scaled with this value become integral in relative allowed
5376  * difference in between mindelta and maxdelta
5377  */
5378 extern
5380  SCIP_Real* vals, /**< values to scale */
5381  int nvals, /**< number of values to scale */
5382  SCIP_Real mindelta, /**< minimal relative allowed difference of scaled coefficient s*c and integral i */
5383  SCIP_Real maxdelta, /**< maximal relative allowed difference of scaled coefficient s*c and integral i */
5384  SCIP_Longint maxdnom, /**< maximal denominator allowed in rational numbers */
5385  SCIP_Real maxscale, /**< maximal allowed scalar */
5386  SCIP_Real* intscalar, /**< pointer to store scalar that would make the coefficients integral, or NULL */
5387  SCIP_Bool* success /**< stores whether returned value is valid */
5388  );
5389 
5390 /** given a (usually very small) interval, tries to find a rational number with simple denominator (i.e. a small
5391  * number, probably multiplied with powers of 10) out of this interval; returns TRUE iff a valid rational
5392  * number inside the interval was found
5393  */
5394 extern
5396  SCIP_Real lb, /**< lower bound of the interval */
5397  SCIP_Real ub, /**< upper bound of the interval */
5398  SCIP_Longint maxdnom, /**< maximal denominator allowed for resulting rational number */
5399  SCIP_Longint* nominator, /**< pointer to store the nominator n of the rational number */
5400  SCIP_Longint* denominator /**< pointer to store the denominator d of the rational number */
5401  );
5402 
5403 /** given a (usually very small) interval, selects a value inside this interval; it is tried to select a rational number
5404  * with simple denominator (i.e. a small number, probably multiplied with powers of 10);
5405  * if no valid rational number inside the interval was found, selects the central value of the interval
5406  */
5407 extern
5409  SCIP_Real lb, /**< lower bound of the interval */
5410  SCIP_Real ub, /**< upper bound of the interval */
5411  SCIP_Longint maxdnom /**< maximal denominator allowed for resulting rational number */
5412  );
5413 
5414 /* The C99 standard defines the function (or macro) isfinite.
5415  * On MacOS X, isfinite is also available.
5416  * From the BSD world, there comes a function finite.
5417  * On SunOS, finite is also available.
5418  * In the MS compiler world, there is a function _finite.
5419  * As last resort, we check whether x == x does not hold, but this works only for NaN's, not for infinities!
5420  */
5421 #if _XOPEN_SOURCE >= 600 || defined(_ISOC99_SOURCE) || _POSIX_C_SOURCE >= 200112L || defined(__APPLE__)
5422 #define SCIPisFinite isfinite
5423 #elif defined(_BSD_SOURCE) || defined(__sun)
5424 #define SCIPisFinite finite
5425 #elif defined(_MSC_VER)
5426 #define SCIPisFinite _finite
5427 #else
5428 #define SCIPisFinite(x) ((x) == (x))
5429 #endif
5430 
5431 /* In debug mode, the following methods are implemented as function calls to ensure
5432  * type validity.
5433  */
5434 
5435 /** returns the relative difference: (val1-val2)/max(|val1|,|val2|,1.0) */
5436 extern
5438  SCIP_Real val1, /**< first value to be compared */
5439  SCIP_Real val2 /**< second value to be compared */
5440  );
5441 
5442 #ifdef NDEBUG
5443 
5444 /* In optimized mode, the function calls are overwritten by defines to reduce the number of function calls and
5445  * speed up the algorithms.
5446  */
5447 
5448 #define SCIPrelDiff(val1, val2) ( ((val1)-(val2))/(MAX3(1.0,REALABS(val1),REALABS(val2))) )
5449 
5450 #endif
5451 
5452 /**@} */
5453 
5454 
5455 /*
5456  * Random Numbers
5457  */
5458 
5459 /**@defgroup RandomNumbers Random Numbers
5460  *
5461  *@{
5462  */
5463 
5464 /** returns a random integer between minrandval and maxrandval */
5465 extern
5466 int SCIPgetRandomInt(
5467  int minrandval, /**< minimal value to return */
5468  int maxrandval, /**< maximal value to return */
5469  unsigned int* seedp /**< pointer to seed value */
5470  );
5471 
5472 /** returns a random real between minrandval and maxrandval */
5473 extern
5475  SCIP_Real minrandval, /**< minimal value to return */
5476  SCIP_Real maxrandval, /**< maximal value to return */
5477  unsigned int* seedp /**< pointer to seed value */
5478  );
5479 
5480 /**@} */
5481 
5482 
5483 /*
5484  * Additional math functions
5485  */
5486 
5487 /**@defgroup AdditionalMathFunctions Additional math functions
5488  *
5489  *@{
5490  */
5491 
5492 /** calculates a binomial coefficient n over m, choose m elements out of n, maximal value will be 33 over 16 (because
5493  * the n=33 is the last line in the Pascal's triangle where each entry fits in a 4 byte value), an error occurs due to
5494  * big numbers or an negative value m (and m < n) and -1 will be returned
5495  */
5496 extern
5498  int n, /**< number of different elements */
5499  int m /**< number to choose out of the above */
5500  );
5501 
5502 /**@} */
5503 
5504 /*
5505  * Permutations / Shuffling
5506  */
5507 
5508 /**@defgroup PermutationsShuffling Permutations Shuffling
5509  *
5510  *@{
5511  */
5512 
5513 /** swaps two ints */
5514 extern
5515 void SCIPswapInts(
5516  int* value1, /**< pointer to first integer */
5517  int* value2 /**< pointer ti second integer */
5518  );
5519 
5520 /** swaps the addresses of two pointers */
5521 extern
5522 void SCIPswapPointers(
5523  void** pointer1, /**< first pointer */
5524  void** pointer2 /**< second pointer */
5525  );
5526 
5527 /** randomly shuffles parts of an integer array using the Fisher-Yates algorithm */
5528 extern
5529 void SCIPpermuteIntArray(
5530  int* array, /**< array to be shuffled */
5531  int begin, /**< first index that should be subject to shuffling (0 for whole array) */
5532  int end, /**< last index that should be subject to shuffling (array size for whole
5533  * array)
5534  */
5535  unsigned int* randseed /**< seed value for the random generator */
5536  );
5537 
5538 /** randomly shuffles parts of an array using the Fisher-Yates algorithm */
5539 extern
5540 void SCIPpermuteArray(
5541  void** array, /**< array to be shuffled */
5542  int begin, /**< first index that should be subject to shuffling (0 for whole array) */
5543  int end, /**< last index that should be subject to shuffling (array size for whole
5544  * array)
5545  */
5546  unsigned int* randseed /**< pointer to seed value for the random generator */
5547  );
5548 
5549 /** draws a random subset of disjoint elements from a given set of disjoint elements;
5550  * this implementation is suited for the case that nsubelems is considerably smaller then nelems
5551  */
5552 extern
5554  void** set, /**< original set, from which elements should be drawn */
5555  int nelems, /**< number of elements in original set */
5556  void** subset, /**< subset in which drawn elements should be stored */
5557  int nsubelems, /**< number of elements that should be drawn and stored */
5558  unsigned int randseed /**< seed value for random generator */
5559  );
5560 
5561 
5562 
5563 /**@} */
5564 
5565 
5566 /*
5567  * Arrays
5568  */
5569 
5570 /**@defgroup Arrays Arrays
5571  *
5572  *@{
5573  */
5574 
5575 
5576 /** computes set intersection (duplicates removed) of two arrays that are ordered ascendingly */
5577 extern
5579  int* array1, /**< first array (in ascending order) */
5580  int narray1, /**< number of entries of first array */
5581  int* array2, /**< second array (in ascending order) */
5582  int narray2, /**< number of entries of second array */
5583  int* intersectarray, /**< intersection of array1 and array2
5584  * (note: it is possible to use array1 for this input argument) */
5585  int* nintersectarray /**< pointer to store number of entries of intersection array
5586  * (note: it is possible to use narray1 for this input argument) */
5587  );
5588 
5589 /** computes set difference (duplicates removed) of two arrays that are ordered ascendingly */
5590 extern
5592  int* array1, /**< first array (in ascending order) */
5593  int narray1, /**< number of entries of first array */
5594  int* array2, /**< second array (in ascending order) */
5595  int narray2, /**< number of entries of second array */
5596  int* setminusarray, /**< array to store entries of array1 that are not an entry of array2
5597  * (note: it is possible to use array1 for this input argument) */
5598  int* nsetminusarray /**< pointer to store number of entries of setminus array
5599  * (note: it is possible to use narray1 for this input argument) */
5600  );
5601 
5602 
5603 /**@} */
5604 
5605 
5606 /*
5607  * Strings
5608  */
5609 
5610 /**@defgroup StringMethods String Methods
5611  *
5612  *@{
5613  */
5614 
5615 /** copies characters from 'src' to 'dest', copying is stopped when either the 'stop' character is reached or after
5616  * 'cnt' characters have been copied, whichever comes first.
5617  *
5618  * @note undefined behaviuor on overlapping arrays
5619  */
5620 extern
5621 int SCIPmemccpy(
5622  char* dest, /**< destination pointer to copy to */
5623  const char* src, /**< source pointer to copy to */
5624  char stop, /**< character when found stop copying */
5625  unsigned int cnt /**< maximal number of characters to copy too */
5626  );
5627 
5628 /** prints an error message containing of the given string followed by a string describing the current system error;
5629  * prefers to use the strerror_r method, which is threadsafe; on systems where this method does not exist,
5630  * NO_STRERROR_R should be defined (see INSTALL), in this case, srerror is used which is not guaranteed to be
5631  * threadsafe (on SUN-systems, it actually is)
5632  */
5633 extern
5634 void SCIPprintSysError(
5635  const char* message /**< first part of the error message, e.g. the filename */
5636  );
5637 
5638 /** extracts tokens from strings - wrapper method for strtok_r() */
5639 extern
5640 char* SCIPstrtok(
5641  char* s, /**< string to parse */
5642  const char* delim, /**< delimiters for parsing */
5643  char** ptrptr /**< pointer to working char pointer - must stay the same while parsing */
5644  );
5645 
5646 /** translates the given string into a string where symbols ", ', and spaces are escaped with a \ prefix */
5647 extern
5648 void SCIPescapeString(
5649  char* t, /**< target buffer to store escaped string */
5650  int bufsize, /**< size of buffer t */
5651  const char* s /**< string to transform into escaped string */
5652  );
5653 
5654 /** safe version of snprintf */
5655 extern
5656 int SCIPsnprintf(
5657  char* t, /**< target string */
5658  int len, /**< length of the string to copy */
5659  const char* s, /**< source string */
5660  ... /**< further parameters */
5661  );
5662 
5663 /** extract the next token as a integer value if it is one; in case no value is parsed the endptr is set to @p str
5664  *
5665  * @return Returns TRUE if a value could be extracted, otherwise FALSE
5666  */
5667 extern
5669  const char* str, /**< string to search */
5670  int* value, /**< pointer to store the parsed value */
5671  char** endptr /**< pointer to store the final string position if successfully parsed, otherwise @p str */
5672  );
5673 
5674 /** extract the next token as a double value if it is one; in case a value is parsed the endptr is set to @p str
5675  *
5676  * @return Returns TRUE if a value could be extracted, otherwise FALSE
5677  */
5678 extern
5680  const char* str, /**< string to search */
5681  SCIP_Real* value, /**< pointer to store the parsed value */
5682  char** endptr /**< pointer to store the final string position if successfully parsed, otherwise @p str */
5683  );
5684 
5685 /** copies the first size characters between a start and end character of str into token, if no error occured endptr
5686  * will point to the position after the read part, otherwise it will point to @p str
5687  */
5688 extern
5689 void SCIPstrCopySection(
5690  const char* str, /**< string to search */
5691  char startchar, /**< character which defines the beginning */
5692  char endchar, /**< character which defines the ending */
5693  char* token, /**< string to store the copy */
5694  int size, /**< size of the token char array */
5695  char** endptr /**< pointer to store the final string position if successfully parsed, otherwise @p str */
5696  );
5697 
5698 /**@} */
5699 
5700 /*
5701  * File methods
5702  */
5703 
5704 /**@defgroup FileMethods File Methods
5705  *
5706  *@{
5707  */
5708 
5709 /** returns, whether the given file exists */
5710 extern
5712  const char* filename /**< file name */
5713  );
5714 
5715 /** splits filename into path, name, and extension */
5716 extern
5717 void SCIPsplitFilename(
5718  char* filename, /**< filename to split; is destroyed (but not freed) during process */
5719  char** path, /**< pointer to store path, or NULL if not needed */
5720  char** name, /**< pointer to store name, or NULL if not needed */
5721  char** extension, /**< pointer to store extension, or NULL if not needed */
5722  char** compression /**< pointer to store compression extension, or NULL if not needed */
5723  );
5724 
5725 /**@} */
5726 
5727 /**@} */
5728 
5729 #ifdef __cplusplus
5730 }
5731 #endif
5732 
5733 #endif
void SCIPsortPtrPtrRealBool(void **ptrarray1, void **ptrarray2, SCIP_Real *realarray, SCIP_Bool *boolarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
void SCIPsortDownIntPtrIntReal(int *intarray1, void **ptrarray, int *intarray2, SCIP_Real *realarray, int len)
void SCIPsortDownPtrRealIntInt(void **ptrarray, SCIP_Real *realarray, int *intarray1, int *intarray2, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
void SCIPsortRealInt(SCIP_Real *realarray, int *intarray, int len)
void SCIPpermuteArray(void **array, int begin, int end, unsigned int *randseed)
Definition: misc.c:7884
void SCIPsortedvecDelPosRealPtrPtrIntInt(SCIP_Real *realarray, void **ptrarray1, void **ptrarray2, int *intarray1, int *intarray2, int pos, int *len)
void SCIPsortLongPtrPtrIntInt(SCIP_Longint *longarray, void **ptrarray1, void **ptrarray2, int *intarray1, int *intarray2, int len)
void SCIPsortRealIntLong(SCIP_Real *realarray, int *intarray, SCIP_Longint *longarray, int len)
SCIP_RETCODE SCIPbtnodeCreate(SCIP_BT *tree, SCIP_BTNODE **node, void *dataptr)
Definition: misc.c:6639
void SCIPsortedvecInsertReal(SCIP_Real *realarray, SCIP_Real keyval, int *len, int *pos)
void SCIPsortPtrInt(void **ptrarray, int *intarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
void SCIPsortDownIntIntLong(int *intarray1, int *intarray2, SCIP_Longint *longarray, int len)
void ** SCIPdigraphGetSuccessorsData(SCIP_DIGRAPH *digraph, int node)
Definition: misc.c:5983
int SCIPpqueueNElems(SCIP_PQUEUE *pqueue)
Definition: misc.c:1073
void SCIPsortedvecDelPosRealInt(SCIP_Real *realarray, int *intarray, int pos, int *len)
void SCIPsortedvecDelPosRealIntInt(SCIP_Real *realarray, int *intarray1, int *intarray2, int pos, int *len)
void SCIPbtnodeFree(SCIP_BT *tree, SCIP_BTNODE **node)
Definition: misc.c:6703
void SCIPsortedvecInsertLongPtrInt(SCIP_Longint *longarray, void **ptrarray, int *intarray, SCIP_Longint keyval, void *field1val, int field2val, int *len, int *pos)
SCIP_Real SCIPnormalGetCriticalValue(SCIP_CONFIDENCELEVEL clevel)
Definition: misc.c:171
void SCIPsortedvecInsertDownLongPtrPtrIntInt(SCIP_Longint *longarray, void **ptrarray1, void **ptrarray2, int *intarray1, int *intarray2, SCIP_Longint keyval, void *field1val, void *field2val, int field3val, int field4val, int *len, int *pos)
void SCIPsortDownLongPtrPtrInt(SCIP_Longint *longarray, void **ptrarray1, void **ptrarray2, int *intarray, int len)
void SCIPsortIntIntPtr(int *intarray1, int *intarray2, void **ptrarray, int len)
void SCIPsortedvecInsertDownRealInt(SCIP_Real *realarray, int *intarray, SCIP_Real keyval, int field1val, int *len, int *pos)
void SCIPsortedvecDelPosDownRealPtrPtr(SCIP_Real *realarray, void **ptrarray1, void **ptrarray2, int pos, int *len)
void SCIPsortedvecInsertIntIntIntPtr(int *intarray1, int *intarray2, int *intarray3, void **ptrarray, int keyval, int field1val, int field2val, void *field3val, int *len, int *pos)
int SCIPmemccpy(char *dest, const char *src, char stop, unsigned int cnt)
Definition: misc.c:8086
void SCIPsortedvecInsertIntPtrIntIntBoolBool(int *intarray1, void **ptrarray, int *intarray2, int *intarray3, SCIP_Bool *boolarray1, SCIP_Bool *boolarray2, int keyval, void *field1val, int field2val, int field3val, SCIP_Bool field4val, SCIP_Bool field5val, int *len, int *pos)
SCIP_Real SCIPerf(SCIP_Real x)
Definition: misc.c:144
void SCIPsortDownRealPtrPtrInt(SCIP_Real *realarray, void **ptrarray1, void **ptrarray2, int *intarray, int len)
void SCIPsortDownRealRealRealBoolPtr(SCIP_Real *realarray1, SCIP_Real *realarray2, SCIP_Real *realarray3, SCIP_Bool *boolarray, void **ptrarray, int len)
void SCIPsortedvecDelPosLongPtr(SCIP_Longint *longarray, void **ptrarray, int pos, int *len)
void SCIPsortedvecInsertPtrInt(void **ptrarray, int *intarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *keyval, int field1val, int *len, int *pos)
void SCIPsortedvecInsertDownReal(SCIP_Real *realarray, SCIP_Real keyval, int *len, int *pos)
void SCIPsortedvecInsertLongPtrPtrIntInt(SCIP_Longint *longarray, void **ptrarray1, void **ptrarray2, int *intarray1, int *intarray2, SCIP_Longint keyval, void *field1val, void *field2val, int field3val, int field4val, int *len, int *pos)
void SCIPsparseSolGetFirstSol(SCIP_SPARSESOL *sparsesol, SCIP_Longint *sol, int nvars)
Definition: misc.c:618
void SCIPsortedvecDelPosLongPtrPtrIntInt(SCIP_Longint *longarray, void **ptrarray1, void **ptrarray2, int *intarray1, int *intarray2, int pos, int *len)
type definitions for miscellaneous datastructures
void * SCIPhashmapListGetOrigin(SCIP_HASHMAPLIST *hashmaplist)
Definition: misc.c:2307
SCIP_BTNODE * SCIPbtnodeGetSibling(SCIP_BTNODE *node)
Definition: misc.c:6788
void SCIPsortRealPtrPtrIntInt(SCIP_Real *realarray, void **ptrarray1, void **ptrarray2, int *intarray1, int *intarray2, int len)
void SCIPsortRealRealRealPtr(SCIP_Real *realarray1, SCIP_Real *realarray2, SCIP_Real *realarray3, void **ptrarray, int len)
SCIP_RETCODE SCIPprofileDeleteCore(SCIP_PROFILE *profile, int left, int right, int height)
Definition: misc.c:5268
void * SCIPbtnodeGetData(SCIP_BTNODE *node)
Definition: misc.c:6748
void SCIPsortInd(int *indarray, SCIP_DECL_SORTINDCOMP((*indcomp)), void *dataptr, int len)
void SCIPsortedvecDelPosRealRealRealInt(SCIP_Real *realarray1, SCIP_Real *realarray2, SCIP_Real *realarray3, int *intarray, int pos, int *len)
SCIP_RETCODE SCIPhashtableInsert(SCIP_HASHTABLE *hashtable, void *element)
Definition: misc.c:1567
void SCIPsortedvecDelPosDownPtrRealIntInt(void **ptrarray, SCIP_Real *realarray, int *intarray1, int *intarray2, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int pos, int *len)
void SCIPsortedvecDelPosLongPtrRealRealBool(SCIP_Longint *longarray, void **ptrarray, SCIP_Real *realarray, SCIP_Real *realarray2, SCIP_Bool *boolarray, int pos, int *len)
void SCIPsortedvecInsertDownLong(SCIP_Longint *longarray, SCIP_Longint keyval, int *len, int *pos)
void SCIPsortedvecInsertDownPtrPtrReal(void **ptrarray1, void **ptrarray2, SCIP_Real *realarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *keyval, void *field1val, SCIP_Real field2val, int *len, int *pos)
void SCIPsortRealBoolPtr(SCIP_Real *realarray, SCIP_Bool *boolarray, void **ptrarray, int len)
void SCIPdigraphFreeComponents(SCIP_DIGRAPH *digraph)
Definition: misc.c:6485
void SCIPsortRealPtrPtrInt(SCIP_Real *realarray, void **ptrarray1, void **ptrarray2, int *intarray, int len)
void SCIPsortDownLongPtrPtrIntInt(SCIP_Longint *longarray, void **ptrarray1, void **ptrarray2, int *intarray1, int *intarray2, int len)
void SCIPsortedvecDelPosDownIntIntInt(int *intarray1, int *intarray2, int *intarray3, int pos, int *len)
void SCIPsortedvecInsertDownRealPtr(SCIP_Real *realarray, void **ptrarray, SCIP_Real keyval, void *field1val, int *len, int *pos)
void SCIPsortDownPtrPtrLongIntInt(void **ptrarray1, void **ptrarray2, SCIP_Longint *longarray, int *intarray1, int *intarray2, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
void SCIPsortPtrPtrRealInt(void **ptrarray1, void **ptrarray2, SCIP_Real *realarray, int *intarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
void SCIPsortedvecInsertPtrPtrLongInt(void **ptrarray1, void **ptrarray2, SCIP_Longint *longarray, int *intarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *keyval, void *field1val, SCIP_Longint field2val, int field3val, int *len, int *pos)
void SCIPsortRealRealRealInt(SCIP_Real *realarray1, SCIP_Real *realarray2, SCIP_Real *realarray3, int *intarray, int len)
void SCIPsortIntIntLong(int *intarray1, int *intarray2, SCIP_Longint *longarray, int len)
void SCIPsortedvecInsertRealIntInt(SCIP_Real *realarray, int *intarray1, int *intarray2, SCIP_Real keyval, int field2val, int field3val, int *len, int *pos)
void SCIPgmlWriteArc(FILE *file, unsigned int source, unsigned int target, const char *label, const char *color)
Definition: misc.c:437
void SCIPsortPtrPtrReal(void **ptrarray1, void **ptrarray2, SCIP_Real *realarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
void SCIPsortedvecDelPosDownRealRealRealPtr(SCIP_Real *realarray1, SCIP_Real *realarray2, SCIP_Real *realarray3, void **ptrarray, int pos, int *len)
void SCIPsortDownLongPtrRealBool(SCIP_Longint *longarray, void **ptrarray, SCIP_Real *realarray, SCIP_Bool *boolarray, int len)
void SCIPsortedvecInsertDownIntPtrIntReal(int *intarray1, void **ptrarray, int *intarray2, SCIP_Real *realarray, int keyval, void *field1val, int field2val, SCIP_Real field3val, int *len, int *pos)
SCIP_RETCODE SCIPdigraphComputeUndirectedComponents(SCIP_DIGRAPH *digraph, int minsize, int *components, int *ncomponents)
Definition: misc.c:6077
void SCIPsortDownPtrBool(void **ptrarray, SCIP_Bool *boolarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
void SCIPsortedvecDelPosIntIntInt(int *intarray1, int *intarray2, int *intarray3, int pos, int *len)
void SCIPsortedvecDelPosDownRealIntPtr(SCIP_Real *realarray, int *intarray, void **ptrarray, int pos, int *len)
void SCIPsortedvecDelPosRealRealPtr(SCIP_Real *realarray1, SCIP_Real *realarray2, void **ptrarray, int pos, int *len)
void SCIPsortedvecDelPosPtrInt(void **ptrarray, int *intarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int pos, int *len)
void SCIPsortedvecInsertDownLongPtrPtrInt(SCIP_Longint *longarray, void **ptrarray1, void **ptrarray2, int *intarray, SCIP_Longint keyval, void *field1val, void *field2val, int field3val, int *len, int *pos)
void SCIPsortDownRealIntPtr(SCIP_Real *realarray, int *intarray, void **ptrarray, int len)
void SCIPsortDownIntReal(int *intarray, SCIP_Real *realarray, int len)
int * SCIPdigraphGetSuccessors(SCIP_DIGRAPH *digraph, int node)
Definition: misc.c:5965
void SCIPsortDownRealRealIntInt(SCIP_Real *realarray1, SCIP_Real *realarray2, int *intarray1, int *intarray2, int len)
void SCIPsortedvecInsertDownInt(int *intarray, int keyval, int *len, int *pos)
void SCIPsortIntIntInt(int *intarray1, int *intarray2, int *intarray3, int len)
SCIP_RETCODE SCIPqueueInsert(SCIP_QUEUE *queue, void *elem)
Definition: misc.c:788
void SCIPsortedvecDelPosDownReal(SCIP_Real *realarray, int pos, int *len)
void SCIPsortDownRealPtr(SCIP_Real *realarray, void **ptrarray, int len)
void SCIPgmlWriteNode(FILE *file, unsigned int id, const char *label, const char *nodetype, const char *fillcolor, const char *bordercolor)
Definition: misc.c:295
void SCIPsplitFilename(char *filename, char **path, char **name, char **extension, char **compression)
Definition: misc.c:8363
void SCIPsortedvecInsertPtrPtrLongIntInt(void **ptrarray1, void **ptrarray2, SCIP_Longint *longarray, int *intarray1, int *intarray2, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *keyval, void *field1val, SCIP_Longint field2val, int field3val, int field4val, int *len, int *pos)
SCIP_Bool SCIPsparseSolGetNextSol(SCIP_SPARSESOL *sparsesol, SCIP_Longint *sol, int nvars)
Definition: misc.c:641
int SCIPprofileGetTime(SCIP_PROFILE *profile, int pos)
Definition: misc.c:5065
void SCIPsortedvecDelPosDownPtrBool(void **ptrarray, SCIP_Bool *boolarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int pos, int *len)
void * SCIPhashmapListGetImage(SCIP_HASHMAPLIST *hashmaplist)
Definition: misc.c:2317
void SCIPsortedvecDelPosPtrPtrLongIntInt(void **ptrarray1, void **ptrarray2, SCIP_Longint *longarray, int *intarray1, int *intarray2, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int pos, int *len)
void SCIPsortedvecInsertDownIntIntIntReal(int *intarray1, int *intarray2, int *intarray3, SCIP_Real *realarray, int keyval, int field1val, int field2val, SCIP_Real field3val, int *len, int *pos)
void SCIPsortedvecInsertIntIntLong(int *intarray1, int *intarray2, SCIP_Longint *longarray, int keyval, int field1val, SCIP_Longint field2val, int *len, int *pos)
void SCIPsortedvecInsertPtrRealInt(void **ptrarray, SCIP_Real *realarray, int *intarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *keyval, SCIP_Real field1val, int field2val, int *len, int *pos)
void SCIPgmlWriteClosing(FILE *file)
Definition: misc.c:497
void SCIPsortedvecInsertDownInd(int *indarray, SCIP_DECL_SORTINDCOMP((*indcomp)), void *dataptr, int keyval, int *len, int *pos)
void SCIPsortDownPtrPtrRealInt(void **ptrarray1, void **ptrarray2, SCIP_Real *realarray, int *intarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
void SCIPswapPointers(void **pointer1, void **pointer2)
Definition: misc.c:7842
void SCIPsortedvecDelPosPtrPtrInt(void **ptrarray1, void **ptrarray2, int *intarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int pos, int *len)
void SCIPbtnodeSetRightchild(SCIP_BTNODE *node, SCIP_BTNODE *right)
Definition: misc.c:6909
SCIP_Longint SCIPcalcBinomCoef(int n, int m)
Definition: misc.c:7746
SCIP_Bool SCIPsortedvecFindDownInd(int *indarray, SCIP_DECL_SORTINDCOMP((*indcomp)), void *dataptr, int val, int len, int *pos)
void SCIPsortedvecDelPosLongPtrPtrInt(SCIP_Longint *longarray, void **ptrarray1, void **ptrarray2, int *intarray, int pos, int *len)
void SCIPsortedvecInsertLongPtrPtrInt(SCIP_Longint *longarray, void **ptrarray1, void **ptrarray2, int *intarray, SCIP_Longint keyval, void *field1val, void *field2val, int field3val, int *len, int *pos)
void SCIPsortedvecDelPosLongPtrRealBool(SCIP_Longint *longarray, void **ptrarray, SCIP_Real *realarray, SCIP_Bool *boolarray, int pos, int *len)
void SCIPsortIntPtrIntReal(int *intarray1, void **ptrarray, int *intarray2, SCIP_Real *realarray, int len)
void SCIPsortedvecDelPosDownLongPtrPtrBoolInt(SCIP_Longint *longarray, void **ptrarray1, void **ptrarray2, SCIP_Bool *boolarray, int *intarray, int pos, int *len)
SCIP_RETCODE SCIPhashmapCreate(SCIP_HASHMAP **hashmap, BMS_BLKMEM *blkmem, int mapsize)
Definition: misc.c:2057
void SCIPsortedvecDelPosDownLongPtrPtrIntInt(SCIP_Longint *longarray, void **ptrarray1, void **ptrarray2, int *intarray1, int *intarray2, int pos, int *len)
void SCIPsortedvecInsertRealPtr(SCIP_Real *realarray, void **ptrarray, SCIP_Real keyval, void *field1val, int *len, int *pos)
void SCIPsortedvecInsertDownIntIntPtr(int *intarray1, int *intarray2, void **ptrarray, int keyval, int field1val, void *field2val, int *len, int *pos)
void SCIPsortedvecDelPosDownInt(int *intarray, int pos, int *len)
SCIP_Real SCIPrelDiff(SCIP_Real val1, SCIP_Real val2)
Definition: misc.c:8455
void SCIPsortedvecInsertLongPtrPtrBoolInt(SCIP_Longint *longarray, void **ptrarray1, void **ptrarray2, SCIP_Bool *boolarray, int *intarray, SCIP_Longint keyval, void *field1val, void *field2val, SCIP_Bool field3val, int field4val, int *len, int *pos)
int SCIPprofileGetEarliestFeasibleStart(SCIP_PROFILE *profile, int est, int lst, int duration, int height, SCIP_Bool *infeasible)
Definition: misc.c:5358
SCIP_HASHMAPLIST * SCIPhashmapGetList(SCIP_HASHMAP *hashmap, int listindex)
Definition: misc.c:2281
void SCIPsortedvecDelPosDownIntInt(int *intarray1, int *intarray2, int pos, int *len)
void SCIPsortedvecDelPosDownRealBoolPtr(SCIP_Real *realarray, SCIP_Bool *boolarray, void **ptrarray, int pos, int *len)
void SCIPsortedvecInsertPtrPtrRealInt(void **ptrarray1, void **ptrarray2, SCIP_Real *realarray, int *intarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *keyval, void *field1val, SCIP_Real field2val, int field3val, int *len, int *pos)
miscellaneous datastructures
int SCIPsnprintf(char *t, int len, const char *s,...)
Definition: misc.c:8174
void SCIPsortedvecInsertRealBoolPtr(SCIP_Real *realarray, SCIP_Bool *boolarray, void **ptrarray, SCIP_Real keyval, SCIP_Bool field1val, void *field2val, int *len, int *pos)
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:53
SCIP_RETCODE SCIPdigraphSetSizes(SCIP_DIGRAPH *digraph, int *sizes)
Definition: misc.c:5720
void SCIPsortedvecInsertLongPtrRealRealBool(SCIP_Longint *longarray, void **ptrarray, SCIP_Real *realarray, SCIP_Real *realarray2, SCIP_Bool *boolarray, SCIP_Longint keyval, void *field1val, SCIP_Real field2val, SCIP_Real field3val, SCIP_Bool field4val, int *len, int *pos)
void SCIPsortDownIntPtrIntIntBoolBool(int *intarray1, void **ptrarray, int *intarray2, int *intarray3, SCIP_Bool *boolarray1, SCIP_Bool *boolarray2, int len)
void SCIPsortedvecInsertIntIntIntReal(int *intarray1, int *intarray2, int *intarray3, SCIP_Real *realarray, int keyval, int field1val, int field2val, SCIP_Real field3val, int *len, int *pos)
void SCIPsortDownPtrPtrRealBool(void **ptrarray1, void **ptrarray2, SCIP_Real *realarray, SCIP_Bool *boolarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
void SCIPdigraphPrintComponents(SCIP_DIGRAPH *digraph, SCIP_MESSAGEHDLR *messagehdlr, FILE *file)
Definition: misc.c:6586
void SCIPsortPtrPtrInt(void **ptrarray1, void **ptrarray2, int *intarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
void SCIPsortedvecDelPosLong(SCIP_Longint *longarray, int pos, int *len)
SCIP_VAR * SCIPactivityGetVar(SCIP_RESOURCEACTIVITY *activity)
Definition: misc.c:4919
void SCIPsortedvecDelPosRealLongRealInt(SCIP_Real *realarray1, SCIP_Longint *longarray, SCIP_Real *realarray3, int *intarray, int pos, int *len)
void * SCIPpqueueFirst(SCIP_PQUEUE *pqueue)
Definition: misc.c:1059
void SCIPsortedvecInsertIntReal(int *intarray, SCIP_Real *realarray, int keyval, SCIP_Real field1val, int *len, int *pos)
void SCIPsortedvecInsertDownPtrIntInt(void **ptrarray, int *intarray1, int *intarray2, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *keyval, int field1val, int field2val, int *len, int *pos)
void SCIPsortLongPtrPtrInt(SCIP_Longint *longarray, void **ptrarray1, void **ptrarray2, int *intarray, int len)
void SCIPhashtableClear(SCIP_HASHTABLE *hashtable)
Definition: misc.c:1542
SCIP_RETCODE SCIPcomputeArraysIntersection(int *array1, int narray1, int *array2, int narray2, int *intersectarray, int *nintersectarray)
Definition: misc.c:7973
void SCIPsortDownIntInt(int *intarray1, int *intarray2, int len)
int SCIPdigraphGetNComponents(SCIP_DIGRAPH *digraph)
Definition: misc.c:6253
SCIP_Bool SCIPstrToIntValue(const char *str, int *value, char **endptr)
Definition: misc.c:8214
void SCIPpqueueFree(SCIP_PQUEUE **pqueue)
Definition: misc.c:970
SCIP_RETCODE SCIPprofileInsertCore(SCIP_PROFILE *profile, int left, int right, int height, int *pos, SCIP_Bool *infeasible)
Definition: misc.c:5238
void SCIPsortIntIntReal(int *intarray1, int *intarray2, SCIP_Real *realarray, int len)
type definitions for return codes for SCIP methods
SCIP_Real SCIPselectSimpleValue(SCIP_Real lb, SCIP_Real ub, SCIP_Longint maxdnom)
Definition: misc.c:7620
void SCIPsortedvecDelPosDownIntPtrIntIntBoolBool(int *intarray1, void **ptrarray, int *intarray2, int *intarray3, SCIP_Bool *boolarray1, SCIP_Bool *boolarray2, int pos, int *len)
void SCIPsortedvecDelPosIntPtrIntReal(int *intarray1, void **ptrarray, int *intarray2, SCIP_Real *realarray, int pos, int *len)
void SCIPsortDownIntPtr(int *intarray, void **ptrarray, int len)
void SCIPsortedvecInsertDownRealRealRealInt(SCIP_Real *realarray1, SCIP_Real *realarray2, SCIP_Real *realarray3, int *intarray, SCIP_Real keyval, SCIP_Real field1val, SCIP_Real field2val, int field3val, int *len, int *pos)
void SCIPdigraphGetComponent(SCIP_DIGRAPH *digraph, int compidx, int **nodes, int *nnodes)
Definition: misc.c:6266
void SCIPsortDownRealPtrPtrIntInt(SCIP_Real *realarray, void **ptrarray1, void **ptrarray2, int *intarray1, int *intarray2, int len)
void SCIPsortedvecInsertDownRealPtrPtrIntInt(SCIP_Real *realarray, void **ptrarray1, void **ptrarray2, int *intarray1, int *intarray2, SCIP_Real keyval, void *field1val, void *field2val, int intval1, int intval2, int *len, int *pos)
SCIP_Bool SCIPhashmapIsEmpty(SCIP_HASHMAP *hashmap)
Definition: misc.c:2241
void SCIPsortedvecInsertDownIntInt(int *intarray1, int *intarray2, int keyval, int field1val, int *len, int *pos)
void SCIPsortedvecInsertDownRealRealIntInt(SCIP_Real *realarray1, SCIP_Real *realarray2, int *intarray1, int *intarray2, SCIP_Real keyval, SCIP_Real field1val, int field2val, int field3val, int *len, int *pos)
void SCIPsortedvecInsertDownRealBoolPtr(SCIP_Real *realarray, SCIP_Bool *boolarray, void **ptrarray, SCIP_Real keyval, SCIP_Bool field1val, void *field2val, int *len, int *pos)
void SCIPsortDownRealInt(SCIP_Real *realarray, int *intarray, int len)
void * SCIPhashmapGetImage(SCIP_HASHMAP *hashmap, void *origin)
Definition: misc.c:2116
void SCIPsortedvecDelPosPtrIntIntBoolBool(void **ptrarray, int *intarray1, int *intarray2, SCIP_Bool *boolarray1, SCIP_Bool *boolarray2, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int pos, int *len)
void SCIPsortedvecDelPosRealRealIntInt(SCIP_Real *realarray1, SCIP_Real *realarray2, int *intarray1, int *intarray2, int pos, int *len)
SCIP_Bool SCIPqueueIsEmpty(SCIP_QUEUE *queue)
Definition: misc.c:884
void SCIPsortIntIntIntPtr(int *intarray1, int *intarray2, int *intarray3, void **ptrarray, int len)
void SCIPsortedvecInsertDownLongPtrPtrBoolInt(SCIP_Longint *longarray, void **ptrarray1, void **ptrarray2, SCIP_Bool *boolarray, int *intarray, SCIP_Longint keyval, void *field1val, void *field2val, SCIP_Bool field3val, int field4val, int *len, int *pos)
void SCIPsortDown(int *perm, SCIP_DECL_SORTINDCOMP((*indcomp)), void *dataptr, int len)
Definition: misc.c:4333
void SCIPsortedvecDelPosIntInt(int *intarray1, int *intarray2, int pos, int *len)
void SCIPsortedvecInsertPtrReal(void **ptrarray, SCIP_Real *realarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *keyval, SCIP_Real field1val, int *len, int *pos)
void SCIPsortDownIntIntIntReal(int *intarray1, int *intarray2, int *intarray3, SCIP_Real *realarray, int len)
int SCIPprofileGetLoad(SCIP_PROFILE *profile, int pos)
Definition: misc.c:5077
SCIP_Bool SCIPsortedvecFindLong(SCIP_Longint *longarray, SCIP_Longint val, int len, int *pos)
void SCIPsortIntIntIntReal(int *intarray1, int *intarray2, int *intarray3, SCIP_Real *realarray, int len)
void SCIPsortedvecDelPosIntIntIntReal(int *intarray1, int *intarray2, int *intarray3, SCIP_Real *realarray, int pos, int *len)
SCIP_RETCODE SCIPdigraphTopoSortComponents(SCIP_DIGRAPH *digraph)
Definition: misc.c:6189
void SCIPsortedvecDelPosDownPtrPtrInt(void **ptrarray1, void **ptrarray2, int *intarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int pos, int *len)
void SCIPsortPtrRealIntInt(void **ptrarray, SCIP_Real *realarray, int *intarray1, int *intarray2, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
void SCIPsortedvecDelPosPtrRealBool(void **ptrarray, SCIP_Real *realarray, SCIP_Bool *boolarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int pos, int *len)
void SCIPsortedvecInsertDownPtrRealInt(void **ptrarray, SCIP_Real *realarray, int *intarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *keyval, SCIP_Real field1val, int field2val, int *len, int *pos)
SCIP_Bool SCIPbtnodeIsRoot(SCIP_BTNODE *node)
Definition: misc.c:6808
void SCIPsortedvecDelPosLongPtrInt(SCIP_Longint *longarray, void **ptrarray, int *intarray, int pos, int *len)
void SCIPsortedvecInsertIntPtrIntReal(int *intarray1, void **ptrarray, int *intarray2, SCIP_Real *realarray, int keyval, void *field1val, int field2val, SCIP_Real field3val, int *len, int *pos)
void SCIPsortRealRealIntInt(SCIP_Real *realarray1, SCIP_Real *realarray2, int *intarray1, int *intarray2, int len)
SCIP_RETCODE SCIPhashtableCreate(SCIP_HASHTABLE **hashtable, BMS_BLKMEM *blkmem, int tablesize, SCIP_DECL_HASHGETKEY((*hashgetkey)), SCIP_DECL_HASHKEYEQ((*hashkeyeq)), SCIP_DECL_HASHKEYVAL((*hashkeyval)), void *userptr)
Definition: misc.c:1480
void SCIPsortedvecInsertDownRealRealPtr(SCIP_Real *realarray1, SCIP_Real *realarray2, void **ptrarray, SCIP_Real keyval, SCIP_Real field1val, void *field2val, int *len, int *pos)
void SCIPsortedvecInsertDownRealRealRealBoolBoolPtr(SCIP_Real *realarray1, SCIP_Real *realarray2, SCIP_Real *realarray3, SCIP_Bool *boolarray1, SCIP_Bool *boolarray2, void **ptrarray, SCIP_Real keyval, SCIP_Real field1val, SCIP_Real field2val, SCIP_Bool field3val, SCIP_Bool field4val, void *field5val, int *len, int *pos)
SCIP_Bool SCIPhashmapExists(SCIP_HASHMAP *hashmap, void *origin)
Definition: misc.c:2159
void SCIPsortIntPtr(int *intarray, void **ptrarray, int len)
void SCIPsortedvecInsertLong(SCIP_Longint *longarray, SCIP_Longint keyval, int *len, int *pos)
SCIP_Bool SCIPfileExists(const char *filename)
Definition: misc.c:8347
void SCIPqueueClear(SCIP_QUEUE *queue)
Definition: misc.c:777
void SCIPsortedvecInsertRealRealRealBoolBoolPtr(SCIP_Real *realarray1, SCIP_Real *realarray2, SCIP_Real *realarray3, SCIP_Bool *boolarray1, SCIP_Bool *boolarray2, void **ptrarray, SCIP_Real keyval, SCIP_Real field1val, SCIP_Real field2val, SCIP_Bool field3val, SCIP_Bool field4val, void *field5val, int *len, int *pos)
int SCIPdigraphGetNNodes(SCIP_DIGRAPH *digraph)
Definition: misc.c:5892
int SCIPprofileGetCapacity(SCIP_PROFILE *profile)
Definition: misc.c:5025
SCIP_Bool SCIPrealToRational(SCIP_Real val, SCIP_Real mindelta, SCIP_Real maxdelta, SCIP_Longint maxdnom, SCIP_Longint *nominator, SCIP_Longint *denominator)
Definition: misc.c:7215
SCIP_RETCODE SCIPdigraphCreate(SCIP_DIGRAPH **digraph, int nnodes)
Definition: misc.c:5596
void SCIPsortedvecDelPosPtrPtr(void **ptrarray1, void **ptrarray2, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int pos, int *len)
void SCIPsortDownPtrPtrInt(void **ptrarray1, void **ptrarray2, int *intarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
void SCIPsortedvecInsertIntInt(int *intarray1, int *intarray2, int keyval, int field1val, int *len, int *pos)
void SCIPsortLongPtrRealBool(SCIP_Longint *longarray, void **ptrarray, SCIP_Real *realarray, SCIP_Bool *boolarray, int len)
void SCIPsortedvecDelPosDownLong(SCIP_Longint *longarray, int pos, int *len)
void SCIPsortLong(SCIP_Longint *longarray, int len)
SCIP_RETCODE SCIPactivityCreate(SCIP_RESOURCEACTIVITY **activity, SCIP_VAR *var, int duration, int demand)
Definition: misc.c:4874
void SCIPsortDownLongPtrPtrBoolInt(SCIP_Longint *longarray, void **ptrarray1, void **ptrarray2, SCIP_Bool *boolarray, int *intarray, int len)
void SCIPsortedvecDelPosDownIntReal(int *intarray, SCIP_Real *realarray, int pos, int *len)
int SCIPhashmapListGetNEntries(SCIP_HASHMAPLIST *hashmaplist)
Definition: misc.c:2294
void SCIPsortDownInd(int *indarray, SCIP_DECL_SORTINDCOMP((*indcomp)), void *dataptr, int len)
void * SCIPhashtableRetrieveNext(SCIP_HASHTABLE *hashtable, SCIP_HASHTABLELIST **hashtablelist, void *key)
Definition: misc.c:1656
int SCIPhashmapGetNLists(SCIP_HASHMAP *hashmap)
Definition: misc.c:2271
void SCIPsortedvecDelPosDownRealRealRealInt(SCIP_Real *realarray1, SCIP_Real *realarray2, SCIP_Real *realarray3, int *intarray, int pos, int *len)
void SCIPsortedvecDelPosPtr(void **ptrarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int pos, int *len)
enum SCIP_Confidencelevel SCIP_CONFIDENCELEVEL
Definition: type_misc.h:44
void SCIPsortPtrRealReal(void **ptrarray, SCIP_Real *realarray1, SCIP_Real *realarray2, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
void SCIPsortedvecInsertPtrIntIntBoolBool(void **ptrarray, int *intarray1, int *intarray2, SCIP_Bool *boolarray1, SCIP_Bool *boolarray2, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *keyval, int field1val, int field2val, SCIP_Bool field3val, SCIP_Bool field4val, int *len, int *pos)
void SCIPsortDownPtrInt(void **ptrarray, int *intarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
void SCIPsortPtrRealBool(void **ptrarray, SCIP_Real *realarray, SCIP_Bool *boolarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
void SCIPsortDownIntIntReal(int *intarray1, int *intarray2, SCIP_Real *realarray, int len)
void SCIPsortedvecDelPosDownLongPtrPtrInt(SCIP_Longint *longarray, void **ptrarray1, void **ptrarray2, int *intarray, int pos, int *len)
void SCIPsortRealIntInt(SCIP_Real *realarray, int *intarray1, int *intarray2, int len)
void SCIPsortDownPtrRealBool(void **ptrarray, SCIP_Real *realarray, SCIP_Bool *boolarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
SCIP_Longint * SCIPsparseSolGetLbs(SCIP_SPARSESOL *sparsesol)
Definition: misc.c:598
int SCIPqueueNElems(SCIP_QUEUE *queue)
Definition: misc.c:897
SCIP_Bool SCIPsortedvecFindDownReal(SCIP_Real *realarray, SCIP_Real val, int len, int *pos)
SCIP_BTNODE * SCIPbtnodeGetParent(SCIP_BTNODE *node)
Definition: misc.c:6758
SCIP_RETCODE SCIPdigraphSetNSuccessors(SCIP_DIGRAPH *digraph, int node, int nsuccessors)
Definition: misc.c:5876
void SCIPhashmapPrintStatistics(SCIP_HASHMAP *hashmap, SCIP_MESSAGEHDLR *messagehdlr)
Definition: misc.c:2198
int SCIPactivityGetEnergy(SCIP_RESOURCEACTIVITY *activity)
Definition: misc.c:4949
void SCIPsortedvecDelPosDownLongPtrRealBool(SCIP_Longint *longarray, void **ptrarray, SCIP_Real *realarray, SCIP_Bool *boolarray, int pos, int *len)
int SCIPhashmapGetNEntries(SCIP_HASHMAP *hashmap)
Definition: misc.c:2256
void SCIPsortedvecInsertRealRealRealInt(SCIP_Real *realarray1, SCIP_Real *realarray2, SCIP_Real *realarray3, int *intarray, SCIP_Real keyval, SCIP_Real field1val, SCIP_Real field2val, int field3val, int *len, int *pos)
void SCIPsortIntInt(int *intarray1, int *intarray2, int len)
void SCIPsortedvecInsertDownPtrReal(void **ptrarray, SCIP_Real *realarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *keyval, SCIP_Real field1val, int *len, int *pos)
void SCIPsortPtrRealInt(void **ptrarray, SCIP_Real *realarray, int *intarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
void SCIPsortPtrBool(void **ptrarray, SCIP_Bool *boolarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
void SCIPsortDownPtr(void **ptrarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
void SCIPsortedvecInsertPtrPtrInt(void **ptrarray1, void **ptrarray2, int *intarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *keyval, void *field1val, int field2val, int *len, int *pos)
void SCIPsortedvecInsertRealIntPtr(SCIP_Real *realarray, int *intarray, void **ptrarray, SCIP_Real keyval, int field1val, void *field2val, int *len, int *pos)
void SCIPbtnodeSetLeftchild(SCIP_BTNODE *node, SCIP_BTNODE *left)
Definition: misc.c:6895
void SCIPsortLongPtrRealRealIntBool(SCIP_Longint *longarray, void **ptrarray, SCIP_Real *realarray, SCIP_Real *realarray2, int *intarray, SCIP_Bool *boolarray, int len)
SCIP_Bool SCIPsortedvecFindDownLong(SCIP_Longint *longarray, SCIP_Longint val, int len, int *pos)
void * SCIPdigraphGetNodeData(SCIP_DIGRAPH *digraph, int node)
Definition: misc.c:5902
int SCIPcalcHashtableSize(int minsize)
Definition: misc.c:1157
void SCIPsortedvecDelPosRealIntLong(SCIP_Real *realarray, int *intarray, SCIP_Longint *longarray, int pos, int *len)
void SCIPsortedvecInsertDownIntReal(int *intarray, SCIP_Real *realarray, int keyval, SCIP_Real field1val, int *len, int *pos)
void SCIPsortedvecDelPosInd(int *indarray, SCIP_DECL_SORTINDCOMP((*indcomp)), void *dataptr, int pos, int *len)
void SCIPsortedvecInsertDownPtrRealBool(void **ptrarray, SCIP_Real *realarray, SCIP_Bool *boolarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *keyval, SCIP_Real field1val, SCIP_Bool field2val, int *len, int *pos)
SCIP_Bool SCIPsortedvecFindDownInt(int *intarray, int val, int len, int *pos)
void SCIPdigraphSetNodeData(SCIP_DIGRAPH *digraph, void *dataptr, int node)
Definition: misc.c:5918
void SCIPescapeString(char *t, int bufsize, const char *s)
Definition: misc.c:8146
SCIP_Bool SCIPsortedvecFindPtr(void **ptrarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *val, int len, int *pos)
void SCIPstrCopySection(const char *str, char startchar, char endchar, char *token, int size, char **endptr)
Definition: misc.c:8275
void SCIPsortedvecInsertRealRealRealBoolPtr(SCIP_Real *realarray1, SCIP_Real *realarray2, SCIP_Real *realarray3, SCIP_Bool *boolarray, void **ptrarray, SCIP_Real keyval, SCIP_Real field1val, SCIP_Real field2val, SCIP_Bool field3val, void *field4val, int *len, int *pos)
void SCIPsortReal(SCIP_Real *realarray, int len)
void SCIPsortedvecDelPosReal(SCIP_Real *realarray, int pos, int *len)
void SCIPhashmapFree(SCIP_HASHMAP **hashmap)
Definition: misc.c:2075
void SCIPsortedvecInsertDownPtrPtrInt(void **ptrarray1, void **ptrarray2, int *intarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *keyval, void *field1val, int field2val, int *len, int *pos)
void SCIPdigraphPrint(SCIP_DIGRAPH *digraph, SCIP_MESSAGEHDLR *messagehdlr, FILE *file)
Definition: misc.c:6512
void SCIPsortedvecInsertRealRealRealPtr(SCIP_Real *realarray1, SCIP_Real *realarray2, SCIP_Real *realarray3, void **ptrarray, SCIP_Real keyval, SCIP_Real field1val, SCIP_Real field2val, void *field3val, int *len, int *pos)
void SCIPsortedvecDelPosIntIntIntPtr(int *intarray1, int *intarray2, int *intarray3, void **ptrarray, int pos, int *len)
void SCIPsortRealRealRealBoolBoolPtr(SCIP_Real *realarray1, SCIP_Real *realarray2, SCIP_Real *realarray3, SCIP_Bool *boolarray1, SCIP_Bool *boolarray2, void **ptrarray, int len)
void SCIPsortedvecDelPosRealIntPtr(SCIP_Real *realarray, int *intarray, void **ptrarray, int pos, int *len)
void SCIPsortedvecDelPosDownPtrInt(void **ptrarray, int *intarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int pos, int *len)
void SCIPsortDownPtrPtr(void **ptrarray1, void **ptrarray2, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
void SCIPsortedvecDelPosIntIntPtr(int *intarray1, int *intarray2, void **ptrarray, int pos, int *len)
void SCIPactivityFree(SCIP_RESOURCEACTIVITY **activity)
Definition: misc.c:4893
void SCIPsortedvecDelPosDownIntIntLong(int *intarray1, int *intarray2, SCIP_Longint *longarray, int pos, int *len)
void SCIPsortedvecInsertDownIntPtr(int *intarray, void **ptrarray, int keyval, void *field1val, int *len, int *pos)
void SCIPsortedvecInsertIntPtrReal(int *intarray, void **ptrarray, SCIP_Real *realarray, int keyval, void *field1val, SCIP_Real field2val, int *len, int *pos)
void SCIPsortedvecInsertIntPtr(int *intarray, void **ptrarray, int keyval, void *field1val, int *len, int *pos)
void SCIPsortedvecInsertDownPtrRealIntInt(void **ptrarray, SCIP_Real *realarray, int *intarray1, int *intarray2, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *keyval, SCIP_Real field1val, int field2val, int field3val, int *len, int *pos)
void SCIPsortedvecDelPosDownPtrPtr(void **ptrarray1, void **ptrarray2, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int pos, int *len)
void SCIPgmlWriteEdge(FILE *file, unsigned int source, unsigned int target, const char *label, const char *color)
Definition: misc.c:393
void SCIPsortLongPtr(SCIP_Longint *longarray, void **ptrarray, int len)
void SCIPsortPtr(void **ptrarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
void SCIPsortedvecDelPosDownIntIntIntPtr(int *intarray1, int *intarray2, int *intarray3, void **ptrarray, int pos, int *len)
void SCIPsortDownLongPtrRealRealBool(SCIP_Longint *longarray, void **ptrarray, SCIP_Real *realarray, SCIP_Real *realarray2, SCIP_Bool *boolarray, int len)
void SCIPsortDownIntIntInt(int *intarray1, int *intarray2, int *intarray3, int len)
void SCIPsortedvecDelPosDownRealLongRealInt(SCIP_Real *realarray1, SCIP_Longint *longarray, SCIP_Real *realarray3, int *intarray, int pos, int *len)
void SCIPhashtableRemoveAll(SCIP_HASHTABLE *hashtable)
Definition: misc.c:1753
type definitions for problem variables
SCIP_RETCODE SCIPhashtableRemove(SCIP_HASHTABLE *hashtable, void *element)
Definition: misc.c:1719
SCIP_DECL_HASHGETKEY(SCIPhashGetKeyStandard)
Definition: misc.c:1867
void SCIPsortedvecInsertRealRealPtr(SCIP_Real *realarray1, SCIP_Real *realarray2, void **ptrarray, SCIP_Real keyval, SCIP_Real field1val, void *field2val, int *len, int *pos)
SCIP_RETCODE SCIPprofileCreate(SCIP_PROFILE **profile, int capacity)
Definition: misc.c:4965
void SCIPsortDownLong(SCIP_Longint *longarray, int len)
void SCIPsortedvecInsertRealLongRealInt(SCIP_Real *realarray1, SCIP_Longint *longarray, SCIP_Real *realarray3, int *intarray, SCIP_Real keyval, SCIP_Longint field1val, SCIP_Real field2val, int field3val, int *len, int *pos)
void SCIPqueueFree(SCIP_QUEUE **queue)
Definition: misc.c:766
void SCIPsortPtrPtrIntInt(void **ptrarray1, void **ptrarray2, int *intarray1, int *intarray2, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
SCIP_RETCODE SCIPdigraphAddArc(SCIP_DIGRAPH *digraph, int startnode, int endnode, void *data)
Definition: misc.c:5814
void SCIPsortedvecInsertDownRealRealRealBoolPtr(SCIP_Real *realarray1, SCIP_Real *realarray2, SCIP_Real *realarray3, SCIP_Bool *boolarray, void **ptrarray, SCIP_Real keyval, SCIP_Real field1val, SCIP_Real field2val, SCIP_Bool field3val, void *field4val, int *len, int *pos)
void SCIPsortedvecDelPosDownIntPtr(int *intarray, void **ptrarray, int pos, int *len)
void SCIPsortedvecDelPosDownRealIntLong(SCIP_Real *realarray, int *intarray, SCIP_Longint *longarray, int pos, int *len)
void SCIPsortPtrIntInt(void **ptrarray, int *intarray1, int *intarray2, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
SCIP_Bool SCIPbtnodeIsRightchild(SCIP_BTNODE *node)
Definition: misc.c:6846
void SCIPsortDownRealPtrPtr(SCIP_Real *realarray, void **ptrarray1, void **ptrarray2, int len)
void SCIPsortRealLongRealInt(SCIP_Real *realarray1, SCIP_Longint *longarray, SCIP_Real *realarray3, int *intarray, int len)
void SCIPsortedvecDelPosPtrPtrLongInt(void **ptrarray1, void **ptrarray2, SCIP_Longint *longarray, int *intarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int pos, int *len)
void * SCIPpqueueRemove(SCIP_PQUEUE *pqueue)
Definition: misc.c:1018
void SCIPsortedvecInsertDownPtrIntIntBoolBool(void **ptrarray, int *intarray1, int *intarray2, SCIP_Bool *boolarray1, SCIP_Bool *boolarray2, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *keyval, int field1val, int field2val, SCIP_Bool field3val, SCIP_Bool field4val, int *len, int *pos)
void SCIPsortedvecInsertLongPtrRealBool(SCIP_Longint *longarray, void **ptrarray, SCIP_Real *realarray, SCIP_Bool *boolarray, SCIP_Longint keyval, void *field1val, SCIP_Real field2val, SCIP_Bool field3val, int *len, int *pos)
SCIP_Bool SCIPsortedvecFindInt(int *intarray, int val, int len, int *pos)
SCIP_DECL_HASHKEYVAL(SCIPhashKeyValString)
Definition: misc.c:1848
SCIP_BTNODE * SCIPbtGetRoot(SCIP_BT *tree)
Definition: misc.c:7031
SCIP_RETCODE SCIPgetRandomSubset(void **set, int nelems, void **subset, int nsubelems, unsigned int randseed)
Definition: misc.c:7914
void SCIPsortedvecDelPosLongPtrPtrBoolInt(SCIP_Longint *longarray, void **ptrarray1, void **ptrarray2, SCIP_Bool *boolarray, int *intarray, int pos, int *len)
void SCIPsortDownRealLongRealInt(SCIP_Real *realarray1, SCIP_Longint *longarray, SCIP_Real *realarray3, int *intarray, int len)
SCIP_RETCODE SCIPcomputeArraysSetminus(int *array1, int narray1, int *array2, int narray2, int *setminusarray, int *nsetminusarray)
Definition: misc.c:8029
void SCIPsortDownPtrPtrIntInt(void **ptrarray1, void **ptrarray2, int *intarray1, int *intarray2, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
void SCIPsortedvecDelPosIntPtrReal(int *intarray, void **ptrarray, SCIP_Real *realarray, int pos, int *len)
void SCIPsortedvecDelPosPtrRealInt(void **ptrarray, SCIP_Real *realarray, int *intarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int pos, int *len)
void SCIPsortedvecDelPosDownPtrPtrRealInt(void **ptrarray1, void **ptrarray2, SCIP_Real *realarray, int *intarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int pos, int *len)
void SCIPhashtablePrintStatistics(SCIP_HASHTABLE *hashtable, SCIP_MESSAGEHDLR *messagehdlr)
Definition: misc.c:1794
void SCIPsortedvecDelPosDownInd(int *indarray, SCIP_DECL_SORTINDCOMP((*indcomp)), void *dataptr, int pos, int *len)
SCIP_DECL_SORTPTRCOMP(SCIPsortCompInt)
Definition: misc.c:3809
SCIP_BTNODE * SCIPbtnodeGetRightchild(SCIP_BTNODE *node)
Definition: misc.c:6778
void SCIPsortedvecInsertPtrPtrIntInt(void **ptrarray1, void **ptrarray2, int *intarray1, int *intarray2, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *keyval, void *field1val, int field2val, int field3val, int *len, int *pos)
SCIP_RETCODE SCIPdigraphAddArcSafe(SCIP_DIGRAPH *digraph, int startnode, int endnode, void *data)
Definition: misc.c:5842
void SCIPsortedvecInsertDownLongPtrRealBool(SCIP_Longint *longarray, void **ptrarray, SCIP_Real *realarray, SCIP_Bool *boolarray, SCIP_Longint keyval, void *field1val, SCIP_Real field2val, SCIP_Bool field3val, int *len, int *pos)
int SCIPdigraphGetNSuccessors(SCIP_DIGRAPH *digraph, int node)
Definition: misc.c:5950
void SCIPsortedvecInsertPtrIntInt(void **ptrarray, int *intarray1, int *intarray2, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *keyval, int field1val, int field2val, int *len, int *pos)
void SCIPsortPtrIntIntBoolBool(void **ptrarray, int *intarray1, int *intarray2, SCIP_Bool *boolarray1, SCIP_Bool *boolarray2, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
#define SCIP_Bool
Definition: def.h:53
void SCIPsortedvecDelPosDownPtrPtrLongIntInt(void **ptrarray1, void **ptrarray2, SCIP_Longint *longarray, int *intarray1, int *intarray2, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int pos, int *len)
void SCIPsortedvecInsertRealIntLong(SCIP_Real *realarray, int *intarray, SCIP_Longint *longarray, SCIP_Real keyval, int field1val, SCIP_Longint field2val, int *len, int *pos)
void SCIPsortedvecDelPosIntIntReal(int *intarray1, int *intarray2, SCIP_Real *realarray, int pos, int *len)
void SCIPsortDownPtrIntInt(void **ptrarray, int *intarray1, int *intarray2, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
void SCIPsortedvecInsertDownPtrPtrRealInt(void **ptrarray1, void **ptrarray2, SCIP_Real *realarray, int *intarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *keyval, void *field1val, SCIP_Real field2val, int field3val, int *len, int *pos)
void SCIPsortDownPtrReal(void **ptrarray, SCIP_Real *realarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
SCIP_Longint * SCIPsparseSolGetUbs(SCIP_SPARSESOL *sparsesol)
Definition: misc.c:608
void SCIPsortedvecInsertIntIntPtr(int *intarray1, int *intarray2, void **ptrarray, int keyval, int field1val, void *field2val, int *len, int *pos)
void SCIPsortLongPtrPtrBoolInt(SCIP_Longint *longarray, void **ptrarray1, void **ptrarray2, SCIP_Bool *boolarray, int *intarray, int len)
void SCIPprintSysError(const char *message)
Definition: misc.c:8110
void SCIPsortedvecDelPosIntReal(int *intarray, SCIP_Real *realarray, int pos, int *len)
SCIP_RETCODE SCIPsparseSolCreate(SCIP_SPARSESOL **sparsesol, SCIP_VAR **vars, int nvars, SCIP_Bool cleared)
Definition: misc.c:512
void SCIPsortedvecDelPosDownRealRealIntInt(SCIP_Real *realarray1, SCIP_Real *realarray2, int *intarray1, int *intarray2, int pos, int *len)
SCIP_RETCODE SCIPhashmapRemoveAll(SCIP_HASHMAP *hashmap)
Definition: misc.c:2337
SCIP_Bool SCIPprofileFindLeft(SCIP_PROFILE *profile, int timepoint, int *pos)
Definition: misc.c:5091
SCIP_RETCODE SCIPdigraphResize(SCIP_DIGRAPH *digraph, int nnodes)
Definition: misc.c:5625
void SCIPsortedvecInsertDownRealLongRealInt(SCIP_Real *realarray1, SCIP_Longint *longarray, SCIP_Real *realarray3, int *intarray, SCIP_Real keyval, SCIP_Longint field1val, SCIP_Real field2val, int field3val, int *len, int *pos)
void SCIPsortedvecInsertDownPtrPtrIntInt(void **ptrarray1, void **ptrarray2, int *intarray1, int *intarray2, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *keyval, void *field1val, int field2val, int field3val, int *len, int *pos)
void SCIPsortDownRealRealRealInt(SCIP_Real *realarray1, SCIP_Real *realarray2, SCIP_Real *realarray3, int *intarray, int len)
SCIP_Bool SCIPstrToRealValue(const char *str, SCIP_Real *value, char **endptr)
Definition: misc.c:8245
int SCIPdigraphGetNArcs(SCIP_DIGRAPH *digraph)
Definition: misc.c:5932
void SCIPsortedvecDelPosPtrReal(void **ptrarray, SCIP_Real *realarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int pos, int *len)
void SCIPsortedvecInsertDownIntIntLong(int *intarray1, int *intarray2, SCIP_Longint *longarray, int keyval, int field1val, SCIP_Longint field2val, int *len, int *pos)
void SCIPbtFree(SCIP_BT **tree)
Definition: misc.c:6939
void SCIPsortedvecDelPosRealBoolPtr(SCIP_Real *realarray, SCIP_Bool *boolarray, void **ptrarray, int pos, int *len)
void SCIPsortedvecInsertIntIntInt(int *intarray1, int *intarray2, int *intarray3, int keyval, int field1val, int field2val, int *len, int *pos)
void SCIPsortedvecInsertDownLongPtrInt(SCIP_Longint *longarray, void **ptrarray, int *intarray, SCIP_Longint keyval, void *field1val, int field2val, int *len, int *pos)
SCIP_RETCODE SCIPhashtableSafeInsert(SCIP_HASHTABLE *hashtable, void *element)
Definition: misc.c:1608
void SCIPsortedvecDelPosDownRealPtr(SCIP_Real *realarray, void **ptrarray, int pos, int *len)
void SCIPsortedvecDelPosRealRealRealBoolBoolPtr(SCIP_Real *realarray1, SCIP_Real *realarray2, SCIP_Real *realarray3, SCIP_Bool *boolarray1, SCIP_Bool *boolarray2, void **ptrarray, int pos, int *len)
SCIP_Bool SCIPbtnodeIsLeftchild(SCIP_BTNODE *node)
Definition: misc.c:6828
void SCIPsortDownIntIntIntPtr(int *intarray1, int *intarray2, int *intarray3, void **ptrarray, int len)
void SCIPsortedvecInsertRealInt(SCIP_Real *realarray, int *intarray, SCIP_Real keyval, int field1val, int *len, int *pos)
void SCIPsortedvecInsertRealPtrPtrIntInt(SCIP_Real *realarray, void **ptrarray1, void **ptrarray2, int *intarray1, int *intarray2, SCIP_Real keyval, void *field1val, void *field2val, int intval1, int intval2, int *len, int *pos)
void SCIPsortLongPtrRealRealBool(SCIP_Longint *longarray, void **ptrarray, SCIP_Real *realarray, SCIP_Real *realarray2, SCIP_Bool *boolarray, int len)
SCIP_RETCODE SCIPdigraphComputeDirectedComponents(SCIP_DIGRAPH *digraph, int compidx, int *strongcomponents, int *strongcompstartidx, int *nstrongcomponents)
Definition: misc.c:6398
SCIP_Real SCIPcomputeTwoSampleTTestValue(SCIP_Real meanx, SCIP_Real meany, SCIP_Real variancex, SCIP_Real variancey, SCIP_Real countx, SCIP_Real county)
Definition: misc.c:111
void SCIPsortedvecDelPosRealPtrPtrInt(SCIP_Real *realarray, void **ptrarray1, void **ptrarray2, int *intarray, int pos, int *len)
void ** SCIPpqueueElems(SCIP_PQUEUE *pqueue)
Definition: misc.c:1084
void SCIPsortedvecInsertDownIntIntInt(int *intarray1, int *intarray2, int *intarray3, int keyval, int field1val, int field2val, int *len, int *pos)
void SCIPsortedvecDelPosDownLongPtr(SCIP_Longint *longarray, void **ptrarray, int pos, int *len)
void SCIPprofilePrint(SCIP_PROFILE *profile, SCIP_MESSAGEHDLR *messagehdlr, FILE *file)
Definition: misc.c:5003
void SCIPsortedvecInsertPtrPtrRealBool(void **ptrarray1, void **ptrarray2, SCIP_Real *realarray, SCIP_Bool *boolarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *keyval, void *field1val, SCIP_Real field2val, SCIP_Bool field3val, int *len, int *pos)
void SCIPgmlWriteNodeWeight(FILE *file, unsigned int id, const char *label, const char *nodetype, const char *fillcolor, const char *bordercolor, SCIP_Real weight)
Definition: misc.c:343
void SCIPsortedvecInsertPtr(void **ptrarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *keyval, int *len, int *pos)
void SCIPsortIntPtrIntIntBoolBool(int *intarray1, void **ptrarray, int *intarray2, int *intarray3, SCIP_Bool *boolarray1, SCIP_Bool *boolarray2, int len)
SCIP_Bool SCIPfindSimpleRational(SCIP_Real lb, SCIP_Real ub, SCIP_Longint maxdnom, SCIP_Longint *nominator, SCIP_Longint *denominator)
Definition: misc.c:7579
void SCIPsortIntPtrReal(int *intarray, void **ptrarray, SCIP_Real *realarray, int len)
void SCIPsortRealRealRealBoolPtr(SCIP_Real *realarray1, SCIP_Real *realarray2, SCIP_Real *realarray3, SCIP_Bool *boolarray, void **ptrarray, int len)
void * SCIPhashtableRetrieve(SCIP_HASHTABLE *hashtable, void *key)
Definition: misc.c:1627
void SCIPsortedvecInsertRealRealIntInt(SCIP_Real *realarray1, SCIP_Real *realarray2, int *intarray1, int *intarray2, SCIP_Real keyval, SCIP_Real field1val, int field2val, int field3val, int *len, int *pos)
void SCIPsortedvecInsertDownRealPtrPtr(SCIP_Real *realarray, void **ptrarray1, void **ptrarray2, SCIP_Real keyval, void *field1val, void *field2val, int *len, int *pos)
int * SCIPprofileGetTimepoints(SCIP_PROFILE *profile)
Definition: misc.c:5045
void SCIPsortDownPtrPtrReal(void **ptrarray1, void **ptrarray2, SCIP_Real *realarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
void SCIPsortPtrPtr(void **ptrarray1, void **ptrarray2, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
void SCIPsortedvecInsertPtrPtrReal(void **ptrarray1, void **ptrarray2, SCIP_Real *realarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *keyval, void *field1val, SCIP_Real field2val, int *len, int *pos)
SCIP_VAR ** SCIPsparseSolGetVars(SCIP_SPARSESOL *sparsesol)
Definition: misc.c:578
int * SCIPprofileGetLoads(SCIP_PROFILE *profile)
Definition: misc.c:5055
void SCIPsortedvecInsertDownPtrPtrLongIntInt(void **ptrarray1, void **ptrarray2, SCIP_Longint *longarray, int *intarray1, int *intarray2, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *keyval, void *field1val, SCIP_Longint field2val, int field3val, int field4val, int *len, int *pos)
void SCIPsortedvecInsertDownIntIntIntPtr(int *intarray1, int *intarray2, int *intarray3, void **ptrarray, int keyval, int field1val, int field2val, void *field3val, int *len, int *pos)
int SCIPgetRandomInt(int minrandval, int maxrandval, unsigned int *seedp)
Definition: misc.c:7700
void SCIPhashtableFree(SCIP_HASHTABLE **hashtable)
Definition: misc.c:1510
SCIP_Bool SCIPbtIsEmpty(SCIP_BT *tree)
Definition: misc.c:7021
void SCIPsortedvecDelPosDownIntPtrIntReal(int *intarray1, void **ptrarray, int *intarray2, SCIP_Real *realarray, int pos, int *len)
void SCIPsortedvecDelPosDownPtrPtrReal(void **ptrarray1, void **ptrarray2, SCIP_Real *realarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int pos, int *len)
void SCIPsortedvecInsertPtrBool(void **ptrarray, SCIP_Bool *boolarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *keyval, SCIP_Bool field1val, int *len, int *pos)
void SCIPsortDownPtrRealInt(void **ptrarray, SCIP_Real *realarray, int *intarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
void SCIPsortedvecDelPosInt(int *intarray, int pos, int *len)
void SCIPsortedvecInsertDownRealIntLong(SCIP_Real *realarray, int *intarray, SCIP_Longint *longarray, SCIP_Real keyval, int field1val, SCIP_Longint field2val, int *len, int *pos)
SCIP_Real SCIPgetRandomReal(SCIP_Real minrandval, SCIP_Real maxrandval, unsigned int *seedp)
Definition: misc.c:7719
SCIP_BTNODE * SCIPbtnodeGetLeftchild(SCIP_BTNODE *node)
Definition: misc.c:6768
void SCIPsortedvecInsertPtrRealBool(void **ptrarray, SCIP_Real *realarray, SCIP_Bool *boolarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *keyval, SCIP_Real field1val, SCIP_Bool field2val, int *len, int *pos)
void SCIPsortedvecDelPosRealRealRealPtr(SCIP_Real *realarray1, SCIP_Real *realarray2, SCIP_Real *realarray3, void **ptrarray, int pos, int *len)
void SCIPsortedvecDelPosDownPtrIntIntBoolBool(void **ptrarray, int *intarray1, int *intarray2, SCIP_Bool *boolarray1, SCIP_Bool *boolarray2, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int pos, int *len)
void SCIPsortedvecDelPosDownIntIntPtr(int *intarray1, int *intarray2, void **ptrarray, int pos, int *len)
#define SCIP_DECL_SORTINDCOMP(x)
Definition: type_misc.h:128
int SCIPsparseSolGetNVars(SCIP_SPARSESOL *sparsesol)
Definition: misc.c:588
void SCIPsortedvecDelPosDownPtrIntInt(void **ptrarray, int *intarray1, int *intarray2, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int pos, int *len)
void SCIPbtSetRoot(SCIP_BT *tree, SCIP_BTNODE *root)
Definition: misc.c:7044
void SCIPsortedvecInsertDownLongPtrRealRealIntBool(SCIP_Longint *longarray, void **ptrarray, SCIP_Real *realarray, SCIP_Real *realarray2, int *intarray, SCIP_Bool *boolarray, SCIP_Longint keyval, void *field1val, SCIP_Real field2val, SCIP_Real field3val, int field4val, SCIP_Bool field5val, int *len, int *pos)
SCIP_RETCODE SCIPhashmapRemove(SCIP_HASHMAP *hashmap, void *origin)
Definition: misc.c:2177
void SCIPsortedvecDelPosDownPtrRealInt(void **ptrarray, SCIP_Real *realarray, int *intarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int pos, int *len)
void SCIPsortedvecInsertRealPtrPtrInt(SCIP_Real *realarray, void **ptrarray1, void **ptrarray2, int *intarray, SCIP_Real keyval, void *field1val, void *field2val, int intval, int *len, int *pos)
void SCIPbtnodeSetParent(SCIP_BTNODE *node, SCIP_BTNODE *parent)
Definition: misc.c:6881
void SCIPsortDownPtrIntIntBoolBool(void **ptrarray, int *intarray1, int *intarray2, SCIP_Bool *boolarray1, SCIP_Bool *boolarray2, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
void SCIPsortedvecDelPosRealPtr(SCIP_Real *realarray, void **ptrarray, int pos, int *len)
SCIP_Real SCIPstudentTGetCriticalValue(SCIP_CONFIDENCELEVEL clevel, int df)
Definition: misc.c:94
void SCIPsort(int *perm, SCIP_DECL_SORTINDCOMP((*indcomp)), void *dataptr, int len)
Definition: misc.c:3829
void SCIPsortedvecInsertDownRealRealRealPtr(SCIP_Real *realarray1, SCIP_Real *realarray2, SCIP_Real *realarray3, void **ptrarray, SCIP_Real keyval, SCIP_Real field1val, SCIP_Real field2val, void *field3val, int *len, int *pos)
SCIP_RETCODE SCIPqueueCreate(SCIP_QUEUE **queue, int initsize, SCIP_Real sizefac)
Definition: misc.c:742
void SCIPsortDownRealRealRealPtr(SCIP_Real *realarray1, SCIP_Real *realarray2, SCIP_Real *realarray3, void **ptrarray, int len)
SCIP_RETCODE SCIPdigraphCopy(SCIP_DIGRAPH **targetdigraph, SCIP_DIGRAPH *sourcedigraph)
Definition: misc.c:5661
SCIP_RETCODE SCIPpqueueInsert(SCIP_PQUEUE *pqueue, void *elem)
Definition: misc.c:991
void SCIPsortedvecDelPosDownLongPtrInt(SCIP_Longint *longarray, void **ptrarray, int *intarray, int pos, int *len)
void SCIPsortedvecDelPosDownPtr(void **ptrarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int pos, int *len)
SCIP_Real SCIPcalcMachineEpsilon(void)
Definition: misc.c:7060
SCIP_RETCODE SCIPpqueueCreate(SCIP_PQUEUE **pqueue, int initsize, SCIP_Real sizefac, SCIP_DECL_SORTPTRCOMP((*ptrcomp)))
Definition: misc.c:945
void SCIPsortedvecInsertDownPtrBool(void **ptrarray, SCIP_Bool *boolarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *keyval, SCIP_Bool field1val, int *len, int *pos)
void SCIPsortedvecInsertIntIntReal(int *intarray1, int *intarray2, SCIP_Real *realarray, int keyval, int field1val, SCIP_Real field2val, int *len, int *pos)
void SCIPsortedvecDelPosLongPtrRealRealIntBool(SCIP_Longint *longarray, void **ptrarray, SCIP_Real *realarray, SCIP_Real *realarray2, int *intarray, SCIP_Bool *boolarray, int pos, int *len)
void SCIPsortDownLongPtrRealRealIntBool(SCIP_Longint *longarray, void **ptrarray, SCIP_Real *realarray, SCIP_Real *realarray2, int *intarray, SCIP_Bool *boolarray, int len)
SCIP_Real SCIPnormalCDF(SCIP_Real mean, SCIP_Real variance, SCIP_Real value)
Definition: misc.c:184
void SCIPsortedvecDelPosIntPtr(int *intarray, void **ptrarray, int pos, int *len)
SCIP_Bool SCIPsortedvecFindReal(SCIP_Real *realarray, SCIP_Real val, int len, int *pos)
void SCIPsortedvecInsertDownPtrPtrLongInt(void **ptrarray1, void **ptrarray2, SCIP_Longint *longarray, int *intarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *keyval, void *field1val, SCIP_Longint field2val, int field3val, int *len, int *pos)
void SCIPsortedvecInsertDownLongPtr(SCIP_Longint *longarray, void **ptrarray, SCIP_Longint keyval, void *field1val, int *len, int *pos)
int SCIPactivityGetDuration(SCIP_RESOURCEACTIVITY *activity)
Definition: misc.c:4929
void SCIPsortedvecInsertDownIntPtrIntIntBoolBool(int *intarray1, void **ptrarray, int *intarray2, int *intarray3, SCIP_Bool *boolarray1, SCIP_Bool *boolarray2, int keyval, void *field1val, int field2val, int field3val, SCIP_Bool field4val, SCIP_Bool field5val, int *len, int *pos)
void SCIPsortDownRealRealPtr(SCIP_Real *realarray1, SCIP_Real *realarray2, void **ptrarray, int len)
void SCIPsortedvecDelPosPtrBool(void **ptrarray, SCIP_Bool *boolarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int pos, int *len)
SCIP_RETCODE SCIPhashmapSetImage(SCIP_HASHMAP *hashmap, void *origin, void *image)
Definition: misc.c:2137
void SCIPsortedvecDelPosIntIntLong(int *intarray1, int *intarray2, SCIP_Longint *longarray, int pos, int *len)
void SCIPsortDownInt(int *intarray, int len)
#define SCIP_Real
Definition: def.h:127
void SCIPsortedvecDelPosPtrRealIntInt(void **ptrarray, SCIP_Real *realarray, int *intarray1, int *intarray2, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int pos, int *len)
void SCIPsortedvecInsertPtrRealIntInt(void **ptrarray, SCIP_Real *realarray, int *intarray1, int *intarray2, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *keyval, SCIP_Real field1val, int field2val, int field3val, int *len, int *pos)
void SCIPpermuteIntArray(int *array, int begin, int end, unsigned int *randseed)
Definition: misc.c:7855
void SCIPsortedvecInsertLongPtr(SCIP_Longint *longarray, void **ptrarray, SCIP_Longint keyval, void *field1val, int *len, int *pos)
void SCIPsortedvecDelPosPtrPtrReal(void **ptrarray1, void **ptrarray2, SCIP_Real *realarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int pos, int *len)
void SCIPsortedvecDelPosDownRealRealRealBoolBoolPtr(SCIP_Real *realarray1, SCIP_Real *realarray2, SCIP_Real *realarray3, SCIP_Bool *boolarray1, SCIP_Bool *boolarray2, void **ptrarray, int pos, int *len)
void SCIPsortedvecDelPosDownLongPtrRealRealBool(SCIP_Longint *longarray, void **ptrarray, SCIP_Real *realarray, SCIP_Real *realarray2, SCIP_Bool *boolarray, int pos, int *len)
void SCIPsortedvecDelPosDownRealPtrPtrIntInt(SCIP_Real *realarray, void **ptrarray1, void **ptrarray2, int *intarray1, int *intarray2, int pos, int *len)
void SCIPsortPtrReal(void **ptrarray, SCIP_Real *realarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
void SCIPsortDownRealBoolPtr(SCIP_Real *realarray, SCIP_Bool *boolarray, void **ptrarray, int len)
void SCIPsortDownPtrPtrLongInt(void **ptrarray1, void **ptrarray2, SCIP_Longint *longarray, int *intarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
void SCIPsortInt(int *intarray, int len)
void SCIPsortedvecInsertInd(int *indarray, SCIP_DECL_SORTINDCOMP((*indcomp)), void *dataptr, int keyval, int *len, int *pos)
#define SCIP_Longint
Definition: def.h:112
SCIP_RETCODE SCIPcalcIntegralScalar(SCIP_Real *vals, int nvals, SCIP_Real mindelta, SCIP_Real maxdelta, SCIP_Longint maxdnom, SCIP_Real maxscale, SCIP_Real *intscalar, SCIP_Bool *success)
Definition: misc.c:7375
void SCIPsortRealPtr(SCIP_Real *realarray, void **ptrarray, int len)
void SCIPsortedvecInsertDownRealIntPtr(SCIP_Real *realarray, int *intarray, void **ptrarray, SCIP_Real keyval, int field1val, void *field2val, int *len, int *pos)
void SCIPsortedvecDelPosDownRealRealRealBoolPtr(SCIP_Real *realarray1, SCIP_Real *realarray2, SCIP_Real *realarray3, SCIP_Bool *boolarray, void **ptrarray, int pos, int *len)
SCIP_Bool SCIPhashtableExists(SCIP_HASHTABLE *hashtable, void *element)
Definition: misc.c:1692
void * SCIPqueueRemove(SCIP_QUEUE *queue)
Definition: misc.c:832
SCIP_Bool SCIPsortedvecFindInd(int *indarray, SCIP_DECL_SORTINDCOMP((*indcomp)), void *dataptr, int val, int len, int *pos)
void SCIPsortLongPtrInt(SCIP_Longint *longarray, void **ptrarray, int *intarray, int len)
void SCIPsortedvecDelPosDownRealRealPtr(SCIP_Real *realarray1, SCIP_Real *realarray2, void **ptrarray, int pos, int *len)
void SCIPsortedvecDelPosDownLongPtrRealRealIntBool(SCIP_Longint *longarray, void **ptrarray, SCIP_Real *realarray, SCIP_Real *realarray2, int *intarray, SCIP_Bool *boolarray, int pos, int *len)
void SCIPsortPtrPtrLongInt(void **ptrarray1, void **ptrarray2, SCIP_Longint *longarray, int *intarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
type definitions for message output methods
void SCIPsortedvecDelPosPtrIntInt(void **ptrarray, int *intarray1, int *intarray2, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int pos, int *len)
void SCIPsortedvecDelPosDownRealPtrPtrInt(SCIP_Real *realarray, void **ptrarray1, void **ptrarray2, int *intarray, int pos, int *len)
void SCIPsortedvecDelPosDownPtrPtrIntInt(void **ptrarray1, void **ptrarray2, int *intarray1, int *intarray2, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int pos, int *len)
void SCIPsortedvecInsertDownPtrPtr(void **ptrarray1, void **ptrarray2, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *keyval, void *field1val, int *len, int *pos)
void SCIPsortPtrPtrLongIntInt(void **ptrarray1, void **ptrarray2, SCIP_Longint *longarray, int *intarray1, int *intarray2, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int len)
void SCIPsortedvecDelPosDownPtrPtrLongInt(void **ptrarray1, void **ptrarray2, SCIP_Longint *longarray, int *intarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int pos, int *len)
void SCIPsortedvecDelPosPtrPtrRealBool(void **ptrarray1, void **ptrarray2, SCIP_Real *realarray, SCIP_Bool *boolarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int pos, int *len)
int SCIPprofileGetLatestFeasibleStart(SCIP_PROFILE *profile, int lb, int ub, int duration, int height, SCIP_Bool *infeasible)
Definition: misc.c:5508
void SCIPgmlWriteOpening(FILE *file, SCIP_Bool directed)
Definition: misc.c:481
void SCIPsortDownRealIntLong(SCIP_Real *realarray, int *intarray, SCIP_Longint *longarray, int len)
void SCIPsortedvecInsertDownPtrPtrRealBool(void **ptrarray1, void **ptrarray2, SCIP_Real *realarray, SCIP_Bool *boolarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *keyval, void *field1val, SCIP_Real field2val, SCIP_Bool field3val, int *len, int *pos)
void SCIPsortedvecInsertLongPtrRealRealIntBool(SCIP_Longint *longarray, void **ptrarray, SCIP_Real *realarray, SCIP_Real *realarray2, int *intarray, SCIP_Bool *boolarray, SCIP_Longint keyval, void *field1val, SCIP_Real field2val, SCIP_Real field3val, int field4val, SCIP_Bool field5val, int *len, int *pos)
SCIP_RETCODE SCIPhashmapInsert(SCIP_HASHMAP *hashmap, void *origin, void *image)
Definition: misc.c:2094
SCIP_Real SCIPhashtableGetLoad(SCIP_HASHTABLE *hashtable)
Definition: misc.c:1784
void SCIPsortedvecDelPosDownPtrReal(void **ptrarray, SCIP_Real *realarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int pos, int *len)
common defines and data types used in all packages of SCIP
void * SCIPqueueFirst(SCIP_QUEUE *queue)
Definition: misc.c:866
void SCIPsortedvecDelPosDownRealInt(SCIP_Real *realarray, int *intarray, int pos, int *len)
void SCIPsortedvecInsertDownLongPtrRealRealBool(SCIP_Longint *longarray, void **ptrarray, SCIP_Real *realarray, SCIP_Real *realarray2, SCIP_Bool *boolarray, SCIP_Longint keyval, void *field1val, SCIP_Real field2val, SCIP_Real field3val, SCIP_Bool field4val, int *len, int *pos)
void SCIPswapInts(int *value1, int *value2)
Definition: misc.c:7829
void SCIPsortedvecInsertDownRealIntInt(SCIP_Real *realarray, int *intarray1, int *intarray2, SCIP_Real keyval, int field1val, int field2val, int *len, int *pos)
struct BMS_BlkMem BMS_BLKMEM
Definition: memory.h:392
void SCIPsortedvecDelPosDownIntIntReal(int *intarray1, int *intarray2, SCIP_Real *realarray, int pos, int *len)
SCIP_RETCODE SCIPbtCreate(SCIP_BT **tree, BMS_BLKMEM *blkmem)
Definition: misc.c:6920
void SCIPsortedvecDelPosDownIntIntIntReal(int *intarray1, int *intarray2, int *intarray3, SCIP_Real *realarray, int pos, int *len)
void SCIPsortedvecDelPosIntPtrIntIntBoolBool(int *intarray1, void **ptrarray, int *intarray2, int *intarray3, SCIP_Bool *boolarray1, SCIP_Bool *boolarray2, int pos, int *len)
void SCIPsortedvecDelPosDownPtrRealBool(void **ptrarray, SCIP_Real *realarray, SCIP_Bool *boolarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int pos, int *len)
int SCIPactivityGetDemand(SCIP_RESOURCEACTIVITY *activity)
Definition: misc.c:4939
void SCIPbtnodeSetData(SCIP_BTNODE *node, void *dataptr)
Definition: misc.c:6867
void SCIPdigraphFree(SCIP_DIGRAPH **digraph)
Definition: misc.c:5742
int SCIPprofileGetNTimepoints(SCIP_PROFILE *profile)
Definition: misc.c:5035
void SCIPsortedvecInsertPtrPtr(void **ptrarray1, void **ptrarray2, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *keyval, void *field1val, int *len, int *pos)
void SCIPpqueueClear(SCIP_PQUEUE *pqueue)
Definition: misc.c:981
SCIP_DECL_HASHKEYEQ(SCIPhashKeyEqString)
Definition: misc.c:1839
void SCIPsortRealIntPtr(SCIP_Real *realarray, int *intarray, void **ptrarray, int len)
char * SCIPstrtok(char *s, const char *delim, char **ptrptr)
Definition: misc.c:8132
void SCIPsortedvecDelPosPtrPtrIntInt(void **ptrarray1, void **ptrarray2, int *intarray1, int *intarray2, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int pos, int *len)
SCIP_Longint SCIPcalcGreComDiv(SCIP_Longint val1, SCIP_Longint val2)
Definition: misc.c:7083
void SCIPsortedvecInsertDownIntIntReal(int *intarray1, int *intarray2, SCIP_Real *realarray, int keyval, int field1val, SCIP_Real field2val, int *len, int *pos)
void SCIPsortedvecDelPosRealRealRealBoolPtr(SCIP_Real *realarray1, SCIP_Real *realarray2, SCIP_Real *realarray3, SCIP_Bool *boolarray, void **ptrarray, int pos, int *len)
void SCIPsortedvecInsertDownRealPtrPtrInt(SCIP_Real *realarray, void **ptrarray1, void **ptrarray2, int *intarray, SCIP_Real keyval, void *field1val, void *field2val, int intval, int *len, int *pos)
void SCIPdigraphPrintGml(SCIP_DIGRAPH *digraph, FILE *file)
Definition: misc.c:6547
SCIP_HASHMAPLIST * SCIPhashmapListGetNext(SCIP_HASHMAPLIST *hashmaplist)
Definition: misc.c:2327
void SCIPsortDownReal(SCIP_Real *realarray, int len)
void SCIPsortDownLongPtr(SCIP_Longint *longarray, void **ptrarray, int len)
void SCIPsortedvecInsertDownPtrInt(void **ptrarray, int *intarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *keyval, int field1val, int *len, int *pos)
void SCIPsortedvecInsertInt(int *intarray, int keyval, int *len, int *pos)
void SCIPbtPrintGml(SCIP_BT *tree, FILE *file)
Definition: misc.c:6991
void SCIPsortedvecDelPosDownPtrPtrRealBool(void **ptrarray1, void **ptrarray2, SCIP_Real *realarray, SCIP_Bool *boolarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int pos, int *len)
SCIP_Longint SCIPhashtableGetNElements(SCIP_HASHTABLE *hashtable)
Definition: misc.c:1774
void SCIPsortedvecInsertDownPtr(void **ptrarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *keyval, int *len, int *pos)
SCIP_Longint SCIPcalcSmaComMul(SCIP_Longint val1, SCIP_Longint val2)
Definition: misc.c:7194
void SCIPsortDownIntIntPtr(int *intarray1, int *intarray2, void **ptrarray, int len)
SCIP_Bool SCIPsortedvecFindDownPtr(void **ptrarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *val, int len, int *pos)
SCIP_Bool SCIPbtnodeIsLeaf(SCIP_BTNODE *node)
Definition: misc.c:6818
void SCIPsortedvecDelPosPtrPtrRealInt(void **ptrarray1, void **ptrarray2, SCIP_Real *realarray, int *intarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int pos, int *len)
void SCIPsparseSolFree(SCIP_SPARSESOL **sparsesol)
Definition: misc.c:564
void SCIPsortDownRealRealRealBoolBoolPtr(SCIP_Real *realarray1, SCIP_Real *realarray2, SCIP_Real *realarray3, SCIP_Bool *boolarray1, SCIP_Bool *boolarray2, void **ptrarray, int len)
void SCIPsortIntReal(int *intarray, SCIP_Real *realarray, int len)
void SCIPprofileFree(SCIP_PROFILE **profile)
Definition: misc.c:4989
void SCIPsortRealRealPtr(SCIP_Real *realarray1, SCIP_Real *realarray2, void **ptrarray, int len)
void SCIPsortDownLongPtrInt(SCIP_Longint *longarray, void **ptrarray, int *intarray, int len)
memory allocation routines