Doxygen Source Code Documentation
ranks.c File Reference
Go to the source code of this file.
| Data Structures | |
| struct | node | 
| Typedefs | |
| typedef node | node | 
| Functions | |
| void | list_print (node *n, int *count) | 
| void | list_delete (node **n) | 
| void | node_insert (node **n, float r) | 
| void | node_addvalue (node **head, float r) | 
| float | node_get_rank (node *head, float r) | 
| float | node_get_value (node *head, int rank) | 
| float | node_get_median (node *head, int n) | 
| float * | rank_array (int n, float *xarray) | 
| float * | rank_darray (int n, double *darray) | 
Typedef Documentation
| 
 | 
| 
 | 
Function Documentation
| 
 | 
| 
 Definition at line 56 of file ranks.c. References free. Referenced by calc_shift(), calc_stat(), rank_array(), and rank_darray(). 
 00057 {
00058   if ((*n)->next != NULL)
00059     list_delete (&((*n)->next));
00060   free (*n);
00061   *n = NULL;
00062 }
 | 
| 
 | ||||||||||||
| 
 Definition at line 34 of file ranks.c. References node::d, node::fval, i, and node::next. Referenced by calc_shift(). 
 | 
| 
 | ||||||||||||
| 
 Definition at line 88 of file ranks.c. References node::d, node::fval, node::next, node_insert(), and r. Referenced by calc_shift(), calc_stat(), rank_array(), and rank_darray(). 
 00089 {
00090   node ** lastptr;
00091   node * ptr;
00092 
00093 
00094   if (*head == NULL)  node_insert (head, r);
00095   else
00096     {
00097       lastptr = head;
00098       ptr = *head;
00099 
00100       while ( (ptr->fval < r) && (ptr->next != NULL) )
00101         {
00102           lastptr = &(ptr->next);
00103           ptr = ptr->next;
00104         }
00105       
00106       if (ptr->fval > r)
00107         node_insert (lastptr, r);
00108       else
00109         if (ptr->fval == r)
00110           ptr->d += 1;
00111         else
00112           node_insert (&(ptr->next), r);
00113     }
00114 }
 | 
| 
 | ||||||||||||
| 
 Definition at line 169 of file ranks.c. References node_get_value(). Referenced by calc_shift(). 
 00170 {
00171   float median;
00172 
00173 
00174   if (n % 2)
00175     median = node_get_value(head, n/2 + 1);
00176   else
00177     median = 0.5 * (node_get_value(head, n/2) + 
00178                     node_get_value(head, n/2 + 1));
00179 
00180   return (median);
00181 }
 | 
| 
 | ||||||||||||
| 
 Definition at line 122 of file ranks.c. References node::d, node::fval, node::next, and r. Referenced by calc_stat(), rank_array(), and rank_darray(). 
 | 
| 
 | ||||||||||||
| 
 Definition at line 146 of file ranks.c. References node::d, node::fval, and node::next. Referenced by node_get_median(). 
 | 
| 
 | ||||||||||||
| 
 Definition at line 70 of file ranks.c. Referenced by node_addvalue(). 
 | 
| 
 | ||||||||||||
| 
 Definition at line 191 of file ranks.c. References i, list_delete(), malloc, MTEST, node_addvalue(), and node_get_rank(). Referenced by calc_stat(). 
 00196 {
00197   int i;                             /* array index */
00198   node * xhead = NULL;               /* pointer to list of sorted values */
00199   float * rarray = NULL;             /* array of ranks */
00200 
00201 
00202   /*----- Allocate memory for array of ranks -----*/
00203   rarray = (float *) malloc (sizeof(float) * n);    MTEST (rarray); 
00204 
00205 
00206   /*----- Enter and sort original data  -----*/
00207   for (i = 0;  i < n;  i++)
00208     node_addvalue (&xhead, xarray[i]); 
00209 
00210 
00211   /*----- Get ranks of data -----*/
00212   for (i = 0;  i < n;  i++)
00213     rarray[i] = node_get_rank (xhead, xarray[i]);
00214 
00215 
00216   /*----- Deallocate memory -----*/
00217   list_delete (&xhead);
00218 
00219 
00220   /*----- Return array of ranks -----*/
00221   return (rarray);
00222 }
 | 
| 
 | ||||||||||||
| 
 Definition at line 232 of file ranks.c. References i, list_delete(), malloc, MTEST, node_addvalue(), and node_get_rank(). Referenced by init_delay(), init_regression_analysis(), and regression_analysis(). 
 00237 {
00238   int i;                             /* array index */
00239   node * xhead = NULL;               /* pointer to list of sorted values */
00240   float * rarray = NULL;             /* array of ranks */
00241 
00242 
00243   /*----- Allocate memory for array of ranks -----*/
00244   rarray = (float *) malloc (sizeof(float) * n);    MTEST (rarray); 
00245 
00246 
00247   /*----- Enter and sort original data  -----*/
00248   for (i = 0;  i < n;  i++)
00249     node_addvalue (&xhead, (float) darray[i]); 
00250 
00251 
00252   /*----- Get ranks of data -----*/
00253   for (i = 0;  i < n;  i++)
00254     rarray[i] = node_get_rank (xhead, (float) darray[i]);
00255 
00256 
00257   /*----- Deallocate memory -----*/
00258   list_delete (&xhead);
00259 
00260 
00261   /*----- Return array of ranks -----*/
00262   return (rarray);
00263 }
 | 
 
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
 
 
 
 
       
	   
	   
	   
	  