Exemplo n.º 1
0
 internal static double SumSquaredDiffs(FloatArrayVector x, SparseFloatVector y)
 {
     double sum = 0;
     int xlen = x.Length;
     int ylen = y.indices.Length;
     int i = 0;
     int j = 0;
     while (i < xlen && j < ylen){
         if (i == y.indices[j]){
             double d = x.values[i++] - y.values[j++];
             sum += d*d;
         } else if (i > y.indices[j]){
             sum += y.values[j]*y.values[j];
             ++j;
         } else{
             sum += x.values[i]*x.values[i];
             ++i;
         }
     }
     while (i < xlen){
         sum += x.values[i]*x.values[i];
         ++i;
     }
     while (j < ylen){
         sum += y.values[j]*y.values[j];
         ++j;
     }
     return sum;
 }
Exemplo n.º 2
0
 internal static double Dot(FloatArrayVector x, SparseFloatVector y)
 {
     double sum = 0;
     int xlen = x.Length;
     int ylen = y.indices.Length;
     int i = 0;
     int j = 0;
     while (i < xlen && j < ylen){
         if (i == y.indices[j]){
             sum += x.values[i++]*y.values[j++];
         } else{
             if (i > y.indices[j]){
                 ++j;
             } else{
                 ++i;
             }
         }
     }
     return sum;
 }
Exemplo n.º 3
0
 internal static double SumSquaredDiffs(FloatArrayVector x, DoubleArrayVector y)
 {
     double sum = 0;
     for (int i = 0; i < x.Length; i++){
         double d = x.values[i] - y.values[i];
         sum += d*d;
     }
     return sum;
 }
Exemplo n.º 4
0
 internal static double SumSquaredDiffs(BoolArrayVector x, FloatArrayVector y)
 {
     double sum = 0;
     for (int i = 0; i < x.Length; i++){
         double d = y.values[i];
         if (x.values[i]){
             d -= 1;
         }
         sum += d*d;
     }
     return sum;
 }
Exemplo n.º 5
0
 internal static double Dot(BoolArrayVector x, FloatArrayVector y)
 {
     double sum = 0;
     for (int i = 0; i < x.Length; i++){
         if (x.values[i]){
             sum += y.values[i];
         }
     }
     return sum;
 }