[ 1Àå, 2Àå, 3Àå, 4Àå, 5Àå, 6Àå, 7Àå, 8Àå, 9Àå, 10Àå, 11Àå, 12Àå, 13Àå, 14Àå, 15Àå, 16Àå, 17Àå, 18Àå, 19Àå, 20Àå, 21Àå, 22Àå, 23Àå, 24Àå, 25Àå, 26Àå, 27Àå, ºÎ·ÏA, ºÎ·ÏB,C, ºÎ·ÏD, GNU C ¶óÀ̺귯¸® ¸ñ·Ï ]

À̱ÛÀº ÇÏÀÌÅÚ ¼ÒÇÁÆ®¿þ¾îµ¿È£È¸ÀÇ ¼Ò¸ðÀÓÀÎ Á÷ÀåÀÎÀ» À§ÇÑ ¾¾¸ðÀÓ¿¡¼­ ÀåÀå 2³â°£ÀÇ ´ëÀåÁ¤À¸·Î ¹ø¿ªµÇ¾îÁø ¹®¼­ÀÔ´Ï´Ù. Áö±ÝÀº Á÷¾¾ÀåÀ» Áö³»°í ÀÖ´Â ±è¼Ò¿µ(flpigy)´Ô°ú Á¶¿øºÀ(thirnine)´Ô, °í¼®°©´Ô(sukgab)ÀÇ °øµ¿¹ø¿ªÀÔ´Ï´Ù.

13. ¼öÇÐ ÇÔ¼ö.

ÀÌÀåÀº »ï°¢ÇÔ¼ö¿Í °°Àº, ¼öÇÐÀû °è»êÀ» ¼öÇàÇÏ´Â ÇÔ¼öµé¿¡ ´ëÇØ¼­ ¼³¸íÇÑ´Ù. À̵é ÇÔ¼öµéÁß ´ëºÎ ºÐÀº Çì´õÆÄÀÏ 'math.h'¿¡ ¼±¾ðµÇ¾î ÀÖ´Ù.

ÀÌ ÇÔ¼öµé ¸ðµÎ´Â ÇÃ·ÎÆÃ-Æ÷ÀÎÆ® ¼ö¸¦ Àμö·Î ¹Þ¾Æµé¿© °è»êÇϰí, doubleÇüÀ¸·Î °á°ú¸¦ ¸®ÅÏÇÑ´Ù. Áï, float ¿Í long double °ªµéÀ» °è»êÇÏ´Â ºÎ°¡ÀûÇÔ¼ö°¡ µÉ °ÍÀÌ´Ù. ¿¹¸¦µé¾î, cosf ¿Í coslÀº float ¿Í long double Àμöµé·Î ¼öÇàÇÏ´Â, cos ÇÔ¼öÀÇ º¯ÇüÀÌ´Ù. µ¿½Ã¿¡, ´ç½ÅÀÌ ±×µé ¿¹¾à¾î¸¦ ´ç½ÅÀÌ ÀÓ ÀÇÀÇ ¸ñÀûÀ¸·Î »ç¿ëÇÏ´Â °ÍÀ» ÇÇÇ϶ó. 1.3.3Àý [Reserved Names] 4 ÆäÀÌÁöÂüÁ¶.

13.1 Á¤ÀDZ¸¿ª°ú ¹üÀ§ ¿¡·¯µé.

ÀÌ Àý¿¡¼­ ¼³¸íµÈ ÇÔ¼öµéÀÇ ´ëºÎºÐÀº ½Ç¼ö(read nunbers)ÀÇ ºÎºÐÁýÇÕÀÎ Á¤ÀDZ¸¿ª(domain)¿¡ °üÇÏ¿© ¼öÇÐÀûÀ¸·Î Á¤ÀǵǾî ÀÖ´Ù. ¿¹¸¦ µé¾î, acos ÇÔ¼ö´Â -1 °ú 1 »çÀÌÀÇ Á¤ÀDZ¸¿ªÀ¸·Î Á¤ÀǵȴÙ. ¸¸ÀÏ ´ç½ÅÀÌ ±× ÇÔ¼ö¿¡¼­ Á¤ÀǵǾî ÀÖ´Â Á¤ÀDZ¸¿ª ¹ÛÀÇ °ªÀ» Àμö·Î »ç¿ëÇÑ´Ù¸é, ±× ÇÔ¼ö´Â errno¸¦ EDOMÀ¸·Î ¼³Á¤Çؼ­ Á¤ÀDZ¸¿ª ¿¡·¯°¡ ³µÀ½À» ÁöÀûÇÑ´Ù. IEEE floating point ¸¦ Áö¿øÇÏ´Â ÄÄÇ»ÅÍ¿¡ ¼­, error ·Î EDOMÀ» º¸°íÇÏ´Â ÇÔ¼öµéÀº ¶ÇÇÑ NaN µµ ¸®ÅÏÇÑ´Ù.

À̵é ÇÔ¼öÁß ¾î¶² °ÍÀº ±×µéÀÇ Á¤ÀDZ¸¿ª¿¡¼­ º¹ÀâÇÑ °ªÀ¸·Î °á°ú¸¦ ³½´Ù. À̰Ͱú °¡Àå À¯»çÇÑ ¿¹´Â À½¼ö¿¡ ·çÆ®¸¦ ¾º¿î°ÍÀÇ °á°ú°ªÀÌ´Ù. ÀÌ Àå¿¡ ÀÖ´Â ÇÔ¼öµéÀº ¿ÀÁ÷ ½Ç¼ö Àμö¸¸À» ÃëÇϰí, ½Ç¼ö°ª¸¸ À» ¸®ÅÏÇÑ´Ù; ±×·¡¼­ ¸¸ÀÏ ½Ç¼ö°¡ ¾Æ´Ñ °ªÀ̸é, À̰ÍÀ» Á¤ÀDZ¸¿ª ¿¡·¯·Î Ãë±ÞÇÑ´Ù.

