00001 00002 /* the global header file for the `party' package */ 00003 00004 /* include R header files */ 00005 00006 #include <R.h> 00007 #include <Rmath.h> 00008 #include <Rinternals.h> 00009 #include <Rdefines.h> 00010 #include <R_ext/Applic.h> /* for dgemm */ 00011 #include <R_ext/Lapack.h> /* for dgesdd */ 00012 00013 /* include private header files: this need to be restricted */ 00014 00015 #include "Classes.h" 00016 #include "Utils.h" 00017 #include "mvt.h" 00018 #include "LinearStatistic.h" 00019 #include "TestStatistic.h" 00020 #include "Distributions.h" 00021 #include "Convenience.h" 00022 #include "S3Classes.h" 00023 #include "IndependenceTest.h" 00024 #include "Splits.h" 00025 #include "Node.h" 00026 #include "Predict.h" 00027 #include "SurrogateSplits.h" 00028 #include "TreeGrow.h" 00029 00030 /* constants, basically the length of lists representing S3 classes 00031 and the position of certain elements */ 00032 00033 /* S3 list elements in `splittingNode's */ 00034 #define S3_NODEID 0 /* nodeID */ 00035 #define S3_WEIGHTS 1 /* weights */ 00036 #define S3_CRITERION 2 /* criterion */ 00037 #define S3_TERMINAL 3 /* terminal */ 00038 #define S3_PSPLIT 4 /* psplit */ 00039 #define S3_SSPLIT 5 /* ssplit */ 00040 #define S3_PREDICTION 6 /* prediction */ 00041 #define S3_LEFT 7 /* left */ 00042 #define S3_RIGHT 8 /* right */ 00043 #define S3_SUMWEIGHTS 9 /* sum of weights in this node */ 00044 #define NODE_LENGTH 10 /* 9 elements in total */ 00045 00046 /* S3 list elements in `criterion' element of `SplittingNode's */ 00047 #define S3_STATISTICS 0 /* statistics */ 00048 #define S3_iCRITERION 1 /* criterion */ 00049 #define S3_MAXCRITERION 2 /* max(criterion) */ 00050 #define CRITERION_LENGTH 3 /* 3 elements in total */ 00051 00052 /* S3 list elements in `orderedSplit's or `nominalSplit's */ 00053 #define S3_VARIABLEID 0 /* variableID */ 00054 #define S3_ORDERED 1 /* ordered */ 00055 #define S3_SPLITPOINT 2 /* splitpoint */ 00056 #define S3_SPLITSTATISTICS 3 /* splitstatistics */ 00057 #define S3_TOLEFT 4 /* toleft */ 00058 #define S3_TABLE 5 /* table for nominal splits */ 00059 #define SPLIT_LENGTH 6 /* 6 elements in total */ 00060 00061 /* type of test statistic */ 00062 #define MAXABS 1 00063 #define QUADFORM 2 00064 00065 /* type of criterion to be _maximized_! */ 00066 #define BONFERRONI 1 00067 #define MONTECARLO 2 00068 #define AGGREGATED 3 00069 #define UNIVARIATE 4 00070 #define TESTSTATISTIC 5