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










4












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









share|improve this question











$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















4












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









share|improve this question











$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













4












4








4





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









share|improve this question











$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






share|improve this question















share|improve this question













share|improve this question




share|improve this question








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












  • 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










1 Answer
1






active

oldest

votes


















10












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






share|improve this answer









$endgroup$













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



    );













    draft saved

    draft discarded


















    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









    10












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






    share|improve this answer









    $endgroup$

















      10












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






      share|improve this answer









      $endgroup$















        10












        10








        10





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






        share|improve this answer









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







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Mar 31 at 13:59









        Daniel LichtblauDaniel Lichtblau

        47.6k277165




        47.6k277165



























            draft saved

            draft discarded
















































            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.




            draft saved


            draft discarded














            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





















































            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







            Popular posts from this blog

            Adding axes to figuresAdding axes labels to LaTeX figuresLaTeX equivalent of ConTeXt buffersRotate a node but not its content: the case of the ellipse decorationHow to define the default vertical distance between nodes?TikZ scaling graphic and adjust node position and keep font sizeNumerical conditional within tikz keys?adding axes to shapesAlign axes across subfiguresAdding figures with a certain orderLine up nested tikz enviroments or how to get rid of themAdding axes labels to LaTeX figures

            Luettelo Yhdysvaltain laivaston lentotukialuksista Lähteet | Navigointivalikko

            Gary (muusikko) Sisällysluettelo Historia | Rockin' High | Lähteet | Aiheesta muualla | NavigointivalikkoInfobox OKTuomas "Gary" Keskinen Ancaran kitaristiksiProjekti Rockin' High