¿¬°ü¼º ÀÖ´Â ¹®Á¦·Î ÇÔ¼öÀÇ °á°ú¸¦ ÇÃ·ÎÆÃ Æ÷ÀÎÆ®·Î ³ªÅ¸³¾ ¼ö ¾ø´Â °ÍÀÌ ÀÖ´Ù. ¸¸ÀÏ Á¤È®ÇÏ°Ô ³ª ¿Â °á°ú°ªÀÇ Å©±â°¡ ³ªÅ¸³»±â¿¡ ³Ê¹« Å©¸é, ±× ÇÔ¼ö´Â ¹üÀ§ ¿¡·¯ÀÓÀ» ÁöÀûÇϱâ À§Çؼ­ ERANGE·Î errno¸¦ ¼³Á¤Çϰí, Ưº°ÇÏ°Ô ¸Å¿ì Å« °ªÀ» ¸®ÅÏÇϰųª( ¸ÅÅ©·Î HUGE_VAL ), ±×°ÍÀÇ ºÎÁ¤(negation) ÀÇ °ªÀ»(-HUGE_VAL)À» ¸®ÅÏÇÑ´Ù. ¸¸ÀÏ °á°úÀÇ Å©±â°¡ ³Ê¹« ÀÛÀ¸¸é, 0ÀÇ °ªÀ» ´ë½Å ¸®ÅÏÇÑ´Ù. ÀÌ °æ¿ì, ERANGEÀÇ ¿¡·¯°¡ ³¯¼öµµ, ¶Ç´Â ³ªÁö ¾ÊÀ» ¼öµµ ÀÖ´Ù.

Á¤ÀDZ¸¿ª°ú ¹üÀ§¿¡·¯¸¦ üũÇϱâ À§ÇÑ ÁÁÀº ¹æ¹ýÀº ¿ì¼± ´ç½ÅÀÌ ¼öÇÐÀûÇÔ¼ö¸¦ È£ÃâÇϱâ Àü¿¡ errno ¸¦ 0À¸·Î ¼³Á¤ÇÑ´ÙÀ½, ³ªÁß¿¡ errno¸¦ Å×½ºÆ® ÇØº¸´Â °ÍÀÌ´Ù. errno¸¦ À̰°ÀÌ »ç¿ëÇÑ °á°ú·Î, ´ç½ÅÀÌ ¿¡·¯µéÀ» üũÇϸé, ±× ¼öÇÐÇÔ¼ö¸¦ ÀçÁøÀÔÇØ¼­ »ç¿ëÇÒ ¼ö ¾ø´Ù.

¼öÇÐÀû ÇÔ¼öµéÀÇ ¾î¶²°Íµµ Á¤ÀDZ¸¿ªÀ̳ª ¹üÀ§¿¡·¯·Î ÀÎÇØ¼­ °áÄÚ ½ÅÈ£¸¦ ¹ß»ý½ÃŰÁö ¾Ê´Â´Ù. ÀÌ Æ¯º°ÇÔÀÌ ÀǹÌÇÏ´Â °ÍÀº À̵é ÇÔ¼öµéÀÇ »ç¿ëÀ¸·Î´Â SIGEPE½ÅÈ£µéÀÇ ¹ß»ýÀ» ´ç½ÅÀÌ º¼ ¼ö ¾ø´Ù´Â °ÍÀÌ´Ù. ( 21Àå [Signal Handling] 271 ÆäÀÌÁö, ½ÅÈ£¿¡ ´ëÇÑ Á¤º¸ ÂüÁ¶.)

¸ÅÅ©·Î : double HEGE__VAL

Ưº°È÷ ¸Å¿ì Å«°ªÀ» ³ªÅ¸³»´Â Ç¥Çö. IEEE ÇÃ·ÎÆÃ Æ÷ÀÎÆ® Çü½ÅÀ» Áö¿øÇÏ´Â ±â°è¿¡¼­, ±× °ªÀº "¹« ÇÑ´ë"ÀÌ´Ù. ´Ù¸¥ ±â°èµé¿¡¼­´Â, ±×°ÍÀº ³ªÅ¸³¾ ¼ö ÀÖ´Â °¡Àå Å« ¾çÀǼýÀÚ¸¦ ÀǹÌÇÑ´Ù. ÀÌ ¸ÅÅ©·ÎÀÇ °ªÀº ¿©·¯ °¡Áö ¼öÇÐÀû ÇÔ¼öµéÀÌ ¹ß»ý½Ãų¼ö ÀÖ´Â ¿À¹öÇÃ·Î¿ì »óȲ¿¡¼­ ¸®ÅϰªÀ» ³ªÅ¸³»±â À§Çؼ­ »ç¿ëµÈ´Ù.

