Procházet zdrojové kódy

Fix https://trac.osgeo.org/grass/changeset/52178

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@52179 15284696-431f-4ddb-bdfa-cd5b030d7da7
Glynn Clements před 13 roky
rodič
revize
4175cde628
2 změnil soubory, kde provedl 24 přidání a 30 odebrání
  1. 12 15
      raster/r.mapcalc/xnmedian.c
  2. 12 15
      raster/r.mapcalc/xnmode.c

+ 12 - 15
raster/r.mapcalc/xnmedian.c

@@ -74,19 +74,18 @@ int f_nmedian(int argc, const int *argt, void **args)
 	    CELL *a2 = &a[argc / 2];
 
 	    for (i = 0; i < columns; i++) {
-		int nv = 1;
+		int n = 0;
 
 		for (j = 0; j < argc; j++) {
 		    if (IS_NULL_C(&argv[j][i]))
 			continue;
-		    a[j] = argv[j][i];
-		    nv = 0;
+		    a[n++] = argv[j][i];
 		}
 
-		if (nv)
+		if (!n)
 		    SET_NULL_C(&res[i]);
 		else {
-		    qsort(a, argc, sizeof(CELL), icmp);
+		    qsort(a, n, sizeof(CELL), icmp);
 		    res[i] = (*a1 + *a2) / 2;
 		}
 	    }
@@ -102,19 +101,18 @@ int f_nmedian(int argc, const int *argt, void **args)
 	    FCELL *a2 = &a[argc / 2];
 
 	    for (i = 0; i < columns; i++) {
-		int nv = 1;
+		int n = 0;
 
 		for (j = 0; j < argc; j++) {
 		    if (IS_NULL_F(&argv[j][i]))
 			continue;
-		    a[j] = argv[j][i];
-		    nv = 0;
+		    a[n++] = argv[j][i];
 		}
 
-		if (nv)
+		if (!n)
 		    SET_NULL_F(&res[i]);
 		else {
-		    qsort(a, argc, sizeof(FCELL), fcmp);
+		    qsort(a, n, sizeof(FCELL), fcmp);
 		    res[i] = (*a1 + *a2) / 2;
 		}
 	    }
@@ -130,19 +128,18 @@ int f_nmedian(int argc, const int *argt, void **args)
 	    DCELL *a2 = &a[argc / 2];
 
 	    for (i = 0; i < columns; i++) {
-		int nv = 1;
+		int n = 0;
 
 		for (j = 0; j < argc; j++) {
 		    if (IS_NULL_D(&argv[j][i]))
 			continue;
-		    a[j] = argv[j][i];
-		    nv = 0;
+		    a[n++] = argv[j][i];
 		}
 
-		if (nv)
+		if (!n)
 		    SET_NULL_D(&res[i]);
 		else {
-		    qsort(a, argc, sizeof(DCELL), dcmp);
+		    qsort(a, n, sizeof(DCELL), dcmp);
 		    res[i] = (*a1 + *a2) / 2;
 		}
 	    }

+ 12 - 15
raster/r.mapcalc/xnmode.c

@@ -78,19 +78,18 @@ int f_nmode(int argc, const int *argt, void **args)
 	    CELL **argv = (CELL **) & args[1];
 
 	    for (i = 0; i < columns; i++) {
-		int nv = 1;
+		int n = 0;
 
 		for (j = 0; j < argc; j++) {
 		    if (IS_NULL_C(&argv[j][i]))
 			continue;
-		    value[j] = (double)argv[j][i];
-		    nv = 0;
+		    value[n++] = (double)argv[j][i];
 		}
 
-		if (nv)
+		if (!n)
 		    SET_NULL_C(&res[i]);
 		else
-		    res[i] = (CELL) mode(value, argc);
+		    res[i] = (CELL) mode(value, n);
 	    }
 	    return 0;
 	}
@@ -100,19 +99,18 @@ int f_nmode(int argc, const int *argt, void **args)
 	    FCELL **argv = (FCELL **) & args[1];
 
 	    for (i = 0; i < columns; i++) {
-		int nv = 1;
+		int n = 0;
 
 		for (j = 0; j < argc; j++) {
 		    if (IS_NULL_F(&argv[j][i]))
 			continue;
-		    value[j] = (double)argv[j][i];
-		    nv = 0;
+		    value[n++] = (double)argv[j][i];
 		}
 
-		if (nv)
+		if (!n)
 		    SET_NULL_F(&res[i]);
 		else
-		    res[i] = (FCELL) mode(value, argc);
+		    res[i] = (FCELL) mode(value, n);
 	    }
 	    return 0;
 	}
@@ -122,19 +120,18 @@ int f_nmode(int argc, const int *argt, void **args)
 	    DCELL **argv = (DCELL **) & args[1];
 
 	    for (i = 0; i < columns; i++) {
-		int nv = 1;
+		int n = 0;
 
 		for (j = 0; j < argc; j++) {
 		    if (IS_NULL_D(&argv[j][i]))
 			continue;
-		    value[j] = (double)argv[j][i];
-		    nv = 0;
+		    value[n++] = (double)argv[j][i];
 		}
 
-		if (nv)
+		if (!n)
 		    SET_NULL_D(&res[i]);
 		else
-		    res[i] = (DCELL) mode(value, argc);
+		    res[i] = (DCELL) mode(value, n);
 	    }
 	    return 0;
 	}