asciilifeform: ( it ain't impossible. but i can't immediately think of an economical method )
asciilifeform: mircea_popescu: i'd like to see your algo for 2s-complement add/sub for a hypothetical box where sign bit is not the senior bit
asciilifeform: i'll confess , i'm with mircea_popescu on this one, how much time is spent printing and testing sign bits ?
asciilifeform: mircea_popescu: the 'philosophically consistent' ( hey kurchatov! ) method is: little-endianism . but with it, you're stuck loading a whole parcel to test its sign bit ( i dun give a fuck, personally , on modern iron ) but -- unless yer an arab -- flipping words prior to printing , in the civilized style, left to right
asciilifeform: possibly worth reviewing why people even came up with bigendianism. it was partly from 'can test sign bit by looking at zeroth byte' , and partly the ben_vulpes ( from #trilema-mod6 log linked 2d ago ) problem -- 'let's store words in the order in which they get printed'
asciilifeform: ( attach a dynamo to dijkstra's corpse prior to testing, yes 'oughta tell From First Principles!111' )
asciilifeform: for answering mircea_popescu's 'but does it actually work' .
asciilifeform: btw iirc trinque has a bigendian machine with a working gnat.
asciilifeform: ( i recommend to diana_coman and even to mircea_popescu to read the linked doc )
asciilifeform: and the effect is what is desired, namely the layout is exactly the same, independent of whether the code is compiled on a big-endian or little-endian machine. '
asciilifeform: ' for Data'Bit_Order use High_Order_First;
asciilifeform: this is how the problem is traditionally solved.
asciilifeform: so in b) you either flip ( opposites ) endiannesses of all inputs, or not flip ( same endianness ).
asciilifeform: what you can do, is either a) operate bitwise, ffa-style. b) mandate an endianism for the data format. and since you know the endianism of the machine you're building on, in particular build, you know whether the machine's is opposite or same as the data's.
asciilifeform: this problem was a serious headache for the tcp/ip people, they solved it mircea_popescu-style, 'fuckyou and errything going over the wire is to be bigendian' (at the time, bigendianism dominated in 'serious' iron)
asciilifeform: diana_coman: all of this being said, if you can guarantee that the endianism of the input matches the endianism of the roundconstants -- you get correct answer. otherwise not.
asciilifeform: ( it was written, recall, not in empty space but for usg's contest. and 1 of the demands was 'not much slower than older hashes' )
asciilifeform: nao diana_coman knows why asciilifeform favours crackpotteries like numbertheoretical hashing etc.
asciilifeform: sorta like how ffacalc works ( observe that it does exactly same thing on all possible endianisms , even 'middle endian' ( yes exists ))
asciilifeform: nao you could try to derive a keccak' , where it aint..
asciilifeform: because of the way keccak is defined, the input is operated on wordwise
asciilifeform: diana_coman: as your proggy is currently written, it is only sensitive to endianism mismatch between the inputs and the endianism of the machine on which your proggy was built ( i.e. in which the round constants are stored ). this is not curable at the program level .
asciilifeform: diana_coman: is your current hypothesis that the iota operator is endianized ?
asciilifeform: before we start feeding asciilifeform's machine arch crackpotteries again ( he dun mind at all..) let's determine whether diana_coman actually has an endianism problem ?
asciilifeform: aite, mircea_popescu gets a 1bit bus and 4096b rsa op takes 25 years.
asciilifeform: mircea_popescu: the basic problem of 'how wide apart the rails on the railroad' doesn't go away , regardless of what you set the knobs to
asciilifeform: diana_coman: this part i cannot cure , hashing as it stands is an exercise in voodoo
asciilifeform: mircea_popescu: to make it unexist, gotta understand what it is
asciilifeform: diana_coman: endianism only comes into play if you address individual bytes
asciilifeform: mircea_popescu: it is important to grasp what endiannessism IS
asciilifeform: mircea_popescu, diana_coman : if you don't byte-address, it does not matter whether you use constants, you are not endian-sensitive
asciilifeform: mircea_popescu: this is not necessarily so
asciilifeform: diana_coman: waitasec : what makes you think that your keccak is sensitive to endianness ?
asciilifeform in the midst of fairly hefty conversion of '5000 log frags' to proper blogotronic text -- in re ffa . but ffa is in this respect substantially simpler item; it is not a mega-mystery how to do arithmetic.
asciilifeform: ben_vulpes: i pictured something moar lumberjacky, with gigantic saw