public static double approximate(Symbol instName, Symbol slotName) {
    instName = ((Symbol)(instName.permanentify()));
    slotName = ((Symbol)(slotName.permanentify()));
    { Surrogate slot = Logic.getDescription(slotName).surrogateValueInverse;

      if (Logic.floatFunctionP(slot)) {
        return (Logic.generateSlotApproximation(instName, slot));
      }
      else {
        {
          Stella.STANDARD_ERROR.nativeStream.println("ERROR " + slotName + " is not a function of type float or integer");
          return (0.0);
        }
      }
    }
  }