Arduino - गणित पुस्तकालय
Arduino Math लाइब्रेरी (math.h) में फ्लोटिंग-पॉइंट संख्याओं में हेरफेर के लिए कई उपयोगी गणितीय कार्य शामिल हैं।
लाइब्रेरी मैक्रोज़
शीर्षलेख गणित में परिभाषित मैक्रो निम्नलिखित हैं -
मैक्रो | मूल्य | विवरण |
---|---|---|
M_E | 2.7182818284590452354 | निरंतर ई। |
M_LOG2E | 1.4426950408889634074 / * log_2 ई * / |
आधार 2 के लिए ई का लघुगणक |
M_1_PI | .31830988618379067154 / * 1 / पीआई * / |
लगातार 1 / pi |
M_2_PI | .63661977236758134308 / * 2 / पीआई * / |
लगातार 2 / पी |
M_2_SQRTPI | 1.12837916709551257390 / * 2 / sqrt (पीआई) * / |
निरंतर 2 / sqrt (पीआई) |
M_LN10 | 2.30258509299404568402 / * log_e 10 * / |
10 का प्राकृतिक लघुगणक |
M_LN2 | .69314718055994530942 / * log_e 2 * / |
2 का प्राकृतिक लघुगणक |
M_LOG10E | .43429448190325182765 / * log_10 e * / |
आधार 10 के ई का लघुगणक |
M_PI | 3.14159265358979323846 / * पीआई * / |
निरंतर पी |
M_PI_2 | 3.3V1.57079632679489661923 / * पीआई / २ * / |
निरंतर पी / 2 |
M_PI_4 | .78539816339744830962 / * पीआई / ४ * / |
निरंतर पी / 4 |
M_SQRT1_2 | .70710678118654752440 / * 1 / sqrt (2) * / |
लगातार 1 / sqrt (2) |
M_SQRT2 | 1.41421356237309504880 / * sqrt (2) * / |
२ का वर्गमूल |
acosf | - | एसीओस () फ़ंक्शन के लिए उपनाम |
asinf | - | असिन () फ़ंक्शन के लिए उपनाम |
atan2f | - | Atan2 () फ़ंक्शन के लिए उपनाम |
cbrtf | - | मलबे के लिए उपनाम () फ़ंक्शन |
ceilf | - | छत के लिए उपनाम () फ़ंक्शन |
copysignf | - | नकल के लिए उपनाम () फ़ंक्शन |
coshf | - | कोश के लिए उपनाम () फ़ंक्शन |
expf | - | ऍक्स्प के लिए उपनाम () फ़ंक्शन |
fabsf | - | फेब्स के लिए उपनाम () फ़ंक्शन |
fdimf | - | Fdim () फ़ंक्शन के लिए उपनाम |
floorf | - | फर्श के लिए उपनाम () फ़ंक्शन |
fmaxf | - | Fmax () फ़ंक्शन के लिए उपनाम |
fminf | - | उन्मादी के लिए उपनाम () फ़ंक्शन |
fmodf | - | Fmod () फ़ंक्शन के लिए उपनाम |
frexpf | - | फ्रीक्सपी () फ़ंक्शन के लिए उपनाम |
hypotf | - | हाइप () फ़ंक्शन के लिए उपनाम |
अनंत | - | निरंतरता |
isfinitef | - | Isfinite () फ़ंक्शन के लिए उपनाम |
isinff | - | Isinf () फ़ंक्शन के लिए उपनाम |
isnanf | - | आइसन के लिए उपनाम () फ़ंक्शन |
ldexpf | - | एलडीएक्सपी () फ़ंक्शन के लिए उपनाम |
log10f | - | Log10 के लिए उपनाम () फ़ंक्शन |
logf | - | लॉग () फ़ंक्शन के लिए उपनाम |
lrintf | - | लैंट () फ़ंक्शन के लिए उपनाम |
lroundf | - | चारों ओर आलिया () फंक्शन के लिए |
पुस्तकालय के कार्य
हेडर में निम्नलिखित कार्य परिभाषित हैं math.h -
क्र.सं. | पुस्तकालय समारोह और विवरण |
---|---|
1 | double acos (double __x) एको () फ़ंक्शन __x के आर्क कोसाइन के प्रमुख मूल्य की गणना करता है। लौटाया गया मूल्य सीमा [0, pi] रेडियन में है। एक डोमेन त्रुटि तर्कों के लिए होती है [-1, +1] सीमा में नहीं। |
2 | double asin (double __x) असिन () फ़ंक्शन __x के चाप साइन के प्रमुख मूल्य की गणना करता है। लौटाया गया मान सीमा [-pi / 2, pi / 2] रेडियन में है। एक डोमेन त्रुटि तर्कों के लिए होती है [-1, +1] सीमा में नहीं। |
3 | double atan (double __x) एटन () फ़ंक्शन __x के चाप स्पर्शरेखा के प्रमुख मूल्य की गणना करता है। लौटाया गया मान सीमा [-pi / 2, pi / 2] रेडियन में है। |
4 | double atan2 (double __y, double __x) Atan2 () फ़ंक्शन __y / __x के चाप स्पर्शरेखा के प्रमुख मूल्य की गणना करता है, रिटर्न वैल्यू के क्वाड्रंट को निर्धारित करने के लिए दोनों तर्कों के संकेतों का उपयोग करता है। लौटाया गया मान सीमा [-pi, + pi] रेडियन में है। |
5 | double cbrt (double __x) Cbrt () फ़ंक्शन __x की घनमूल लौटाता है। |
6 | double ceil (double __x) छत () फ़ंक्शन फ्लोटिंग-पॉइंट नंबर के रूप में व्यक्त किए गए __x के मुकाबले सबसे छोटा अभिन्न मान लौटाता है। |
7 | static double copysign (double __x, double __y) नकल () फ़ंक्शन __x देता है लेकिन __y के संकेत के साथ। वे काम करते हैं भले ही __x या __y NaN या शून्य हो। |
8 | double cos(double __x) Cos () फ़ंक्शन रेडियंस में मापा गया __x का कोसिन लौटाता है। |
9 | double cosh (double __x) कोश () फ़ंक्शन __x का हाइपरबोलिक कोसिन लौटाता है। |
10 | double exp (double __x) एक्सप () फ़ंक्शन __x का घातीय मान लौटाता है। |
1 1 | double fabs (double __x) फेब्स () फ़ंक्शन फ्लोटिंग-पॉइंट नंबर __x के निरपेक्ष मान की गणना करता है। |
12 | double fdim (double __x, double __y) Fdim () फ़ंक्शन अधिकतम देता है (__ x - __y, 0)। यदि __x या __y या दोनों NaN हैं, तो NaN लौटाया जाता है। |
13 | double floor (double __x) फ़्लोर () फ़ंक्शन फ्लोटिंग-पॉइंट नंबर के रूप में व्यक्त __x से कम या उसके बराबर सबसे बड़ा अभिन्न मान लौटाता है। |
14 | double fma (double __x, double __y, double __z) Fma () फ़ंक्शन फ़्लोटिंग-पॉइंट गुणा-जोड़ करता है। यह ऑपरेशन (__x * __y) + __z है, लेकिन मध्यवर्ती परिणाम गंतव्य प्रकार के लिए गोल नहीं है। यह कभी-कभी गणना की शुद्धता में सुधार कर सकता है। |
15 | double fmax (double __x, double __y) Fmax () फ़ंक्शन दो मानों __x और __y से अधिक लौटाता है। यदि एक तर्क NaN है, तो दूसरा तर्क वापस आ जाता है। यदि दोनों तर्क NaN हैं, तो NaN वापस कर दिया जाता है। |
16 | double fmin (double __x, double __y) Fmin () फ़ंक्शन दो मान __x और __y का कम रिटर्न देता है। यदि एक तर्क NaN है, तो दूसरा तर्क वापस आ जाता है। यदि दोनों तर्क NaN हैं, तो NaN वापस कर दिया जाता है। |
17 | double fmod (double __x, double__y) फ़ंक्शन fmod () __x / __y के फ़्लोटिंग-शेष शेष को लौटाता है। |
18 | double frexp (double __x, int * __pexp) Frexp () फ़ंक्शन एक फ्लोटिंग-पॉइंट नंबर को एक सामान्यीकृत अंश में और एक अभिन्न शक्ति को तोड़ता है। यह __pexp द्वारा इंगित इंट ऑब्जेक्ट में पूर्णांक को संग्रहीत करता है। यदि __x एक सामान्य फ्लोट बिंदु संख्या है, तो frexp () फ़ंक्शन मान v लौटाता है, जैसे कि v का अंतराल [1/2, 1) या शून्य में है, और __x v के बराबर होता है v पावर 2 में उठाया गया 2 गुना। यदि __x शून्य है, तो परिणाम के दोनों भाग शून्य हैं। यदि __x एक परिमित संख्या नहीं है, तो frexp () __x है और __pexp द्वारा 0 स्टोर करता है। Note - यह कार्यान्वयन एक्सपोनेंट को स्टोर करने के लिए एक शून्य पॉइंटर को एक निर्देश के रूप में अनुमति देता है। |
19 | double hypot (double __x, double__y) हाइप () फ़ंक्शन sqrt (__ x * __ x + __y * __ y) देता है। यह दाएं त्रिभुज की कर्ण की लंबाई है जिसकी लंबाई __x और __y है, या मूल से बिंदु (__x, __y) की दूरी है। प्रत्यक्ष सूत्र के बजाय इस फ़ंक्शन का उपयोग करना बुद्धिमान है, क्योंकि त्रुटि बहुत छोटी है। छोटे __x और __y के साथ कोई अंडरफ़्लो नहीं। यदि परिणाम सीमा में है तो कोई अतिप्रवाह नहीं। |
20 | static int isfinite (double __x) Isfinite () फ़ंक्शन एक गैर-मान देता है यदि __x परिमित है: प्लस या माइनस इनफिनिटी नहीं, और नहीं NaN। |
21 | int isinf (double __x) फ़ंक्शन isinf () रिटर्न 1 है यदि तर्क __x सकारात्मक अनंत है, -1 यदि __x नकारात्मक अनंत है, और 0 अन्यथा। Note - जीसीसी 4.3 इस फ़ंक्शन को इनलाइन कोड के साथ बदल सकता है जो दोनों शिशुओं के लिए 1 मान लौटाता है (gcc बग # 35509)। |
22 | int isnan (double __x) फ़ंक्शन isnan () 1 देता है यदि तर्क __x "नहीं-एक-संख्या" का प्रतिनिधित्व करता है ()NaN) वस्तु, अन्यथा ०। |
23 | double ldexp (double __x, int __exp ) Ldexp () फ़ंक्शन 2. की एक अभिन्न शक्ति द्वारा एक फ्लोटिंग-पॉइंट संख्या को गुणा करता है। यह __x 2 के मान को पावर __exp पर लौटाता है। |
24 | double log (double __x) लॉग () फ़ंक्शन तर्क का प्राकृतिक लघुगणक लौटाता है __x। |
25 | double log10(double __x) लॉग 10 () फ़ंक्शन 10 से बेस 10 तक तर्क का लॉगरिदम देता है। |
26 | long lrint (double __x) Lrint () फंक्शन __x को निकटतम पूर्णांक तक ले जाता है, आधे मामलों को सम पूर्ण दिशा में गोल करता है। (वह 1.5 और 2.5 दोनों मान 2 के गोल हैं)। यह फ़ंक्शन रिंट () फ़ंक्शन के समान है, लेकिन यह रिटर्न वैल्यू के प्रकार में भिन्न है और इसमें एक अतिप्रवाह संभव है। Returns गोल लंबा पूर्णांक मान। यदि __x एक परिमित संख्या या अतिप्रवाह नहीं है, तो यह बोध LONG_MIN मान (0x80000000) लौटाता है। |
27 | long lround (double __x) निकटतम (पूर्णांक) फंक्शन __x को निकटतम पूर्णांक तक ले जाता है, लेकिन आधे मामलों को शून्य से दूर करता है (निकटतम सम पूर्णांक के बजाय)। यह फ़ंक्शन राउंड () फ़ंक्शन के समान है, लेकिन यह रिटर्न वैल्यू के प्रकार में भिन्न है और इसमें एक अतिप्रवाह संभव है। Returns गोल लंबा पूर्णांक मान। यदि __x एक परिमित संख्या नहीं है या एक अतिप्रवाह था, तो यह बोध LONG_MIN मान (0x80000) लौटाता है। |
28 | double modf (double __x, double * __iptr ) Modf () फ़ंक्शन तर्क __x को अभिन्न और भिन्नात्मक भागों में तोड़ता है, जिनमें से प्रत्येक में तर्क के समान संकेत हैं। यह __iptr द्वारा इंगित ऑब्जेक्ट में एक अभिन्न अंग के रूप में संग्रहीत करता है। Modf () फ़ंक्शन __x के हस्ताक्षरित आंशिक भाग को लौटाता है। Note- यह कार्यान्वयन शून्य पॉइंटर द्वारा लेखन को रोक देता है। हालांकि, GCC 4.3 इस फ़ंक्शन को इनलाइन कोड के साथ बदल सकता है जो भंडारण से बचने के लिए NULL पते का उपयोग करने की अनुमति नहीं देता है। |
29 | float modff (float __x, float * __iptr) मॉडफ के लिए उपनाम ()। |
30 | double pow (double __x, double __y) फ़ंक्शन पॉव () घातांक के लिए __x का मान लौटाता है। |
31 | double round (double __x) राउंड () फ़ंक्शन राउंड __x निकटतम पूर्णांक तक जाता है, लेकिन राउंड आधे मामले शून्य से दूर होते हैं (निकटतम पूर्णांक के बजाय)। अतिप्रवाह असंभव है। Returns गोल मूल्य। यदि __x एक अभिन्न या अनंत है, तो __x ही वापस आ जाता है। अगर __x हैNaN, फिर NaN वापस आ गया है। |
32 | int signbit (double __x) यदि __x के मूल्य में इसका साइन बिट सेट है, तो साइनबिट () फ़ंक्शन एक नॉनज़ेरो वैल्यू देता है। यह `__x <0.0 'के समान नहीं है, क्योंकि IEEE 754 फ़्लोटिंग पॉइंट शून्य पर हस्ताक्षर करने की अनुमति देता है। तुलना `-0.0 <0.0 'झूठी है, लेकिन` साइनबिट (-0.0)' एक गैर-मूल्य पर वापस आ जाएगी। |
33 | double sin (double __x) पापी () फ़ंक्शन रेडियन में मापा गया __x का साइन लौटाता है। |
34 | double sinh (double __x) Sinh () फ़ंक्शन __x की हाइपरबोलिक साइन देता है। |
35 | double sqrt (double __x) Sqrt () फ़ंक्शन __x का गैर-नकारात्मक वर्ग रूट लौटाता है। |
36 | double square (double __x) फ़ंक्शन स्क्वायर () __x * __x देता है। Note - यह फ़ंक्शन सी मानक परिभाषा से संबंधित नहीं है। |
37 | double tan (double __x) टैन () फ़ंक्शन __x की स्पर्शरेखा देता है, जिसे रेडियन में मापा जाता है। |
38 | double tanh ( double __x) तन () फ़ंक्शन __x की हाइपरबोलिक स्पर्शरेखा लौटाता है। |
39 | double trunc (double __x) पूर्णांक में पूर्णांक बड़ा होने के लिए ट्रंक () फ़ंक्शन राउंड __x है। |
उदाहरण
निम्नलिखित उदाहरण से पता चलता है कि कैसे सबसे आम math.h पुस्तकालय कार्यों का उपयोग किया जाता है -
double double__x = 45.45 ;
double double__y = 30.20 ;
void setup() {
Serial.begin(9600);
Serial.print("cos num = ");
Serial.println (cos (double__x) ); // returns cosine of x
Serial.print("absolute value of num = ");
Serial.println (fabs (double__x) ); // absolute value of a float
Serial.print("floating point modulo = ");
Serial.println (fmod (double__x, double__y)); // floating point modulo
Serial.print("sine of num = ");
Serial.println (sin (double__x) ) ;// returns sine of x
Serial.print("square root of num : ");
Serial.println ( sqrt (double__x) );// returns square root of x
Serial.print("tangent of num : ");
Serial.println ( tan (double__x) ); // returns tangent of x
Serial.print("exponential value of num : ");
Serial.println ( exp (double__x) ); // function returns the exponential value of x.
Serial.print("cos num : ");
Serial.println (atan (double__x) ); // arc tangent of x
Serial.print("tangent of num : ");
Serial.println (atan2 (double__y, double__x) );// arc tangent of y/x
Serial.print("arc tangent of num : ");
Serial.println (log (double__x) ) ; // natural logarithm of x
Serial.print("cos num : ");
Serial.println ( log10 (double__x)); // logarithm of x to base 10.
Serial.print("logarithm of num to base 10 : ");
Serial.println (pow (double__x, double__y) );// x to power of y
Serial.print("power of num : ");
Serial.println (square (double__x)); // square of x
}
void loop() {
}
परिणाम
cos num = 0.10
absolute value of num = 45.45
floating point modulo =15.25
sine of num = 0.99
square root of num : 6.74
tangent of num : 9.67
exponential value of num : ovf
cos num : 1.55
tangent of num : 0.59
arc tangent of num : 3.82
cos num : 1.66
logarithm of num to base 10 : inf
power of num : 2065.70