File: mex_get_options.cpp

package info (click to toggle)
suitesparse 1%3A5.4.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 138,928 kB
  • sloc: ansic: 389,614; cpp: 24,213; makefile: 5,965; fortran: 1,927; java: 1,808; csh: 1,750; ruby: 725; sh: 226; perl: 225; python: 209; sed: 164; awk: 60
file content (53 lines) | stat: -rw-r--r-- 1,777 bytes parent folder | download | duplicates (3)
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
#include "mongoose_mex.hpp"

namespace Mongoose
{

#define MEX_STRUCT_READINT(F)    returner->F = (Int) readField(matOptions, #F);
#define MEX_STRUCT_READDOUBLE(F) returner->F = readField(matOptions, #F);
#define MEX_STRUCT_READBOOL(F)   returner->F = static_cast<bool>((readField(matOptions, #F) != 0.0));
#define MEX_STRUCT_READENUM(F,T) returner->F = (T) (readField(matOptions, #F));
    
EdgeCut_Options *mex_get_options
(
    const mxArray *matOptions
)
{
    EdgeCut_Options *returner = EdgeCut_Options::create();

    if(!returner)
        return NULL;
    if(matOptions == NULL)
        return returner;

    MEX_STRUCT_READINT(random_seed);
    MEX_STRUCT_READINT(coarsen_limit);
    MEX_STRUCT_READENUM(matching_strategy, MatchingStrategy);
    MEX_STRUCT_READBOOL(do_community_matching);
    MEX_STRUCT_READDOUBLE(high_degree_threshold);
    
    /** Guess Partitioning Options *******************************************/
    MEX_STRUCT_READENUM(initial_cut_type, InitialEdgeCutType);

    /** Waterdance Options ***************************************************/
    MEX_STRUCT_READINT(num_dances);

    /**** Fidducia-Mattheyes Options *****************************************/
    MEX_STRUCT_READBOOL(use_FM);
    MEX_STRUCT_READINT(FM_search_depth);
    MEX_STRUCT_READINT(FM_consider_count);
    MEX_STRUCT_READINT(FM_max_num_refinements);

    /**** Quadratic Programming Options **************************************/
    MEX_STRUCT_READBOOL(use_QP_gradproj);
    MEX_STRUCT_READDOUBLE(gradproj_tolerance);
    MEX_STRUCT_READINT(gradproj_iteration_limit);

    /** Final Partition Target Metrics ***************************************/
    MEX_STRUCT_READDOUBLE(target_split);
    MEX_STRUCT_READDOUBLE(soft_split_tolerance);

    return returner;
}

}