#include <bits/stdc++.h>
using namespace std;
double fix(double q) {
  return q - floor(q / (2 * 3.141592653589793238462)) *
                 (2 * 3.141592653589793238462);
}
int main() {
  int xp0, yp0, vp, x, y, v, rs;
  scanf("%d%d%d%d%d%d%d", &xp0, &yp0, &vp, &x, &y, &v, &rs);
  double r = hypot(x, y), q = atan2(y, x);
  double rp = hypot(xp0, yp0), qp0 = atan2(yp0, xp0), wp = vp / rp;
  double arc = 3.141592653589793238462 - asin(rs / r) - asin(rs / rp);
  double tans = sqrt(r * r - rs * rs) + sqrt(rp * rp - rs * rs);
  double ans = 0;
  for (double del = 1e13; del; del /= 2) {
    double t = ans + del;
    double qp = fix(qp0 + wp * t), xp = rp * cos(qp), yp = rp * sin(qp);
    double dq = min(fix(qp - q), fix(q - qp));
    double dist = dq <= arc ? hypot(xp - x, yp - y) : tans + (dq - arc) * rs;
    if (dist > t * v) ans = t;
  }
  printf("%.9lf\n", ans);
  return 0;
}
