00001 #ifndef GA_GRAPH_ALIGNMENT
00002 #define GA_GRAPH_ALIGNMENT
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00038 #include "R.h"
00039 #include "Rinternals.h"
00040 #include "Rdefines.h"
00041 #include "R_ext/Rdynload.h"
00042 #include "GA_message.h"
00043 #include "GA_vector.h"
00044 #include "GA_matrix.h"
00045
00046 #ifdef __cplusplus
00047 extern "C"
00048 {
00049 #endif
00050
00057 void R_init_GraphAlignment(DllInfo* info);
00058
00065 void R_unload_GraphAlignment(DllInfo* info);
00066
00074 void GA_msg_R(const char* text, GAMessageLevel level);
00075
00087 GAVectorInt* GA_linear_assignment_solve(GAMatrixInt* costMatrix);
00088
00105 GAMatrixReal* GA_encode_directed_graph(GAMatrixReal* matrix, GAVectorInt* p);
00106
00116 SEXP GA_encode_directed_graph_R(SEXP matrix, SEXP p);
00117
00127 SEXP GA_linear_assignment_solve_R(SEXP costMatrix);
00128
00134 enum GADirectedMode_Impl
00135 {
00138 GA_DIRECTED_ENABLED = 1,
00141 GA_DIRECTED_DISABLED = 0,
00142 };
00143
00146 typedef enum GADirectedMode_Impl GADirectedMode;
00147
00156 GADirectedMode GA_directed_mode_from_R(SEXP robj);
00157
00180 GAMatrixReal* GA_compute_M(GAMatrixReal* na, GAMatrixReal* nb,
00181 GAMatrixReal* r, GAVectorInt* p, GAMatrixReal* linkScore,
00182 GAMatrixReal* selfLinkScore, GAVectorReal* nodeScore1,
00183 GAVectorReal* nodeScore2, GAVectorReal* lookupLink,
00184 GAVectorReal* lookupNode, GAClampMode clamp);
00185
00204 SEXP GA_compute_M_R(SEXP a, SEXP b, SEXP r, SEXP p, SEXP linkScore,
00205 SEXP selfLinkScore, SEXP nodeScore1, SEXP nodeScore2, SEXP lookupLink,
00206 SEXP lookupNode, SEXP clamp);
00207
00208 #ifdef __cplusplus
00209 }
00210 #endif
00211 #endif