smalltalk.addPackage('Benchfib', {}); smalltalk.addClass('Benchfib', smalltalk.Object, [], 'Benchfib'); smalltalk.addMethod( "_main", smalltalk.method({ selector: "main", fn: function (){ var self=this; var result; result=smalltalk.send((0),"_tinyBenchmarks",[]); smalltalk.send(console,"_log_",[smalltalk.send("0 tinyBenchmarks => ","__comma",[result])]); return self} }), smalltalk.Benchfib.klass); smalltalk.addMethod( "_benchFib", smalltalk.method({ selector: "benchFib", fn: function (){ var self=this; var $2,$1; $2=smalltalk.send(self,"__lt",[(2)]); if(smalltalk.assert($2)){ $1=(1); } else { $1=smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(self,"__minus",[(1)]),"_benchFib",[]),"__plus",[smalltalk.send(smalltalk.send(self,"__minus",[(2)]),"_benchFib",[])]),"__plus",[(1)]); }; return $1; } }), smalltalk.Number); smalltalk.addMethod( "_benchmark", smalltalk.method({ selector: "benchmark", fn: function (){ var self=this; var $1; var size; var flags; var prime; var k; var count; size=(8190); smalltalk.send((1),"_to_do_",[self,(function(iter){ count=(0); count; flags=smalltalk.send((smalltalk.Array || Array),"_new",[]); flags; smalltalk.send(size,"_timesRepeat_",[(function(){ return smalltalk.send(flags,"_add_",[true]); })]); return smalltalk.send((1),"_to_do_",[size,(function(i){ $1=smalltalk.send(flags,"_at_",[i]); if(smalltalk.assert($1)){ prime=smalltalk.send(i,"__plus",[(1)]); prime; k=smalltalk.send(i,"__plus",[prime]); k; smalltalk.send((function(){ return smalltalk.send(k,"__lt_eq",[size]); }),"_whileTrue_",[(function(){ smalltalk.send(flags,"_at_put_",[k,false]); k=smalltalk.send(k,"__plus",[prime]); return k; })]); count=smalltalk.send(count,"__plus",[(1)]); return count; }; })]); })]); return count; } }), smalltalk.Number); smalltalk.addMethod( "_jsbenchFib", smalltalk.method({ selector: "jsbenchFib", fn: function (){ var self=this; if (this < 2) { return 1; } else { return (this-1)._jsbenchFib() + (this-2)._jsbenchFib() + 1;}; ; return self} }), smalltalk.Number); smalltalk.addMethod( "_jsbenchmark", smalltalk.method({ selector: "jsbenchmark", fn: function (){ var self=this; var size = 8190; var count; for (var z=0;z<this;z++) { count = 0; var flags = new Array(); for (var p=0; p<size; p++) { flags[p] = true; } for (var i=1;i<=size;i++) { if (flags[i-1]) { var prime = i+1; var k = i + prime; while (k <= size) { flags[k-1] = false; k = k + prime; } count = count + 1; } } } return count; ; return self} }), smalltalk.Number); smalltalk.addMethod( "_jstinyBenchmarks", smalltalk.method({ selector: "jstinyBenchmarks", fn: function (){ var self=this; var $1; var t1; var t2; var r; var n1; var n2; n1=(1); smalltalk.send((function(){ t1=smalltalk.send((smalltalk.Date || Date),"_millisecondsToRun_",[(function(){ return smalltalk.send(n1,"_jsbenchmark",[]); })]); t1; return smalltalk.send(t1,"__lt",[(1000)]); }),"_whileTrue_",[(function(){ n1=smalltalk.send(n1,"__star",[(2)]); return n1; })]); n2=(28); smalltalk.send((function(){ t2=smalltalk.send((smalltalk.Date || Date),"_millisecondsToRun_",[(function(){ r=smalltalk.send(n2,"_jsbenchFib",[]); return r; })]); t2; return smalltalk.send(t2,"__lt",[(1000)]); }),"_whileTrue_",[(function(){ n2=smalltalk.send(n2,"__plus",[(1)]); return n2; })]); $1=smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(n1,"__star",[(500000)]),"__star",[(1000)]),"__slash",[t1]),"_printString",[]),"__comma",[" bytecodes/sec; "]),"__comma",[smalltalk.send(smalltalk.send(smalltalk.send(r,"__star",[(1000)]),"__slash",[t2]),"_printString",[])]),"__comma",[" sends/sec"]); return $1; } }), smalltalk.Number); smalltalk.addMethod( "_tinyBenchmarks", smalltalk.method({ selector: "tinyBenchmarks", fn: function (){ var self=this; var $1; var t1; var t2; var r; var n1; var n2; n1=(1); smalltalk.send((function(){ t1=smalltalk.send((smalltalk.Date || Date),"_millisecondsToRun_",[(function(){ return smalltalk.send(n1,"_benchmark",[]); })]); t1; return smalltalk.send(t1,"__lt",[(1000)]); }),"_whileTrue_",[(function(){ n1=smalltalk.send(n1,"__star",[(2)]); return n1; })]); n2=(16); smalltalk.send((function(){ t2=smalltalk.send((smalltalk.Date || Date),"_millisecondsToRun_",[(function(){ r=smalltalk.send(n2,"_benchFib",[]); return r; })]); t2; return smalltalk.send(t2,"__lt",[(1000)]); }),"_whileTrue_",[(function(){ n2=smalltalk.send(n2,"__plus",[(1)]); return n2; })]); $1=smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(n1,"__star",[(500000)]),"__star",[(1000)]),"__slash",[t1]),"_printString",[]),"__comma",[" bytecodes/sec; "]),"__comma",[smalltalk.send(smalltalk.send(smalltalk.send(r,"__star",[(1000)]),"__slash",[t2]),"_printString",[])]),"__comma",[" sends/sec"]); return $1; } }), smalltalk.Number);