Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (function(){
- var ycomb={};
- var Y=ycomb.Y=function(f) {
- return (
- (function (x) {
- return f(function (v) { return x(x)(v); }); })
- (function (x) {
- return f(function (v) { return x(x)(v); }); })
- );
- };
- var ilog=ycomb.ilog=function(b, j){
- var n=1;
- if(b>j) return 0;
- else{
- Y(function(fn){
- return function(d){
- var a=d[0];var b=d[1];var c=d[2];
- if(b>c) return c;
- else{
- n+=a;
- var h=fn([2*a,b*b,(c-c%b)/b]);
- if(b>h) return h;
- else{
- n+=a;
- return (h-h%b)/b;
- }
- }
- }})([1,b,(j-j%b)/b]);
- return n;
- };
- };
- global.ycomb=ycomb;
- })(this);
- /*
- ilog(2,928475)
- > (OUTER-YCOMBINATOR #<fn>)
- > (FUNCTION-WRAPPER #<fn>)
- < (#<fn>)
- < (#<fn>)
- > (INTEGER-LOGARITHM-FUNCTION (1 2 464237))
- > (INNER-YCOMBINATOR (2 4 232118))
- > (OUTER-YCOMBINATOR #<fn>)
- > (FUNCTION-WRAPPER #<fn>)
- < (#<fn>)
- < (#<fn>)
- > (INTEGER-LOGARITHM-FUNCTION (2 4 232118))
- > (INNER-YCOMBINATOR (4 16 58029))
- > (OUTER-YCOMBINATOR #<fn>)
- > (FUNCTION-WRAPPER #<fn>)
- < (#<fn>)
- < (#<fn>)
- > (INTEGER-LOGARITHM-FUNCTION (4 16 58029))
- > (INNER-YCOMBINATOR (8 256 3626))
- > (OUTER-YCOMBINATOR #<fn>)
- > (FUNCTION-WRAPPER #<fn>)
- < (#<fn>)
- < (#<fn>)
- > (INTEGER-LOGARITHM-FUNCTION (8 256 3626))
- > (INNER-YCOMBINATOR (16 65536 14))
- > (OUTER-YCOMBINATOR #<fn>)
- > (FUNCTION-WRAPPER #<fn>)
- < (#<fn>)
- < (#<fn>)
- > (INTEGER-LOGARITHM-FUNCTION (16 65536 14))
- < (14)
- < (14)
- < (14)
- < (14)
- < (14)
- < (14)
- < (3 2)
- < (3 2)
- < (1 1)
- => 19
- */
Advertisement
Add Comment
Please, Sign In to add comment