#include <bits/stdc++.h>
using namespace std;
double dimension(pair<double, double> &pt1, pair<double, double> &pt2,
                 pair<double, double> &pt3) {
  return (pt2.first - pt1.first) * (pt3.second - pt1.second) -
         (pt3.first - pt1.first) * (pt2.second - pt1.second);
}
double sc_pr(pair<double, double> &pt1, pair<double, double> &pt2,
             pair<double, double> &pt3) {
  return (pt2.first - pt1.first) * (pt3.first - pt1.first) +
         (pt2.second - pt1.second) * (pt3.second - pt1.second);
}
double dis(pair<double, double> &pt1, pair<double, double> &pt2) {
  return (pt2.first - pt1.first) * (pt2.first - pt1.first) +
         (pt2.second - pt1.second) * (pt2.second - pt1.second);
}
int main() {
  pair<double, double> a, c, b, o;
  double vp, v, r, R2, tmp, f, t, tlim = 100000., p, q, R, eps = 1e-9, al, d2,
                                  bt, t2, v1, v2;
  cin >> c.first >> c.second >> vp >> a.first >> a.second >> v >> r;
  R2 = c.first * c.first + c.second * c.second;
  R = sqrt(R2 + 0.);
  o.first = o.second = 0;
  for (p = 0., q = tlim; p + eps < q;) {
    t = (p + q) / 2.;
    al = vp * t / R;
    b.first = c.first * cos(al) - c.second * sin(al);
    b.second = c.second * cos(al) + c.first * sin(al);
    f = 0;
    if (sc_pr(a, o, b) > 0 && sc_pr(b, a, o) > 0) {
      tmp = dimension(o, b, a);
      v1 = tmp * tmp;
      v2 = r * r * dis(a, b);
      if (v1 < v2) {
        f = 1;
        bt = acos(sc_pr(o, a, b) / sqrt(dis(a, o) * dis(b, o) + 0.)) -
             acos(r / sqrt(dis(a, o) + 0.)) - acos(r / R);
        d2 = sqrt(a.first * a.first + a.second * a.second - r * r + 0.) +
             sqrt(R2 - r * r + 0.) + r * bt;
      }
    }
    if (!f) d2 = sqrt(dis(a, b) + 0.);
    t2 = d2 / v;
    if (t2 < t)
      q = t;
    else
      p = t;
  }
  printf("%.9lf", t);
}
