#include <bits/stdc++.h>
using namespace std;
const double PI = acos(-1.0);
double xp, yp, vp, x, y, v, r;
double d, R, th0;
double getdis(double theta) {
  double xx = R * cos(theta), yy = R * sin(theta);
  if (yy < 0) yy = -yy;
  double th1 = acos(r / d);
  double th2 = acos(r / R);
  double ths = PI - atan2(yy, xx - d);
  double thh = atan2(yy, xx);
  if (ths >= PI / 2 - th1 || thh < th1) {
    return sqrt(yy * yy + (xx - d) * (xx - d));
  } else {
    double d1 = d * sin(th1);
    double d2 = R * sin(th2);
    double darc = r * (thh - th1 - th2);
    return d1 + d2 + darc;
  }
}
int main() {
  while (scanf("%lf%lf%lf%lf%lf%lf%lf", &xp, &yp, &vp, &x, &y, &v, &r) == 7) {
    R = sqrt(xp * xp + yp * yp);
    d = sqrt(x * x + y * y);
    th0 = atan2(yp, xp) - atan2(y, x);
    double l = 0, r = 1E6;
    while (r - l > 1E-10) {
      double m = (l + r) / 2;
      double theta = th0 + m * vp / R;
      double tm = getdis(theta) / v;
      if (tm < m)
        r = m;
      else
        l = m;
    }
    printf("%.10f\n", l);
  }
  return 0;
}
