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

            Marja Vauras Lähteet | Aiheesta muualla | NavigointivalikkoMarja Vauras Turun yliopiston tutkimusportaalissaInfobox OKSuomalaisen Tiedeakatemian varsinaiset jäsenetKasvatustieteiden tiedekunnan dekaanit ja muu johtoMarja VaurasKoulutusvienti on kestävyys- ja ketteryyslaji (2.5.2017)laajentamallaWorldCat Identities0000 0001 0855 9405n86069603utb201588738523620927

            Which is better: GPT or RelGAN for text generation?2019 Community Moderator ElectionWhat is the difference between TextGAN and LM for text generation?GANs (generative adversarial networks) possible for text as well?Generator loss not decreasing- text to image synthesisChoosing a right algorithm for template-based text generationHow should I format input and output for text generation with LSTMsGumbel Softmax vs Vanilla Softmax for GAN trainingWhich neural network to choose for classification from text/speech?NLP text autoencoder that generates text in poetic meterWhat is the interpretation of the expectation notation in the GAN formulation?What is the difference between TextGAN and LM for text generation?How to prepare the data for text generation task

            Is this part of the description of the Archfey warlock's Misty Escape feature redundant?When is entropic ward considered “used”?How does the reaction timing work for Wrath of the Storm? Can it potentially prevent the damage from the triggering attack?Does the Dark Arts Archlich warlock patrons's Arcane Invisibility activate every time you cast a level 1+ spell?When attacking while invisible, when exactly does invisibility break?Can I cast Hellish Rebuke on my turn?Do I have to “pre-cast” a reaction spell in order for it to be triggered?What happens if a Player Misty Escapes into an Invisible CreatureCan a reaction interrupt multiattack?Does the Fiend-patron warlock's Hurl Through Hell feature dispel effects that require the target to be on the same plane as the caster?What are you allowed to do while using the Warlock's Eldritch Master feature?