ÇÃ·ÎÆÃ Æ÷ÀÎÆ® Ç¥Çö°ú ±× Á¦ÇÑ¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ Á¤º¸´Â, A.5.3.2Àý [Floating Point Parameters] 390 ÆäÀÌÁö¸¦ ÂüÁ¶Ç϶ó. ¸ÅÅ©·Î DBL_MAX´Â ¼öÇÐÀû ÇÔ¼öµé·Î ¿¡·¯¸¦ Å×½ºÆ®Çϱ⠺¸´Ù´Â ´Ù¸¥ ¿ëµµ·Î ¸¹ÀÌ »ç¿ëÇÑ´Ù¸é HUGE_VALº¸´Ù´Â »ç¿ëÇϱ⿡ ´õ Àû´çÇÒ °ÍÀÌ´Ù.

13.2 »ï°¢ ÇÔ¼ö

À̵éÀº sin, cos, °ú tan ÇÔ¼öµé°ú À¯»çÇÏ´Ù. À̵é ÇÔ¼ö¿¡ ÁÖ¾îÁú ÀμöµéÀº ¶óµð¾È(radians : È£µµ ) ÀÇ ´ÜÀ§·Î ÁÖ¾îÁø´Ù; pi ¶óµð¾ÈÀº 180µµ¿Í °°´Ù´Â °ÍÀ» »ó±âÇ϶ó. math ¶óÀ̺귯¸®¿¡¼­ pi¸¦ À§ÇÑ ½Éº¼ »ó¼ö¸¦ Á¤ÀÇÇÏÁö ¾Ê¾ÒÁö¸¸, ´ç½ÅÀÌ ¸¸ÀÏ ÇÊ¿äÇÏ´Ù¸é ´ç½Å ½º½º·Î Á¤ÀÇÇÒ ¼ö ÀÖ´Ù.

#define PI 3.14159265358979323846264338327

´ç½ÅÀº ¶ÇÇÑ acos(-1.0)ÀÇ Ç¥Çö½ÄÀ¸·Î piÀÇ °ªÀ» °è»êÇÒ ¼ö ÀÖ´Ù.

ÇÔ¼ö : double sin (double x)

ÀÌ ÇÔ¼ö´Â ¶óµð¾ÈÀÇ °ªÀ¸·Î ÁÖ¾îÁø xÀÇ sine °ªÀ» ¸®ÅÏÇÑ´Ù. ¸®ÅϰªÀº -1°ú 1ÀÇ ¹üÀ§¾È¿¡ ÀÖ´Ù.

ÇÔ¼ö : double cos (double x)

ÀÌ ÇÔ¼ö´Â ¶óµð¾ÈÀÇ °ªÀ¸·Î ÁÖ¾îÁø x ÀÇ cosine °ªÀ» ¸®ÅÏÇÑ´Ù. ¸®ÅϰªÀº -1 °ú 1 ÀÇ ¹üÀ§¾È¿¡ ÀÖ´Ù.

ÇÔ¼ö : double tan (double x)

ÀÌ ÇÔ¼ö´Â ¶óµð¾ÈÀÇ °ªÀ¸·Î ÁÖ¾îÁø x ÀÇ tangent °ªÀ» ¸®ÅÏÇÑ´Ù.

´ÙÀ½ÀÇ errno´Â ÀÌ ÇÔ¼ö¸¦ À§ÇØ Á¤ÀÇµÈ ¿¡·¯ »óȲÀÌ´Ù.

ERANGE

¼öÇÐÀûÀ¸·Î, tangent ÇÔ¼ö´Â pi/2 ÀÇ È¦¼ö¹è( odd multiples ) ÀÇ Æ¯¼ºµéÀ» °¡Áø´Ù. ¸¸ÀÏÀμö x °¡ ÀÌµé Æ¯¼ºµéÁß Çϳª¿¡ ³Ê¹« ±ÙÁ¢ÇØ ÀÖ´Ù¸é, tanÀº errno¸¦ ERANGE·Î ¼³Á¤Çϰí À½À̳ª ¾çÀÎ HUGE_VAL ÁßÀÇ Çϳª¸¦ ¸®ÅÏÇÑ´Ù.

13.3 ¿ª »ï°¢ ÇÔ¼öµé.

ÀÌ Àý¿¡¼­´Â sine, cosine, tangent ÇÔ¼öµéÀÇ ¿ªÇÔ¼öÀÎ arc sine, arc cosine, arc tangent ÇÔ¼öµéÀ» ¼³¸íÇϰí ÀÖ´Ù.

ÇÔ¼ö : double asin (double x)

ÀÌ ÇÔ¼ö´Â x(sine x ÀÇ °á°ú°ªÀÎ )ÀÇ arc sineÀÇ °ªÀ» °è»êÇÑ´Ù. °á°ú°ªÀº ¶óµð¾ÈÀÇ ´ÜÀ§ÀÌ´Ù. ¼öÇÐ ÀûÀ¸·Î, ¹«ÇÑ´ëÀÇ ¸¹Àº °ªµéÀÌ Á¸ÀçÇÑ´Ù; ½ÇÁ¦·Î´Â -pi/2 ¿Í pi/2(Æ÷ÇÔÇØ¼­) »çÀÌÀÇ Çϳª°¡ ¸®ÅϵȴÙ. ¸¸ÀÏ x°¡ ¹üÀ§¹Û¿¡ Á¸ÀçÇϸé, asinÀº ½ÇÆÐÇϰí, errno´Â EDOMÀ¸·Î ¼³Á¤µÈ´Ù. arc sine ÇÔ¼ö´Â -1 ¿¡¼­ 1 »çÀÌÀÇ Á¤ÀDZ¸¿ªÀ» °¡Áöµµ·Ï Á¤ÀǵǾú´Ù.

