#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
using namespace std;
int main() {
  double xp, yp, vp, x, y, v, r, R;
  cin >> xp >> yp >> vp >> x >> y >> v >> r;
  R = sqrt(xp * xp + yp * yp);
  double upper = 10000000000;
  double lower = 0;
  double angle = acos(xp / R);
  if (yp < 0) {
    angle *= -1;
  }
  while (upper - lower > 1e-12) {
    double mid = (upper + lower) / 2;
    double x2, y2, l1, l2, l3, l;
    x2 = R * cos(angle + mid * vp / R);
    y2 = R * sin(angle + mid * vp / R);
    l1 = sqrt(x2 * x2 + y2 * y2);
    l2 = sqrt(x * x + y * y);
    l3 = sqrt((x2 - x) * (x2 - x) + (y2 - y) * (y2 - y));
    l = l1 * sin(acos((l1 * l1 + l3 * l3 - l2 * l2) / (2 * l1 * l3)));
    if (r + l3 * l3 <= max(l1 * l1, l2 * l2) || l - r >= 0) {
      if (l3 <= v * mid) {
        upper = mid;
      } else {
        lower = mid;
      }
    } else {
      double a, b, c, d, temp_l;
      a = acos(r / l1);
      b = acos(r / l2);
      c = acos((l1 * l1 + l2 * l2 - l3 * l3) / (2 * l1 * l2));
      temp_l =
          (c - (a + b)) * r + sqrt(l1 * l1 - r * r) + sqrt(l2 * l2 - r * r);
      if (temp_l > v * mid) {
        lower = mid;
      } else {
        upper = mid;
      }
    }
  }
  cout << setprecision(9) << upper << endl;
  return 0;
}
