#include <bits/stdc++.h>
using namespace std;
const double pi = acos(-1);
double Ans, Ret;
double v, R, x1, Y1, x2, y2, r, xp, yp, vp;
void Find(double Time) {
  double a = Time * vp / R;
  x1 = cos(a) * xp - sin(a) * yp;
  Y1 = sin(a) * xp + cos(a) * yp;
  while (a >= 2 * pi) a -= 2 * pi;
}
double work(double x, double y) {
  double l = sqrt((x) * (x) + (y) * (y));
  Ret += sqrt((l) * (l) - (r) * (r));
  return acos(r / l);
}
bool Judge(double Time) {
  Find(Time);
  Ret = 0;
  double jiao = fabs(atan2(Y1, x1) - atan2(y2, x2));
  jiao = min(2 * pi - jiao, jiao);
  jiao -= work(x1, Y1);
  jiao -= work(x2, y2);
  if (jiao < 0)
    Ret = sqrt((x1 - x2) * (x1 - x2) + (Y1 - y2) * (Y1 - y2));
  else
    Ret += jiao * r;
  return Ret / v <= Time;
}
int main() {
  scanf("%lf%lf%lf", &xp, &yp, &vp);
  R = sqrt((xp) * (xp) + (yp) * (yp));
  scanf("%lf%lf%lf%lf", &x2, &y2, &v, &r);
  double l = 0, r = 10000000;
  while (r - l > 1e-10) {
    double mid = (l + r) / 2;
    if (Judge(mid))
      Ans = mid, r = mid;
    else
      l = mid;
  }
  printf("%.8lf\n", Ans);
}