ÇÔ¼ö : double acos (double x)

ÀÌ ÇÔ¼ö´Â x(cosine xÀÇ °á°ú°ªÀÎ )ÀÇ arc cosineÀÇ °ªÀ» °è»êÇÑ´Ù. ÀÌ °ªÀº ¶óµð¾ÈÀÇ ´ÜÀ§ÀÌ´Ù. ¼ö ÇÐÀûÀ¸·Î ¹«ÇÑ´ëÀÇ °ªÀÌ Á¸ÀçÇÑ´Ù; ½ÇÁ¦·Î 0 °ú pi(Æ÷ÇÔÇØ¼­) »çÀÌÀÇ Çϳª°¡ ¸®ÅϵȴÙ. ¸¸ÀÏ x °¡ ¹üÀ§¹Û¿¡ Á¸ÀçÇϸé, acos´Â ½ÇÆÐÇϰí, errno¸¦ EDOMÀ¸·Î ¼³Á¤ÇÑ´Ù. arc cosine ÇÔ¼ö´Â ¿ÀÁ÷ -1¿¡ ¼­ 1»çÀÌÀÇ Á¤ÀDZ¸¿ªÀ» °¡Áöµµ·Ï Á¤ÀǵƴÙ.

ÇÔ¼ö : double atan (double x)

ÀÌ ÇÔ¼ö´Â x(tangent x ÀÇ °á°ú°ªÀÎ )ÀÇ arc tangentÀÇ °ªÀ» °è»êÇÑ´Ù. ÀÌ °ªÀº ¶óµð¾ÈÀÇ ´ÜÀ§ÀÌ´Ù. ¼öÇÐÀûÀ¸·Î ¹«ÇÑ´ëÀÇ °ªÀÌ Á¸ÀçÇÑ´Ù; ½ÇÁ¦·Î´Â -pi/2 ¿Í pi/2(Æ÷ÇÔÇØ¼­) »çÀÌÀÇ °ªÁß Çϳª°¡ ¸®ÅÏµÈ ´Ù.

ÇÔ¼ö : double atan2 (double y, double x)

ÀÌ ÇÔ¼ö´Â µÎ °³ÀÇ Àμö¸¦ °¡Áø arc tangent ÇÔ¼öÀÌ´Ù. À̰ÍÀº µÎ ÀμöÀÇ ºÎÈ£°¡ °á°ú°ªÀÇ 4ºÐ±¸°£ (quadrant)À» °áÁ¤Çϴµ¥ »ç¿ëµÇ°í, xÀÇ °ªÀ¸·Î 0ÀÇ »ç¿ëÀÌ Çã¿ëµÈ´Ù´Â °ÍÀ» Á¦¿ÜÇϰí´Â, y/xÀÇ arc tangent °ªÀ» °è»êÇϴ°Ͱú À¯»çÇÏ´Ù. ¸®ÅϰªÀº ¶óµð¾ÈÀ¸·Î ÁÖ¾îÁø°í, -pi ¿Í pi¸¦ Æ÷ÇÔÇÑ ±× »çÀÌ ÀÇ ¹üÀ§¸¦ °¡Áø´Ù.

¸¸ÀÏ x ¿Í y °¡ Æò¸é¿¡ À§Ä¡ÇÑ ÁÂÇ¥¶ó¸é, atan2´Â x ¸¦ ÃàÀ¸·Î Çϰí, ¿øÁ¡À¸·ÎºÎÅÍ ±× Á¡±îÁö »çÀÌ ÀÇ ºÎȣȭµÈ °¢µµ¸¦ ¸®ÅÏÇÑ´Ù. ±×·¡¼­ atan2´Â µ¥Ä«¸£Æ® ÁÂÇ¥¸¦ ±Ø ÁÂÇ¥·Î º¯°æÇϴµ¥ À¯¿ëÇÏ´Ù. ( radial ÁÂÇ¥¸¦ °è»êÇϱâ À§Çؼ­´Â, hypot¸¦ »ç¿ëÇ϶ó; 13.4Àý [Exponents and Logarithms] 205 ÆäÀÌ Áö ÂüÁ¶.) atan2 ÇÔ¼ö´Â x ¿Í y °¡ µÑ´Ù 0À̸é EDOMÀ¸·Î errno¸¦ ¼³Á¤ÇÑ´Ù; ¸®ÅϰªÀº ÀÌ °æ¿ì¿¡ Á¤ÀǵÇÁö ¾Ê¾Ò´Ù.

13.4 Áö¼öÇÔ¼ö¿Í ´ë¼ö.

ÇÔ¼ö : double exp (double x)

exp ÇÔ¼ö´Â e( ÀÚ¿¬´ë¼ö¿¡ ±âÃÊÇÑ )ÀÇ x ½ÂÀÇ °ªÀ» ¸®ÅÏÇÑ´Ù. ¸¸ÀÏ °á°úÀÇ Å©±â°¡ ³Ê¹« Ä¿¼­ ³ªÅ¸ ³¾ ¼ö ¾øÀ¸¸é, ±× ÇÔ¼ö´Â ½ÇÆÐÇϰí, errno¸¦ ERANGE ·Î ¼³Á¤ÇÑ´Ù.

ÇÔ¼ö : double log (double x)

