Skip to content

Instantly share code, notes, and snippets.

@mauriciopoppe
Created May 24, 2016 17:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mauriciopoppe/ec8554d0bca15e17501e2d44fe7f4f62 to your computer and use it in GitHub Desktop.
Save mauriciopoppe/ec8554d0bca15e17501e2d44fe7f4f62 to your computer and use it in GitHub Desktop.
requirebin sketch
var adapter = require('floating-adapter');
var Decimal = require('pow-arbitrary-precision')(require('linear-arbitrary-precision')(adapter));
console.log(new Decimal('-8').pow(new Decimal('1/3')).valueOf())
setTimeout(function(){require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){"use strict";function floating(initial){var val=Number(initial||0);function gt(x){return val>Number(x)}function lt(x){return val<Number(x)}function getVal(){return val}return Object.freeze({plus:function plus(x){return floating(val+x)},minus:function minus(x){return floating(val-x)},times:function times(x){return floating(val*x)},div:function div(x){return floating(val/x)},mod:function mod(x){return floating(val%x)},pow:function pow(exponent){return floating(Math.pow(val,Number(exponent)))},sqrt:function sqrt(){return floating(Math.sqrt(val))},equals:function plus(x){return val===Number(x)},gt:gt,lt:lt,gte:function gte(x){return val>=Number(x)},lte:function lte(x){return val<=Number(x)},cmp:function cmp(x){if(gt(x)){return 1}if(lt(x)){return-1}return 0},abs:function abs(){return floating(Math.abs(val))},toString:function toString(){return val.toString()},valueOf:getVal,toJSON:getVal})}function Floating(initial){return floating(initial)}Floating.JSONReviver=function JSONReviver(key,value){if(key===""){return value}return floating(value)};module.exports=function factory(){return Floating}},{}],"floating-adapter":[function(require,module,exports){"use strict";var floatingFactory=require("floating");module.exports={getInstance:floatingFactory,getPrecision:getPrecision,setPrecision:setPrecision,plus:plus,minus:minus,times:times,div:div,mod:mod,pow:pow,sqrt:sqrt,equals:equals,gt:gt,gte:gte,lt:lt,lte:lte,cmp:cmp,abs:abs,toString:toString,valueOf:valueOf,parseInput:Number};var precision=17;function getPrecision(){return precision}function setPrecision(Floating,n){precision=n}function plus(x,y){return x.plus(y)}function minus(x,y){return x.minus(y)}function times(x,y){return x.times(y)}function div(x,y){return x.div(y)}function mod(x,y){return x.mod(y)}function pow(x,y){return x.pow(y)}function sqrt(x,y){return x.sqrt(y)}function equals(x,y){return x.equals(y)}function lt(x,y){return x.lt(y)}function lte(x,y){return x.lte(y)}function gt(x,y){return x.gt(y)}function gte(x,y){return x.gte(y)}function cmp(x,y){return x.cmp(y)}function abs(x,y){return x.abs(y)}function toString(x){return x.toString()}function valueOf(x){return x.valueOf()}},{floating:1}]},{},[]);require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){function identity(value){return value}module.exports=identity},{}],2:[function(require,module,exports){function isUndefined(value){return value===undefined}module.exports=isUndefined},{}],3:[function(require,module,exports){"use strict";var isUndefined=require("lodash.isundefined");var UNSUPPORTED_ERROR_TEXT="Unsupported operation";module.exports=function unsupportedFactory(customMessage){var message=isUndefined(customMessage)?UNSUPPORTED_ERROR_TEXT:customMessage;return function unsupported(){throw new Error(message)}}},{"lodash.isundefined":2}],4:[function(require,module,exports){"use strict";var unsupported=require("unsupported")();var isUndefined=require("lodash.isundefined");var identity=require("lodash.identity");var newDecimalTransformFactory=function newDecimalTransformFactory(Decimal,adapter){return function(x){return new Decimal(adapter.toString(x))}};var binaryOpExtenderRaw=function binaryOpExtender(transform,Decimal,opName,protoName){var adapter=Decimal.getAdapter();var implementation=unsupported;var name=isUndefined(protoName)?opName:protoName;transform=transform||newDecimalTransformFactory(Decimal,adapter);if(Object.hasOwnProperty.call(adapter,opName)){implementation=function(x){return transform(adapter[opName](this.val(),x.val()))}}Decimal.prototype[name]=implementation;return Decimal};var binaryOpExtender=binaryOpExtenderRaw.bind(undefined,undefined);binaryOpExtender.asIs=binaryOpExtenderRaw.bind(undefined,identity);binaryOpExtender.raw=binaryOpExtenderRaw;module.exports=binaryOpExtender},{"lodash.identity":1,"lodash.isundefined":2,unsupported:3}],"pow-arbitrary-precision":[function(require,module,exports){"use strict";var binaryOpExtender=require("binary-op-arbitrary-precision");module.exports=function factory(Decimal){return binaryOpExtender(Decimal,"pow")}},{"binary-op-arbitrary-precision":4}]},{},[]);require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){function isUndefined(value){return value===undefined}module.exports=isUndefined},{}],2:[function(require,module,exports){"use strict";var isUndefined=require("lodash.isundefined");var UNSUPPORTED_ERROR_TEXT="Unsupported operation";module.exports=function unsupportedFactory(customMessage){var message=isUndefined(customMessage)?UNSUPPORTED_ERROR_TEXT:customMessage;return function unsupported(){throw new Error(message)}}},{"lodash.isundefined":1}],3:[function(require,module,exports){"use strict";var unsupported=require("unsupported")();var isUndefined=require("lodash.isundefined");module.exports=function unaryOpExtender(Decimal,opName,protoName){var adapter=Decimal.getAdapter();var implementation=unsupported;var name=isUndefined(protoName)?opName:protoName;if(adapter.hasOwnProperty(opName)){implementation=function(){return new Decimal(adapter.toString(adapter[opName](this.val())))}}Decimal.prototype[name]=implementation;return Decimal}},{"lodash.isundefined":1,unsupported:2}],4:[function(require,module,exports){"use strict";var unaryOpExtender=require("unary-op-arbitrary-precision");module.exports=function factory(Decimal){return unaryOpExtender(Decimal,"abs")}},{"unary-op-arbitrary-precision":3}],5:[function(require,module,exports){"use strict";module.exports=function(value,error){if(!error){throw new Error("error required")}if(value)return;throw error}},{}],6:[function(require,module,exports){var stringTag="[object String]";var objectProto=Object.prototype;var objectToString=objectProto.toString;var isArray=Array.isArray;function isObjectLike(value){return!!value&&typeof value=="object"}function isString(value){return typeof value=="string"||!isArray(value)&&isObjectLike(value)&&objectToString.call(value)==stringTag}module.exports=isString},{}],7:[function(require,module,exports){"use strict";var isString=require("lodash.isstring");var assert=require("assert-error");module.exports=function factory(adapter){var Impl=adapter.getInstance();function Decimal(x){assert(this instanceof Decimal,new Error("Decimal must be called with new"));assert(isString(x),new TypeError("Expected a string but instead got "+typeof x));var value=new Impl(adapter.parseInput(x));this.val=function val(){return value}}Decimal.getAdapter=getAdapter;Decimal.getPrecision=getPrecision;Decimal.setPrecision=setPrecision;Decimal.reviver=reviver;Decimal.Impl=Impl;var p=Decimal.prototype;p.toString=p.toJSON=function toString(){return adapter.toString(this.val())};p.valueOf=function valueOf(){return adapter.valueOf(this.val())};function getAdapter(){return adapter}function getPrecision(){return adapter.getPrecision(Impl)}function setPrecision(n){adapter.setPrecision(Impl,n)}function reviver(key,x){return new Decimal(x)}return Decimal}},{"assert-error":5,"lodash.isstring":6}],8:[function(require,module,exports){function identity(value){return value}module.exports=identity},{}],9:[function(require,module,exports){arguments[4][1][0].apply(exports,arguments)},{dup:1}],10:[function(require,module,exports){arguments[4][2][0].apply(exports,arguments)},{dup:2,"lodash.isundefined":9}],11:[function(require,module,exports){"use strict";var unsupported=require("unsupported")();var isUndefined=require("lodash.isundefined");var identity=require("lodash.identity");var newDecimalTransformFactory=function newDecimalTransformFactory(Decimal,adapter){return function(x){return new Decimal(adapter.toString(x))}};var binaryOpExtenderRaw=function binaryOpExtender(transform,Decimal,opName,protoName){var adapter=Decimal.getAdapter();var implementation=unsupported;var name=isUndefined(protoName)?opName:protoName;transform=transform||newDecimalTransformFactory(Decimal,adapter);if(Object.hasOwnProperty.call(adapter,opName)){implementation=function(x){return transform(adapter[opName](this.val(),x.val()))}}Decimal.prototype[name]=implementation;return Decimal};var binaryOpExtender=binaryOpExtenderRaw.bind(undefined,undefined);binaryOpExtender.asIs=binaryOpExtenderRaw.bind(undefined,identity);binaryOpExtender.raw=binaryOpExtenderRaw;module.exports=binaryOpExtender},{"lodash.identity":8,"lodash.isundefined":9,unsupported:10}],12:[function(require,module,exports){"use strict";var binaryOpExtender=require("binary-op-arbitrary-precision");module.exports=function factory(Decimal){return binaryOpExtender(Decimal,"div")}},{"binary-op-arbitrary-precision":11}],13:[function(require,module,exports){arguments[4][8][0].apply(exports,arguments)},{dup:8}],14:[function(require,module,exports){arguments[4][1][0].apply(exports,arguments)},{dup:1}],15:[function(require,module,exports){arguments[4][2][0].apply(exports,arguments)},{dup:2,"lodash.isundefined":14}],16:[function(require,module,exports){arguments[4][11][0].apply(exports,arguments)},{dup:11,"lodash.identity":13,"lodash.isundefined":14,unsupported:15}],17:[function(require,module,exports){"use strict";var binaryOpExtender=require("binary-op-arbitrary-precision").asIs;module.exports=function factory(Decimal){return binaryOpExtender(Decimal,"equals")}},{"binary-op-arbitrary-precision":16}],18:[function(require,module,exports){arguments[4][8][0].apply(exports,arguments)},{dup:8}],19:[function(require,module,exports){arguments[4][1][0].apply(exports,arguments)},{dup:1}],20:[function(require,module,exports){arguments[4][2][0].apply(exports,arguments)},{dup:2,"lodash.isundefined":19}],21:[function(require,module,exports){arguments[4][11][0].apply(exports,arguments)},{dup:11,"lodash.identity":18,"lodash.isundefined":19,unsupported:20}],22:[function(require,module,exports){"use strict";var binaryOpExtender=require("binary-op-arbitrary-precision").asIs;var operations=["gt","gte","lt","lte","cmp"];var extenderFactory=function extenderFactory(op){return function(Decimal){return binaryOpExtender(Decimal,op)}};var extenders=operations.reduce(function(acc,op){acc[op]=extenderFactory(op);return acc},{});var inequalityExtender=function(Decimal){return operations.reduce(function(acc,opExtenderKey){return extenders[opExtenderKey](Decimal)},Decimal)};operations.forEach(function(key){inequalityExtender[key]=extenders[key]});module.exports=inequalityExtender},{"binary-op-arbitrary-precision":21}],23:[function(require,module,exports){var baseFlatten=require("lodash._baseflatten"),rest=require("lodash.rest");var FUNC_ERROR_TEXT="Expected a function";function createFlow(fromRight){return rest(function(funcs){funcs=baseFlatten(funcs,1);var length=funcs.length,index=length;if(fromRight){funcs.reverse()}while(index--){if(typeof funcs[index]!="function"){throw new TypeError(FUNC_ERROR_TEXT)}}return function(){var index=0,result=length?funcs[index].apply(this,arguments):arguments[0];while(++index<length){result=funcs[index].call(this,result)}return result}})}var flow=createFlow();module.exports=flow},{"lodash._baseflatten":24,"lodash.rest":25}],24:[function(require,module,exports){var MAX_SAFE_INTEGER=9007199254740991;var argsTag="[object Arguments]",funcTag="[object Function]",genTag="[object GeneratorFunction]";function arrayPush(array,values){var index=-1,length=values.length,offset=array.length;while(++index<length){array[offset+index]=values[index]}return array}var objectProto=Object.prototype;var hasOwnProperty=objectProto.hasOwnProperty;var objectToString=objectProto.toString;var propertyIsEnumerable=objectProto.propertyIsEnumerable;function baseFlatten(array,depth,predicate,isStrict,result){var index=-1,length=array.length;predicate||(predicate=isFlattenable);result||(result=[]);while(++index<length){var value=array[index];if(depth>0&&predicate(value)){if(depth>1){baseFlatten(value,depth-1,predicate,isStrict,result)}else{arrayPush(result,value)}}else if(!isStrict){result[result.length]=value}}return result}function baseProperty(key){return function(object){return object==null?undefined:object[key]}}var getLength=baseProperty("length");function isFlattenable(value){return isArray(value)||isArguments(value)}function isArguments(value){return isArrayLikeObject(value)&&hasOwnProperty.call(value,"callee")&&(!propertyIsEnumerable.call(value,"callee")||objectToString.call(value)==argsTag)}var isArray=Array.isArray;function isArrayLike(value){return value!=null&&isLength(getLength(value))&&!isFunction(value)}function isArrayLikeObject(value){return isObjectLike(value)&&isArrayLike(value)}function isFunction(value){var tag=isObject(value)?objectToString.call(value):"";return tag==funcTag||tag==genTag}function isLength(value){return typeof value=="number"&&value>-1&&value%1==0&&value<=MAX_SAFE_INTEGER}function isObject(value){var type=typeof value;return!!value&&(type=="object"||type=="function")}function isObjectLike(value){return!!value&&typeof value=="object"}module.exports=baseFlatten},{}],25:[function(require,module,exports){var FUNC_ERROR_TEXT="Expected a function";var INFINITY=1/0,MAX_INTEGER=1.7976931348623157e308,NAN=0/0;var funcTag="[object Function]",genTag="[object GeneratorFunction]",symbolTag="[object Symbol]";var reTrim=/^\s+|\s+$/g;var reIsBadHex=/^[-+]0x[0-9a-f]+$/i;var reIsBinary=/^0b[01]+$/i;var reIsOctal=/^0o[0-7]+$/i;var freeParseInt=parseInt;function apply(func,thisArg,args){var length=args.length;switch(length){case 0:return func.call(thisArg);case 1:return func.call(thisArg,args[0]);case 2:return func.call(thisArg,args[0],args[1]);case 3:return func.call(thisArg,args[0],args[1],args[2])}return func.apply(thisArg,args)}var objectProto=Object.prototype;var objectToString=objectProto.toString;var nativeMax=Math.max;function rest(func,start){if(typeof func!="function"){throw new TypeError(FUNC_ERROR_TEXT)}start=nativeMax(start===undefined?func.length-1:toInteger(start),0);return function(){var args=arguments,index=-1,length=nativeMax(args.length-start,0),array=Array(length);while(++index<length){array[index]=args[start+index]}switch(start){case 0:return func.call(this,array);case 1:return func.call(this,args[0],array);case 2:return func.call(this,args[0],args[1],array)}var otherArgs=Array(start+1);index=-1;while(++index<start){otherArgs[index]=args[index]}otherArgs[start]=array;return apply(func,this,otherArgs)}}function isFunction(value){var tag=isObject(value)?objectToString.call(value):"";return tag==funcTag||tag==genTag}function isObject(value){var type=typeof value;return!!value&&(type=="object"||type=="function")}function isObjectLike(value){return!!value&&typeof value=="object"}function isSymbol(value){return typeof value=="symbol"||isObjectLike(value)&&objectToString.call(value)==symbolTag}function toFinite(value){if(!value){return value===0?value:0}value=toNumber(value);if(value===INFINITY||value===-INFINITY){var sign=value<0?-1:1;return sign*MAX_INTEGER}return value===value?value:0}function toInteger(value){var result=toFinite(value),remainder=result%1;return result===result?remainder?result-remainder:result:0}function toNumber(value){if(typeof value=="number"){return value}if(isSymbol(value)){return NAN}if(isObject(value)){var other=isFunction(value.valueOf)?value.valueOf():value;value=isObject(other)?other+"":other}if(typeof value!="string"){return value===0?value:+value}value=value.replace(reTrim,"");var isBinary=reIsBinary.test(value);return isBinary||reIsOctal.test(value)?freeParseInt(value.slice(2),isBinary?2:8):reIsBadHex.test(value)?NAN:+value}module.exports=rest},{}],26:[function(require,module,exports){arguments[4][8][0].apply(exports,arguments)},{dup:8}],27:[function(require,module,exports){arguments[4][1][0].apply(exports,arguments)},{dup:1}],28:[function(require,module,exports){arguments[4][2][0].apply(exports,arguments)},{dup:2,"lodash.isundefined":27}],29:[function(require,module,exports){arguments[4][11][0].apply(exports,arguments)},{dup:11,"lodash.identity":26,"lodash.isundefined":27,unsupported:28}],30:[function(require,module,exports){"use strict";var binaryOpExtender=require("binary-op-arbitrary-precision");module.exports=function factory(Decimal){return binaryOpExtender(Decimal,"minus")}},{"binary-op-arbitrary-precision":29}],31:[function(require,module,exports){arguments[4][8][0].apply(exports,arguments)},{dup:8}],32:[function(require,module,exports){arguments[4][1][0].apply(exports,arguments)},{dup:1}],33:[function(require,module,exports){arguments[4][2][0].apply(exports,arguments)},{dup:2,"lodash.isundefined":32}],34:[function(require,module,exports){arguments[4][11][0].apply(exports,arguments)},{dup:11,"lodash.identity":31,"lodash.isundefined":32,unsupported:33}],35:[function(require,module,exports){"use strict";var binaryOpExtender=require("binary-op-arbitrary-precision");module.exports=function factory(Decimal){return binaryOpExtender(Decimal,"mod")}},{"binary-op-arbitrary-precision":34}],36:[function(require,module,exports){arguments[4][8][0].apply(exports,arguments)},{dup:8}],37:[function(require,module,exports){arguments[4][1][0].apply(exports,arguments)},{dup:1}],38:[function(require,module,exports){arguments[4][2][0].apply(exports,arguments)},{dup:2,"lodash.isundefined":37}],39:[function(require,module,exports){arguments[4][11][0].apply(exports,arguments)},{dup:11,"lodash.identity":36,"lodash.isundefined":37,unsupported:38}],40:[function(require,module,exports){"use strict";var binaryOpExtender=require("binary-op-arbitrary-precision");module.exports=function factory(Decimal){return binaryOpExtender(Decimal,"plus")}},{"binary-op-arbitrary-precision":39}],41:[function(require,module,exports){arguments[4][8][0].apply(exports,arguments)},{dup:8}],42:[function(require,module,exports){arguments[4][1][0].apply(exports,arguments)},{dup:1}],43:[function(require,module,exports){arguments[4][2][0].apply(exports,arguments)},{dup:2,"lodash.isundefined":42}],44:[function(require,module,exports){arguments[4][11][0].apply(exports,arguments)},{dup:11,"lodash.identity":41,"lodash.isundefined":42,unsupported:43}],45:[function(require,module,exports){"use strict";var binaryOpExtender=require("binary-op-arbitrary-precision");module.exports=function factory(Decimal){return binaryOpExtender(Decimal,"times")}},{"binary-op-arbitrary-precision":44}],"linear-arbitrary-precision":[function(require,module,exports){"use strict";var coreArbitraryPrecision=require("core-arbitrary-precision");var flow=require("lodash.flow");var extend=flow(require("plus-arbitrary-precision"),require("minus-arbitrary-precision"),require("times-arbitrary-precision"),require("div-arbitrary-precision"),require("mod-arbitrary-precision"),require("abs-arbitrary-precision"),require("equals-arbitrary-precision"),require("inequality-arbitrary-precision"));module.exports=flow(coreArbitraryPrecision,extend)},{"abs-arbitrary-precision":4,"core-arbitrary-precision":7,"div-arbitrary-precision":12,"equals-arbitrary-precision":17,"inequality-arbitrary-precision":22,"lodash.flow":23,"minus-arbitrary-precision":30,"mod-arbitrary-precision":35,"plus-arbitrary-precision":40,"times-arbitrary-precision":45}]},{},[]);var adapter=require("floating-adapter");var Decimal=require("pow-arbitrary-precision")(require("linear-arbitrary-precision")(adapter));console.log(new Decimal("-8").pow(new Decimal("1/3")).valueOf())},0);
{
"name": "requirebin-sketch",
"version": "1.0.0",
"dependencies": {
"floating-adapter": "1.4.1",
"pow-arbitrary-precision": "2.1.0",
"linear-arbitrary-precision": "4.1.0"
}
}
<!-- contents of this file will be placed inside the <body> -->
<!-- contents of this file will be placed inside the <head> -->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment