## STD-PROPOSALS | |

**Subject:** Re: [std-proposals] new approximately equal operators

**From:** Nikolay Mihaylov (*nmmm_at_[hidden]*)

**Date:** 2020-06-08 15:06:09

**Next message:**Vishal Oza: "Re: [std-proposals] new approximately equal operators"**Previous message:**Vishal Oza: "[std-proposals] new approximately equal operators"**In reply to:**Vishal Oza: "[std-proposals] new approximately equal operators"**Next in thread:**Vishal Oza: "Re: [std-proposals] new approximately equal operators"**Reply:**Vishal Oza: "Re: [std-proposals] new approximately equal operators"

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);

or...

auto a ~= ( caruzo(f) )(x);

On Mon, Jun 8, 2020 at 10:55 PM Vishal Oza via Std-Proposals <

std-proposals_at_[hidden]> 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

> --

> Std-Proposals mailing list

> Std-Proposals_at_[hidden]

> https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals

>

- text/html attachment: attachment

**Next message:**Vishal Oza: "Re: [std-proposals] new approximately equal operators"**Previous message:**Vishal Oza: "[std-proposals] new approximately equal operators"**In reply to:**Vishal Oza: "[std-proposals] new approximately equal operators"**Next in thread:**Vishal Oza: "Re: [std-proposals] new approximately equal operators"**Reply:**Vishal Oza: "Re: [std-proposals] new approximately equal operators"

STD-PROPOSALS list run by std-proposals-owner@lists.isocpp.org