#include<bits/stdc++.h>
#define rint register int
#define rep(i,a,b) for (rint i=(a),_E=(b); i<=_E; ++i)
#define per(i,a,b) for (rint i=(a),_E=(b); i>=_E; --i)
#define REP(i,n) for (rint i=0,_E=(n); i<_E; ++i)
#define pb push_back
#define cmin(x,y) (y<x?x=y:0)
#define cmax(x,y) (y>x?x=y:0)
using namespace std;
typedef pair<int,int> pii;
typedef vector<int> vi;
typedef long double ld;
typedef long long ll;
const ld pi = acos(-1);
ld x[3], y[3], l, r, mid;
ld a, b, c, A, B;
ld dist(int p, int q) {
return sqrt((x[p] - x[q]) * (x[p] - x[q])
+ (y[p] - y[q]) * (y[p] - y[q]));
}
bool check(ld r) {
ld l = 2 * r;
l += r / tan(A);
l += r / tan(B);
return l <= c;
}
int main() {
rep (i, 0, 2) cin >> x[i] >> y[i];
a = dist(0, 1);
b = dist(1, 2);
c = dist(2, 0);
if (a > c) swap(a, c);
if (b > c) swap(b, c);
A = 0.5 * acos((a * a + c * c - b * b) / (2 * a * c));
B = 0.5 * acos((b * b + c * c - a * a) / (2 * b * c));
//printf("%.10Lf %.10Lf %.10Lf %.10Lf %.10Lf\n", a, b, c, A, B);
l = 0, r = 1000;
while (r - l > 1e-11) {
mid = (l + r) * 0.5;
if (check(mid)) l = mid;
else r = mid;
}
printf("%.10Lf\n", l);
return 0;
}