[metapost] Graph v New number systems
Toby Thurston
thurston at eml.cc
Fri Nov 4 09:25:04 CET 2022
thanks for that.
I think I will have a further look at marith.mp then, and see if it could be made compatible with the extended number systems.
Something like:
if numbersystem = “scaled”:
% do normal marith
else:
% provide versions of all the marith functions that work with new number systems
fi
Toby
> On 4 Nov 2022, at 06:39, luigi scarso <luigi.scarso at gmail.com> wrote:
>
>
>
> On Wed, 2 Nov 2022 at 20:01, luigi scarso <luigi.scarso at gmail.com> wrote:
>
>
> On Wed, 2 Nov 2022 at 18:38, Toby Thurston <thurston at eml.cc> wrote:
> Can I draw your attention to this unanswered question on TeX.SE?
>
> https://tex.stackexchange.com/q/507361/15036
>
> the questioner had found that this graph is created correctly with the scaled number system
>
>
> hm... I will check surely for this weekend.
>
>
> I am afraid that there's nothing we can do... graph.mp uses marith.mp, which is fine only for the scaled numbersystem.
> We ca see the problem here: save the example below as test.mp, test-decimal.mp and test-decimal10.mp
>
> loggingall;
> %%numberprecision:=10;
> prologues := 3;
> outputtemplate := "%j%c.%{outputformat}";
> input graph
> beginfig(1);
> numeric width; width = 7cm;
> draw begingraph(width, 0.618034 width);
> setrange((-4, 0), (11, 100));
> gdraw "setrange.data";
> endgraph;
> endfig;
> end.
> where in test-decimal10.mp we uncomment %%numberprecision:=10;
> then
> $>mpost test.mp
> $>mpost -numbersystem=decimal test-decimal.mp
> $>mpost -numbersystem=decimal test-decimal10.mp
>
> If we
> $>diff -y -W200 test.log test-decimal.log
> at some point we see
>
> Mabs<primary>->begingroup(EXPR2)*0.5*2endgroup Mabs<primary>->begingroup(EXPR2)*0.5*2endgroup
> (SUFFIX0)<- (SUFFIX0)<-
> (SUFFIX1)<-Mabs (SUFFIX1)<-Mabs
> (EXPR2)<-354.89137 | (EXPR2)<-354.8913717054810609216228461865864
> {begingroup} {begingroup}
> {(354.89137)*(0.5)} | {(354.8913717054810609216228461865864)*(0.5)}
> {(177.4457)*(2)} | {(177.4456858527405304608114230932932)*(2)}
> {endgroup} {endgroup}
> {(354.89137)=(354.89139)} | {(354.8913717054810609216228461865864)=(354.8913717054810609216228461865864)}
> {false} | {true}
> {fi} | {else}
> {mexp(354.89137)} | {mexp(354.8913717054810609216228461865864)}
> {-(4)} <
> {endgroup} {endgroup}
> {restoring warningcheck=0} {restoring warningcheck=0}
> {endgroup} {endgroup}
> {(X_.low)=(-4)} | {(X_.low)=(4.000000238418586206989998773161838)}
> ## X_.low=-4 | ## X_.low=4.000000238418586206989998773161838
> {if} {if}
> {length(2)} {length(2)}
> {(2)<>(1)} {(2)<>(1)}
> {true} {true}
>
> while
> $>diff -y -W200 test.log test-decimal10.log
>
> Mabs<primary>->begingroup(EXPR2)*0.5*2endgroup Mabs<primary>->begingroup(EXPR2)*0.5*2endgroup
> (SUFFIX0)<- (SUFFIX0)<-
> (SUFFIX1)<-Mabs (SUFFIX1)<-Mabs
> (EXPR2)<-354.89137 | (EXPR2)<-354.8913717
> {begingroup} {begingroup}
> {(354.89137)*(0.5)} | {(354.8913717)*(0.5)}
> {(177.4457)*(2)} | {(177.4456859)*(2)}
> {endgroup} {endgroup}
> {(354.89137)=(354.89139)} | {(354.8913717)=(354.8913718)}
> {false} {false}
> {fi} {fi}
> {mexp(354.89137)} | {mexp(354.8913717)}
> {-(4)} | {-(4.00000024)}
> {endgroup} {endgroup}
> {restoring warningcheck=0} {restoring warningcheck=0}
> {endgroup} {endgroup}
> {(X_.low)=(-4)} | {(X_.low)=(-4.00000024)}
> ## X_.low=-4 | ## X_.low=-4.00000024
> {if} {if}
> {length(2)} {length(2)}
> {(2)<>(1)} {(2)<>(1)}
> {true} {true}
>
>
> (test-decimal10.mp fails in another point, btw).
> Same for the double and the binary numbersystem.
>
>
> --
> luigi
More information about the metapost
mailing list.