Changeset 8120:9b58ebe54109 in orange


Ignore:
Timestamp:
07/28/11 16:39:22 (3 years ago)
Author:
ales_erjavec <ales.erjavec@…>
Branch:
default
Convert:
c45b361798a53634ac94360650b3d0c84d1b119b
Message:

Exported EarthForwardPass and EarthEvalSubsetsUsingXtx functions for use with ctypes module.

Location:
source/orange
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • source/orange/earth.cpp

    r8113 r8120  
    29852985 
    29862986/* 
     2987 * Extern interface for ctypes 
     2988 */ 
     2989 
     2990extern "C" void EarthForwardPass( 
     2991    int    *pnTerms,            // out: highest used term number in full model 
     2992    bool   FullSet[],           // out: 1 * nMaxTerms, indices of lin indep cols of bx 
     2993    double bx[],                // out: MARS basis matrix, nCases * nMaxTerms 
     2994    int    Dirs[],              // out: nMaxTerms * nPreds, -1,0,1,2 for iTerm, iPred 
     2995    double Cuts[],              // out: nMaxTerms * nPreds, cut for iTerm, iPred 
     2996    int    nFactorsInTerm[],    // out: number of hockey stick funcs in each MARS term 
     2997    int    nUses[],             // out: nbr of times each predictor is used in the model 
     2998    const double x[],           // in: nCases x nPreds 
     2999    const double y[],           // in: nCases x nResp 
     3000    const double WeightsArg[],  // in: nCases x 1, can be NULL, currently ignored 
     3001    const int nCases,           // in: number of rows in x and elements in y 
     3002    const int nResp,            // in: number of cols in y 
     3003    const int nPreds,           // in: 
     3004    const int nMaxDegree,       // in: 
     3005    const int nMaxTerms,        // in: 
     3006    const double Penalty,       // in: GCV penalty per knot 
     3007    double Thresh,              // in: forward step threshold 
     3008    int nFastK,                 // in: Fast MARS K 
     3009    const double FastBeta,      // in: Fast MARS ageing coef 
     3010    const double NewVarPenalty, // in: penalty for adding a new variable (default is 0) 
     3011    const int  LinPreds[],      // in: nPreds x 1, 1 if predictor must enter linearly 
     3012    const bool UseBetaCache,    // in: true to use the beta cache, for speed 
     3013    const char *sPredNames[])   // in: predictor names, can be NULL 
     3014{ 
     3015    ForwardPass(pnTerms, FullSet, bx, Dirs, Cuts, nFactorsInTerm, nUses, 
     3016            x, y, WeightsArg, nCases, nResp, nPreds, nMaxDegree, 
     3017            nMaxTerms, Penalty, Thresh, nFastK, FastBeta, NewVarPenalty, 
     3018            LinPreds, UseBetaCache, sPredNames); 
     3019} 
     3020 
     3021extern "C" void EarthEvalSubsetsUsingXtx( 
     3022    bool   PruneTerms[],    // out: nMaxTerms x nMaxTerms 
     3023    double RssVec[],        // out: nMaxTerms x 1, RSS of each subset 
     3024    const int    nCases,    // in 
     3025    const int    nResp,     // in: number of cols in y 
     3026    const int    nMaxTerms, // in: number of MARS terms in full model 
     3027    const double bx[],      // in: nCases x nMaxTerms, all cols must be indep 
     3028    const double y[],       // in: nCases * nResp 
     3029    const double WeightsArg[]) // in: nCases x 1, can be NULL 
     3030{ 
     3031    EvalSubsetsUsingXtx(PruneTerms, RssVec, nCases, nResp, nMaxTerms, bx, y, WeightsArg); 
     3032} 
     3033 
     3034/* 
    29873035 * ORANGE INTERFACE 
    29883036 */ 
  • source/orange/earth.hpp

    r8113 r8120  
    3737     - Added defines for STANDALONE USING_R 
    3838     - Removed definition for bool 
     39     - Added extern "C" definitions for ForwardPass and EvalSubsetsUsingXtX 
    3940 
    4041 */ 
     
    163164#endif // STANDALONE 
    164165 
     166 
     167/* 
     168 * Earth interface (with C call semantics) for ctypes. 
     169 * Using this allows greater flexibility for calling from 
     170 * python with numpy arrays then using EarthLearner. 
     171 * 
     172 */ 
     173 
     174#ifdef _MSC_VER 
     175    #define EARTH_EXPORT __declspec(dllexport) 
     176#else 
     177    #define EARTH_EXPORT 
     178#endif // _MSC_VER 
     179 
     180extern "C" { 
     181EARTH_EXPORT void EarthForwardPass( 
     182    int    *pnTerms,            // out: highest used term number in full model 
     183    bool   FullSet[],           // out: 1 * nMaxTerms, indices of lin indep cols of bx 
     184    double bx[],                // out: MARS basis matrix, nCases * nMaxTerms 
     185    int    Dirs[],              // out: nMaxTerms * nPreds, -1,0,1,2 for iTerm, iPred 
     186    double Cuts[],              // out: nMaxTerms * nPreds, cut for iTerm, iPred 
     187    int    nFactorsInTerm[],    // out: number of hockey stick funcs in each MARS term 
     188    int    nUses[],             // out: nbr of times each predictor is used in the model 
     189    const double x[],           // in: nCases x nPreds 
     190    const double y[],           // in: nCases x nResp 
     191    const double WeightsArg[],  // in: nCases x 1, can be NULL, currently ignored 
     192    const int nCases,           // in: number of rows in x and elements in y 
     193    const int nResp,            // in: number of cols in y 
     194    const int nPreds,           // in: 
     195    const int nMaxDegree,       // in: 
     196    const int nMaxTerms,        // in: 
     197    const double Penalty,       // in: GCV penalty per knot 
     198    double Thresh,              // in: forward step threshold 
     199    int nFastK,                 // in: Fast MARS K 
     200    const double FastBeta,      // in: Fast MARS ageing coef 
     201    const double NewVarPenalty, // in: penalty for adding a new variable (default is 0) 
     202    const int  LinPreds[],      // in: nPreds x 1, 1 if predictor must enter linearly 
     203    const bool UseBetaCache,    // in: true to use the beta cache, for speed 
     204    const char *sPredNames[]);   // in: predictor names, can be NULL 
     205 
     206EARTH_EXPORT void EarthEvalSubsetsUsingXtx( 
     207    bool   PruneTerms[],    // out: nMaxTerms x nMaxTerms 
     208    double RssVec[],        // out: nMaxTerms x 1, RSS of each subset 
     209    const int    nCases,    // in 
     210    const int    nResp,     // in: number of cols in y 
     211    const int    nMaxTerms, // in: number of MARS terms in full model 
     212    const double bx[],      // in: nCases x nMaxTerms, all cols must be indep 
     213    const double y[],       // in: nCases * nResp 
     214    const double WeightsArg[]); // in: nCases x 1, can be NULL 
     215}; // extern "C" 
     216 
    165217/* 
    166218 * ORANGE INTERFACE 
     
    190242    float threshold; //P Forward step threshold. 
    191243    bool prune; //P Prune terms (do backward pass). 
    192     float fast_beta; //P Fast beta. 
     244    float fast_beta; //P Fast beta (aging coefficient). 
    193245    float trace; //P Execution trace (for debugging only). 
    194     int min_span; //P Min span. 
     246    int min_span; //P Min. span (training instances) between knots. 
    195247    int fast_k; //P Fast K. 
    196248    bool new_var_penalty; //P Penalty for adding a new variable. 
Note: See TracChangeset for help on using the changeset viewer.