log☇︎
1243 entries in 0.715s
mod6: my ffa must be way old
asciilifeform: PeterL: sorta why i wrote the most general , unconstrained ffa .
asciilifeform: this means you can have, e.g., 192b, 384b, etc ffa
asciilifeform points out that even very modest iron, ffa's quite acceptably over 8192b and higher.
asciilifeform: no reason to use any particular pattern, understand, ffa
mircea_popescu: asciilifeform no dude, consider the catechistic angle. "soo... why is your key 515 byts ?" "i dunno, his lordship mp said so" "why ?" "nobody knoiws, really. he just says things." "so how do you calculate it ?" "first, you set ffa to 520 bytes..." "why did he say 515 then ?" "uh... that's a good question."
asciilifeform: ALL ffa ops take time that is not dependent on the hamming weight. that's what 'constant time' means.
asciilifeform: e.g. 6666-bit keys work fine on ffa!
a111: Logged on 2017-08-14 17:50 mircea_popescu: but this important point has important consequences, because now we can't have my eccentric rsa keys. must be 4096, because the only alternatives ffa permits are 2048 which is too short and 8912 which is too long.
asciilifeform: http://btcbase.org/log/2017-08-14#1697693 << and importantly, current ffa works with ( see factorial demo ) any multiple of 64, that fits in your machine memory. ☝︎
asciilifeform: ftr i considered imposing a 'ffa W is power of 2 or fuckyou'
asciilifeform: mircea_popescu: you can use any key bitness you like ! but gotta top it out with 0s to sit it into a ffa word
asciilifeform: say for some peculiar purpose, an ffa run needs 192-bitness.
mircea_popescu: but this important point has important consequences, because now we can't have my eccentric rsa keys. must be 4096, because the only alternatives ffa permits are 2048 which is too short and 8912 which is too long. ☟︎
asciilifeform: it is not possible to have anything that looks like ffa, without suffering this constraint.
asciilifeform: mircea_popescu: 'solution to math problem' existed in 1978. ffa goal is simplicity+correctness of implementation + adequateperformance.
asciilifeform: just like ffa worx just fine on opteron today dialed down to 32
asciilifeform: 'ffa represents a W-bit integer as a contiguous array of N machine words of bitness B, W = N*B.'
mircea_popescu: answer the q then! when a 128 bit computer is sold, ffa word will ahve to increase to 128 bits ?
asciilifeform: understand, it is not possible to use partial machinewords in the simplest possible (i.e. the one in ffa) arithmetic method.
mircea_popescu: so ffa only allocates by... 8 byte chunks ?
asciilifeform: and won't work in ffa.
BingoBoingo: ^ Markets love ffa
asciilifeform: you wouldn't want a mb of anything in ffa tho
mircea_popescu: and trinque was about to release a payments thing for deedbot by ... end of july yo! and then there's the ffa growing towards a proper tmsr-rsa, and of course the gossipd sandbox, and a coupla yet sikrit items and so on
asciilifeform: forn00bz: an, e.g., rsa modexp, in ffa, must be representable by a long roll of paper, on it are ops for ordinary 4function calculator, with very patient slave. and roll ONLY ROLLS FORWARD and has finite # of instructions on it, known in advance when you decide the ffa width. ☟︎☟︎
asciilifeform: in currently published ffa set, none of the ops do this
asciilifeform: makes the rest of ffa an exercise in complete pointlessness, to use anything of the kind.
asciilifeform: the sad and slow constantspacetime solution , is the same exponentiation-by-squaring ffa has now, http://wotpaste.cascadianhacker.com/pastes/BVxyN/?raw=true , but after FZ_Square(B, B, C_Sqr); we FZ_Mod(B, M B) every time.
asciilifeform: we cannot do this. because the simplicity of ffa comes from using strictly ordinary machineword arithmetic.
asciilifeform: for simplicity, tested the case that actually happens in practice: on a 64bit box, any ffa width over 512 bits gives a strictly 8-wide comba mult ocurrence ☟︎
asciilifeform: but this being said , i am not even ready yet to barf re ref-keccak, i aint even yet done barfing re ffa not having already existed
asciilifeform: ( every single inline pragma in ffa is there because without it, stat. signif. uptick in run time on all of my iron )
asciilifeform: ( thing still runs in constant time: N always walks the range of 1 to last digit of the width of our ffa )
asciilifeform: mircea_popescu: re rsa, i'm looking forward to msdos ffa test.
asciilifeform: ffa for instance does NOT rely on an os
asciilifeform: currently i also suspect that the whole ecc 'fashion' was instituted specifically to prevent a ffa-style treatment.
asciilifeform: even the 'ffaishness' of ffa has certain natural limits. gcd, for instance, is not constanttimeable
asciilifeform: it's the razor blade ffa walks on
BingoBoingo: <mod6> ok asciilifeform, dropped "OpenBSD64 4.8 binary" on my obsd 5.6. reason being, is that that version seems to be the only x86_64 version?? not sure there. but it /looks/ promising. after extracting the binaries, tried to use it to gnatmake fact + ffa, but was unsuccessful because: << Gotta use OBSD 4.8, binaries are not compatible across .1 revisions
mod6: [17:32:00 mod6@obsd: ~/ada/fact]% gnatmake ffa ffa_fact
mod6: ok asciilifeform, dropped "OpenBSD64 4.8 binary" on my obsd 5.6. reason being, is that that version seems to be the only x86_64 version?? not sure there. but it /looks/ promising. after extracting the binaries, tried to use it to gnatmake fact + ffa, but was unsuccessful because:
diana_coman: played a bit with ffa too; maybe I get some time to add to mod6's testing of it
asciilifeform: well, e.g., ffa, is 100% portable in the sense where it will build on ANY standards-compliant ada
asciilifeform: anyway if your gnat does this, it is rubbish, throw it out, i will not be v-releasing an ffa where everything is not inlined, each non-inlined routine is a ~10% speed ding.
mod6: either way, think I should run the ffa_fact test?
mod6: fwiw, if i just run `gnatmake ffa_fact`, does not error.
mod6: asciilifeform: also, what's weird is, despite the errors in the last paste above, an 'ffa_fact' binary is still compiled.
mod6: im not sure what it doesn't like about 142, 146 -- they look like a lot of otherlines in ffa. so not sure what it thinks isn't kosher.
asciilifeform: mircea_popescu: his runs but somehow barfs, for 1st time, on this particular ffa.
asciilifeform: thing is, you can't do this with ffa.
mod6: now i get: make: *** No rule to make target 'gnatmake', needed by 'ffa'. Stop.
mod6: ok, it doesnt recognize `gnatmake -cflags -02 ffa ffa_fact`
mod6: no, didn't build with -cargs -O2, just did `gnatmake ffa ffa_fact`
asciilifeform: exercise for reader : write equation to predict, within 1 minute, how long N! takes on your box in ffa
asciilifeform: 1 ffa mult for B-bit regs take time T. 9000 of them take time 9000T. guaranteed.
asciilifeform: mircea_popescu: the difficulty is in predicting how long ops take on heathentron, not on ffa ( which is deadly linear for all ops )
a111: Logged on 2017-07-15 12:45 asciilifeform: while we're on subj, ffa is more or less guaranteed to lose to just about any heathen bignumtron in factorial speed, and it should not be hard to see why.
mod6: <+asciilifeform> also you forgot, in the original, to divide the length of ffa by 64 (bits), yours will blow up instead of run, gcc by default does not give infinite stack << ah thanks for making the changes asciilifeform. bak now. will try this out...
asciilifeform: also you forgot, in the original, to divide the length of ffa by 64 (bits), yours will blow up instead of run, gcc by default does not give infinite stack
asciilifeform: why do you have a ffa-wide comparison in there.
asciilifeform: on my box, a 1048576bit ffa has a 240ms mul.
asciilifeform: mod6: other thing, since ffa is constant time, your N! is in O(N) (if mul were considered a constant op and brought outside of the brackets. which is is, 10! with 4096bit ffa, takes exactly C longer than 9! with 4096bit ffa. etc )
asciilifeform: mod6: think of ffa as a soldier's entrenching spade. you wouldn't dig a foundation for a new house with it. but it is bare naked simple, + adequate and entirely so for entrenching, and for the occasional bout of hand-to-hand.
asciilifeform: while we're on subj, ffa is more or less guaranteed to lose to just about any heathen bignumtron in factorial speed, and it should not be hard to see why. ☟︎
asciilifeform: in other lullomatics, asciilifeform found a trivial 2x speedup for ffa exp
mod6: currently using an ffa sneakpreviewed ~3 weeks ago or so.
mod6: :!./ffa_test
mircea_popescu: "here's a list of factorials calculated by alf's ffa : "
mod6: mircea_popescu, asciilifeform, tmsr~: http://www.mod6.net/ffa/from_thinair.html
asciilifeform: so i asked 'what would this look like on sane iron' and ended up with ffa
a111: Logged on 2017-07-13 16:14 phf: but ffa also doesn't have that many moving parts. it's a single stack mathematical code that mostly operates on same, uniform memory regions. so my original issue was that there's no enough quality code, certainly plenty of shit code, which is not quite the case in common lisp world
phf: but ffa also doesn't have that many moving parts. it's a single stack mathematical code that mostly operates on same, uniform memory regions. so my original issue was that there's no enough quality code, certainly plenty of shit code, which is not quite the case in common lisp world ☟︎
phf: ~for me~ studying ffa is a faster method to pick up good habits, shed bad habits, considerably more so than say studying that avionics code above.
phf: you gotta study to get to the point where "it's a simple matter of". that's the kind of insight that reading ffa can give you
phf: asciilifeform: that's silly. it took you many years to arrive to the point where you even understand what "stop overthinking" is, or how to manifest it in code and still provide the solution. i problem is in too much thinking, then you could get a complete idiot to write ffa.
asciilifeform: phf: the 'insight' in ffa is simply the kind that was taught to the prussian soldiers -- 'stop overthinking'
phf: there's plenty of insight in ffa
asciilifeform: there ain't much of it in, e.g., ffa
asciilifeform: the other thing to remember, is that the win from writing in ada - but not in ada in general, but the style demonstrated in ffa in particular -- remains even if YOU HAVE NO ACCESS TO GNAT and gotta compile by hand into asm. because it forces the style of algo that CAN be safely so expressed - i.e. without presumption of pointerolade arithmetic, gc, or other cost-externalizing electrosocialisms ☟︎
asciilifeform: FIRST you write the fits-in-head minimal ffa-like thing. THEN you spark.
a111: Logged on 2017-07-13 14:02 asciilifeform: http://btcbase.org/log/2017-07-13#1682303 << iirc phf posted his ffa helloworld a day or so after the original paste
a111: Logged on 2017-07-13 05:16 mod6: took me quite a while to gain the knowledge of how to write a test driver that creates the ffa generic package and the necessary compoents to make that possible.
asciilifeform: http://btcbase.org/log/2017-07-13#1682303 << iirc phf posted his ffa helloworld a day or so after the original paste ☝︎☟︎
mod6: took me quite a while to gain the knowledge of how to write a test driver that creates the ffa generic package and the necessary compoents to make that possible. ☟︎
mod6: :!./ffa_test
mod6: f, my ffa is super old
asciilifeform: upstack, ffa wants to double as a 'how to rsa' 'b00k' , i.e. at every point tradeoff was made for clarity rather than speed.
asciilifeform: ( ffa in asm is - somewhat surprisingly - easier than ada or even c )
asciilifeform: mircea_popescu: for completeness, exp with 4096 operands takes ~0.3s. per. on current ffa.
asciilifeform: mircea_popescu: this knot can be cut in exactly 2 ways - the 'ffa' and 'gmp', if you will
asciilifeform: http://btcbase.org/log/2017-07-08#1680575 << ffa is graphical demonstration that this is so ☝︎
asciilifeform: aha, see the 'egyptological' ffa posted last month
asciilifeform: what do you think ffa is prototype of !
asciilifeform: mircea_popescu: didja read the beginning, say, of ffa. there's a proof of correctness for the adder, for instance.
asciilifeform: that's the spec for ffa, for instance.
asciilifeform: with the ffa massages
asciilifeform: will soon enough, when i polish off ffa
asciilifeform: is whole point of the ffa thing
asciilifeform: recall, we're FFA, and they're non-F