public static DateTimeLogicWrapper timepointOf$Computation(IntegerWrapper yy, IntegerWrapper mm, IntegerWrapper dd, IntegerWrapper hr, IntegerWrapper min, NumberWrapper sec, Stella_Object tz) {
    { Stella_Object yyValue = Logic.valueOf(yy);
      Stella_Object mmValue = Logic.valueOf(mm);
      Stella_Object ddValue = Logic.valueOf(dd);
      Stella_Object hrValue = Logic.valueOf(hr);
      Stella_Object minValue = Logic.valueOf(min);
      Stella_Object secValue = Logic.valueOf(sec);
      Stella_Object tzValue = Logic.valueOf(tz);
      int year = Timepoint.helpGetInteger(yyValue);
      int month = Timepoint.helpGetInteger(mmValue);
      int day = Timepoint.helpGetInteger(ddValue);
      int hour = Timepoint.helpGetInteger(hrValue);
      int minute = Timepoint.helpGetInteger(minValue);
      double secondFloat = Timepoint.helpGetFloat(secValue);
      double zone = Timepoint.helpGetTimezone(tzValue);
      int second = 0;
      DateTimeLogicWrapper tp = null;

      if ((year != Stella.NULL_INTEGER) &&
          ((month != Stella.NULL_INTEGER) &&
           ((day != Stella.NULL_INTEGER) &&
            ((hour != Stella.NULL_INTEGER) &&
             ((minute != Stella.NULL_INTEGER) &&
              ((secondFloat != Stella.NULL_FLOAT) &&
               (zone != Stella.NULL_FLOAT))))))) {
        second = Native.floor(secondFloat);
        tp = Timepoint.wrapDateTime(CalendarDate.makeDateTime(year, month, day, hour, minute, second, Native.floor(1000 * (secondFloat - second)), zone));
      }
      return (tp);
    }
  }