#include <bits/stdc++.h>
using namespace std;
double xp, yp, vp, x, y, v, r, xf, yf;
double R;
double dist(double x, double y, double xx, double yy) {
  return sqrt(pow(x - xx, 2.0) + pow(y - yy, 2.0));
}
double prod(double x, double y, double xx, double yy) {
  return x * xx + y * yy;
}
const double pi = acos(-1);
const double eps = 1e-9;
double check(double time) {
  double p =
      2 * pi * ((vp * time / (2 * pi * R)) - floor(vp * time / (2 * pi * R)));
  double ang = atan2(yp, xp) + 2 * pi;
  ang += p;
  xf = R * cos(ang);
  yf = R * sin(ang);
  double x_2 = x - xf;
  double y_2 = y - yf;
  double tmp = dist(0, 0, x_2, y_2);
  double al =
      prod(-xf, -yf, x_2, y_2) / (dist(0, 0, xf, yf) * dist(0, 0, x_2, y_2));
  double ll = fabs(dist(0, 0, xf, yf) * al);
  double h = sqrt(pow(dist(0, 0, xf, yf), 2.0) - ll * ll);
  if (h >= r || prod(-x, -y, -x_2, -y_2) < 0 || prod(x_2, y_2, -xf, -yf) < 0) {
    return dist(xf, yf, x, y);
  }
  double al_2 =
      acos(prod(xf, yf, x, y) / (dist(0, 0, xf, yf) * dist(0, 0, x, y)));
  double al_3, al_4;
  double d_1 = sqrt(pow(dist(0, 0, xf, yf), 2.0) - r * r);
  double d_2 = sqrt(pow(dist(0, 0, x, y), 2.0) - r * r);
  al_3 = acos(r / dist(0, 0, xf, yf));
  al_4 = acos(r / dist(0, 0, x, y));
  al_2 -= al_3;
  al_2 -= al_4;
  return d_1 + d_2 + al_2 * r;
}
int main() {
  cin >> xp >> yp >> vp;
  cin >> x >> y >> v >> r;
  R = sqrt(pow(xp, 2.0) + pow(yp, 2.0));
  double left = 0.0;
  double right = 1e10;
  for (int i = 0; i < 200; i++) {
    double mid = (left + right) / 2.0;
    if (v * mid >= check(mid))
      right = mid;
    else
      left = mid;
  }
  printf("%.12lf\n", left);
  return 0;
}
