1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
|
/* ========================================================================== */
/* === Include/Mongoose_Internal.hpp ======================================== */
/* ========================================================================== */
/* -----------------------------------------------------------------------------
* Mongoose Graph Partitioning Library, Copyright (C) 2017-2023,
* Scott P. Kolodziej, Nuri S. Yeralan, Timothy A. Davis, William W. Hager
* Mongoose is licensed under Version 3 of the GNU General Public License.
* Mongoose is also available under other licenses; contact authors for details.
* SPDX-License-Identifier: GPL-3.0-only
* -------------------------------------------------------------------------- */
// #pragma once
#ifndef MONGOOSE_INTERNAL_HPP
#define MONGOOSE_INTERNAL_HPP
#define FREESET_DEBUG 0
#if __cplusplus > 199711L
#define CPP11_OR_LATER true
#else
#define CPP11_OR_LATER false
#endif
/* Dependencies */
#include <climits>
#include <cmath>
#include <cstddef>
#include <cstdlib>
#include <algorithm>
/* Memory Management */
#include "SuiteSparse_config.h"
#if !defined (SUITESPARSE_VERSION) || \
(SUITESPARSE_VERSION < SUITESPARSE_VER_CODE(7,4))
#error "Mongoose requires SuiteSparse_config 7.4.0 or later"
#endif
#ifndef MAX_INT
#define MAX_INT INT64_MAX
#endif
#ifndef MONGOOSE_HPP
// avoid collision with symbols that are declared in Mongoose.hpp
#if defined (_MSC_VER) && ! defined (__INTEL_COMPILER)
#if defined (MONGOOSE_STATIC)
#define MONGOOSE_API
#else
#if defined (MONGOOSE_BUILDING)
#define MONGOOSE_API __declspec ( dllexport )
#else
#define MONGOOSE_API __declspec ( dllimport )
#endif
#endif
#else
// for other compilers
#define MONGOOSE_API
#endif
namespace Mongoose
{
/* Type definitions */
typedef int64_t Int;
/* Enumerations */
enum MatchingStrategy
{
Random = 0,
HEM = 1,
HEMSR = 2,
HEMSRdeg = 3
};
enum InitialEdgeCutType
{
InitialEdgeCut_QP = 0,
InitialEdgeCut_Random = 1,
InitialEdgeCut_NaturalOrder = 2
};
enum MatchType
{
MatchType_Orphan = 0,
MatchType_Standard = 1,
MatchType_Brotherly = 2,
MatchType_Community = 3
};
} // end namespace Mongoose
#endif
#endif
|