#include <bits/stdc++.h>
const double pi = acos(-1);
const int MOD = 1e9 + 7;
const int INF = 1e9 + 7;
const int MAXN = 1e6 + 5;
const double eps = 1e-9;
using namespace std;
double xp, yp, vp, x, y, v, r, R;
double P, len, L;
pair<double, double> pos[2];
double f(double dphi) {
  if (dphi > pi) dphi = 2 * pi - dphi;
  if (dphi > P) return ((dphi - P) * r + L) / v;
  return sqrt(len * len + R * R - 2 * len * R * cos(dphi)) / v;
}
int main() {
  scanf("%lf %lf %lf %lf %lf %lf %lf", &xp, &yp, &vp, &x, &y, &v, &r);
  double lo = 0, hi = 1e18;
  R = hypot(xp, yp);
  double omega = vp / R;
  double phi0 = 0;
  if (x * yp == xp * y) {
    if (x * xp < 0 || y * yp < 0) phi0 = pi;
  } else {
    phi0 = acos((x * xp + y * yp) / (hypot(xp, yp) * hypot(x, y)));
    if (x * yp < xp * y) phi0 = 2 * pi - phi0;
  }
  len = hypot(x, y);
  L = sqrt(len * len - r * r) + sqrt(R * R - r * r);
  P = acos(r / len) + acos(r / R);
  hi = fabs(R - len) / v + 2 * pi * R / vp;
  while (abs(hi - lo) > eps) {
    double T = (lo + hi) / 2.;
    double dphi = fmod(omega * T + phi0, 2 * pi);
    if (dphi < 0) dphi += 2 * pi;
    if (f(dphi) < T)
      hi = T;
    else
      lo = T;
  }
  printf("%.20f\n", lo);
  return 0;
}