ÀÌ ÇÔ¼ö´Â x ÀÇ ÀÚ¿¬·Î±×¸¦ ¸®ÅÏÇÑ´Ù. ¼öÇÐÀûÀ¸·Î Á¤È®ÇϰÔ, C·Î´Â ´ë·«ÀûÀ¸·Î exp (log (x)) ´Â x ¿Í °°´Ù. ´ÙÀ½ÀÇ errno´Â ÀÌ ÇÔ¼ö¸¦ À§ÇØ Á¤ÀÇµÈ ¿¡·¯»óȲÀÌ´Ù.

EDOM

Àμö x °¡ À½¼öÀÌ´Ù. log ÇÔ¼ö´Â ¾çÀÇ Àμö°¡

ÁÖ¾îÁ®¾ßÁö¸¸ ½Ç¼ö °á°ú°ªÀ» ¸®ÅÏÇϵµ·Ï Á¤ÀÇ

µÇ¾îÀÖ´Ù.

ERANGE

Àμö°¡ 0ÀÌ´Ù. 0ÀÇ ·Î±×°ªÀº Á¤ÀǵÇÁö ¾Ê¾Ò´Ù.

ÇÔ¼ö : double log10 (double x)

ÀÌ ÇÔ¼ö´Â 10À» ¹ØÀ¸·Î ÇÏ´Â xÀÇ ·Î±×°ªÀ» ¸®ÅÏÇÑ´Ù. ¹ØÀÇ °ªÀÌ ´Ù¸£´Ù´Â °ÍÀ» Á¦¿ÜÇϰí´Â, log ÇÔ ¼ö¿Í À¯»çÇÏ´Ù. ½ÇÁ¦·Î, log10 (x)´Â log (x) / log (10) °ú °°´Ù.

ÇÔ¼ö : doule pow (double base, double power)

À̰ÍÀº baseÀÇ power½ÂÀ» ¸®ÅÏÇÏ´Â ÀϹÝÀû Áö¼ö ÇÔ¼öÀÌ´Ù. ´ÙÀ½ÀÇ errno´Â ÀÌ ÇÔ¼ö¸¦ À§ÇØ Á¤ÀÇµÈ ¿¡·¯»óȲÀÌ´Ù.

EDOM

base Àμö°¡ À½¼öÀ̰í powerÀº Á¤¼ö°ªÀÌ ¾Æ´Ï´Ù. ¼öÇÐÀûÀ¸·Î, ÀÌ °æ¿ì¿¡ °á°ú°¡ º¹ÀâÇÏ°Ô ³ª¿Ã °ÍÀÌ ´Ù.

ERANGE

°á°ú¿¡¼­ ¾ð´õÇÃ·Î¿ì ³ª ¿À¹öÇÃ·Î¿ì »óȲÀÌ °ËÃâµÇ¾ú´Ù.

ÇÔ¼ö : double sqrt (double x)

ÀÌ ÇÔ¼ö´Â xÀÇ À½ÀÌ¾Æ´Ñ ·çÆ®ÀÇ °ªÀ» ¸®ÅÏÇÑ´Ù. sqrt ÇÔ¼ö´Â ¸¸ÀÏ x°¡ À½¼öÀÌ¸é ½ÇÆÐÇϰí, errno¸¦ EDOMÀ¸·Î ¼³Á¤ÇÑ´Ù. ¼öÇÐÀûÀ¸·Î, ·çÆ®°ªÀº º¹ÀâÇÑ ¼öÀÌ´Ù.

ÇÔ¼ö : double cbrt(double x)

ÀÌ ÇÔ¼ö´Â x ÀÇ ¼¼Á¦°ö±ÙÀÇ °ªÀ» ¸®ÅÏÇÑ´Ù. ÀÌ ÇÔ¼ö´Â ½ÇÆÐÇÒ ¼ö ¾ø´Ù; ¸ðµç Ç¥Çö °¡´ÉÇÑ ½Ç¼öÀÇ °ªÀº Ç¥Çö °¡´ÉÇÑ ¼¼Á¦°ö±ÙÀÇ °ªÀ» °¡Áú ¼ö ÀÖ´Ù.

ÇÔ¼ö : double hypot (double x, double y)

hypot ÇÔ¼ö´Â sqrt ( x*x + y*y )ÀÇ °ªÀ» ¸®ÅÏÇÑ´Ù. (À̰ÍÀº x ¿Í y±æÀÌÀÇ µÎº¯À» °¡Áø Á÷°¢ »ï°¢ ÇüÀÇ ºøº¯ÀÇ ±æÀÌÀ̰ųª, ¿øÁ¡À¸·ÎºÎÅÍ Á¡(x, y) ±îÁöÀÇ °Å¸®ÀÌ´Ù.) cabsÇÔ¼ö¿¡ ´ëÇÑ °ÍÀº 14.3Àý [Absolute Value] 210 ÆäÀÌÁö ÂüÁ¶.

ÇÔ¼ö : double expml (double x)

ÀÌ ÇÔ¼ö´Â exp (x) - 1 °ú µ¿ÀÏÇÑ °ªÀ» ¸®ÅÏÇÑ´Ù. ±×°ÍÀº ½ÉÁö¾î x°¡ 0¿¡ ±ÙÁ¢ÇÑ °ªÀ̶ó ÇÒÁö¶óµµ Á¤È®ÇÏ°Ô °è»êµÇ¾îÁø´Ù._ exp (x) -1ÀºµÎ¼öÀÇ Â÷À̰¡ °ÅÀÇ °°´Ù¸é ºÎÁ¤È®ÇÏ°Ô µÇ¾îÁú °ÍÀÌ´Ù.

