Numeric error propagation: Difference between revisions

Content deleted Content added
m →‎{{header|Haskell}}: We don't have the template
Updated D entry
Line 290: Line 290:
}
}


template IsImprecise(T) {
enum IsImprecise(T) = is(Unqual!T == Unqual!(typeof(this)));
enum IsImprecise = is(Unqual!T == Unqual!(typeof(this)));
}


I reciprocal() const pure nothrow {
I reciprocal() const pure nothrow {
Line 365: Line 363:
}
}


alias Imprecise I;
alias I = Imprecise;


auto distance(T1, T2)(in T1 p1, in T2 p2) pure nothrow {
auto distance(T1, T2)(in T1 p1, in T2 p2) pure nothrow {
Line 383: Line 381:
writeln("Distance(p1, p2): ", distance(p1, p2));
writeln("Distance(p1, p2): ", distance(p1, p2));
}</lang>
}</lang>
{{out}}
Output:
<pre>Point p1: (I(value=100, delta=1.1), I(value=50, delta=1.2))
<pre>Point p1: (I(value=100, delta=1.1), I(value=50, delta=1.2))
Point p2: (I(value=200, delta=2.2), I(value=100, delta=2.3))
Point p2: (I(value=200, delta=2.2), I(value=100, delta=2.3))