Subject: Re: [std-proposals] new approximately equal operators
From: Nikolay Mihaylov (nmmm_at_[hidden])
Date: 2020-06-08 15:06:09
1. What is epsilon?
2. didn't this abs(a-b) be abs(abs(a)-abs(b))
3. a ~=b(c) - b(c) this actually will be:
auto a ~= 5000(0.1);
is very unreadable.
int f = 5000;
float x = 0.1;
auto a ~= f(x);
then what about:
int caruso(int a);
auto a ~= caruzo(f)(x);
auto a ~= ( caruzo(f) )(x);
On Mon, Jun 8, 2020 at 10:55 PM Vishal Oza via Std-Proposals <
> I was wondering if there is any interest in adding approximately equal to
> operators into the language. The main purpose is to compare floating point
> calculations with rounding error, however they could be used for similarity
> of objects or fixed point rounded values as well.
> the operator I propose are: ~=, ~< , ~>, ~!
> these operators would translate at least to floating point as
> a ~= b ==> abs(a-b) < epsilon
> a ~< b ==> (a < b) || (abs(a-b) < epsilon)
> a ~> b ==> (a > b) || (abs(a-b) < epsilon)
> a ~! b ==> abs(a-b) >= epsilon
> There are two routes I can see with default implementation this language
> feature. either adding a default epsilon into the language that can be set
> as a global variable or adding some way of tracking errors. I would like
> more feedback on either way of default implementation.
> I would also like a way to specify the epsilon value or function for a
> single comparison. the best I can think of is
> a ~=b(c) ==> abs(a-b) < c
> a ~=b:c ==> abs(a-b) < c
> [c]a ~=b ==> abs(a-b) < c
> The precedence should be on the same level of all of the current
> comparison operators.
> This could be introduced in C++ 23 or later in there is any interate.
> Vishal Oza
> Std-Proposals mailing list
STD-PROPOSALS list run by email@example.com
Standard Proposals Archives on Google Groups