#include <bits/stdc++.h>
using namespace std;
const int mod = (int)1e9 + 7;
const int inf = (int)1e9;
const int base = 10;
int main() {
  int xp, yp, vp, x, y, v, r;
  cin >> xp >> yp >> vp >> x >> y >> v >> r;
  const long double pi = acosl(0) * (long double)2;
  long double fi = atan2l(yp, xp);
  long double R = sqrtl((long double)xp * xp + (long double)yp * yp);
  long double w = (long double)vp / R;
  long double le = 0, ri = 1e9;
  for (int i = 0; i < 1000000; i++) {
    long double t = (le + ri) / 2;
    long double x1, y1;
    x1 = R * cosl(w * t + fi);
    y1 = R * sinl(w * t + fi);
    long double d1 = sqrtl((long double)x * x + (long double)y * y);
    long double d2 = sqrtl((long double)x1 * x1 + (long double)y1 * y1);
    long double c = sqrtl((x1 - x) * (x1 - x) + (y1 - y) * (y1 - y));
    long double a = (d1 * d1 + c * c - d2 * d2) / (2 * d1 * c);
    long double b = (d2 * d2 + c * c - d1 * d1) / (2 * d2 * c);
    long double S = fabsl(x1 * y - x * y1);
    long double h = S / c;
    long double cnt;
    if (h < r && a > 0 && b > 0) {
      long double p1 = sqrtl(d1 * d1 - (long double)r * r);
      long double p2 = sqrtl(d2 * d2 - (long double)r * r);
      long double u = acosl((d1 * d1 + d2 * d2 - c * c) / (2 * d1 * d2));
      a = acosl(r / d2);
      b = acosl(r / d1);
      if (u < a + b) u = pi - u;
      long double d = (u - a - b) * r;
      cnt = (d + p1 + p2) / v;
    } else
      cnt = c / v;
    if (t >= cnt)
      ri = t;
    else
      le = t;
  }
  cout.precision(10);
  cout << fixed << ri;
  return 0;
}
