UNPKG

double-double

Version:

Pure double-double precision functions *with strict error bounds*.

1 lines 8.98 kB
(window.webpackJsonp=window.webpackJsonp||[]).push([[66],{202:function(e,t,b){"use strict";b.r(t),b.d(t,"frontMatter",(function(){return l})),b.d(t,"metadata",(function(){return u})),b.d(t,"rightToc",(function(){return o})),b.d(t,"default",(function(){return d}));var n=b(2),a=b(9),r=(b(0),b(207)),l={id:"_double_mixed_double_double_dd_mult_double_",title:"ddMultDouble",sidebar_label:"ddMultDouble"},u={id:"modules/_double_mixed_double_double_dd_mult_double_",isDocsHomePage:!1,title:"ddMultDouble",description:"ddMultDouble1(y number[]): number[]",source:"@site/docs\\modules\\_double_mixed_double_double_dd_mult_double_.md",permalink:"/double-double/docs/modules/_double_mixed_double_double_dd_mult_double_",sidebar_label:"ddMultDouble",sidebar:"sidebar",previous:{title:"ddDivDouble",permalink:"/double-double/docs/modules/_double_mixed_double_double_dd_div_double_"},next:{title:"doubleDivDouble",permalink:"/double-double/docs/modules/_double_mixed_double_double_double_div_double_"}},o=[{value:"ddMultDouble2",id:"ddmultdouble2",children:[]}],c={rightToc:o};function d(e){var t=e.components,b=Object(a.a)(e,["components"]);return Object(r.b)("wrapper",Object(n.a)({},c,b,{components:t,mdxType:"MDXLayout"}),Object(r.b)("p",null,Object(r.b)("strong",{parentName:"p"},"ddMultDouble1"),"(",Object(r.b)("inlineCode",{parentName:"p"},"y"),": number, ",Object(r.b)("inlineCode",{parentName:"p"},"x"),": number[]): ",Object(r.b)("em",{parentName:"p"},"number[]")),Object(r.b)("p",null,Object(r.b)("em",{parentName:"p"},"Defined in ",Object(r.b)("a",Object(n.a)({parentName:"em"},{href:"https://github.com/FlorisSteenkamp/double-double/blob/d35ae52/src/double-mixed-double-double/dd-mult-double.ts#L21"}),"double-mixed-double-double/dd-mult-double.ts:21"))),Object(r.b)("p",null,"Returns the product of a double-double-precision floating point number and a\ndouble."),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},Object(r.b)("p",{parentName:"li"},"slower than ALGORITHM 8 (one call to fastTwoSum more) but about 2x more\naccurate")),Object(r.b)("li",{parentName:"ul"},Object(r.b)("p",{parentName:"li"},"relative error bound: 1.5u^2 + 4u^3, i.e. fl(a+b) = (a+b)(1+\u03f5),\nwhere \u03f5 <= 1.5u^2 + 4u^3, u = 0.5 * Number.EPSILON")),Object(r.b)("li",{parentName:"ul"},Object(r.b)("p",{parentName:"li"},"the bound is very sharp")),Object(r.b)("li",{parentName:"ul"},Object(r.b)("p",{parentName:"li"},"probably prefer ",Object(r.b)("inlineCode",{parentName:"p"},"ddMultDouble2")," due to extra speed")),Object(r.b)("li",{parentName:"ul"},Object(r.b)("p",{parentName:"li"},"ALGORITHM 7 of ",Object(r.b)("a",Object(n.a)({parentName:"p"},{href:"https://hal.archives-ouvertes.fr/hal-01351529v3/document"}),"https://hal.archives-ouvertes.fr/hal-01351529v3/document")))),Object(r.b)("p",null,Object(r.b)("strong",{parentName:"p"},"Parameters:")),Object(r.b)("table",null,Object(r.b)("thead",{parentName:"table"},Object(r.b)("tr",{parentName:"thead"},Object(r.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Name"),Object(r.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Type"),Object(r.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Description"))),Object(r.b)("tbody",{parentName:"table"},Object(r.b)("tr",{parentName:"tbody"},Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(r.b)("inlineCode",{parentName:"td"},"y")),Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"number"),Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"a double")),Object(r.b)("tr",{parentName:"tbody"},Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(r.b)("inlineCode",{parentName:"td"},"x")),Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"number[]"),Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"a double-double precision floating point number")))),Object(r.b)("p",null,Object(r.b)("strong",{parentName:"p"},"Returns:")," ",Object(r.b)("em",{parentName:"p"},"number[]")),Object(r.b)("hr",null),Object(r.b)("h3",{id:"ddmultdouble2"},"ddMultDouble2"),Object(r.b)("p",null,"\u25b8 ",Object(r.b)("strong",{parentName:"p"},"ddMultDouble2"),"(",Object(r.b)("inlineCode",{parentName:"p"},"y"),": number, ",Object(r.b)("inlineCode",{parentName:"p"},"x"),": number[]): ",Object(r.b)("em",{parentName:"p"},"number[]")),Object(r.b)("p",null,Object(r.b)("em",{parentName:"p"},"Defined in ",Object(r.b)("a",Object(n.a)({parentName:"em"},{href:"https://github.com/FlorisSteenkamp/double-double/blob/d35ae52/src/double-mixed-double-double/dd-mult-double.ts#L59"}),"double-mixed-double-double/dd-mult-double.ts:59"))),Object(r.b)("p",null,"Returns the product of a double-double-precision floating point number and a double."),Object(r.b)("ul",null,Object(r.b)("li",{parentName:"ul"},Object(r.b)("p",{parentName:"li"},"faster than ALGORITHM 7 (one call to fastTwoSum less) but about 2x less\naccurate")),Object(r.b)("li",{parentName:"ul"},Object(r.b)("p",{parentName:"li"},"relative error bound: 3u^2, i.e. fl(a",Object(r.b)("em",{parentName:"p"},"b) = (a"),"b)(1+\u03f5),\nwhere \u03f5 <= 3u^2, u = 0.5 * Number.EPSILON")),Object(r.b)("li",{parentName:"ul"},Object(r.b)("p",{parentName:"li"},"the bound is sharp")),Object(r.b)("li",{parentName:"ul"},Object(r.b)("p",{parentName:"li"},"probably prefer this algorithm due to extra speed")),Object(r.b)("li",{parentName:"ul"},Object(r.b)("p",{parentName:"li"},"ALGORITHM 8 of ",Object(r.b)("a",Object(n.a)({parentName:"p"},{href:"https://hal.archives-ouvertes.fr/hal-01351529v3/document"}),"https://hal.archives-ouvertes.fr/hal-01351529v3/document")))),Object(r.b)("p",null,Object(r.b)("strong",{parentName:"p"},"Parameters:")),Object(r.b)("table",null,Object(r.b)("thead",{parentName:"table"},Object(r.b)("tr",{parentName:"thead"},Object(r.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Name"),Object(r.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Type"),Object(r.b)("th",Object(n.a)({parentName:"tr"},{align:null}),"Description"))),Object(r.b)("tbody",{parentName:"table"},Object(r.b)("tr",{parentName:"tbody"},Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(r.b)("inlineCode",{parentName:"td"},"y")),Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"number"),Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"a double")),Object(r.b)("tr",{parentName:"tbody"},Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),Object(r.b)("inlineCode",{parentName:"td"},"x")),Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"number[]"),Object(r.b)("td",Object(n.a)({parentName:"tr"},{align:null}),"a double-double precision floating point number")))),Object(r.b)("p",null,Object(r.b)("strong",{parentName:"p"},"Returns:")," ",Object(r.b)("em",{parentName:"p"},"number[]")))}d.isMDXComponent=!0},207:function(e,t,b){"use strict";b.d(t,"a",(function(){return p})),b.d(t,"b",(function(){return O}));var n=b(0),a=b.n(n);function r(e,t,b){return t in e?Object.defineProperty(e,t,{value:b,enumerable:!0,configurable:!0,writable:!0}):e[t]=b,e}function l(e,t){var b=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),b.push.apply(b,n)}return b}function u(e){for(var t=1;t<arguments.length;t++){var b=null!=arguments[t]?arguments[t]:{};t%2?l(Object(b),!0).forEach((function(t){r(e,t,b[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(b)):l(Object(b)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(b,t))}))}return e}function o(e,t){if(null==e)return{};var b,n,a=function(e,t){if(null==e)return{};var b,n,a={},r=Object.keys(e);for(n=0;n<r.length;n++)b=r[n],t.indexOf(b)>=0||(a[b]=e[b]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n<r.length;n++)b=r[n],t.indexOf(b)>=0||Object.prototype.propertyIsEnumerable.call(e,b)&&(a[b]=e[b])}return a}var c=a.a.createContext({}),d=function(e){var t=a.a.useContext(c),b=t;return e&&(b="function"==typeof e?e(t):u(u({},t),e)),b},p=function(e){var t=d(e.components);return a.a.createElement(c.Provider,{value:t},e.children)},i={inlineCode:"code",wrapper:function(e){var t=e.children;return a.a.createElement(a.a.Fragment,{},t)}},m=a.a.forwardRef((function(e,t){var b=e.components,n=e.mdxType,r=e.originalType,l=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),p=d(b),m=n,O=p["".concat(l,".").concat(m)]||p[m]||i[m]||r;return b?a.a.createElement(O,u(u({ref:t},c),{},{components:b})):a.a.createElement(O,u({ref:t},c))}));function O(e,t){var b=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=b.length,l=new Array(r);l[0]=m;var u={};for(var o in t)hasOwnProperty.call(t,o)&&(u[o]=t[o]);u.originalType=e,u.mdxType="string"==typeof e?e:n,l[1]=u;for(var c=2;c<r;c++)l[c]=b[c];return a.a.createElement.apply(null,l)}return a.a.createElement.apply(null,b)}m.displayName="MDXCreateElement"}}]);