## STD-PROPOSALS | |

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

**From:** Vishal Oza (*vickoza_at_[hidden]*)

**Date:** 2020-06-08 14:52:18

**Next message:**Nikolay Mihaylov: "Re: [std-proposals] new approximately equal operators"**Previous message:**Frank Zingsheim: "Re: [std-proposals] Review Request: Proposal Ternary Right Fold Expression (P1012)"**Next in thread:**Nikolay Mihaylov: "Re: [std-proposals] new approximately equal operators"**Reply:**Nikolay Mihaylov: "Re: [std-proposals] new approximately equal operators"**Maybe reply:**Bjorn Reese: "Re: [std-proposals] new approximately equal operators"**Reply:**Eyal Rozenberg: "Re: [std-proposals] new approximately equal operators"**Reply:**Andrew Tomazos: "Re: [std-proposals] new approximately equal operators"

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

- text/html attachment: attachment

**Next message:**Nikolay Mihaylov: "Re: [std-proposals] new approximately equal operators"**Previous message:**Frank Zingsheim: "Re: [std-proposals] Review Request: Proposal Ternary Right Fold Expression (P1012)"**Next in thread:**Nikolay Mihaylov: "Re: [std-proposals] new approximately equal operators"**Reply:**Nikolay Mihaylov: "Re: [std-proposals] new approximately equal operators"**Maybe reply:**Bjorn Reese: "Re: [std-proposals] new approximately equal operators"**Reply:**Eyal Rozenberg: "Re: [std-proposals] new approximately equal operators"**Reply:**Andrew Tomazos: "Re: [std-proposals] new approximately equal operators"

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