| | |
| | | sigma = sqrt(variance_array(a,n)); |
| | | } |
| | | |
| | | void translate_array(double *a, int n, double s) |
| | | { |
| | | int i; |
| | | for(i = 0; i < n; ++i){ |
| | | a[i] += s; |
| | | } |
| | | } |
| | | |
| | | void scale_array(double *a, int n, double s) |
| | | { |
| | | int i; |
| | | for(i = 0; i < n; ++i){ |
| | | a[i] *= s; |
| | | } |
| | | } |
| | | int max_index(double *a, int n) |
| | | { |
| | | if(n <= 0) return -1; |
| | | int i, max_i = 0; |
| | | double max = a[0]; |
| | | for(i = 1; i < n; ++i){ |
| | | if(a[i] > max){ |
| | | max = a[i]; |
| | | max_i = i; |
| | | } |
| | | } |
| | | return max_i; |
| | | } |
| | | |
| | | double rand_normal() |
| | | { |
| | | int i; |
| | |
| | | for(i = 0; i < 12; ++i) sum += (double)rand()/RAND_MAX; |
| | | return sum-6.; |
| | | } |
| | | |
| | | double **one_hot_encode(double *a, int n, int k) |
| | | { |
| | | int i; |
| | | double **t = calloc(n, sizeof(double*)); |
| | | for(i = 0; i < n; ++i){ |
| | | t[i] = calloc(k, sizeof(double)); |
| | | int index = (int)a[i]; |
| | | t[i][index] = 1; |
| | | } |
| | | return t; |
| | | } |
| | | |