Date: Tue, 9 Jun 2020 02:04:11 +0300

What problem would adding this behavior solve? What is its significant

benefit?

If it's merely the desire to write

if (a ~= b)

instead of

if (almost_equal(a, b))

or

if (almost_equal<epsilon>(a, b))

(with almost_equal being a utility function you've implemented), then I

doubt the standard committee would find it worthwhile.

On 08/06/2020 22:52, Vishal Oza via Std-Proposals wrote:

> 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.

>

> Sincerely,

> Vishal Oza

>

> *This email is from an external mail server, be judicious when opening

> attachments or links *

>

>

benefit?

If it's merely the desire to write

if (a ~= b)

instead of

if (almost_equal(a, b))

or

if (almost_equal<epsilon>(a, b))

(with almost_equal being a utility function you've implemented), then I

doubt the standard committee would find it worthwhile.

On 08/06/2020 22:52, Vishal Oza via Std-Proposals wrote:

> 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.

>

> Sincerely,

> Vishal Oza

>

> *This email is from an external mail server, be judicious when opening

> attachments or links *

>

>

Received on 2020-06-08 18:07:35