//洛谷P2571传送带
#include <bits/stdc++.h>
using namespace std;
const double esp=0.00001;
double xa,ya,xb,yb,xc,yc,xd,yd,q,p,r;
double count(double xe,double ye,double xf,double yf){
return ((sqrt((xe-xa)*(xe-xa)+(ye-ya)*(ye-ya)))/p)+
((sqrt((xf-xe)*(xf-xe)+(ye-yf)*(ye-yf)))/r)+
((sqrt((xd-xf)*(xd-xf)+(yd-yf)*(yd-yf)))/q);
}
double narrow(double x,double y){
double fcx=xc,fdx=xd,fcy=yc,fdy=yd,minn;
while(fabs(fcx-fdx)>esp||fabs(fcy-fdy)>esp){
double midx=(fcx+fdx)/2,midy=(fcy+fdy)/2;
double remidx=(midx+fdx)/2,remidy=(midy+fdy)/2;
double ans1=count(x,y,midx,midy),ans2=count(x,y,remidx,remidy);
if(ans1>ans2){
fcx=midx,fcy=midy;
}
else{
fdx=remidx,fdy=remidy;
}
minn=min(ans1,ans2);
}
return minn;
}
int main(){
cin>>xa>>ya>>xb>>yb>>xc>>yc>>xd>>yd>>p>>q>>r;
double fax=xa,fbx=xb,fay=ya,fby=yb,minn;
while(1){
double midx=(fax+fbx)/2,midy=(fay+fby)/2;
double remidx=(midx+fbx)/2,remidy=(midy+fby)/2;
double ans1=narrow(midx,midy),ans2=narrow(remidx,remidy);
if(ans1>ans2){
fax=midx,fay=midy;
}
else{
fbx=remidx,fby=remidy;
}
minn=min(ans1,ans2);
if(fabs(fax-fbx)<esp&&fabs(fay-fby)<esp){
break;
}
}
printf("%.2lf",minn);
return 0;
}