ÇÔ¼ö : double loglp (double x)

ÀÌ ÇÔ¼ö´Â log (1 + x)¿Í µ¿µîÇÏ´Ù. ÀÌ ÇÔ¼ö´Â ½ÉÁö¾î xÀÇ °ªÀÌ 0¿¡ ±ÙÁ¢ÇØ ÀÖÀ»Áö¶óµµ Á¤È®ÇÏ°Ô °è»êµÇ¾îÁø´Ù.

13.5 ½Ö°î¼± ÇÔ¼öµé.

ÀÌ Àý¿¡ ÀÖ´Â ÇÔ¼öµéÀº Áö¼ö ÇÔ¼öµé°ú ¿¬°üÀÌ ÀÖ´Ù; 13.4Àý [Exponents and Logarithms] 205 ÆäÀÌ ÁöÂüÁ¶.

ÇÔ¼ö : double sinh (double x)

sinh ÇÔ¼ö´Â ¼öÇÐÀûÀ¸·Î exp(x) - exp(-x)/2 ·Î Á¤ÀǵÈ,xÀÇ ½Ö°î¼± sineÀ» ¸®ÅÏÇÑ´Ù. ¸¸ÀÏ xÀÇ °ªÀÌ ³Ê¹« Å©¸é ±× ÇÔ¼ö´Â ½ÇÆÐÇϰí, errno¸¦ ERANGE ·Î ¼³Á¤ÇÑ´Ù; ±×°ÍÀ» ¿À¹öÇ÷οìÀÇ ¹ß»ýÀ̶ó°í ÇÑ ´Ù.

ÇÔ¼ö : double cosh (double x)

cosh ÇÔ¼ö´Â ¼öÇÐÀûÀ¸·Î exp(x)-exp(-x)/2 ·Î Á¤ÀǵÈ, xÀÇ ½Ö°î¼± cosineÀ» ¸®ÅÏÇÑ´Ù. ¸¸ÀÏ xÀÇ °ª ÀÌ ³Ê¹« Å©¸é, ÇÔ¼ö´Â ½ÇÆÐ·Î ³¡³ª°í, errno¸¦ ERANGE·Î ¼³Á¤ÇÑ´Ù; ±×°ÍÀ» ¿À¹öÇ÷οìÀÇ ¹ß»ýÀ̶ó °í ÇÑ´Ù.

ÇÔ¼ö : double tanh (double x)

ÀÌ ÇÔ¼ö´Â sinh(x)/cosh(x)À̶ó´Â ¼öÇÐÀû Á¤ÀǸ¦ °¡Áø, x ÀÇ ½Ö°î¼± tangent x¸¦ ¸®ÅÏÇÑ´Ù.

ÇÔ¼ö : double asinh (double x)

ÀÌ ÇÔ¼ö´Â ½Ö°î¼± sineÀÌ x ÀÎ °ª_xÀÇ ¿ª ½Ö°î¼± sineÀÇ °ªÀ» ¸®ÅÏÇÑ´Ù.

ÇÔ¼ö : double acosh (double x)

ÀÌ ÇÔ¼ö´Â ½Ö°î¼± cosine ÀÌ x ÀÎ °ª_xÀÇ ¿ª ½Ö°î¼± cosineÀÇ °ªÀ» ¸®ÅÏÇÑ´Ù. ¸¸ÀÏ x °¡ 1º¸´Ù ÀÛ À¸¸é, acosh´Â HUGE_VALÀ» ¸®ÅÏÇÑ´Ù.

ÇÔ¼ö : double atanh (double x)

ÀÌ ÇÔ¼ö´Â ½Ö°î¼± tangent°¡ xÀÎ_xÀÇ ¿ª ½Ö°î¼± tangentÀÇ °ªÀ» ¸®ÅÏÇÑ´Ù. ¸¸ÀÏ xÀÇ Àý´ë°ªÀÌ 1 °ú °°°Å³ª, 1º¸´Ù Å©¸é, atanh´Â HUGE_VALÀ» ¸®ÅÏÇÑ´Ù.

13.6 ÀÇ»ç-³­¼ö

ÀÌ ÀýÀº ÀÇ»ç-³­¼ö¸¦ ¹ß»ý½ÃŰ´Â GNU ÇÔ¼öµéÀ» ¼³¸íÇϰí ÀÖ´Ù. ±× ¼ýÀÚµéÀº ½ÇÁ¦·Î´Â ³­¼ö°¡ ¾Æ ´Ï´Ù; Ưº°È÷, ±×µéÀº Á¤ÇØÁø ÁÖ±â·Î ¹Ýº¹ÀûÀ¸·Î ¼ýÀÚ¿­À» Çü¼ºÇϴµ¥, ±× ÁÖ±â´Â ´ç½ÅÀÌ ¿ø·¡ÀÇ ¸ñ ÀûÀ» À§Çؼ­´Â ¹«½Ã °¡´ÉÇÑ, ±×·¸°Ô Å« ÁÖ±âÀÌ´Ù. ³­¼ö ¹ß»ý±â´Â ´ÙÀ½ ³­¼ö¸¦ °è»êÇϱâ À§ÇØ »ç¿ëÇÒ seed¸¦ Ç×»ó ±â¾ïÇÏ°í ¶ÇÇÑ »õ·Î¿î seed¸¦ °è»êÇϱâ À§ÇØ ÀÛ¾÷ÇÑ´Ù.

