#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <cmath>
#include <set>
#include <map>
#include <queue>
#include <iomanip>
using namespace std;
#define rep(i,n) for(int i = 0;i<n;i++)
const long long MOD = 1000000007LL;
const string alpha = "abcdefghijklmnopqrstuvwxyz";
int main(){
    long double x1,x2,y1,y2,x3,y3;
    cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
    long double a,b,c;
    long double cosA,cosB,cosC;
    long double tanA2,tanB2,tanC2;
    a = sqrt(pow(x3-x2,2)+pow(y3-y2,2));
    c = sqrt(pow(x1-x2,2)+pow(y1-y2,2));
    b = sqrt(pow(x3-x1,2)+pow(y3-y1,2));
    //cout << a << " " << b << " " << c << endl;
    cosA = ((x2-x1)*(x3-x1)+(y2-y1)*(y3-y1))/(b*c);
    cosB = ((x1-x2)*(x3-x2)+(y1-y2)*(y3-y2))/(c*a);
    cosC = ((x2-x3)*(x1-x3)+(y2-y3)*(y1-y3))/(a*b);
    //cout << cosA << " " << cosB << " " << cosC << endl;
    tanA2 = sqrt((1-cosA)/(1+cosA));
    tanB2 = sqrt((1-cosB)/(1+cosB));
    tanC2 = sqrt((1-cosC)/(1+cosC));
    //cout << tanA2 << " " << tanB2 << " " << tanC2 << endl;
    long double ans = 0;
    ans = max(ans,c/(2+(1/tanA2)+(1/tanB2)));
    ans = max(ans,a/(2+(1/tanC2)+(1/tanB2)));
    ans = max(ans,b/(2+(1/tanA2)+(1/tanC2)));
    cout << setprecision(20) << ans << endl;
}