wrong calculation of incircles in tkz-euclide?

To me it seems that this is almost a duplicate of an earlier question, and the answer is, again, that I think that there are numerical instabilities in tkz-euclide. However, to my own embarrassment I have to admit that this is also true for one of my solutions presented there. In my solution (and I also think for tkz-euclide but my French is not sufficient to say this with certainty) the issue is that the on has to find the right quadrants, which I thought I did but apparently didn't. So I switched gears and used the determination of the center based on Cartesian coordinates, and there seems to be no issue.

\documentclass[tikz,border=5mm]{standalone}
\usetikzlibrary{calc}
\tikzset{incircle/.style n args={3}{%
insert path={
let \p1=($(#2)-(#1)$), \p2=($(#3)-(#1)$),\p3=($(#2)-(#3)$),
    \n1={0.5*(veclen(\x1,\y1)+veclen(\x2,\y2)+veclen(\x3,\y3))},
    \n2={sqrt(((\n1-veclen(\x1,\y1))/\n1))*sqrt((\n1-veclen(\x2,\y2))*(\n1-veclen(\x3,\y3)))},
    \n3={veclen(\x1,\y1)}, % length #1 -- #2
    \n4={veclen(\x2,\y2)}, % length #1 -- #3
    \n5={veclen(\x3,\y3)}, % length #2 -- #3
    \n6={\n3+\n4+\n5}
    in % \pgfextra{\typeout{\n1,\n2,\n3,\n4,\n5,\n6}}
    (${(\n5/\n6)}*(#1)+{(\n4/\n6)}*(#2)+{(\n3/\n6)}*(#3)$) circle (\n2)
}}}
% \usepackage{tkz-euclide}
% \usetkzobj{all}
\begin{document}
\begin{tikzpicture}[line join=round]
\pgfmathsetmacro{\a}{3} % side of the equilateral triangle
\pgfmathsetmacro{\d}{\a/sqrt(3)}
\pagecolor{yellow!20}
\path
(210:\d) coordinate (A0)
(330:\d) coordinate (B0)
(90:\d)  coordinate (C0)
($(C0)!.3!(B0)$) coordinate (A1)
($(A0)!.3!(C0)$) coordinate (B1)
($(B0)!.3!(A0)$) coordinate (C1)
(intersection cs:first line={(A0)--(A1)},second line={(B0)--(B1)}) coordinate (A2)
(intersection cs:first line={(B0)--(B1)},second line={(C0)--(C1)}) coordinate (B2)
(intersection cs:first line={(C0)--(C1)},second line={(A0)--(A1)}) coordinate (C2);

\begin{scope}
\clip (A0)--(B0)--(C0)--cycle;
\draw[cyan]
(A0)--(A1) (B0)--(B1) (C0)--(C1) 
(A0)--(B0)--(C0)--cycle;
\draw (A2)--(B2)--(C2)--cycle;
\end{scope}

\draw[blue,incircle={A0}{B0}{A2}];
\draw[blue,incircle={B0}{C0}{B2}];
\draw[blue,incircle={C0}{A0}{C2}];
% \tkzDrawCircle[in,color=blue](A0,B0,A2)
% \tkzDrawCircle[in,color=blue](B0,C0,B2) 
% \tkzDrawCircle[in,color=blue](C0,A0,C2)

\draw[red,incircle={A2}{B2}{C2}];
%\tkzDrawCircle[in,color=red](A2,B2,C2)
%\tkzDrawCircle[in,color=red](C2,B2,A2)
%\tkzDrawCircle[in,color=red](B2,A2,C2)
\end{tikzpicture}
\end{document} 

enter image description here


Bug in the last version 1.16 of tkz-eucide, with the next (beta actually) you get the result. You need to install tkz-base and tkz-euclide in texmf tree.

v2.40b Euclide

\documentclass{article}
\usepackage{tkz-euclide}

\def\a{3} % side of the equilateral triangle
\pgfmathsetmacro{\d}{\a/sqrt(3)}
\begin{document}
\begin{tikzpicture}[scale=3]
\tkzDefPoint(210:\d){A0}
\tkzDefPoint(330:\d){B0}
\tkzDefPoint(90:\d){C0}

\tkzDefBarycentricPoint(C0=2,B0=1) \tkzGetPoint{A1}
\tkzDefBarycentricPoint(A0=2,C0=1) \tkzGetPoint{B1}
\tkzDefBarycentricPoint(B0=2,A0=1) \tkzGetPoint{C1}
\tkzInterLL(A0,A1)(B0,B1) \tkzGetPoint{A2}
\tkzInterLL(B0,B1)(C0,C1) \tkzGetPoint{B2}
\tkzInterLL(C0,C1)(A0,A1) \tkzGetPoint{C2}

%\clip (A0)--(B0)--(C0)--cycle;
\tkzDrawSegments(A0,A1 B0,B1 C0,C1)

\tkzDrawPolygon(A0,B0,C0)
\tkzDrawPolygon(A2,B2,C2)

\tkzDrawCircle[in,color=blue](A0,B0,A2)
\tkzDrawCircle[in,color=blue](B0,C0,B2)
\tkzDrawCircle[in,color=blue](C0,A0,C2)

\tkzDrawCircle[in,color=red](A2,B2,C2)
\tkzDrawCircle[in,color=red](C2,B2,A2)
\tkzDrawCircle[in,color=red](B2,A2,C2)
\end{tikzpicture}
\end{document} 

enter image description here