ºñ·Ï, ¹ß»ýµÈ ¼ýÀÚ°¡ ÇÁ·Î±×·¥ÀÇ Ã³À½ ½ÇÇà¿¡¼­´Â ¿¹ÃøÇÒ¼ö ¾ø°Ô º¸ÀÌÁö¸¸, ¼ýÀÚµéÀÇ ¿­(sequence) Àº ´ÙÀ½½ÇÇà¿¡¼­µµ óÀ½°ú Á¤È®È÷ µ¿ÀÏÇÑ °ªÀÌ ³ª¿Â´Ù. À̰ÍÀº óÀ½ seed°ªÀÌ Ç×»ó µ¿ÀÏÇϱ⠶§¹® ÀÌ´Ù. À̰ÍÀº ÇÁ·Î±×·¥À» µð¹ö±ëÇÒ ¶§ Æí¸®ÇÏÁö¸¸, ¸¸ÀÏ ´ç½ÅÀÌ ¿¹ÃøºÒ°¡´ÉÇÑ ÇൿÀ» Çϵµ·Ï ÇÁ·Î±× ·¥À» ¸¸µé±â ¿øÇÑ´Ù¸é ÀüÇô µµ¿òÀÌ µÇÁö ¸øÇÑ´Ù. ¸¸ÀÏ ´ç½ÅÀÌ

´ÜÁö ÀÇ»ç-³­¼ö°¡ ¾Æ´Ñ, ÁøÂ¥ ³­¼ö¸¦ ¿øÇÑ´Ù¸é, ÇöÀçÀÇ ½Ã°£À» ±â¹ÝÀ¸·Î ÇØ¼­ seed¸¦ Á¤Ç϶ó

´ç½ÅÀÌ ³­¼ö¸¦ ¹ß»ý½Ã۱â À§Çؼ­´Â µ¿ÀÏÇÑ seed °ªÀ¸·Î Á¤Çؼ­ ´Ù¸¥ ÄÄÇ»ÅÍ »ó¿¡¼­µµ ¹Ýº¹ÀûÀÎ ÀÓÀÇÀÇ ¼ýÀÚ¿­À» ¾òÀ» ¼ö ÀÖ´Ù. seed°ªÀ¸·Î´Â ¾Æ¹«·± Ç¥ÁØÀÌ ¾ø´Ù; µ¿ÀÏÇÑ seed¸¦ ´Ù¸¥ C ¶óÀ̺귯 ¸®³ª, ¶Ç´Â ´Ù¸¥ CPU ŸÀÔ»ó¿¡¼­ »ç¿ëÇÏ¸é ´ç½ÅÀº ´Ù¸¥ ³­¼öµéÀ» ¾òÀ» °Í

ÀÌ´Ù.

GNU ¶óÀ̺귯¸®´Â Ç¥ÁØ ANSI C ³­¼ö ÇÔ¼ö¿Í ´õºÒ¾î BSD½Ã½ºÅÛ¿¡¼­ ±â¿øµÈ ´Ù¸¥ ÇÔ¼öµéµµ Áö¿ø ÇÑ´Ù. ¿ì¸®´Â Ç¥ÁØ ÇÔ¼öÀÎ rand ¿Í srand¸¦ »ç¿ëÇϱ⸦ ±ÇÇÑ´Ù.

13.6.1 ANSI C ³­¼ö ÇÔ¼öµé.

ÀÌ ÀýÀº ANSI C Ç¥ÁØÀÇ ÀϺκÐÀÎ ³­¼ö ÇÔ¼öµéÀ» ¼³¸íÇÑ´Ù. À̵éÀ» »ç¿ëÇϱâ À§Çؼ­, ´ç½ÅÀº ´ç½Å ÀÇ ÇÁ·Î±×·¥¿¡ Çì´õÆÄÀÏ 'stdlib.h'¸¦ Æ÷ÇÔ½ÃÄÑ¾ß ÇÑ´Ù.

¸ÅÅ©·Î : int RAND__MAX

ÀÌ ¸ÅÅ©·ÎÀÇ °ªÀº rand ÇÔ¼ö¿¡ ÀÇÇØ ¸®ÅÏµÈ ÃÖ´ë °¡´ÉÇÑ °ªÀ» Ç¥ÇöÇϱâ À§ÇÑ Á¤¼ö »ó¼ö Ç¥ÇöÀÌ´Ù. GNU ¶óÀ̺귯¸®¿¡¼­, ±×°ÍÀº 32ºñÆ®¿¡¼­ Ç¥Çö °¡´ÉÇÑ °¡Àå Å« ¾çÀÇ Á¤¼ö°ªÀÎ 037777777ÀÌ´Ù. ´Ù¸¥ ¶óÀ̺귯¸®¿¡¼­´Â ±×°ÍÀº 32767·Î ÀÛÀ» °ÍÀÌ´Ù.

ÇÔ¼ö : int rand ()

rand ÇÔ¼ö´Â Â÷·Ê·Î ´ÙÀ½ ÀÇ»ç-³­¼ö¸¦ ¸®ÅÏÇÑ´Ù. ±× °ªÀº 0 °ú RAND_MAX »çÀÌÀÇ ¹üÀ§¿¡ ÀÖ´Â °ªÀÌ´Ù.

