[{"data":1,"prerenderedAt":370},["ShallowReactive",2],{"project-47812341":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":42,"post_text":45,"what":46,"said":74,"maker_in_thread":143,"shape":151,"grid":155,"attempts":328,"same_week":333,"maker_shows":43,"maker_hidden":363,"reader_version":364,"card":365},"47812341","interval-calculator","A calculator that works over disjoint sets of intervals","title","Show HN: I made a calculator that works over disjoint sets of intervals","https:\u002F\u002Fvictorpoughon.github.io\u002Finterval-calculator\u002F","victorpoughon.github.io","fouronnes3",1776474943,2026,314,54,137,4366,4,"legend","learning_science","interval arithmetic","web_app",[21,24,25,26,27],"interval union","disjoint intervals","floating point","outward rounding","loved",0.27,{"positive":31,"neutral":32,"mixed":33,"critical":34},11,17,1,2,31,{"execution":37,"docs":39,"idea":40,"performance":41},{"positive":33,"critical":38},0,{"positive":38,"critical":38},{"positive":18,"critical":33},{"positive":38,"critical":33},[38,43,43,44,38,43,43,38,38,43,44,38,44,38,43,38,43,38,38,38,44,33,38,43,43,43,43,43,38,43,44,43,44,44,43,43,44,44,43,43],3,5,"I've been studying interval arithmetic for the past few weeks and it's a really interesting field because while there is a ton of super interesting research published over the past decades, it has never really gotten the recognition that it deserves, IMO.\n\nOne reason for this is that standard interval arithmetic has really poor handling of division by intervals containing zero. If you compute 1 \u002F [-1, 2] in regular interval arithmetic, you get either [-∞, +∞], or you have to say that the operation is undefined. Both solutions are virtually useless. The real answer of course is [-∞, -1] U [0.5,",{"problem":47,"audience":53,"pricing":53,"motivation":54,"time_to_build":53,"stack":60,"openness":71,"stage":72,"team_size":73},{"value":48,"source":49,"evidence":50},"Standard interval arithmetic gives useless results like [-∞, +∞] when dividing by intervals containing zero","maker",[51],{"id":52},"post",null,{"value":55,"source":49,"evidence":56},"Testing its interval union arithmetic implementation for a backwards updating spreadsheet project",[57],{"id":58,"by":11,"text":59},"47812435","Author here. Outward rounding to combat precision issues is what interval arithmetic is most known for (try 0.1+0.2 with \"full precision mode\" enabled), but that's really a shame…",[61,65],{"value":62,"source":49,"evidence":63},"TypeScript",[64],{"id":52},{"value":66,"source":49,"evidence":67},"JavaScript Number (IEEE 754 double precision)",[68],{"id":69,"by":11,"text":70},"47814508","Interesting! I'm not familiar with IEEE 1788. The TypeScript library (not-so-float) that I wrote which powers the calculator uses the JS Number type which is double precision…","open_source","launched","solo",{"praise":75,"objections":92,"requests":115,"questions":130,"alternatives":135},[76],{"value":77,"source":78,"evidence":79},"Interval union idea is useful and well executed","commenter",[80,84,88],{"id":81,"by":82,"text":83},"47813659","anematode","Excellent!! I love interval arithmetic and also wrote a TS implementation for a graphing calculator project. Agree that it's very underrated, and I wish that directed rounding…",{"id":85,"by":86,"text":87},"47816254","Eric_Xua","Really cool project—turning interval unions into a usable, polished calculator makes the math feel practical.",{"id":89,"by":90,"text":91},"47814855","adaptit","This interval calculator is surprisingly robust. The way it handles boundary conditions and asymmetric intervals is clean and efficient.",[93,108],{"value":94,"source":78,"evidence":95},"Union growth in number of intervals may be exponential and a performance bottleneck",[96,100,104],{"id":97,"by":98,"text":99},"47815108","SkiFire13","Expanding the logic to union of intervals looks cool, but what is the complexity of that? Since you introduce the the possibility of an operation on an interval producing two…",{"id":101,"by":102,"text":103},"47823354","vishal_ch","The division example is a perfect illustration of why this matters — [-∞, +∞] as an answer is technically correct but operationally useless. The union representation actually…",{"id":105,"by":106,"text":107},"47814182","LXforever","Very cool. This feels like one of those ideas that makes interval arithmetic go from “interesting but frustrating” to actually useful. I’d be curious how you handle the growth in…",{"value":109,"source":78,"evidence":110},"Powerset of intervals domain already known in abstract interpretation literature",[111],{"id":112,"by":113,"text":114},"47815471","lou1306","Sorry to be a party pooper, the Web app is neat, but I have some reservations about the paper. Namely, the \"powerset of intervals\" domain has been known since the '70s [1], and…",[116,123],{"value":117,"source":78,"evidence":118},"Support open and half-open interval bounds",[119],{"id":120,"by":121,"text":122},"47813477","_Microft","Very nice, thanks for sharing! Maybe show which upper or lower values are included in the intervals? A notation I am familiar with uses outward facing brackets if the value is…",{"value":124,"source":78,"evidence":125},"Many-valued functions such as inverse trig",[126],{"id":127,"by":128,"text":129},"47815737","noncovalence","Very cool, I'll definitely be playing around with this some more! Two questions: - How difficult would it be to add many-valued functions to this? It would be really nice to be…",[131],{"value":132,"source":78,"evidence":133},"Whether the bounds rounding description is correct",[134],{"id":127,"by":128,"text":129},[136],{"value":137,"source":78,"evidence":138},"GrafEq",[139],{"id":140,"by":141,"text":142},"47817456","0xml","Looks like GrafEq? http:\u002F\u002Fwww.peda.com\u002Fgrafeq\u002F",{"comments":144,"answered":18,"key":145},7,[146,147,148],{"id":58,"text":59},{"id":69,"text":70},{"id":149,"text":150},"47813689","It's possible to support that but it makes the code very very much more complicated. I've decided early on to not support it. Would be a cool addition though!",{"commenters":152,"max_depth":18,"maker_replies":144,"first_comment_mins":153,"lifespan_hours":154},46,19,79,[156,158,162,164,166,170,174,176,177,180,183,186,189,192,193,197,200,203,205,208,212,214,218,222,226,228,231,234,237,240,243,246,249,254,258,262,266,269,272,275,278,281,284,288,291,293,297,301,306,310,314,318,322,325,326],[58,38,38,157,11,33],"maker\u002Fpositive\u002Fnone",[159,38,43,160,161,38],"47814438","project\u002Fneutral\u002Fexecution","thekoma",[69,38,38,163,11,33],"maker\u002Fneutral\u002Fexecution",[127,38,43,165,128,38],"project\u002Fneutral\u002Fdocs",[167,33,44,168,169,38],"47813296","maker\u002Fpositive\u002Fidea","iamwil",[171,34,38,172,173,38],"47813354","other\u002Fneutral\u002Fnone","memalign",[140,34,38,175,141,38],"commenter\u002Fneutral\u002Fnone",[120,43,43,165,121,38],[178,43,43,165,179,38],"47813577","globular-toast",[181,43,38,172,182,38],"47813817","qbit42",[184,43,38,172,185,38],"47814138","meindnoch",[187,43,38,175,188,38],"47815092","streetfighter64",[190,43,43,165,191,38],"47813669","adito",[149,43,38,160,11,33],[194,18,44,195,196,38],"47814275","project\u002Fpositive\u002Fidea","akst",[198,44,38,172,199,38],"47815065","malcolmjuxt",[81,201,44,202,82,38],6,"project\u002Fpositive\u002Fnone",[204,201,38,172,11,33],"47813763",[206,201,38,172,207,38],"47820706","ted_dunning",[209,144,43,210,211,38],"47816020","project\u002Fneutral\u002Fidea","wvlia5",[213,144,38,210,11,33],"47816050",[215,216,38,172,217,38],"47814815",8,"mike-the-mikado",[219,220,43,210,221,38],"47813762",9,"JSR_FDED",[223,220,38,224,225,38],"47813869","other\u002Fneutral\u002Fidea","ngruhn",[227,220,38,172,161,38],"47814446",[229,220,38,172,230,38],"47814534","Oberdiah",[232,220,38,224,233,38],"47813956","nicolodev",[235,220,44,195,236,38],"47814202","nickcw",[238,220,38,172,239,38],"47814445","ttoinou",[97,241,33,242,98,38],10,"project\u002Fcritical\u002Fperformance",[244,241,38,245,113,38],"47815506","commenter\u002Fneutral\u002Fperformance",[247,31,38,172,248,38],"47819892","librasteve",[250,251,43,252,253,38],"47813871",12,"project\u002Fmixed\u002Fidea","teiferer",[255,256,43,210,257,38],"47817308",13,"roger_",[259,260,43,210,261,38],"47813841",14,"petters",[263,264,44,202,265,38],"47845823",15,"RoxiHaidi",[112,267,33,268,113,38],16,"project\u002Fcritical\u002Fidea",[270,32,43,160,271,38],"47814707","dfgtu",[273,32,38,274,11,33],"47814749","maker\u002Fneutral\u002Fnone",[276,277,43,210,239,38],"47814463",18,[279,153,38,224,280,38],"47814228","dnnddidiej",[89,282,44,283,90,38],20,"project\u002Fpositive\u002Fexecution",[285,286,43,210,287,38],"47815191",21,"mbo",[289,286,38,172,290,38],"47816045","zamadatix",[85,292,44,202,86,38],22,[294,295,44,195,296,38],"47835639",23,"ranguita",[298,299,43,163,300,38],"47838905",24,"CarlosJeer",[302,303,43,304,305,38],"47817786",25,"project\u002Fneutral\u002Fnone","Falimonda",[307,308,43,210,309,38],"47819245",26,"oncallthrow",[311,312,44,157,313,38],"47814983",27,"i_love_retros",[315,316,44,202,317,38],"47816565",28,"jakeinspace",[319,320,44,202,321,38],"47813829",29,"boobsbr",[101,323,43,324,102,38],30,"project\u002Fneutral\u002Fperformance",[105,35,43,324,106,38],[327,35,38,324,11,33],"47814294",[329,332],{"id":330,"t":331,"points":201,"comments":38},"45569053",1760367613,{"id":4,"t":12,"points":14,"comments":15},[334,339,344,349,354,359],{"id":335,"name":336,"points":337,"category":338},"47808268","Smol machines",499,"dev_tools",{"id":340,"name":341,"points":342,"category":343},"47847558","VidStudio",301,"creative",{"id":345,"name":346,"points":347,"category":348},"47807809","PanicLock",265,"security_privacy",{"id":350,"name":351,"points":352,"category":353},"47849097","GoModel",217,"infrastructure",{"id":355,"name":356,"points":357,"category":358},"47828896","trellis-mac",202,"ai",{"id":360,"name":361,"points":362,"category":358},"47823460","turboquant-wasm",163,false,"v2",{"id":366,"name":5,"line":6,"ai":363,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":29,"top":18,"kw":367,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":368,"url":9,"mix":369,"praise":77,"objection":94,"sub":21},47812341,[21,24,25,26,27],"0335033003505030300051033333035355335533",[31,32,33,34],1794036698909]