I often should have liked to be able to test for numerical conditions in my PGF macros.
Let me illustrate with one simple example:
Let A and B be two given poinst where we have access to their coordinates, say A = (\xA,\yA) and B = (\xB,\yB).
I would then like to be able to check if A = B within some tolerance.
But how should I test to see, say, for \dx = \xB-\xA that abs(\dx) < \eps for a small defined value of \eps (i.e 0.0005)?
As far as I know the Latex \ifthenelse cannot be used.
Kent Holing, NORWAY
NEW: TikZ book now 40% off at Amazon.com for a short time.
And: Currently, Packt sells ebooks for $4.99 each if you buy 5 of their over 1000 ebooks. If you choose only a single one, $9.99. How about combining 3 LaTeX books with Python, gnuplot, mathplotlib, Matlab, ChatGPT or other AI books? Epub and PDF. Bundle (3 books, add more for higher discount): https://packt.link/MDH5p
Looking at the pgf manual, Section 90, you can see that there is a pgfmath library which has commands to do what you need. I am just pasting below from the manual (page 939):
90.2
Comparison and logical functions
In addition to the commands described in Section 89.3.5, the following command was provided by Christian
Feuersänger: \pgfmathapproxequalto{<x>}{<y>}
Defines \pgfmathresult 1.0 if |<x>−<y>|< 0.0001, but 0.0 otherwise. As a side-effect, the global boolean \ifpgfmathcomparison will be set accordingly.
It's probably good to update in any case. I remember you worked on an intersection topic, that also was solvable with PGF 3 aka TikZ 3. It provides a lot more features than PGF 2. Otherwise you may re-program already existing new features.
You may consider to update the whole TeX installation. LaTeX evolves, new features, packages, and bug fixes appear.
\pgfmathapproxequalto{0.15}{0.1499999999};
\let\out\pgfmathresult;%here \out is 1.0 as it should
\ifthenelse{\ifpgfmathcomparison}{true}{false};%here I thought I should get true
% since I thought \ifpgfmathcomparison is true since \out is 1.0
By using \let\outt\pgfmathint{\out} I transformed 1.0 to 1 and I could then use \ifthenelse{\outt>0} etc..
But, I still wonder how to use the boolean \ifpgfmathcomparison.
NEW: TikZ book now 40% off at Amazon.com for a short time.
And: Currently, Packt sells ebooks for $4.99 each if you buy 5 of their over 1000 ebooks. If you choose only a single one, $9.99. How about combining 3 LaTeX books with Python, gnuplot, mathplotlib, Matlab, ChatGPT or other AI books? Epub and PDF. Bundle (3 books, add more for higher discount): https://packt.link/MDH5p