#include <bits/stdc++.h>
using namespace std;
int xp, yp, vp, x, y, v, R;
double A, rr;
struct point {
  long double x, y;
};
long double mult(point a, point b) { return a.x * b.y - a.y * b.x; }
long double len(point a, point b) {
  return sqrt(((a.x - b.x) * (a.x - b.x)) + ((a.y - b.y) * (a.y - b.y)));
}
point sline(point a, point c, long double r, int sign) {
  long double ao = len(a, c);
  long double ac = (ao * ao - r * r) / ao;
  long double cd = sqrt(ac / ao) * r;
  point v;
  v.x = c.x - a.x;
  v.y = c.y - a.y;
  point D;
  D.x = a.x + v.x * ac / ao + sign * v.y * cd / ao;
  D.y = a.y + v.y * ac / ao - sign * v.x * cd / ao;
  return D;
}
double LLen(double x1, double stupid_cmath, double x2, double y2, double x,
            double y, double r) {
  point a, b;
  a.x = x1;
  a.y = stupid_cmath;
  b.x = x2;
  b.y = y2;
  point v, v1;
  v.x = b.x - a.x;
  v.y = b.y - a.y;
  v1.x = x - x1;
  v1.y = y - stupid_cmath;
  long double h = mult(v, v1) / len(a, b);
  if (((h) < 0 ? -(h) : (h)) >= r) return len(a, b);
  long double Len = len(a, b);
  int sign = ((h) < 0 ? -1 : ((h) > 0 ? 1 : 0));
  x1 = x + sign * v.y * ((h) < 0 ? -(h) : (h)) / Len;
  stupid_cmath = y - sign * v.x * ((h) < 0 ? -(h) : (h)) / Len;
  long double t;
  if (((v.x) < 0 ? -(v.x) : (v.x)) > (0.00000001)) {
    t = (x1 - a.x) / v.x;
  } else {
    t = (stupid_cmath - a.y) / v.y;
  }
  if (t < 0 || t > 1) return Len;
  point c;
  c.x = x;
  c.y = y;
  point A = sline(
            a, c, r,
            ((h + (0.00000001)) < 0 ? -1 : ((h + (0.00000001)) > 0 ? 1 : 0))),
        B = sline(
            b, c, r,
            -((h + (0.00000001)) < 0 ? -1 : ((h + (0.00000001)) > 0 ? 1 : 0)));
  long double res = len(a, A) + len(B, b);
  A.x -= c.x;
  A.y -= c.y;
  B.x -= c.x;
  B.y -= c.y;
  t = (A.x * B.x + A.y * B.y) / (sqrt(((A.x) * (A.x)) + ((A.y) * (A.y))) *
                                 sqrt(((B.x) * (B.x)) + ((B.y) * (B.y))));
  res += acos(t) * r;
  return res;
}
bool f(double t) {
  double a = t * vp / rr;
  double x1, stupid_cmath;
  x1 = rr * cos(A + a);
  stupid_cmath = rr * sin(A + a);
  double l = LLen(x, y, x1, stupid_cmath, 0, 0, R), L = t * v;
  if (l > L) return false;
  return true;
}
int main() {
  cin >> xp >> yp >> vp >> x >> y >> v >> R;
  double l = 0, r = (2147483647), m;
  rr = sqrt(0.0 + ((xp) * (xp)) + ((yp) * (yp)));
  A = acos(xp / rr);
  if (yp < 0) A = -A;
  while (((r - l) < 0 ? -(r - l) : (r - l)) > (0.00000001)) {
    m = (l + r) / 2;
    if (f(m))
      r = m;
    else
      l = m;
  }
  printf("%.8lf", l);
  return 0;
}
