#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:60000000")
using namespace std;
const long double eps = 1e-9;
const int inf = (1 << 30) - 1;
const long long inf64 = ((long long)1 << 62) - 1;
const long double pi = 3.1415926535897932384626433832795;
template <class T>
T sqr(T x) {
  return x * x;
}
long double xp, yp, vp, R;
long double x, y, v, r;
long double dist(long double x1, long double Y1HUI, long double x2,
                 long double y2) {
  return sqrt(sqr(x1 - x2) + sqr(Y1HUI - y2));
}
long double prod(long double x1, long double Y1HUI, long double x2,
                 long double y2) {
  return x1 * x2 + Y1HUI * y2;
}
long double len(long double x, long double y) { return dist(x, y, 0, 0); }
long double get_ang(long double x1, long double Y1HUI, long double x2,
                    long double y2) {
  return acos(prod(x1, Y1HUI, x2, y2) / len(x1, Y1HUI) / len(x2, y2));
}
bool check(long double t) {
  long double ang0 = t * vp / R;
  long double cx = xp * cos(ang0) - yp * sin(ang0);
  long double cy = xp * sin(ang0) + yp * cos(ang0);
  if (dist(cx, cy, x, y) < eps) return 1;
  bool per = 0;
  long double A = y - cy;
  long double B = cx - x;
  long double C = -A * x - B * y;
  if (fabs(C) / sqrt(A * A + B * B) < r)
    if (prod(0 - cx, 0 - cy, x - cx, y - cy) > 0 &&
        prod(0 - x, 0 - y, cx - x, cy - y) > 0)
      per = 1;
  if (!per) return dist(x, y, cx, cy) < t * v;
  long double d = sqrt((dist(0, 0, x, y) - r) * (dist(0, 0, x, y) + r));
  long double cd = sqrt((dist(0, 0, cx, cy) - r) * (dist(0, 0, cx, cy) + r));
  long double ang = pi - get_ang(0 - cx, 0 - cy, x - cx, y - cy) -
                    get_ang(0 - x, 0 - y, cx - x, cy - y);
  long double ang1 = acos(r / len(x, y));
  long double ang2 = acos(r / len(cx, cy));
  ang -= ang1 + ang2;
  long double D = d + cd + r * ang;
  return D < t * v;
}
int main() {
  cin >> xp >> yp >> vp;
  cin >> x >> y >> v >> r;
  R = sqrt(xp * xp + yp * yp);
  long double l = 0;
  long double r = 1e9;
  for (int i = 0; i < (int)(200); i++) {
    long double m = (l + r) / 2.;
    if (check(m))
      r = m;
    else
      l = m;
  }
  l = (l + r) / 2.;
  cout.precision(12);
  cout << fixed << l << endl;
  return 0;
}
