functionDescs.add(new FunctionDesc("AREA", TapDataType.DOUBLE, "deg**2"));
functionDescs.add(new FunctionDesc("CENTROID", TapDataType.POINT));
functionDescs.add(new FunctionDesc("CIRCLE", TapDataType.CIRCLE));
functionDescs.add(new FunctionDesc("CONTAINS", TapDataType.INTEGER));
functionDescs.add(new FunctionDesc("COORD1", TapDataType.DOUBLE, "deg"));
functionDescs.add(new FunctionDesc("COORD2", TapDataType.DOUBLE, "deg"));
functionDescs.add(new FunctionDesc("COORDSYS", new TapDataType("char", "16*", null)));
functionDescs.add(new FunctionDesc("DISTANCE", TapDataType.DOUBLE, "deg"));
functionDescs.add(new FunctionDesc("INTERSECTS", TapDataType.INTEGER));
functionDescs.add(new FunctionDesc("INTERVAL", TapDataType.INTERVAL));
functionDescs.add(new FunctionDesc("POINT", TapDataType.POINT));
functionDescs.add(new FunctionDesc("POLYGON", TapDataType.POLYGON));
functionDescs.add(new FunctionDesc("ABS", TapDataType.FUNCTION_ARG));
functionDescs.add(new FunctionDesc("ACOS", TapDataType.DOUBLE, "radians"));
functionDescs.add(new FunctionDesc("ASIN", TapDataType.DOUBLE, "radians"));
functionDescs.add(new FunctionDesc("ATAN", TapDataType.DOUBLE, "radians"));
functionDescs.add(new FunctionDesc("ATAN2", TapDataType.DOUBLE, "radians"));
functionDescs.add(new FunctionDesc("CEILING", TapDataType.FUNCTION_ARG));
functionDescs.add(new FunctionDesc("COS", TapDataType.DOUBLE, "radians"));
functionDescs.add(new FunctionDesc("COT", TapDataType.DOUBLE, "radians"));
functionDescs.add(new FunctionDesc("DEGREES", TapDataType.DOUBLE, "deg"));
functionDescs.add(new FunctionDesc("EXP", TapDataType.DOUBLE));
functionDescs.add(new FunctionDesc("FLOOR", TapDataType.FUNCTION_ARG));
functionDescs.add(new FunctionDesc("LN", TapDataType.DOUBLE));
functionDescs.add(new FunctionDesc("LOG", TapDataType.DOUBLE));
functionDescs.add(new FunctionDesc("LOG10", TapDataType.DOUBLE));
functionDescs.add(new FunctionDesc("MOD", TapDataType.FUNCTION_ARG));