 (p1-split(project_point_on_circle(p1,D).Normalized)).Length  ).toFixed(2),
      beta = ()=>angle(X,Y).toFixed(2); 
  
  
  var round = (X)=>{ while(X.call) X=X();
       var nix      = X^ei, 
           r        = ((X<<X).s/(nix<<nix).s)**.5,
           attitude = (nix<<(ei^eo)).Normalized,
           pos      = X/nix;
       pos = pos/(-ei<<pos);     
       if (X.Blade(2).VLength>0.00001 && r) return pos+r*attitude; //[pos+attitude,pos-attitude];
       return pos;
  }
  
  //gav(D);
  //gav(pp1);
  
//