2025-03-26 00:03:22 +0100 | <geekosaur> | keep it but require `import IEEE754Insanity` |
2025-03-26 00:05:23 +0100 | poscat | (~poscat@user/poscat) (Ping timeout: 245 seconds) |
2025-03-26 00:05:44 +0100 | poscat | (~poscat@user/poscat) poscat |
2025-03-26 00:05:56 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 00:06:04 +0100 | weary-traveler | (~user@user/user363627) user363627 |
2025-03-26 00:06:16 +0100 | <otto_s> | Is there a reason, why the imaginary party of -1 :: Complex Double *should* be -0 ? |
2025-03-26 00:08:54 +0100 | <otto_s> | Oh, I see, mauke answered that already. |
2025-03-26 00:10:41 +0100 | <otto_s> | Floats are evil. *g* |
2025-03-26 00:10:43 +0100 | <geekosaur> | I think the full answer involves complex numbers as being on a plane, and having trig on them produce results in the correct quadrant? |
2025-03-26 00:11:26 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds) |
2025-03-26 00:12:26 +0100 | <otto_s> | No, I think the culprit is just: |
2025-03-26 00:12:29 +0100 | <otto_s> | > isNegativeZero $ negate 0 |
2025-03-26 00:12:31 +0100 | <lambdabot> | True |
2025-03-26 00:13:12 +0100 | <geekosaur> | right, but what I said is why the whole "negative zero" thing exists in the first place. see also atan2 |
2025-03-26 00:13:17 +0100 | <otto_s> | (and then late, of course, how log decides where to go) |
2025-03-26 00:14:11 +0100 | <otto_s> | Yes. |
2025-03-26 00:15:39 +0100 | <geekosaur> | sadly it's been a looong time since I last did this stuff so it's all become kinda fuzzy ("use it or lose it") |
2025-03-26 00:16:25 +0100 | <geekosaur> | last time I touched it was 1985 |
2025-03-26 00:21:43 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 00:23:08 +0100 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2025-03-26 00:25:18 +0100 | byte | (~mu@user/byte) (Quit: Leaving) |
2025-03-26 00:25:48 +0100 | sarna | (~sarna@d192-22.icpnet.pl) (Ping timeout: 245 seconds) |
2025-03-26 00:26:38 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
2025-03-26 00:27:21 +0100 | aetepe | (~aetepe@188.119.22.83) aetepe |
2025-03-26 00:30:26 +0100 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
2025-03-26 00:33:37 +0100 | byte | (~mu@user/byte) byte |
2025-03-26 00:35:20 +0100 | simplystuart | (~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) (Ping timeout: 252 seconds) |
2025-03-26 00:35:45 +0100 | simplystuart | (~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) |
2025-03-26 00:37:31 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 00:40:56 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 00:42:05 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-03-26 00:45:17 +0100 | sarna | (~sarna@d192-22.icpnet.pl) sarna |
2025-03-26 00:45:45 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 265 seconds) |
2025-03-26 00:45:46 +0100 | sprotte24 | (~sprotte24@p5dd5d056.dip0.t-ipconnect.de) (Quit: Leaving) |
2025-03-26 00:51:04 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) Tuplanolla |
2025-03-26 00:53:18 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 00:57:53 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-03-26 01:04:38 +0100 | robobub | (uid248673@id-248673.uxbridge.irccloud.com) robobub |
2025-03-26 01:07:01 +0100 | sarna | (~sarna@d192-22.icpnet.pl) (Ping timeout: 265 seconds) |
2025-03-26 01:09:05 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 01:11:27 +0100 | weary-traveler | (~user@user/user363627) user363627 |
2025-03-26 01:12:06 +0100 | <EvanR> | > atan (recip 0) |
2025-03-26 01:12:07 +0100 | <lambdabot> | 1.5707963267948966 |
2025-03-26 01:12:12 +0100 | <EvanR> | > atan (recip (-0)) |
2025-03-26 01:12:14 +0100 | <lambdabot> | -1.5707963267948966 |
2025-03-26 01:13:21 +0100 | <EvanR> | also the way I do decode float in another universe is return (sign, mantissa, exponent) |
2025-03-26 01:14:45 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds) |
2025-03-26 01:16:00 +0100 | <Leary> | otto_s: May I introduce you to your lord and saviour `LexicalNegation`? It will ensure that `-1` means `fromInteger -1`, not `negate (fromInteger 1)`, hence `-1 = -1 :+ 0`. |
2025-03-26 01:16:29 +0100 | tomboy64 | (~tomboy64@user/tomboy64) (Ping timeout: 244 seconds) |
2025-03-26 01:16:50 +0100 | <Leary> | I would like to demonstrate with yahb2, but it's being weird: |
2025-03-26 01:16:57 +0100 | <Leary> | % import Data.Complex |
2025-03-26 01:16:57 +0100 | <yahb2> | <no location info>: error: [GHC-88719] ; Could not load module ‘Data.Complex’. ; Perhaps you haven't installed the "dyn" libraries for package ‘base-4.21.0.0’? ; Use :set -v to see a li... |
2025-03-26 01:17:02 +0100 | <Leary> | tomsmeding: ^ halp |
2025-03-26 01:17:28 +0100 | <geekosaur> | think he's in bed by now, sadly |
2025-03-26 01:17:45 +0100 | <geekosaur> | utc-2 iirc so it's like 2am |
2025-03-26 01:18:25 +0100 | <EvanR> | indeed it's only 54 dotbeats |
2025-03-26 01:20:50 +0100 | tomboy64 | (~tomboy64@user/tomboy64) tomboy64 |
2025-03-26 01:21:39 +0100 | zungi | (~tory@user/andrewchawk) andrewchawk |
2025-03-26 01:24:53 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 01:26:00 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 01:26:09 +0100 | ljdarj1 | (~Thunderbi@user/ljdarj) ljdarj |
2025-03-26 01:29:06 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds) |
2025-03-26 01:29:06 +0100 | ljdarj1 | ljdarj |
2025-03-26 01:30:13 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 248 seconds) |
2025-03-26 01:31:41 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-03-26 01:38:16 +0100 | sarna | (~sarna@d192-22.icpnet.pl) sarna |
2025-03-26 01:42:56 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 01:46:18 +0100 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 272 seconds) |
2025-03-26 01:47:01 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) (Ping timeout: 268 seconds) |
2025-03-26 01:47:29 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-03-26 01:55:24 +0100 | acidjnk | (~acidjnk@p200300d6e71c4f2435ff52636e0f7274.dip0.t-ipconnect.de) (Remote host closed the connection) |
2025-03-26 01:55:50 +0100 | acidjnk | (~acidjnk@p200300d6e71c4f2435ff52636e0f7274.dip0.t-ipconnect.de) acidjnk |
2025-03-26 01:58:43 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 02:01:38 +0100 | xff0x | (~xff0x@2405:6580:b080:900:f588:30f2:ad44:5069) (Ping timeout: 245 seconds) |
2025-03-26 02:04:33 +0100 | acidjnk | (~acidjnk@p200300d6e71c4f2435ff52636e0f7274.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
2025-03-26 02:05:23 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
2025-03-26 02:11:25 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 02:15:47 +0100 | otto_s | (~user@p5de2f2e9.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2025-03-26 02:16:00 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 268 seconds) |
2025-03-26 02:16:47 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 02:17:34 +0100 | otto_s | (~user@p4ff27de5.dip0.t-ipconnect.de) |
2025-03-26 02:21:33 +0100 | JuanDaugherty | (~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org)) |
2025-03-26 02:21:35 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-03-26 02:24:10 +0100 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 244 seconds) |
2025-03-26 02:26:21 +0100 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
2025-03-26 02:26:47 +0100 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 252 seconds) |
2025-03-26 02:28:01 +0100 | Pixi` | (~Pixi@user/pixi) (Quit: Leaving) |
2025-03-26 02:32:33 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 02:34:59 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
2025-03-26 02:36:58 +0100 | inca | (~inca@4-138-135-64.gray-ng.dsl.pinetreenetworks.com) (Ping timeout: 272 seconds) |
2025-03-26 02:37:18 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-03-26 02:37:33 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) |
2025-03-26 02:38:19 +0100 | inca | (~inca@4-138-135-64.gray-ng.dsl.pinetreenetworks.com) |
2025-03-26 02:39:21 +0100 | todi1 | (~todi@p57803331.dip0.t-ipconnect.de) |
2025-03-26 02:39:30 +0100 | todi | (~todi@p57803331.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
2025-03-26 02:40:23 +0100 | aetepe | (~aetepe@188.119.22.83) (Ping timeout: 245 seconds) |
2025-03-26 02:40:45 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) Tuplanolla |
2025-03-26 02:42:56 +0100 | inca | (~inca@4-138-135-64.gray-ng.dsl.pinetreenetworks.com) (Ping timeout: 252 seconds) |
2025-03-26 02:43:34 +0100 | cyphase | (~cyphase@user/cyphase) (Ping timeout: 260 seconds) |
2025-03-26 02:43:48 +0100 | inca | (~inca@4-138-135-64.gray-ng.dsl.pinetreenetworks.com) |
2025-03-26 02:48:18 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 02:48:47 +0100 | inca | (~inca@4-138-135-64.gray-ng.dsl.pinetreenetworks.com) (Ping timeout: 252 seconds) |
2025-03-26 02:52:50 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-03-26 02:53:16 +0100 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
2025-03-26 02:54:10 +0100 | <monochrom> | It looks like -1 :: Complex Double becomes - (1 :+ 0) so it is (-1) :+ (-0) |
2025-03-26 02:55:13 +0100 | <geekosaur> | yes, that's because of how the Report specifies unary negation |
2025-03-26 02:55:20 +0100 | <monochrom> | You could blame how there are +0 and -0, but numerical analysis people actually complain about how Java screws up everything by eliminating that. |
2025-03-26 02:55:32 +0100 | inca | (~inca@4-138-135-64.gray-ng.dsl.pinetreenetworks.com) |
2025-03-26 02:55:51 +0100 | <geekosaur> | NegativeLiterals or LexicalNegation changes it |
2025-03-26 02:56:30 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 02:57:02 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
2025-03-26 02:57:39 +0100 | <monochrom> | https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html has a section on how having -0 is helpful for complex numbers. |
2025-03-26 02:58:19 +0100 | notdabs | (~Owner@2600:1700:69cf:9000:5812:4103:61ba:7880) (Read error: Connection reset by peer) |
2025-03-26 02:59:25 +0100 | Square | (~Square@user/square) Square |
2025-03-26 02:59:37 +0100 | <monochrom> | I believe in the principle that the largest stakeholders should have the largest say. In this case physicists and numerical people who use floating point in anger should have a much larger say than us casual occasional users. And their verdict is clear, all the IEEE 754 "weirdness" is what they want. |
2025-03-26 03:01:01 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 268 seconds) |
2025-03-26 03:03:40 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 03:03:55 +0100 | <haskellbridge> | <Bowuigi> Posits may be better for the rest of us |
2025-03-26 03:05:17 +0100 | <c_wraith> | Fixed point is better for my use cases |
2025-03-26 03:06:46 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-03-26 03:08:25 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds) |
2025-03-26 03:11:42 +0100 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
2025-03-26 03:19:02 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 03:23:43 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
2025-03-26 03:26:12 +0100 | <Axman6> | @tell Liamzee https://github.com/the-benchmarker/web-frameworks/pull/8328 |
2025-03-26 03:26:12 +0100 | <lambdabot> | Consider it noted. |
2025-03-26 03:26:13 +0100 | aforemny_ | (~aforemny@2001:9e8:6cde:a00:bd3b:75a2:c3bc:65be) (Ping timeout: 265 seconds) |
2025-03-26 03:26:32 +0100 | bitdex_ | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
2025-03-26 03:27:35 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2025-03-26 03:28:11 +0100 | aforemny | (~aforemny@i59F4C69B.versanet.de) aforemny |
2025-03-26 03:34:50 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 03:36:30 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 244 seconds) |
2025-03-26 03:36:53 +0100 | cyphase | (~cyphase@user/cyphase) cyphase |
2025-03-26 03:40:52 +0100 | cyphase | (~cyphase@user/cyphase) (Read error: Connection reset by peer) |
2025-03-26 03:41:55 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 03:41:59 +0100 | cyphase | (~cyphase@user/cyphase) cyphase |
2025-03-26 03:42:12 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
2025-03-26 03:44:59 +0100 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 260 seconds) |
2025-03-26 03:46:22 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
2025-03-26 03:46:24 +0100 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
2025-03-26 03:47:08 +0100 | Pixi | (~Pixi@user/pixi) Pixi |
2025-03-26 03:51:45 +0100 | TheCoffeMaker | (~TheCoffeM@user/thecoffemaker) TheCoffeMaker |
2025-03-26 03:52:53 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 03:55:35 +0100 | bitdex_ | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2025-03-26 03:55:41 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
2025-03-26 03:57:44 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-03-26 04:08:40 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 04:12:22 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds) |
2025-03-26 04:13:47 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds) |
2025-03-26 04:15:48 +0100 | <EvanR> | > -1 :: Complex Double |
2025-03-26 04:15:50 +0100 | <lambdabot> | (-1.0) :+ (-0.0) |
2025-03-26 04:16:10 +0100 | <EvanR> | it Shows -0 in the imaginary part all along lol |
2025-03-26 04:16:22 +0100 | <geekosaur> | % :set -XLexicalNegation |
2025-03-26 04:16:22 +0100 | <yahb2> | <no output> |
2025-03-26 04:16:35 +0100 | <geekosaur> | % -1 :: Complex Double |
2025-03-26 04:16:35 +0100 | <yahb2> | <interactive>:377:7: error: [GHC-76037] ; Not in scope: type constructor or class ‘Complex’ |
2025-03-26 04:16:42 +0100 | <EvanR> | funny it took so long to "prove" |
2025-03-26 04:16:54 +0100 | <geekosaur> | oh wait, someone tried to import that and it errored |
2025-03-26 04:17:02 +0100 | <geekosaur> | % import Data.Complex |
2025-03-26 04:17:03 +0100 | <yahb2> | <no location info>: error: [GHC-88719] ; Could not load module ‘Data.Complex’. ; Perhaps you haven't installed the "dyn" libraries for package ‘base-4.21.0.0’? ; Use :set -v to see a li... |
2025-03-26 04:19:11 +0100 | developer_ | (~developer@85.50.149.196) |
2025-03-26 04:19:52 +0100 | <EvanR> | that -0 compares equal to "just" 0, and there's no corresponding "plus zero" condition for the result of positive underflows says to me they considered negative zero to be a "bonus feature" which could usually be ignored, or utilized for more information in some cases |
2025-03-26 04:20:15 +0100 | <EvanR> | when addition exactly cancels you get just zero, never negative |
2025-03-26 04:20:19 +0100 | <haskellbridge> | <Liamzee> i hope this question isn't too dumb, but |
2025-03-26 04:20:26 +0100 | <geekosaur> | ghci> -1 :: Complex Double |
2025-03-26 04:20:26 +0100 | <geekosaur> | (-1.0) :+ 0.0 |
2025-03-26 04:20:29 +0100 | <haskellbridge> | <Liamzee> oh, chat is active, sorry |
2025-03-26 04:20:34 +0100 | random-jellyfish | (~developer@user/random-jellyfish) (Ping timeout: 260 seconds) |
2025-03-26 04:20:38 +0100 | <geekosaur> | go ahead |
2025-03-26 04:21:04 +0100 | <haskellbridge> | <Liamzee> i'm building a rust-based microservices router, with the initial microservices being in Haskell |
2025-03-26 04:21:05 +0100 | <geekosaur> | EvanR, that behavior is specified by IEEE754 |
2025-03-26 04:21:18 +0100 | <EvanR> | I'm sure it is |
2025-03-26 04:21:22 +0100 | <haskellbridge> | <Liamzee> if I want to pass the IP of the sender, how would I get warp / servant / twain to get the IP? |
2025-03-26 04:21:45 +0100 | <geekosaur> | monochrom posted an Oracle doc explaining it, beyond that I think the specification itself is probably the best source |
2025-03-26 04:21:56 +0100 | <EvanR> | just noting there's no corresponding plus zero |
2025-03-26 04:22:03 +0100 | <EvanR> | so it's an asymmetric feature |
2025-03-26 04:22:33 +0100 | <geekosaur> | yes, and it exists solely to put zeroes in the correct quadrant on a plane |
2025-03-26 04:23:22 +0100 | <EvanR> | zeroes in a quadrant |
2025-03-26 04:23:51 +0100 | <geekosaur> | (I would have to read the spec to see if Report-compliant behavior or the extension is the correct behavior) |
2025-03-26 04:24:05 +0100 | <geekosaur> | yes. has to do with ranges |
2025-03-26 04:24:28 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 04:24:33 +0100 | <geekosaur> | and trig |
2025-03-26 04:24:34 +0100 | aetepe | (~aetepe@188.119.22.83) aetepe |
2025-03-26 04:24:55 +0100 | <geekosaur> | but as I said earlier, I haven't messed with this since 1985, so… |
2025-03-26 04:27:59 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 04:28:43 +0100 | aetepe | (~aetepe@188.119.22.83) (Ping timeout: 245 seconds) |
2025-03-26 04:29:12 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds) |
2025-03-26 04:29:58 +0100 | <EvanR> | Liamzee, I see remoteHost :: SockAddr field in the Request type for wai |
2025-03-26 04:30:17 +0100 | <monochrom> | I would interpret the two signed zeros to be -0 and +0, rather than -0 and "neutral" 0. |
2025-03-26 04:30:27 +0100 | <EvanR> | sometimes it is exactly zero |
2025-03-26 04:30:39 +0100 | <EvanR> | none this "every float is a random number around some point" crap xD |
2025-03-26 04:30:43 +0100 | <EvanR> | none of* |
2025-03-26 04:31:01 +0100 | <monochrom> | No, this is not about random or nondeterminism. |
2025-03-26 04:31:30 +0100 | <EvanR> | if you add -0.5 and +0.5, it equals zero, not +zero |
2025-03-26 04:31:40 +0100 | <EvanR> | (or -zero) |
2025-03-26 04:32:21 +0100 | <monochrom> | Let me write very explicitly. (+1)/(+0) = +oo, (+1)/(-0) = -oo. That's btw another reason to keep a sign bit on zero. |
2025-03-26 04:32:48 +0100 | <geekosaur> | go read that Oracle paper monochrom linked earlier |
2025-03-26 04:32:50 +0100 | <EvanR> | also +1 / +infinity = zero |
2025-03-26 04:32:50 +0100 | <monochrom> | > 1 / ((-0.5) + (+0.5)) |
2025-03-26 04:32:52 +0100 | <lambdabot> | error: |
2025-03-26 04:32:52 +0100 | <lambdabot> | • No instance for (Fractional (Double -> Double)) |
2025-03-26 04:32:52 +0100 | <lambdabot> | arising from a use of ‘e_110505’ |
2025-03-26 04:32:52 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 272 seconds) |
2025-03-26 04:33:08 +0100 | <geekosaur> | this is related to numeric analysis and complex trig, and predates computers |
2025-03-26 04:33:09 +0100 | <haskellbridge> | <Liamzee> thanks EvanR |
2025-03-26 04:33:24 +0100 | <EvanR> | if anything you just pointed out another (or instead of) asymmetry |
2025-03-26 04:34:33 +0100 | <geekosaur> | the numerics folks demanded this behavior when IEEE floating point was being standardized |
2025-03-26 04:34:36 +0100 | <haskellbridge> | <Liamzee> thanks Axman6 , but ultimately I'd love to see Haskell's web-interfaces using linear haskell to reduce memory consumption and allocation time |
2025-03-26 04:34:37 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2025-03-26 04:34:38 +0100 | bitdex_ | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
2025-03-26 04:35:45 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
2025-03-26 04:36:17 +0100 | <monochrom> | Sure, some asymmetry is inevitable. |
2025-03-26 04:36:57 +0100 | bitdex_ | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2025-03-26 04:36:58 +0100 | <monochrom> | I interpret that asymmetry to mean "+0 is the default" not "there is no +0, instead a neutral 'exact' [sic] zero". |
2025-03-26 04:37:03 +0100 | <monochrom> | -0 is as exact as +0. |
2025-03-26 04:37:28 +0100 | bitdex_ | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
2025-03-26 04:37:36 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2025-03-26 04:38:45 +0100 | <EvanR> | the section on signed zero just notes trig functions and complex analysis functions, makes sense |
2025-03-26 04:38:51 +0100 | <monochrom> | Because 1/("neutral exact" zero) has no reason to be either +oo or -oo. (At most a reason to be the Riemann sphere oo.) Whereas 1/(+0) does. |
2025-03-26 04:39:21 +0100 | <EvanR> | though the interpretation of "zero minus" and "zero plus" breaks down for results that should be exactly zero |
2025-03-26 04:39:52 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 04:39:53 +0100 | <EvanR> | I'm sure it's a sacrifice to be made instead of losing a bit of precision for 3 different signs |
2025-03-26 04:39:57 +0100 | <monochrom> | It doesn't if a deterministic convention is set up for defaulting. |
2025-03-26 04:40:34 +0100 | <EvanR> | yes recip of exactly zero wouldn't be either infinity |
2025-03-26 04:40:47 +0100 | <EvanR> | it would be its own thing, similar to graphical linear algebra |
2025-03-26 04:41:05 +0100 | <EvanR> | which also has infinities over infinity |
2025-03-26 04:41:23 +0100 | <EvanR> | and zero over zero |
2025-03-26 04:42:27 +0100 | <EvanR> | monochrom, I interpret the symmetry to mean there's a minor bias to the positive direction |
2025-03-26 04:42:43 +0100 | <EvanR> | asymmetry |
2025-03-26 04:42:45 +0100 | <monochrom> | Yes that's what I do. |
2025-03-26 04:44:49 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-03-26 04:47:04 +0100 | <EvanR> | > 3.14 - 3.1400000000000006 -- I think it's impossible to get -0 through addition |
2025-03-26 04:47:06 +0100 | <lambdabot> | -4.440892098500626e-16 |
2025-03-26 04:48:18 +0100 | <EvanR> | > 0 + (-0) |
2025-03-26 04:48:19 +0100 | <lambdabot> | 0 |
2025-03-26 04:48:33 +0100 | <EvanR> | > (-0) + (-0) |
2025-03-26 04:48:34 +0100 | <lambdabot> | 0 |
2025-03-26 04:48:38 +0100 | <EvanR> | lol |
2025-03-26 04:48:51 +0100 | <EvanR> | positive bias is strong |
2025-03-26 04:48:52 +0100 | <monochrom> | printf and most pretty printers drop the sign. |
2025-03-26 04:49:00 +0100 | <EvanR> | > -0 |
2025-03-26 04:49:01 +0100 | <lambdabot> | 0 |
2025-03-26 04:49:12 +0100 | <monochrom> | what you see is never what you get. it's telephone games all the way down. |
2025-03-26 04:49:12 +0100 | <EvanR> | Complex Double doesn't |
2025-03-26 04:49:31 +0100 | <EvanR> | > (-0) + (-0) :: Complex Double |
2025-03-26 04:49:33 +0100 | <lambdabot> | (-0.0) :+ (-0.0) |
2025-03-26 04:49:43 +0100 | <EvanR> | > (0) + (-0) :: Complex Double |
2025-03-26 04:49:44 +0100 | <lambdabot> | 0.0 :+ 0.0 |
2025-03-26 04:50:10 +0100 | <EvanR> | halfway sane |
2025-03-26 04:50:18 +0100 | <monochrom> | Right. Just don't trust the Show instance for Double. |
2025-03-26 04:51:16 +0100 | <EvanR> | or encodeFloat ! |
2025-03-26 04:51:23 +0100 | <EvanR> | er decode |
2025-03-26 04:52:39 +0100 | <Leary> | The `Show` instance for `Double` is fine; it was just defaulting to `Integer` there. |
2025-03-26 04:53:17 +0100 | Square2 | (~Square4@user/square) Square |
2025-03-26 04:54:29 +0100 | <EvanR> | > -0.0 |
2025-03-26 04:54:31 +0100 | <lambdabot> | -0.0 |
2025-03-26 04:55:11 +0100 | <monochrom> | Oh oops right. |
2025-03-26 04:55:13 +0100 | <EvanR> | rfc8259 for JSON has a grammar which seems to permit -0 to be in the json |
2025-03-26 04:55:24 +0100 | <EvanR> | I wonder how many loaders load it wrong |
2025-03-26 04:55:33 +0100 | <EvanR> | aeson? xD |
2025-03-26 04:55:39 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 04:55:43 +0100 | <EvanR> | Scientific doesn't support minus zero does it |
2025-03-26 04:56:21 +0100 | Square | (~Square@user/square) (Ping timeout: 246 seconds) |
2025-03-26 04:56:45 +0100 | <EvanR> | it does not |
2025-03-26 04:57:26 +0100 | <EvanR> | the browser loads it right |
2025-03-26 05:00:21 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-03-26 05:01:24 +0100 | <EvanR> | a large aeson issue from 2017 discusses the right way to represent numbers but doesn't mention negative zero |
2025-03-26 05:11:08 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 05:12:52 +0100 | <EvanR> | Text.JSON meanwhile represents a number with a Bool and a Rational |
2025-03-26 05:13:23 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 05:15:55 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-03-26 05:17:46 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 244 seconds) |
2025-03-26 05:19:50 +0100 | aforemny_ | (~aforemny@2001:9e8:6cfa:db00:13b6:4544:c45d:3975) aforemny |
2025-03-26 05:20:05 +0100 | aforemny | (~aforemny@i59F4C69B.versanet.de) (Ping timeout: 248 seconds) |
2025-03-26 05:22:30 +0100 | <meejah> | Aaaaa |
2025-03-26 05:22:50 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2025-03-26 05:26:55 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 05:27:38 +0100 | sp1ff | (~user@c-67-160-173-55.hsd1.wa.comcast.net) sp1ff |
2025-03-26 05:31:05 +0100 | michalz | (~michalz@185.246.207.221) |
2025-03-26 05:31:38 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
2025-03-26 05:37:31 +0100 | monochrom | (trebla@216.138.220.146) (Quit: ZNC 1.9.1+deb1 - https://znc.in) |
2025-03-26 05:42:42 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 05:46:16 +0100 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving) |
2025-03-26 05:47:44 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-03-26 05:52:49 +0100 | michalz | (~michalz@185.246.207.221) (Quit: ZNC 1.9.1 - https://znc.in) |
2025-03-26 05:53:53 +0100 | monochrom | (trebla@216.138.220.146) |
2025-03-26 05:57:14 +0100 | michalz | (~michalz@185.246.207.218) |
2025-03-26 05:58:27 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 05:58:31 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 06:02:56 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 244 seconds) |
2025-03-26 06:04:04 +0100 | jmcantrell | (~weechat@user/jmcantrell) (Quit: WeeChat 4.5.2) |
2025-03-26 06:05:21 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-03-26 06:12:43 +0100 | j1n37- | (~j1n37@user/j1n37) j1n37 |
2025-03-26 06:13:56 +0100 | j1n37 | (~j1n37@user/j1n37) (Ping timeout: 265 seconds) |
2025-03-26 06:14:25 +0100 | Vajb | (~Vajb@n83sqe30rcw6481fyv6-1.v6.elisa-mobile.fi) (Remote host closed the connection) |
2025-03-26 06:14:48 +0100 | Vajb | (~Vajb@n83sqe30rcw6481fyv6-1.v6.elisa-mobile.fi) |
2025-03-26 06:16:11 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 06:21:01 +0100 | sabathan | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Ping timeout: 244 seconds) |
2025-03-26 06:21:19 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
2025-03-26 06:23:06 +0100 | sabathan | (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) |
2025-03-26 06:26:25 +0100 | wil | (~wil@syn-035-148-093-061.res.spectrum.com) |
2025-03-26 06:30:27 +0100 | wil | (~wil@syn-035-148-093-061.res.spectrum.com) (Client Quit) |
2025-03-26 06:32:00 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 06:36:21 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
2025-03-26 06:43:51 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 06:47:22 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 06:48:00 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 246 seconds) |
2025-03-26 06:53:52 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-03-26 06:59:18 +0100 | hgolden | (~hgolden@2603:8000:9d00:3ed1:6ff3:8389:b901:6363) (Remote host closed the connection) |
2025-03-26 07:00:29 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 07:05:14 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-03-26 07:06:24 +0100 | hgolden | (~hgolden@2603:8000:9d00:3ed1:6ff3:8389:b901:6363) hgolden |
2025-03-26 07:11:16 +0100 | takuan | (~takuan@d8D86B601.access.telenet.be) |
2025-03-26 07:14:16 +0100 | ru0mad | (~ru0mad@moon.ruomad.net) ru0mad |
2025-03-26 07:16:12 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 07:20:52 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-03-26 07:29:15 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 07:31:46 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 07:34:00 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 272 seconds) |
2025-03-26 07:36:16 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2025-03-26 07:36:45 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-03-26 07:47:33 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 07:51:55 +0100 | aetepe | (~aetepe@176.54.108.86) aetepe |
2025-03-26 07:52:15 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
2025-03-26 07:58:18 +0100 | emmanuelux | (~emmanuelu@user/emmanuelux) emmanuelux |
2025-03-26 08:00:02 +0100 | caconym | (~caconym@user/caconym) (Quit: bye) |
2025-03-26 08:00:58 +0100 | caconym | (~caconym@user/caconym) caconym |
2025-03-26 08:03:20 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 08:03:21 +0100 | emmanuelux | (~emmanuelu@user/emmanuelux) (Quit: au revoir) |
2025-03-26 08:03:48 +0100 | emmanuelux | (~emmanuelu@user/emmanuelux) emmanuelux |
2025-03-26 08:03:59 +0100 | ru0mad | (~ru0mad@moon.ruomad.net) (Ping timeout: 260 seconds) |
2025-03-26 08:06:13 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) sord937 |
2025-03-26 08:07:57 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection) |
2025-03-26 08:08:09 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
2025-03-26 08:08:16 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) sord937 |
2025-03-26 08:14:19 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 08:15:01 +0100 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
2025-03-26 08:16:08 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 268 seconds) |
2025-03-26 08:16:23 +0100 | Lord_of_Life_ | Lord_of_Life |
2025-03-26 08:18:22 +0100 | ru0mad | (~ru0mad@moon.ruomad.net) ru0mad |
2025-03-26 08:18:47 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
2025-03-26 08:19:08 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 08:19:12 +0100 | ash3en | (~Thunderbi@149.222.157.169) ash3en |
2025-03-26 08:20:41 +0100 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen |
2025-03-26 08:24:24 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds) |
2025-03-26 08:34:57 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-03-26 08:38:25 +0100 | ru0mad | (~ru0mad@moon.ruomad.net) (Ping timeout: 248 seconds) |
2025-03-26 08:42:02 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds) |
2025-03-26 08:54:30 +0100 | storopoli | (m-h2v7u5@user/storopoli) storopoli |
2025-03-26 08:55:46 +0100 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod |
2025-03-26 08:59:23 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 09:01:09 +0100 | acidjnk | (~acidjnk@p200300d6e71c4f691c99ba8b65f3988d.dip0.t-ipconnect.de) acidjnk |
2025-03-26 09:02:53 +0100 | yahb2 | (~yahb2@user/tomsmeding/bot/yahb2) (Remote host closed the connection) |
2025-03-26 09:02:58 +0100 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
2025-03-26 09:03:05 +0100 | yahb2 | (~yahb2@user/tomsmeding/bot/yahb2) yahb2 |
2025-03-26 09:03:05 +0100 | ChanServ | +v yahb2 |
2025-03-26 09:03:13 +0100 | <tomsmeding> | % import Data.Complex |
2025-03-26 09:03:13 +0100 | <yahb2> | <no output> |
2025-03-26 09:03:17 +0100 | <tomsmeding> | % :i Complex |
2025-03-26 09:03:17 +0100 | <yahb2> | type Complex :: * -> * ; data Complex a = !a :+ !a ; -- Defined in ‘Data.Complex’ ; instance RealFloat a => Floating (Complex a) ; -- Defined in ‘Data.Complex’ ; instance Foldable Complex -- D... |
2025-03-26 09:03:31 +0100 | <tomsmeding> | Leary: sowwy, I updated GHC but neglected to restart yahb2 |
2025-03-26 09:03:42 +0100 | <tomsmeding> | % :m |
2025-03-26 09:03:42 +0100 | <yahb2> | <no output> |
2025-03-26 09:03:46 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 244 seconds) |
2025-03-26 09:04:26 +0100 | aetepe | (~aetepe@176.54.108.86) (Read error: Connection reset by peer) |
2025-03-26 09:04:46 +0100 | <tomsmeding> | and yes, I'm in UTC+1 in winter and in UTC+2 in summer |
2025-03-26 09:05:37 +0100 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 244 seconds) |
2025-03-26 09:05:38 +0100 | aetepe | (~aetepe@188.119.22.83) aetepe |
2025-03-26 09:06:10 +0100 | <mauke> | classic central europe |
2025-03-26 09:06:32 +0100 | aman | (~aman@user/aman) aman |
2025-03-26 09:06:39 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 244 seconds) |
2025-03-26 09:06:56 +0100 | <tomsmeding> | it's a gigantic time zone |
2025-03-26 09:09:45 +0100 | storopoli | (m-h2v7u5@user/storopoli) (Ping timeout: 244 seconds) |
2025-03-26 09:11:21 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2025-03-26 09:14:35 +0100 | <tomsmeding> | Leary: if this happens again, I just realised that `% :q` should also have worked |
2025-03-26 09:15:00 +0100 | <tomsmeding> | geekosaur: just pinging you here too in case you're interested |
2025-03-26 09:17:36 +0100 | ft | (~ft@p508db463.dip0.t-ipconnect.de) (Quit: leaving) |
2025-03-26 09:18:58 +0100 | storopoli | (m-h2v7u5@user/storopoli) storopoli |
2025-03-26 09:20:57 +0100 | <Leary> | Yeah, I didn't think to try that---thanks for the fix anyway. |
2025-03-26 09:23:35 +0100 | <tomsmeding> | (that begs the question in what timezone _you_ live) |
2025-03-26 09:24:17 +0100 | tomsmeding | . o O ( all of them ) |
2025-03-26 09:25:16 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2025-03-26 09:30:20 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) (Remote host closed the connection) |
2025-03-26 09:30:47 +0100 | hattckory | (~hattckory@70.27.118.207) |
2025-03-26 09:34:00 +0100 | sprotte24 | (~sprotte24@p200300d16f097d0088a61901ba3f264c.dip0.t-ipconnect.de) |
2025-03-26 09:34:50 +0100 | storopoli | (m-h2v7u5@user/storopoli) () |
2025-03-26 09:35:24 +0100 | hattckory | (~hattckory@70.27.118.207) (Ping timeout: 260 seconds) |
2025-03-26 09:39:36 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) |
2025-03-26 09:43:40 +0100 | emmanuelux | (~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer) |
2025-03-26 09:45:00 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) (Ping timeout: 276 seconds) |
2025-03-26 09:45:06 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 09:49:08 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 245 seconds) |
2025-03-26 09:56:25 +0100 | chele | (~chele@user/chele) chele |
2025-03-26 09:57:58 +0100 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) kuribas |
2025-03-26 09:59:03 +0100 | zungi | (~tory@user/andrewchawk) (Remote host closed the connection) |
2025-03-26 09:59:27 +0100 | zungi | (~tory@user/andrewchawk) andrewchawk |
2025-03-26 10:03:12 +0100 | ash3en | (~Thunderbi@149.222.157.169) (Ping timeout: 276 seconds) |
2025-03-26 10:05:21 +0100 | akegalj | (~akegalj@89-172-183-68.adsl.net.t-com.hr) akegalj |
2025-03-26 10:18:10 +0100 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 244 seconds) |
2025-03-26 10:18:36 +0100 | Digit | (~user@user/digit) (Read error: Connection reset by peer) |
2025-03-26 10:19:27 +0100 | Digit | (~user@user/digit) Digit |
2025-03-26 10:21:30 +0100 | ash3en | (~Thunderbi@149.222.157.169) ash3en |
2025-03-26 10:25:08 +0100 | Digitteknohippie | (~user@user/digit) Digit |
2025-03-26 10:27:46 +0100 | Digit | (~user@user/digit) (Ping timeout: 244 seconds) |
2025-03-26 10:30:51 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 10:30:51 +0100 | lxsameer | (~lxsameer@Serene/lxsameer) lxsameer |
2025-03-26 10:32:16 +0100 | Digitteknohippie | Digit |
2025-03-26 10:35:11 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 252 seconds) |
2025-03-26 10:36:35 +0100 | __monty__ | (~toonn@user/toonn) toonn |
2025-03-26 10:39:14 +0100 | sprotte24 | (~sprotte24@p200300d16f097d0088a61901ba3f264c.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
2025-03-26 10:39:30 +0100 | sprotte24 | (~sprotte24@p200300d16f097d0088a61901ba3f264c.dip0.t-ipconnect.de) |
2025-03-26 10:40:14 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2025-03-26 10:46:54 +0100 | hattckory | (~hattckory@70.27.118.207) |
2025-03-26 10:51:49 +0100 | hattckory | (~hattckory@70.27.118.207) (Ping timeout: 260 seconds) |
2025-03-26 10:53:48 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.5.2) |
2025-03-26 11:04:09 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 252 seconds) |
2025-03-26 11:05:37 +0100 | dsrt^ | (dsrt@c-71-199-187-173.hsd1.ga.comcast.net) (Ping timeout: 252 seconds) |
2025-03-26 11:05:53 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2025-03-26 11:06:48 +0100 | orslon^ | (dehsou@c-71-199-187-173.hsd1.ga.comcast.net) (Ping timeout: 272 seconds) |
2025-03-26 11:16:15 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 11:20:44 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 272 seconds) |
2025-03-26 11:23:30 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) |
2025-03-26 11:30:23 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 268 seconds) |
2025-03-26 11:33:24 +0100 | bitdex_ | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2025-03-26 11:33:33 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) (Ping timeout: 276 seconds) |
2025-03-26 11:33:45 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
2025-03-26 11:37:04 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2025-03-26 11:39:44 +0100 | ash3en | (~Thunderbi@149.222.157.169) (Quit: ash3en) |
2025-03-26 11:42:22 +0100 | ash3en | (~Thunderbi@149.222.157.169) ash3en |
2025-03-26 11:45:40 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) |
2025-03-26 11:46:20 +0100 | ash3en | (~Thunderbi@149.222.157.169) (Remote host closed the connection) |
2025-03-26 11:48:15 +0100 | coldtom8 | (~coldtom@coldrick.cc) coldtom |
2025-03-26 11:48:49 +0100 | coldtom8 | (~coldtom@coldrick.cc) () |
2025-03-26 11:49:53 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) (Ping timeout: 248 seconds) |
2025-03-26 11:56:21 +0100 | dhil | (~dhil@2a0c:b381:52e:3600:79cd:9b5b:3ea2:beda) dhil |
2025-03-26 11:57:03 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 246 seconds) |
2025-03-26 11:57:14 +0100 | <Athas> | tomsmeding: so when will horde-ad be ready? I have (re?)-read the paper and now I am excited. |
2025-03-26 11:57:42 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2025-03-26 11:57:55 +0100 | <tomsmeding> | Athas: what paper? |
2025-03-26 11:58:08 +0100 | <tomsmeding> | horde-ad is based on unpublished stuff :P |
2025-03-26 11:58:33 +0100 | <Athas> | The horde-ad README says it's based on "Provably Correct, Asymptotically Efficient, Higher-Order Reverse-Mode Automatic Differentiation"! |
2025-03-26 11:58:45 +0100 | <Athas> | But then that paper says that it's really just a different exposition of how 'ad' works, so who knows. |
2025-03-26 11:58:49 +0100 | <tomsmeding> | oh, it is, at some point -- but that paper essentially just describes 'ad' |
2025-03-26 11:58:51 +0100 | <tomsmeding> | yes, indeed |
2025-03-26 11:58:57 +0100 | <tomsmeding> | the point of horde-ad is that it's an extension to that |
2025-03-26 12:00:01 +0100 | <tomsmeding> | we're tried to write it up, and we have some kind of write-up, in fact, but we've been struggling to find a presentation that is compelling enough for a successful publication |
2025-03-26 12:00:30 +0100 | <tomsmeding> | the possibility exists that it will just be a library and a "here's some text" on arXiv |
2025-03-26 12:00:32 +0100 | <Athas> | "Number goes down" is not compelling? Or is it the actual explanation that is difficult to get right? |
2025-03-26 12:00:41 +0100 | xff0x | (~xff0x@2405:6580:b080:900:6185:acb4:363b:5fd3) |
2025-03-26 12:01:04 +0100 | <tomsmeding> | number goes down as in what my ad-dual hack does is compelling as in: it's much faster than something that's very crap compared to the state of the art |
2025-03-26 12:01:11 +0100 | <tomsmeding> | I'm not sure that's a paper. |
2025-03-26 12:01:19 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 12:01:51 +0100 | <tomsmeding> | horde-ad tries to do quite a bit more than ad-dual, though, and there the tricky bit is that there are lots of parts where the algorithm has unfortunate limitations |
2025-03-26 12:02:04 +0100 | fp | (~Thunderbi@2001:708:20:1406::1370) fp |
2025-03-26 12:02:25 +0100 | <tomsmeding> | if it worked out just a little bit more, it would work just fine, but as it is, it's complex _and_ has annoying limitations |
2025-03-26 12:02:51 +0100 | <Athas> | Mikolaj is doing almost ten commits per day, so I can't imagine it will be long before it works! |
2025-03-26 12:03:11 +0100 | <tomsmeding> | there is probably a way to write this up properly so that it's publishable, but among us, we've spent enough hours on trying to write it down that we're likely to just shelve it. |
2025-03-26 12:03:13 +0100 | <tomsmeding> | shelf? |
2025-03-26 12:04:15 +0100 | <tomsmeding> | Athas: there's also a fun array library underneath horde-ad, actually, that I wrote as a big yak shave: https://git.tomsmeding.com/ox-arrays |
2025-03-26 12:04:19 +0100 | infinity0 | (~infinity0@pwned.gg) (Ping timeout: 260 seconds) |
2025-03-26 12:04:37 +0100 | <tomsmeding> | it's orthotope (on hackage), but with arithmetic operations that are actually fast |
2025-03-26 12:04:46 +0100 | <tomsmeding> | so you get some form of simple runtime fusion |
2025-03-26 12:04:54 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 260 seconds) |
2025-03-26 12:05:08 +0100 | <Athas> | How does fast arithmetic imply fusion? |
2025-03-26 12:05:20 +0100 | <tomsmeding> | it doesn't, the orthotope strided array representation does |
2025-03-26 12:05:35 +0100 | <tomsmeding> | replicate and transpose are O(number of dimensions) |
2025-03-26 12:05:55 +0100 | <tomsmeding> | and consumers of arrays can inspect what the actual strides are, to optimise their operation |
2025-03-26 12:06:09 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 268 seconds) |
2025-03-26 12:06:13 +0100 | <Athas> | What is that representation? Is it documented anywhere? |
2025-03-26 12:06:37 +0100 | <tomsmeding> | it's this: https://hackage.haskell.org/package/orthotope-0.1.7.0/docs/Data-Array-Internal.html#t:T |
2025-03-26 12:06:50 +0100 | <tomsmeding> | this probably has a name |
2025-03-26 12:07:00 +0100 | <Athas> | Yeah, it's an LMAD. We use the exact same representation in Futhark. |
2025-03-26 12:07:25 +0100 | <tomsmeding> | but you do it statically, right? |
2025-03-26 12:07:42 +0100 | <tomsmeding> | there are no such stride vectors at runtime any more in Futhark, I presume |
2025-03-26 12:07:45 +0100 | <Athas> | Yes, but that doesn't really make much of a difference. |
2025-03-26 12:07:51 +0100 | <Athas> | There are, actually, in the runtime system! |
2025-03-26 12:08:09 +0100 | <tomsmeding> | I can imagine that it doesn't matter much in practice |
2025-03-26 12:08:40 +0100 | <tomsmeding> | in any case, this is a "normal" array library in haskell, not using a compilation pipeline, so it's more flexible for integrating into a haskell program |
2025-03-26 12:08:46 +0100 | <Athas> | This function (well, the function generated by the macro) inspects the strides at runtime and uses that to pick a good way of copying an array: https://github.com/diku-dk/futhark/blob/master/rts/c/copy.h#L222-L249 |
2025-03-26 12:08:55 +0100 | <haskellbridge> | <Man of Letters> hello! |
2025-03-26 12:09:03 +0100 | haskellbridge | Man of Letters is Mikolaj |
2025-03-26 12:09:15 +0100 | <Athas> | We used to have a much more elaborate representation than this, but this LMAD/orthotope-strided turns out to be a lot of bang for the buck. |
2025-03-26 12:09:17 +0100 | <tomsmeding> | Athas: cool! |
2025-03-26 12:09:19 +0100 | <Athas> | Hello Man of Letters! |
2025-03-26 12:09:37 +0100 | <tomsmeding> | I have some nice CPP-generated C code in ox-arrays too. :) |
2025-03-26 12:09:46 +0100 | <haskellbridge> | <Man of Letters> oh yes, it rocks |
2025-03-26 12:10:09 +0100 | <Athas> | One particularly nice property of this representation is that you can anti-unify representations as long as they have the same rank. |
2025-03-26 12:10:30 +0100 | <tomsmeding> | "anti-unify"? |
2025-03-26 12:10:44 +0100 | <Athas> | Yeah, lift out the components where they differ. |
2025-03-26 12:10:47 +0100 | <Athas> | This means you can have a branch where one returns a row-major array and the other a column-major, without any copies being necessary. |
2025-03-26 12:10:56 +0100 | <tomsmeding> | right |
2025-03-26 12:11:06 +0100 | <tomsmeding> | oh so you're doing this dynamically too! I had no idea |
2025-03-26 12:11:20 +0100 | <Athas> | Statically when possible, dynamically when necessary. |
2025-03-26 12:11:24 +0100 | <tomsmeding> | I see |
2025-03-26 12:12:57 +0100 | <Athas> | Actually, there is one difference. LMADs also contain the size of each dimension. How can you get away with not knowing the size of the array? |
2025-03-26 12:13:02 +0100 | <tomsmeding> | Athas: horde-ad was originally built on orthotope directly, but it was rather crippled by the fact that orthotope is all-Haskell, and so the stuff that should be fast is actually disappointingly slow |
2025-03-26 12:13:10 +0100 | <tomsmeding> | Athas: the size of the array is also there, one data type higher up |
2025-03-26 12:13:19 +0100 | <Athas> | Ah, I see, so it's just a question of factorisation. |
2025-03-26 12:13:30 +0100 | <tomsmeding> | yes; this is the data type that the user sees https://hackage.haskell.org/package/orthotope-0.1.7.0/docs/Data-Array-Internal-RankedS.html#t:Array |
2025-03-26 12:13:52 +0100 | <Athas> | If you're curious, section 3.1 in https://futhark-lang.org/publications/ifl22.pdf describes how LMADs work in Futhark. |
2025-03-26 12:14:08 +0100 | <Athas> | I always suspected they'd work fine as a run-time structure for an array library, so I'm happy to see that is the case. |
2025-03-26 12:14:30 +0100 | <Athas> | tomsmeding: is 'n' a shape in the multidimensional case? |
2025-03-26 12:14:57 +0100 | <Athas> | Oh wait, 'n' is the rank? |
2025-03-26 12:15:23 +0100 | <tomsmeding> | orthotope has three copies of the array API: one for ranked arrays (multi-dim. arrays indexed by their rank), one for shaped arrays (~ indexed by their shape, a type-level [Nat]), and one for dynamic arrays (not indexed) |
2025-03-26 12:15:28 +0100 | <tomsmeding> | I linked the ranked one |
2025-03-26 12:16:01 +0100 | <Athas> | That's nice. I find fully shaped arrays a bit awkward in Haskell, but ranked should be a nice compromise. |
2025-03-26 12:16:08 +0100 | <tomsmeding> | ox-arrays, my thing on top of orthotope, supports ranked arrays, shaped arrays, _and_ mixed arrays (indexed by [Maybe Nat]): the natural generalisation of the two |
2025-03-26 12:17:09 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2025-03-26 12:17:15 +0100 | <tomsmeding> | the goal of that was to support nested arrays too: essentially the trick that Data.Vector.Unboxed does, but then also give a `data instance` for nested arrays. If you nest ranked inside shaped, or the other way round, you end up having to represent the result using an array with mixed type information |
2025-03-26 12:17:20 +0100 | <Athas> | Mixed arrays sound interesting. Do they work out nicely in practice? |
2025-03-26 12:17:52 +0100 | <tomsmeding> | the downside is that these nested arrays are not actually as flexible as you'd like: the whole thing still has to be rectangular, so it's not very different from a large multidimensional array. |
2025-03-26 12:18:46 +0100 | <tomsmeding> | They can be used in user code too, of course; the idea there is that it sometimes makes sense to e.g. have a "batch dimension" in your computation that's any length, but then have the actual data dimensions be shape-typed because you're doing interesting things with them |
2025-03-26 12:18:57 +0100 | <tomsmeding> | But this being embedded in haskell, it's clumsy and verbose all around |
2025-03-26 12:19:20 +0100 | <tomsmeding> | Futhark has quite the advantage of having custom syntax and a custom type system. :) |
2025-03-26 12:21:15 +0100 | <Athas> | Well, selective unknown sizes seems like it would go a long way towards avoiding the awkward cases. |
2025-03-26 12:21:35 +0100 | <Athas> | Many applications can probably divide the sizes into constants and unknown, with no great loss of safety. |
2025-03-26 12:21:52 +0100 | <tomsmeding> | perhaps, yes |
2025-03-26 12:22:59 +0100 | <tomsmeding> | but shape values (i.e. the return type of the function that returns the shape of an array) are type-indexed by the type-level shape/rank/etc. too, and a shape value indexed by a partially-unknown type-level shape is annoyingly verbose |
2025-03-26 12:23:39 +0100 | <tomsmeding> | you get `SKnown (SNat @3) :$$ SUnknown 5 :$$ SKnown (SNat @7) :$$ ZSS` as the shape of an array with type-level shape [Just 3, Nothing, Just 7] |
2025-03-26 12:23:54 +0100 | <tomsmeding> | It works, technically. :P |
2025-03-26 12:24:37 +0100 | infinity0 | (~infinity0@pwned.gg) infinity0 |
2025-03-26 12:24:56 +0100 | <tomsmeding> | er, `SKnown (SNat @3) :$% SUnknown 5 :$% SKnown (SNat @7) :$% ZSX` |
2025-03-26 12:25:08 +0100 | <tomsmeding> | the (:$$) and ZSS are for shaped shapes, not for mixed shapes |
2025-03-26 12:25:17 +0100 | <tomsmeding> | I think you get the point. :) |
2025-03-26 12:26:05 +0100 | <tomsmeding> | and yes, these things have IsList instances, but that's cheating |
2025-03-26 12:28:49 +0100 | ash3en | (~Thunderbi@149.222.157.169) ash3en |
2025-03-26 12:29:24 +0100 | xff0x | (~xff0x@2405:6580:b080:900:6185:acb4:363b:5fd3) (Ping timeout: 260 seconds) |
2025-03-26 12:29:29 +0100 | <tomsmeding> | Athas: section 3.1 of the FunMem paper is very unsurprising to me, so I guess that's a good thing |
2025-03-26 12:30:21 +0100 | alp | (~alp@2001:861:8ca0:4940:dd1f:b4e6:4fbb:e5d8) |
2025-03-26 12:31:31 +0100 | haritz | (~hrtz@2a02:8010:65b5:0:5d9a:9bab:ee5e:b737) |
2025-03-26 12:31:49 +0100 | <Athas> | tomsmeding: too bad everyone has their own name for this representation. LMAD is also somewhat of a misnomer; it's from autoparallelisation papers that try to analyse the intended multidimensional structure based on flat index arithmetic. |
2025-03-26 12:32:09 +0100 | <Athas> | Someone needs to write a half page paper titled "this is what this thing is called". |
2025-03-26 12:32:27 +0100 | <tomsmeding> | I don't think orthotope tries to give it _any_ name. I didn't know "LMAD" so I use "orthotope-style strides" in my code whenever it comes up. |
2025-03-26 12:32:56 +0100 | saimazoon | (~hrtz@user/haritz) (Ping timeout: 272 seconds) |
2025-03-26 12:33:22 +0100 | haritz | (~hrtz@2a02:8010:65b5:0:5d9a:9bab:ee5e:b737) (Changing host) |
2025-03-26 12:33:22 +0100 | haritz | (~hrtz@user/haritz) haritz |
2025-03-26 12:39:39 +0100 | notdabs | (~Owner@2600:1700:69cf:9000:586:19c0:87cb:b0ff) |
2025-03-26 12:42:03 +0100 | <tomsmeding> | Athas: the title of that half-page paper has a chicken-and-egg problem though |
2025-03-26 12:42:08 +0100 | machinedgod | (~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod |
2025-03-26 12:43:09 +0100 | <tomsmeding> | I guess you could put $o + \sum_{k=1}^n s_k * i_k$ in the title in lieu of a name, but that won't go over very well, I fear |
2025-03-26 12:44:34 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) |
2025-03-26 12:46:44 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-03-26 12:47:29 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2025-03-26 12:50:53 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 244 seconds) |
2025-03-26 12:55:03 +0100 | sprotte24 | (~sprotte24@p200300d16f097d0088a61901ba3f264c.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
2025-03-26 12:55:27 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) (Ping timeout: 276 seconds) |
2025-03-26 13:01:57 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) |
2025-03-26 13:02:38 +0100 | cross | (~cross@spitfire.i.gajendra.net) cross |
2025-03-26 13:05:21 +0100 | inca | (~inca@4-138-135-64.gray-ng.dsl.pinetreenetworks.com) (Ping timeout: 268 seconds) |
2025-03-26 13:05:34 +0100 | ethantwardy | (user@user/ethantwardy) (Quit: WeeChat 4.4.2) |
2025-03-26 13:06:09 +0100 | merijn | (~merijn@77.242.116.146) (Ping timeout: 248 seconds) |
2025-03-26 13:07:20 +0100 | inca | (~inca@4-138-135-64.gray-ng.dsl.pinetreenetworks.com) |
2025-03-26 13:07:31 +0100 | ethantwardy | (user@user/ethantwardy) ethantwardy |
2025-03-26 13:12:24 +0100 | hattckory | (~hattckory@bras-base-toroon4524w-grc-30-70-27-118-207.dsl.bell.ca) (Ping timeout: 260 seconds) |
2025-03-26 13:13:58 +0100 | ash3en | (~Thunderbi@149.222.157.169) (Ping timeout: 252 seconds) |
2025-03-26 13:14:51 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2025-03-26 13:17:39 +0100 | inca | (~inca@4-138-135-64.gray-ng.dsl.pinetreenetworks.com) (Ping timeout: 260 seconds) |
2025-03-26 13:18:03 +0100 | inca | (~inca@4-138-135-64.gray-ng.dsl.pinetreenetworks.com) |
2025-03-26 13:21:17 +0100 | <haskellbridge> | <Bowuigi> Do naperian functors help with shapes? https://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/aplicative.pdf https://nickx.hu/Acc-nap.pdf |
2025-03-26 13:22:01 +0100 | xff0x | (~xff0x@2405:6580:b080:900:d2df:bcfa:d5c3:4ebd) |
2025-03-26 13:22:13 +0100 | alp | (~alp@2001:861:8ca0:4940:dd1f:b4e6:4fbb:e5d8) (Ping timeout: 248 seconds) |
2025-03-26 13:23:30 +0100 | Shsl-Junko-POSER | (~Shsl-Junk@50.235.208.178) |
2025-03-26 13:26:39 +0100 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 276 seconds) |