Previous discussions focused on operators and type/membership related builtin functions (i.e., typeof and instanceof). Here's a prioritized list of functions provided by IEEE 754-2008 and/or the decNumber implementation.
The actual number of "a" and "a-" methods is fairly small, particularly once you remove ones that are available in ECMAScript via other means. - - - - - Absolute requirement, and must be implemented as an 'instance' method (for most of the others, the difference between a 'static' and 'instance' method is negotiable): > * a toString Available as prefix or infix operators, or as builtin functions, may not need to be duplicated as named Decimal methods: > * a add > * a compare > * a copy > * a copyNegate > * a divide > * a isFinite > * a isNaN > * a multiply > * a remainder > * a subtract Essential 754, not available as infix operator, so must be made available as a named method. For consistency with Math, abs, max, and min should be 'static' methods: > * a quantize > * a copyAbs [called abs] > * a max > * a min Very useful functions which are not in 754 for various reasons; strongly recommend include: > * a- divideInteger [extremely handy] > * a- digits [= significant digits] > * a- reduce [often asked for] > * a- toEngString [really handy in practice] > * a- getExponent [esp. if no compareTotal] Other 754 operations that are less essential but would probably add later anyway. 'b+' are a subset that are especially useful in practice: > * b FMA > * b canonical > * b compareSignal > * b+ compareTotal > * b compareTotalMag > * b copySign > * b isCanonical > * b+ isInfinite > * b+ isInteger > * b isNormal > * b+ isSignaling [if sNaNs supported] > * b+ isSignalling [" " "] > * b+ isSigned > * b isSubnormal > * b+ isZero > * b logB > * b maxMag > * b minMag > * b nextMinus > * b nextPlus > * b radix > * b remainderNear > * b+ sameQuantum > * b scaleB > * b+ setExponent > * b toInt32 > * b toInt32Exact > * b+ toIntegralExact [perhaps only one of these] > * b+ toIntegralValue [" " " " "] > * b toUInt32 > * b toUInt32Exact Probably drop because conflict with ES bitwise logical ops: > * c and (as digitAnd) > * c invert (as digitInvert) > * c or (as digitOr) > * c rotate > * c shift > * c xor (as digitXor) And, finally, not needed: (The first two of these are 754 but don't fit with ES) > * class > * classString > * fromBCD > * fromInt32 > * fromNumber > * fromPacked > * fromPackedChecked > * fromString > * fromUInt32 > * fromWide > * getCoefficient > * setCoefficient > * d nextToward > * show > * toBCD > * toNumber > * toPacked > * toWider > * version > * zero - Sam Ruby _______________________________________________ Es-discuss mailing list Es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss