Inexact numbers as keys in Association? The 2019 Stack Overflow Developer Survey Results Are In Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)Dr. StrangeNumbers or: How I Learned to Stop Worrying and Love Floating Point ArithmeticFractional Keys in AssociationsReplace and AssociationWrong Limit[…] for inexact expressionsPicking out multiple keys from an arrayUsing Case to pull Keys and Values out of a nested AssociationPattern matching Association in rulesCreating dataset from list of ragged associations with defaults for missing keyshow to count or extract Cases out of list of association that matches patternRename Keys in Nested AssociationExtracting the graph of Keys in nested Associations
What do you call a plan that's an alternative plan in case your initial plan fails?
Do warforged have souls?
Scientific Reports - Significant Figures
Single author papers against my advisor's will?
What's the point in a preamp?
What can I do if neighbor is blocking my solar panels intentionally?
He got a vote 80% that of Emmanuel Macron’s
Why not take a picture of a closer black hole?
What information about me do stores get via my credit card?
Segmentation fault output is suppressed when piping stdin into a function. Why?
Empty set is subset of every set? If yes, why that...
Create an outline of font
Does Parliament need to approve the new Brexit delay to 31 October 2019?
ELI5: Why do they say that Israel would have been the fourth country to land a spacecraft on the Moon and why do they call it low cost?
Are my PIs rude or am I just being too sensitive?
Can a novice safely splice in wire to lengthen 5V charging cable?
In horse breeding, what is the female equivalent of putting a horse out "to stud"?
Working through the single responsibility principle (SRP) in Python when calls are expensive
How are presidential pardons supposed to be used?
Are spiders unable to hurt humans, especially very small spiders?
Difference between "generating set" and free product?
How can I protect witches in combat who wear limited clothing?
Road tyres vs "Street" tyres for charity ride on MTB Tandem
What are these Gizmos at Izaña Atmospheric Research Center in Spain?
Inexact numbers as keys in Association?
The 2019 Stack Overflow Developer Survey Results Are In
Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)Dr. StrangeNumbers or: How I Learned to Stop Worrying and Love Floating Point ArithmeticFractional Keys in AssociationsReplace and AssociationWrong Limit[…] for inexact expressionsPicking out multiple keys from an arrayUsing Case to pull Keys and Values out of a nested AssociationPattern matching Association in rulesCreating dataset from list of ragged associations with defaults for missing keyshow to count or extract Cases out of list of association that matches patternRename Keys in Nested AssociationExtracting the graph of Keys in nested Associations
$begingroup$
Can someone explain me how Mathematica's Associations behave with inexact numbers as keys:
<| 0.22499999999999964` -> a |> [0.22499999999999965`]
and
<| 0.22499999999999964` -> a |> [0.22499999999999961`]
both give the value a, whereas
<| 0.22499999999999964` -> a |> [0.22499999999999966`] gives Missing as an answer.
associations machine-precision
$endgroup$
add a comment |
$begingroup$
Can someone explain me how Mathematica's Associations behave with inexact numbers as keys:
<| 0.22499999999999964` -> a |> [0.22499999999999965`]
and
<| 0.22499999999999964` -> a |> [0.22499999999999961`]
both give the value a, whereas
<| 0.22499999999999964` -> a |> [0.22499999999999966`] gives Missing as an answer.
associations machine-precision
$endgroup$
2
$begingroup$
Looks like this thing, but with associations. Why do you need to use inexact numbers as keys?
$endgroup$
– J. M. is away♦
Mar 31 at 13:50
4
$begingroup$
"Can someone explain me how Mathematica's Associations behave [...]?" They behave badly. Don't do that.
$endgroup$
– Henrik Schumacher
Mar 31 at 13:51
$begingroup$
Association
is the name of the function in Mathematica, so I am not sure what was productive about the edit I just rolled back.
$endgroup$
– J. M. is away♦
Apr 1 at 6:22
add a comment |
$begingroup$
Can someone explain me how Mathematica's Associations behave with inexact numbers as keys:
<| 0.22499999999999964` -> a |> [0.22499999999999965`]
and
<| 0.22499999999999964` -> a |> [0.22499999999999961`]
both give the value a, whereas
<| 0.22499999999999964` -> a |> [0.22499999999999966`] gives Missing as an answer.
associations machine-precision
$endgroup$
Can someone explain me how Mathematica's Associations behave with inexact numbers as keys:
<| 0.22499999999999964` -> a |> [0.22499999999999965`]
and
<| 0.22499999999999964` -> a |> [0.22499999999999961`]
both give the value a, whereas
<| 0.22499999999999964` -> a |> [0.22499999999999966`] gives Missing as an answer.
associations machine-precision
associations machine-precision
edited Apr 1 at 6:21
J. M. is away♦
98.9k10311467
98.9k10311467
asked Mar 31 at 13:38
Ali HashmiAli Hashmi
5,73931433
5,73931433
2
$begingroup$
Looks like this thing, but with associations. Why do you need to use inexact numbers as keys?
$endgroup$
– J. M. is away♦
Mar 31 at 13:50
4
$begingroup$
"Can someone explain me how Mathematica's Associations behave [...]?" They behave badly. Don't do that.
$endgroup$
– Henrik Schumacher
Mar 31 at 13:51
$begingroup$
Association
is the name of the function in Mathematica, so I am not sure what was productive about the edit I just rolled back.
$endgroup$
– J. M. is away♦
Apr 1 at 6:22
add a comment |
2
$begingroup$
Looks like this thing, but with associations. Why do you need to use inexact numbers as keys?
$endgroup$
– J. M. is away♦
Mar 31 at 13:50
4
$begingroup$
"Can someone explain me how Mathematica's Associations behave [...]?" They behave badly. Don't do that.
$endgroup$
– Henrik Schumacher
Mar 31 at 13:51
$begingroup$
Association
is the name of the function in Mathematica, so I am not sure what was productive about the edit I just rolled back.
$endgroup$
– J. M. is away♦
Apr 1 at 6:22
2
2
$begingroup$
Looks like this thing, but with associations. Why do you need to use inexact numbers as keys?
$endgroup$
– J. M. is away♦
Mar 31 at 13:50
$begingroup$
Looks like this thing, but with associations. Why do you need to use inexact numbers as keys?
$endgroup$
– J. M. is away♦
Mar 31 at 13:50
4
4
$begingroup$
"Can someone explain me how Mathematica's Associations behave [...]?" They behave badly. Don't do that.
$endgroup$
– Henrik Schumacher
Mar 31 at 13:51
$begingroup$
"Can someone explain me how Mathematica's Associations behave [...]?" They behave badly. Don't do that.
$endgroup$
– Henrik Schumacher
Mar 31 at 13:51
$begingroup$
Association
is the name of the function in Mathematica, so I am not sure what was productive about the edit I just rolled back.$endgroup$
– J. M. is away♦
Apr 1 at 6:22
$begingroup$
Association
is the name of the function in Mathematica, so I am not sure what was productive about the edit I just rolled back.$endgroup$
– J. M. is away♦
Apr 1 at 6:22
add a comment |
1 Answer
1
active
oldest
votes
$begingroup$
Lookups with inexact numbers behave like other lookups: they use hashing. We can check that the results are consistent with what Hash
does.
vals = 0.22499999999999961`, 0.22499999999999964`,
0.22499999999999965`, 0.22499999999999966`;
Hash /@ vals
(* Out[11]= 1879126079618645156, 1879126079618645156,
1879126079618645156, 5861724109654749116 *)
When hashing approximate values, there are going to be sharp boundaries (discontinuities, in effect). This is a tradeoff between having "very" close neighbors hash to the same value, and maintaining transitivity.
$endgroup$
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "387"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f194309%2finexact-numbers-as-keys-in-association%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
Lookups with inexact numbers behave like other lookups: they use hashing. We can check that the results are consistent with what Hash
does.
vals = 0.22499999999999961`, 0.22499999999999964`,
0.22499999999999965`, 0.22499999999999966`;
Hash /@ vals
(* Out[11]= 1879126079618645156, 1879126079618645156,
1879126079618645156, 5861724109654749116 *)
When hashing approximate values, there are going to be sharp boundaries (discontinuities, in effect). This is a tradeoff between having "very" close neighbors hash to the same value, and maintaining transitivity.
$endgroup$
add a comment |
$begingroup$
Lookups with inexact numbers behave like other lookups: they use hashing. We can check that the results are consistent with what Hash
does.
vals = 0.22499999999999961`, 0.22499999999999964`,
0.22499999999999965`, 0.22499999999999966`;
Hash /@ vals
(* Out[11]= 1879126079618645156, 1879126079618645156,
1879126079618645156, 5861724109654749116 *)
When hashing approximate values, there are going to be sharp boundaries (discontinuities, in effect). This is a tradeoff between having "very" close neighbors hash to the same value, and maintaining transitivity.
$endgroup$
add a comment |
$begingroup$
Lookups with inexact numbers behave like other lookups: they use hashing. We can check that the results are consistent with what Hash
does.
vals = 0.22499999999999961`, 0.22499999999999964`,
0.22499999999999965`, 0.22499999999999966`;
Hash /@ vals
(* Out[11]= 1879126079618645156, 1879126079618645156,
1879126079618645156, 5861724109654749116 *)
When hashing approximate values, there are going to be sharp boundaries (discontinuities, in effect). This is a tradeoff between having "very" close neighbors hash to the same value, and maintaining transitivity.
$endgroup$
Lookups with inexact numbers behave like other lookups: they use hashing. We can check that the results are consistent with what Hash
does.
vals = 0.22499999999999961`, 0.22499999999999964`,
0.22499999999999965`, 0.22499999999999966`;
Hash /@ vals
(* Out[11]= 1879126079618645156, 1879126079618645156,
1879126079618645156, 5861724109654749116 *)
When hashing approximate values, there are going to be sharp boundaries (discontinuities, in effect). This is a tradeoff between having "very" close neighbors hash to the same value, and maintaining transitivity.
answered Mar 31 at 13:59
Daniel LichtblauDaniel Lichtblau
47.6k277165
47.6k277165
add a comment |
add a comment |
Thanks for contributing an answer to Mathematica Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f194309%2finexact-numbers-as-keys-in-association%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
2
$begingroup$
Looks like this thing, but with associations. Why do you need to use inexact numbers as keys?
$endgroup$
– J. M. is away♦
Mar 31 at 13:50
4
$begingroup$
"Can someone explain me how Mathematica's Associations behave [...]?" They behave badly. Don't do that.
$endgroup$
– Henrik Schumacher
Mar 31 at 13:51
$begingroup$
Association
is the name of the function in Mathematica, so I am not sure what was productive about the edit I just rolled back.$endgroup$
– J. M. is away♦
Apr 1 at 6:22