#include <bits/stdc++.h>
using namespace std;
double xp, yp, vp;
double x, y, v, r;
const double pi = acos(-1);
double cal(double x0, double y0, double x1, double y1) {
  double ji = x0 * x1 + y0 * y1;
  double L0 = sqrt(x0 * x0 + y0 * y0);
  double L1 = sqrt(x1 * x1 + y1 * y1);
  double cosA = ji / L0 / L1;
  double A = acos(cosA);
  double s = L1 * L0 * sin(A) / (double)2;
  double l = sqrt((x0 - x1) * (x0 - x1) + (y0 - y1) * (y0 - y1));
  double dis = s * (double)2 / l;
  if (dis >= r || (L0 * L0 + l * l - L1 * L1) < 0 ||
      (L1 * L1 + l * l - L0 * L0) < 0)
    return l;
  double a0 = acos(r / L0);
  double a1 = acos(r / L1);
  double Lsum = r * (A - a0 - a1) + L0 * sin(a0) + L1 * sin(a1);
  return Lsum;
}
bool s(double t) {
  double R = sqrt(xp * xp + yp * yp);
  double a = acos(xp / R);
  if (yp < 0) a = -a + 2 * pi;
  a = a + t * vp / R;
  double x0 = R * cos(a);
  double y0 = R * sin(a);
  double t0 = cal(x0, y0, x, y) / v;
  if (t0 <= t)
    return true;
  else
    return false;
}
int main() {
  cin >> xp >> yp >> vp;
  cin >> x >> y >> v >> r;
  double l = 0, r = 1e4, mid;
  while (r - l > 1e-9) {
    mid = (r + l) / (double)2;
    if (s(mid))
      r = mid;
    else
      l = mid;
  }
  printf("%.10lf", mid);
  return 0;
}