ÇÔ¼ö : void srand (unsigned int seed)

ÀÌ ÇÔ¼ö´Â ÀÇ»ç-³­¼öµéÀÇ »õ·Î¿î ¿­(series)À» À§Çؼ­ seed·Î seed¸¦ ¸¸µç´Ù. ¸¸ÀÏ ´ç½ÅÀÌ srand·Î seed¸¦ Á¤Çϱâ Àü¿¡ rand¸¦ È£ÃâÇϸé, ±×°ÍÀº µðÆúÆ®°ª seedÀÎ 1À» »ç¿ëÇÑ´Ù. ½ÇÁ¦·Î ³­¼ö¸¦ ¸¸µé ±â À§Çؼ­´Â (´ÜÁö ÀÇ»ç-³­¼ö°¡ ¾Æ´Ñ), srand(time(0)) À» »ç¿ëÇ϶ó.

13.6.2 BSD ³­¼ö ÇÔ¼öµé.

ÀÌÀýÀº BSD¿¡¼­ ±âÀÎµÈ ³­¼ö ¹ß»ý ÇÔ¼öµé¿¡ ´ëÇØ¼­ ¼³¸íÇÑ´Ù. GNU C ¶óÀ̺귯¸®¿¡¼­ À̵é ÇÔ¼ö ¸¦ »ç¿ëÇÏ´Â °ÍÀº ¾Æ¹«·± À̵æÀÌ ¾ø´Ù; ¿ì¸®´Â ¿ÀÁ÷ BSD¿ÍÀÇ È£È¯¼ºÀ» À§Çؼ­ ±×µéÀ» Áö¿øÇÒ »ÓÀÌ ´Ù.

À̵é ÇÔ¼öµéÀ» À§ÇÑ ÇÁ·ÎÅäŸÀÔÀº 'stdlib.h'ÀÌ´Ù.

ÇÔ¼ö : long int random ()

ÀÌ ÇÔ¼ö´Â Â÷·Ê·Î ´ÙÀ½ ÀÇ»ç-³­¼ö¸¦ ¸®ÅÏÇÑ´Ù. ¸®ÅÏµÈ °ªÀÇ ¹üÀ§´Â 0 °ú RAND_MAX »çÀÌÀÌ´Ù.

ÇÔ¼ö : void srandom (unsigned int seed)

srandom ÇÔ¼ö´Â Á¤¼ö seed¸¦ ±âÃÊ·Î ÇÏ´Â ÇöÀçÀÇ ³­¼ö¸¦ À§Çؼ­ seed¸¦ ¼³Á¤ÇÑ´Ù. ¸¸ÀÏ ´ç½ÅÀÌ 1 ÀÇ °ªÀ¸·Î seed¸¦ °ø±ÞÇϸé, À̰ÍÀº µðÆúÆ® ³­¼öµéÀ» ÁýÇÕÀ» Àç»ý»êÇÏ´Â °á°ú¸¦ ³º´Â´Ù. ÁøÂ¥ ³­¼ö (´ÜÁö ÀÇ»ç ³­¼ö°¡ ¾Æ´Ñ)¸¦ ¸¸µé±â À§Çؼ­´Â, sramdom(time(0))À» »ç¿ëÇ϶ó.

ÇÔ¼ö : void *initstate(unsigned int seed, void *state, size_t size)

initstate ÇÔ¼ö´Â ³­¼ö ¹ß»ý±â »óȲÀ» ÃʱâÈ­ Çϱâ À§Çؼ­ »ç¿ëµÈ´Ù. state Àμö´Â »óȲ¿¡ ´ëÇÑ Á¤º¸ ¸¦ ÀúÀåÇϰí ÀÖ´Â size ¹ÙÀÌÆ®ÀÇ ¹è¿­ÀÌ´Ù. size´Â Àû¾îµµ 8¹ÙÀÌÆ®¸¦ °¡Á®¾ß¸¸ Çϰí, ÃÖ»óÀÇ Å©±â´Â 8, 16, 32, 64, 128, ±×¸®°í 256 ÀÌ´Ù. ¹è¿­Àº Ŭ¼ö·Ï ÁÁ´Ù. ¸®ÅϰªÀº »óȲ Á¤º¸ ¹è¿­ÀÇ ÀüÀÇ °ªÀÌ´Ù. ´ç½ÅÀº ±× »óȲÀ» ÀçÀúÀåÇϱâ À§Çؼ­ setstateÀÇ Àμö·Î¼­ ³ªÁß¿¡ ÀÌ °ªÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù.

ÇÔ¼ö : void *setstate (void *state)

stetstate ÇÔ¼ö´Â ³­¼ö »óȲ¿¡ ´ëÇÑ Á¤º¸ state ¸¦ ÀçÀúÀåÇÑ´Ù. Àμö´Â initstate³ª ¶Ç´Â setstateÀÇ È£ Ãâ·Î ¾òÀº °á°ú¸¦ »ç¿ëÇØ¾ß¸¸ ÇÑ´Ù. ¸®ÅϰªÀº »óȲ Á¤º¸ ¹è¿­ÀÇ ±âÁ¸ÀÇ °ªÀÌ´Ù. ´ç½ÅÀº ±× »óȲÀ» ÀçÀúÀåÇϱâ À§Çؼ­ stestate¿¡ ³ªÁß¿¡ À̰ªÀ» Àμö·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù.