- अलग-अलग interval के union को इनपुट के रूप में लेकर चार बुनियादी arithmetic operations, function calls, और exponentiation तक करता है, और interval union arithmetic को सीधे ब्राउज़र में कैलकुलेट किया जा सकता है
- परिणाम interval इनपुट union से चुनी गई मानों पर वही expression वास्तविक संख्याओं पर गणना करने पर मिलने वाले मान को ज़रूर शामिल करता है, और 0 को शामिल करने वाले interval से division भी अलग union के रूप में संभाला जा सकता है
1 / [-2, 1] पर [-∞, -0.5] U [1, +∞] और tan([pi/3, 2*pi/3]) पर [-∞, -1.732] U [1.732, +∞] जैसा परिणाम मिलता है, यानी discontinuous interval results और infinite boundaries की अभिव्यक्ति समर्थित है
[a, b], [a, b] U [c, d], nested interval syntax, lo, hi, hull, log10, cos, min, max जैसी विभिन्न notation और functions समर्थित हैं
- full precision mode में IEEE 754 double precision आधारित outward rounding के साथ वास्तविक मान को घेरने वाला interval लौटता है, और
0.1 + 0.2 को [0.29999999999999993, 0.3000000000000001] के रूप में दिखाना इसकी खासियत है
अवलोकन
- यह अलग-अलग interval के union पर गणना करने वाला कैलकुलेटर है, और सामान्य वास्तविक संख्याओं के साथ-साथ interval union arithmetic का implementation भी सपोर्ट करता है
- interval
[a, b] का अर्थ a से b तक की सभी संख्याएँ है, और [a, b] U [c, d] एक-दूसरे से अलग interval के union को दर्शाता है
- यह सामान्य interval arithmetic का विस्तारित रूप है, और 0 को शामिल करने वाले interval से division भी closure property बनाए रखते हुए कैलकुलेट किया जा सकता है
- inclusion property की गारंटी
- हर इनपुट union से मनचाही एक-एक वास्तविक संख्या चुनकर उसी expression को वास्तविक संख्याओं पर कैलकुलेट किया जाए, तो उसका परिणाम आउटपुट union में ज़रूर शामिल होगा
- uncertainty को व्यक्त किया जा सकता है
50 * (10 + [-1, 1]) का परिणाम [450, 550] उदाहरण के रूप में दिया गया है
- जटिल interval expressions की गणना समर्थित
U operator का उपयोग करके ( [5, 10] U [15, 16] ) / [10, 100] जैसी expressions इनपुट की जा सकती हैं
- परिणाम
[0.05, 1.6] उदाहरण के रूप में दिया गया है
- operation का परिणाम अलग union हो सकता है
1 / [-2, 1] का परिणाम [-∞, -0.5] U [1, +∞]
tan([pi/3, 2*pi/3]) का परिणाम [-∞, -1.732] U [1.732, +∞]
- full precision mode में इसे सामान्य calculator की तरह इस्तेमाल किया जा सकता है, लेकिन साथ ही floating-point precision problem सहित वास्तविक मान को घेरने वाला interval परिणाम भी देता है
0.1 + 0.2 का परिणाम [0.29999999999999993, 0.3000000000000001] उदाहरण के रूप में दिखाया गया है
सिंटैक्स
- basic notation समर्थित
- interval notation
[a, b] समर्थित है
- उदाहरण
[0.5, 0.6]
- union notation समर्थित
[a, b] U [c, d] रूप समर्थित है
- उदाहरण
[0, 1] U [5, 6]
- चार बुनियादी arithmetic operations और exponentiation समर्थित
- addition
A + B उदाहरण ➤ [90, 100] + [-2, 2] परिणाम [88, 102]
- subtraction
A - B उदाहरण ➤ [14, 16] - [8, 12] परिणाम [2, 8]
- multiplication
A * B उदाहरण ➤ [-5, 10] * [2, 4] परिणाम [-20, 40]
- division
A / B उदाहरण ➤ [2, 4] / [-1, 2] परिणाम [-∞, -2] U [1, +∞]
- exponentiation
A ^ B उदाहरण ➤ [2, 3] ^ [-2, 3] परिणाम [0.1111, 27]
- functions और constants समर्थित
- function call
function(...) रूप समर्थित है
log10([1, 10000]) का परिणाम [0, 4]
- constant names इनपुट समर्थित है
pi का परिणाम [3.1415926535897927, 3.1415926535897936]
- numbers और intervals का मिश्रित इनपुट संभव
[1, 2] की तरह square bracket syntax से interval इनपुट किया जा सकता है
3.14 जैसी संख्या को width 0 वाले संकीर्ण interval [3.14, 3.14] के रूप में समझा जाता है
- full precision mode में इससे जुड़ा व्यवहार थोड़ा अलग है
1.55 + [-0.002, 0.002] का परिणाम [1.548, 1.552]
- nested interval syntax समर्थित
[0, [0, 100]] इनपुट किया जा सकता है और परिणाम [0, 100] होता है
- interval boundaries को परिभाषित करने वाली अंदर की संख्याएँ भी सभी interval के रूप में समझी जाती हैं
- nested interval में boundary की जगह आने वाले interval के लिए उसका upper bound लिया जाता है
- इस डिज़ाइन से boundary पर भी arithmetic लागू की जा सकती है
[0, cos(2*pi)] का परिणाम [0, 1]
समर्थित functions
- constants समर्थित
inf, ∞, pi, e समर्थित हैं
[-inf, 0] * [-inf, 0] का परिणाम [0, +∞]
- boundary extraction functions समर्थित
lo(A) lower bound लौटाता है
lo([1, 2]) का परिणाम [1, 1]
hi(A) upper bound लौटाता है
hi([1, 2]) का परिणाम [2, 2]
- interval hull calculation समर्थित
hull(A) union को एक interval में घेरता है
hull([1, 2] U [99, 100]) का परिणाम [1, 100]
- basic math functions समर्थित
abs(A) उदाहरण abs([-10, 5]) परिणाम [0, 10]
sqrt(A) उदाहरण sqrt([9, 49]) परिणाम [3, 7]
sqinv(A) उदाहरण sqinv([4, 64]) परिणाम [-8, -2] U [2, 8]
- logarithmic और exponential functions समर्थित
log(A) उदाहरण log([0, 1]) परिणाम [-∞, 0]
log2(A) उदाहरण log2([64, 1024]) परिणाम [6, 10]
log10(A) उदाहरण log10([0.0001, 1]) परिणाम [-4, 0]
exp(A) उदाहरण exp([-∞, 0] U [1, 2]) परिणाम [0, 1] U [2.718, 7.389]
- trigonometric और inverse trigonometric functions समर्थित
cos(A) उदाहरण cos([pi/3, pi]) परिणाम [-1, 0.5]
sin(A) उदाहरण sin([pi/6, 5*pi/6]) परिणाम [0.5, 1]
tan(A) उदाहरण tan([pi/3, 2*pi/3]) परिणाम [-∞, -1.732] U [1.732, +∞]
acos(A) उदाहरण acos([-1/2, 1/2]) परिणाम [1.047, 2.094]
asin(A) उदाहरण asin([0, 1]) परिणाम [0, 1.571]
atan(A) उदाहरण atan([-10, 2]) परिणाम [-1.471, 1.107]
- minimum और maximum functions समर्थित
min(A, B) उदाहरण min([1, 2], [0, 6]) परिणाम [0, 2]
max(A, B) उदाहरण max([0, 10], [5, 6]) परिणाम [5, 10]
full precision mode
- IEEE 754 double precision floating-point पर outward rounding का implementation
- JavaScript के
number type का उपयोग
- उसी expression को वास्तविक संख्याओं और infinite precision के साथ कैलकुलेट करने पर जो वास्तविक मान मिलता है, परिणाम interval उसे ज़रूर शामिल करता है
0.1 + 0.2 उदाहरण शामिल
0.3 को double precision floating-point में ठीक-ठीक represent नहीं किया जा सकता
- interval arithmetic
0.3 को शामिल करने वाला interval कैलकुलेट करता है
- full precision mode सक्षम होने पर व्यवहार
- उपयोगकर्ता द्वारा दर्ज संख्या को उस दर्ज की गई दशमलव अभिव्यक्ति के सबसे निकट IEEE 754 मान को शामिल करते हुए, लेकिन जिसकी दोनों boundaries उस मान के बराबर न हों, ऐसे सबसे छोटे interval के रूप में समझा जाता है
- output numbers उपलब्ध सभी decimal digits के साथ दिखाए जाते हैं
Number.toString() का उपयोग
- full precision mode अक्षम होने पर व्यवहार
- उपयोगकर्ता द्वारा दर्ज संख्या को दर्ज की गई दशमलव अभिव्यक्ति के सबसे निकट IEEE 754 मान के बराबर दोनों boundaries वाले degenerate interval के रूप में समझा जाता है
- output numbers अधिकतम 4 decimal places तक दिखाए जाते हैं
Number.toPrecision() का उपयोग
बग
- यह उल्लेख है कि calculator में अभी भी bugs बचे हो सकते हैं
- समस्या रिपोर्ट करने के लिए GitHub issue link दिया गया है
ओपन सोर्स
- Interval Calculator और इसका calculator engine not-so-float दोनों ओपन सोर्स के रूप में जारी किए गए हैं
- GitHub Sponsors support link शामिल है
आगे का काम
- full precision mode को दो control items में बाँटने की योजना
- input interpretation
- display precision
ans variable जोड़ने की योजना
- पिछले input के परिणाम को रखने वाला variable
- intersection operator या function जोड़ने की योजना
U operator की precedence को अधिक सहज बनाने की योजना
- empty union input समर्थन जोड़ने की योजना
अभी कोई टिप्पणी नहीं है.