#include <bits/stdc++.h>
using namespace std;
double xp, yp, vp, x, y, v, r, rp;
struct pt {
  double x, y;
  pt operator-(const pt& p) { return {x - p.x, y - p.y}; }
};
pt her, me;
pt rot(pt p, double rad) {
  return {p.x * cos(rad) - p.y * sin(rad), p.x * sin(rad) + p.y * cos(rad)};
}
double dist(pt p1, pt p2) { return hypot(p1.x - p2.x, p1.y - p2.y); }
bool cli(pt o, pt b, double r) {
  pt d = b - o;
  double dr2 = d.x * d.x + d.y * d.y;
  double cross = o.x * b.y - o.y * b.x;
  double disc = r * r * dr2 - cross * cross;
  if (disc < 1e-8) return 0;
  pt i1 = {(cross * d.y + ((d.y < 0) ? -1 : 1) * d.x * sqrt(disc)) / dr2,
           (-cross * d.x + abs(d.y) * sqrt(disc)) / dr2};
  pt i2 = {(cross * d.y - ((d.y < 0) ? -1 : 1) * d.x * sqrt(disc)) / dr2,
           (-cross * d.x - abs(d.y) * sqrt(disc)) / dr2};
  if (i1.x < min(o.x, b.x) - 1e-8 || i1.x > max(o.x, b.x) + 1e-8 ||
      i1.y < min(o.y, b.y) - 1e-8 || i2.y > max(o.y, b.y) + 1e-8)
    return 0;
  return 1;
}
bool ok(double t) {
  double fspin = (2 * 3.14159265358979323846264338327950288419716939 * rp) / vp;
  double ang = 2 * 3.14159265358979323846264338327950288419716939 *
               ((t / fspin) - floor(t / fspin));
  pt herr = rot(her, ang);
  if (!cli(me, herr, r)) return dist(me, herr) < t * v;
  double dme = dist({0, 0}, me), dher = dist({0, 0}, herr);
  double tme = sqrt(dme * dme - r * r), ther = sqrt(dher * dher - r * r);
  double ttl = tme + ther;
  double ame = atan2(me.y, me.x), aher = atan2(herr.y, herr.x);
  if (ame < 1e-8) ame += 2 * 3.14159265358979323846264338327950288419716939;
  if (aher < 1e-8) aher += 2 * 3.14159265358979323846264338327950288419716939;
  double ftheta =
      min(fabs(ame - aher), 2 * 3.14159265358979323846264338327950288419716939 -
                                fabs(ame - aher));
  double theta = ftheta - acos(r / dme) - acos(r / dher);
  ttl += theta * r;
  return ttl < t * v;
}
double bs(double lo, double hi) {
  double mid = (hi + lo) / 2;
  if (fabs(lo - hi) < 1e-8) return mid;
  if (ok(mid)) return bs(lo, mid);
  return bs(mid, hi);
}
int main() {
  cin >> xp >> yp >> vp >> x >> y >> v >> r;
  her = {xp, yp};
  me = {x, y};
  rp = dist({0, 0}, her);
  cout << setprecision(10) << fixed << bs(0, 1e9) << endl;
  return 0;
}
