/* (non-Javadoc)
@see org.joml.Vector3ic#sub(org.joml.Vector3ic, org.joml.Vector3i)
5026
public Vector3i sub(Vector3ic v, Vector3i dest) {
        dest.x = x - v.x();
        dest.y = y - v.y();
        dest.z = z - v.z();
        return dest;
    }
1313134
public static <T> List<T> sub(Collection<T> collection, int start, int end) {
		return sub(collection, start, end, 1);
	}
378413
func Sub(a, b *T) T {
	if a[3] == b[3] {
		return T{a[0] - b[0], a[1] - b[1], a[2] - b[2], 1}
	} else {
		a3 := a.Vec3DividedByW()
		b3 := b.Vec3DividedByW()
		return T{a3[0] - b3[0], a3[1] - b3[1], a3[2] - b3[2], 1}
	}
}
941952
public void sub(Vector3d v1) {
        x -= v1.x;
        y -= v1.y;
        z -= v1.z;
    }
614822
public Vector4f sub(float x, float y, float z, float w, Vector4f dest) {
        dest.x = this.x - x;
        dest.y = this.y - y;
        dest.z = this.z - z;
        dest.w = this.w - w;
        return dest;
    }
460720
public static double sub(Double v1, Double v2) {
		return sub((Number) v1, (Number) v2).doubleValue();
	}
785085
public Vector3d sub(Vector3dc v, Vector3d dest) {
        dest.x = x - v.x();
        dest.y = y - v.y();
        dest.z = z - v.z();
        return dest;
    }
1175306
public void addSubtype(String subtype) {
    if(!StringUtils.isBlank(subtype) && !subtypes.contains(subtype.trim())) {
      subtypes.add(subtype.trim());
    }
  }
1222207
public Map<String, Object> sub(Map<String, Object> data, String prefix) {
    return sub(data, prefix, null, true);
  }
548390
public Vector4i sub(Vector4ic v, Vector4i dest) {
        return sub(v.x(), v.y(), v.z(), v.w(), dest);
    }
589521
public static <T> List<T> sub(Collection<T> list, int start, int end, int step) {
		if (list == null || list.isEmpty()) {
			return null;
		}

		return sub(new ArrayList<T>(list), start, end, step);
	}
1368242
public static Map<String, String> getSubmap(Map<String, String> mapIn, String subkey) {
        if (mapIn == null || mapIn.isEmpty()) {
            return Collections.emptyMap();
        }
        // Get map sub-element.
        return mapIn.entrySet().stream()
                .filter(entry -> entry.getKey().toLowerCase().startsWith(subkey.toLowerCase()))
                .map(entry -> {
                    String newKey = entry.getKey().substring(subkey.length(), entry.getKey().length());
                    return new AbstractMap.SimpleImmutableEntry<>(newKey, entry.getValue());
                })
                .collect(Collectors.toMap(Entry::getKey, Entry::getValue));
    }
1357920
public Vector2f sub(Vector2fc v, Vector2f dest) {
        dest.x = x - v.x();
        dest.y = y - v.y();
        return dest;
    }
430325
public final void fsub(Mem src)
  {
    assert(src.size() == 4 || src.size() == 8);
    emitX86(INST_FSUB, src);
  }
62991
public void subDivide() {
        MemoryWorkspace workspace =
                workspaceMode == WorkspaceMode.NONE ? new DummyWorkspace()
                        : Nd4j.getWorkspaceManager().getWorkspaceForCurrentThread(
                        workspaceConfigurationExternal,
                        workspaceExternal);
        try (MemoryWorkspace ws = workspace.notifyScopeEntered()) {

            INDArray newCorner = Nd4j.create(D);
            INDArray newWidth = Nd4j.create(D);
            for (int i = 0; i < numChildren; i++) {
                int div = 1;
                for (int d = 0; d < D; d++) {
                    newWidth.putScalar(d, .5 * boundary.width(d));
                    if ((i / div) % 2 == 1)
                        newCorner.putScalar(d, boundary.corner(d) - .5 * boundary.width(d));
                    else
                        newCorner.putScalar(d, boundary.corner(d) + .5 * boundary.width(d));
                    div *= 2;
                }

                children[i] = new SpTree(this, data, newCorner, newWidth, indices);

            }

            // Move existing points to correct children
            for (int i = 0; i < size; i++) {
                boolean success = false;
                for (int j = 0; j < this.numChildren; j++)
                    if (!success)
                        success = children[j].insert(index[i]);

                index[i] = -1;
            }

            // Empty parent node
            size = 0;
            isLeaf = false;
        }
    }
300683
public static INDArray sub(INDArray x, INDArray y, INDArray z, int... dimensions) {
        if(dimensions == null || dimensions.length == 0) {
            validateShapesNoDimCase(x,y,z);
            return Nd4j.getExecutioner().exec(new OldSubOp(x,y,z));
        }

        return Nd4j.getExecutioner().exec(new BroadcastSubOp(x,y,z,dimensions));
    }
1016869
public Point2 sub(Point2 that) {
    return new Point2(x - that.x, y - that.y);
  }