#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 = 1e+10;
  double lower = 0;
  double angle = acos(xp / R);
  if (yp < 0) angle = -angle;
  while (upper - lower > 1e-12) {
    double mid = (upper + lower) / 2;
    double x2, y2;
    x2 = R * cos(angle + mid * vp / R);
    y2 = R * sin(angle + mid * vp / R);
    double l1, l2, l3, l;
    l1 = x2 * x2 + y2 * y2;
    l2 = x * x + y * y;
    l3 = (x2 - x) * (x2 - x) + (y2 - y) * (y2 - y);
    l = sqrt(l1) * sin(acos((l1 + l3 - l2) / (2 * sqrt(l1) * sqrt(l3))));
    double a = acos(r / sqrt(l1)), b = acos(r / sqrt(l2));
    double c = acos((l1 + l2 - l3) / (2 * sqrt(l1) * sqrt(l2)));
    if (r + l3 <= max(l1, l2) || l - r >= 0) {
      if (sqrt(l3) <= v * mid) {
        upper = mid;
      } else
        lower = mid;
    } else {
      double len = (c - a - b) * r + sqrt(l1 - r * r) + sqrt(l2 - r * r);
      if (len > v * mid)
        lower = mid;
      else
        upper = mid;
    }
  }
  printf("%.9lf\n", upper);
  return 0;
}
