1 #ifndef _DOTRACKIT_HEADER_ 2 #define _DOTRACKIT_HEADER_ 3 4 #include <gsl/gsl_randist.h> 5 #include <gsl/gsl_rng.h> 6 #include <gsl/gsl_statistics_double.h> 7 8 9 #define EPS_V (0.000001) // for eigvec 'vel' to not have badness dividing 10 #define CONV (PI/180) 11 #define PIo2 (PI/2) 12 #define TWOPI (PI*2) 13 #define EPS_MASK (0.001) // theshold for masked data to be ignored 14 #define EPS_L (0.00001) 15 #define MINEIG (0) // minimum allowed eigenvalue 16 17 #ifdef XORG7 18 #define CORR_FUN(a,b,n) (THD_pearson_corrd((n),(a),(b))) 19 #define GSL_RAN gsl_ran_gaussian 20 #else 21 #define CORR_FUN(a,b,n) (gsl_stats_correlation((a), 1, (b), 1, (n))) 22 #define GSL_RAN gsl_ran_gaussian_ziggurat 23 #endif 24 25 // Added in Feb,2015. 26 int ByeByeBundle( int A, 27 int B, 28 int NET, 29 int **Prob_grid, 30 float ***Prob_grid_L, 31 float ***Param_grid, 32 int L_paramgrid, 33 int ***NETROI, 34 int L_netroi, 35 int *NROI ); 36 37 int MatrInd_to_FlatUHT_DIAG_P1(int i, int j, int N); 38 int MatrInd_to_FlatUHT_DIAG_M(int i, int j, int N); 39 40 int MatrInd_to_FlatUHT(int i, int j, int N); 41 int FlatUHT_Len(int N); 42 43 int ViveLeRoi(THD_3dim_dataset *REF, int **ROILIST, int **INVLIST, 44 int *NUMROI, int *INVROI); 45 46 int CheckNotMask(int id, int br, short **amask, int AO); 47 48 int ScoreTrackGrid_M( float ***PG,int idx, int h, int C, 49 THD_3dim_dataset **inset, int bot, int top); 50 51 int TrackItP_NEW_M( int NHAR, short *DirPerVox, int SEL, float **CC, 52 int *IND, float *PHYSIND, 53 float *Edge, int *dim, float minFA, 54 float maxAng, int arrMax, 55 int **T, float **flT, int FB, float *physL, 56 int ***ID2); 57 58 int Setup_Labels_Indices_Unc_M_both(int *Dim, int ***mskd, int ***INDEX, 59 int ***INDEX2, float **UNC, 60 float **coorded, float **copy_coorded, 61 THD_3dim_dataset *insetFA, 62 short *DirPerVox, 63 int N_HAR, 64 THD_3dim_dataset **insetV, 65 THD_3dim_dataset *insetUC, 66 float unc_minei_std, float unc_minfa_std, 67 int N_nets, int *NROI, 68 THD_3dim_dataset *mset1, int **MAPROI, 69 int **INV_LABELS, int ***NETROI); 70 71 int Setup_Ndir_per_vox( int N_HAR, int *Dim, int ***mskd, 72 int ***INDEX, 73 int ***INDEX2, 74 THD_3dim_dataset **insetHARDIR, 75 short *DirPerVox); 76 77 int DTI_Perturb_M( int *Dim, int ***mskd, int ***INDEX, int ***INDEX2, 78 float **UNC, float **coorded, float **copy_coorded, 79 gsl_rng *r, 80 THD_3dim_dataset **insetV); 81 82 int HARDI_Perturb( int *Dim, int ***mskd, int ***INDEX, int ***INDEX2, 83 float **UNC, float **coorded, float **copy_coorded, 84 gsl_rng *r, short *DirPerVox); 85 86 int Two_DOF_Rot( float *X, float *Y, 87 double POL, double AZIM, float rot[3][3] ); 88 89 int WriteBasicProbFiles( int N_nets, int Ndata, int Nvox, 90 char *prefix, THD_3dim_dataset *insetFA, 91 int *TV_switch, char *voxel_order, int *NROI, 92 int ***NETROI, int ***mskd, int ***INDEX2, int *Dim, 93 THD_3dim_dataset *dsetn, int argc, char *argv[], 94 char ***ROI_STR_LAB, int NameLabelsOut, 95 Dtable *roi_table, 96 int **roi_labs, int PAIR_POWERON, 97 int NIFTI_OUT); 98 99 int WriteIndivProbFiles( int N_nets, int Ndata, int Nvox, int **Prob_grid, 100 char *prefix, THD_3dim_dataset *insetFA, 101 int *TV_switch, char *voxel_order, int *NROI, 102 int ***NETROI, int ***mskd,int ***INDEX2, int *Dim, 103 THD_3dim_dataset *dsetn, int argc, char *argv[], 104 float ***Param_grid, int DUMP_TYPE, 105 int DUMP_ORIG_LABS, int **ROI_LABELS, int POST_IT, 106 char ***ROI_STR_LAB, int NameLabelsOut, 107 int NIFTI_OUT); 108 109 // lazy now, someday will write these unified/smarter. 110 //int Write_Running_Opts_DET(logic ); 111 //int Write_Running_Opts_MINIP( ); 112 //int Write_Running_Opts_PROB( ); 113 114 #endif /* _DOTRACKIT_HEADER_ */ 115 116 117 118 119 120 121 122 123