Fortran 95 ¶è´Ö±é»»¥×¥í¥°¥é¥ß¥ó¥°¥ê¥Õ¥¡¥ì¥ó¥¹ | ![]() ![]() ![]() ![]() ![]() |
Âè 2 ¾Ï
f95
¶è´Ö¥ê¥Õ¥¡¥ì¥ó¥¹¤³¤Î¾Ï¤Ï¡¢Sun WorkShop 6 ¤Î Fortran 95 ¤Ë¼ÂÁõ¤µ¤ì¤¿ÁȤ߹þ¤ß¤Î
INTERVAL
·¿¤Î¹½Ê¸¤È°ÕÌ£ÏÀ¤Î¥ê¥Õ¥¡¥ì¥ó¥¹¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£³ÆÀá¤ÏǤ°Õ¤Î½ç½ø¤ÇÆɤळ¤È¤¬¤Ç¤¤Þ¤¹¡£ÊÌÅÓÌÀ¼¨Åª¤Êµ½Ò¤¬¤Ê¤¤¸Â¤ê¡¢
INTERVAL
¥Ç¡¼¥¿·¿¤Ï¾¤ÎÁȤ߹þ¤ß¤Î¿ôÃÍ·¿¤ÈƱ¤¸ÆÃÀ¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£¤³¤Î¾Ï¤Ç¤ÏREAL
·¿¤ÈINTERVAL
·¿¤ÎÁê°ãÅÀ¤Ë¾ÇÅÀ¤ò¤¢¤Æ¤Þ¤¹¡£¥³¡¼¥ÉÎã¤ÎÃæ¤Ë¤Ï´°Á´¤Ç¤Ê¤¤¥×¥í¥°¥é¥à¤â¸ºß¤·¤Þ¤¹¡£¤³¤ì¤é¤ÎÎã¤Ï¡¢-
xia
¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤³¤È¤¬°ÅÌÛ¤ËÁÛÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£Fortran ³ÈÄ¥
INTERVAL
¥Ç¡¼¥¿·¿¤Ï Fortran ¤ËÂФ¹¤ëÈóɸ½à¤Î³ÈÄ¥¤Ç¤¹¡£¤·¤«¤·¡¢¼Â¸½²Äǽ¤Ê²Õ½ê¤Ç¤Ï¡¢¼ÂÁõ¹½Ê¸¤È°ÕÌ£ÏÀ¤Ï Fortran ·Á¼°¤Ë½àµò¤·¤Æ¤¤¤Þ¤¹¡£Ê¸»ú¥»¥Ã¥È¤Îɽµ
Fortran ʸ»ú¥»¥Ã¥È¤Ë¤Ï¡¢¶è´Öʸ»úÄê¿ô¤ò¶èÀڤ뤿¤á¡¢º¸±¦¤Î³Ñ³ç¸Ì¡Ö
[
...]
¡×¤¬Äɲ䵤ì¤Æ¤¤¤Þ¤¹¡£¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤ÎÁ´ÂΤòÄ̤¸¤Æ¡¢ÊÌÅÓÌÀ¼¨Åª¤Êµ½Ò¤¬¤Ê¤¤¸Â¤ê¡¢
INTEGER
¡¢REAL
¡¢INTERVAL
¤Î³ÆÄê¿ô¤Ïʸ»úÄê¿ô¤ò°ÕÌ£¤·¤Þ¤¹¡£Äê¿ô¼°¤È̾Á°ÉÕ¤Äê¿ô (PARAMETERS
) ¤Ï¾ï¤ËÌÀ¼¨Åª¤Ë¶èÊ̤µ¤ì¤Þ¤¹¡£É½ 2-1 ¤Ï¥³¡¼¥É¤È»»½Ñ¤ËÍѤ¤¤é¤ì¤ëʸ»ú¥»¥Ã¥È¤Îɽµ¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£
ɽ 2-1 ½ñÂΤÎÊÑ´¹ Fortran ¥³¡¼¥É INTERVAL :: X=[0.1,0.2]¥×¥í¥°¥é¥à¤È¥³¥Þ¥ó¥É¤Ø¤ÎÆþÎÏ Enter X: ?[2.3,2.4]
¥³¡¼¥ÉÆâÉô¤ÎÄê¿ôÍѤβÄÊÑÉôʬ [a,b]¥¹¥«¥é¡¼±é»» x(a + b) = xa + xb ¶è´Ö±é»» X(A + B) XA + XB
Ãí - ¥Õ¥©¥ó¥È¤Î»ÈÍѤˤϤ褯Ãí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£°Û¤Ê¤ë¥Õ¥©¥ó¥È¤Ï¶è´Ö¤ÎÀµ³Î¤Ê³°Éô¿ô³ØÃͤȶè´Ö¤Î¥Þ¥·¥óɽ¸½²Äǽ¤ÊÆâÉôŪ¤Ê¶á»÷Ãͤòɽ¤·¤Þ¤¹¡£
¶è´ÖÄê¿ô
f95
¤Ç¤Ï¡¢¶è´ÖÄê¿ô¤Ï¡¢Ã±°ì¤ÎÀ°¿ô¤Þ¤¿¤Ï³Ñ³ç¸Ì¤Ç°Ï¤ó¤À¼Â 10 ¿Ê¿ô[3.5]
¤Î¤¤¤º¤ì¤«¡¢¤¢¤ë¤¤¤Ï¡¢°ìÂФÎÀ°¿ô¤Þ¤¿¤Ï¥³¥ó¥Þ¤Ç¶èÀÚ¤ê³Ñ³ç¸Ì¤Ç°Ï¤ó¤À¼Â 10 ¿Ê¿ô
[3.5
E-10,
3.6
E-10]
¤Î¤¤¤º¤ì¤«¤Ç¤¹¡£½ÌÂष¤¿¶è´Ö¤¬¥Þ¥·¥ó¤Çɽ¸½¤Ç¤¤Ê¤¤¾ì¹ç¡¢Àµ³Î¤Ê»»½ÑÃͤϻØÄꤵ¤ì¤¿´Ý¤á¤ò»È¤Ã¤Æ¡¢ÆâÉôŪ¤ÊÀ©Ìó¤òËþ¤¿¤¹¤³¤È¤¬ÌÀ¤é¤«¤ÊÆâÉôŪ¤Ê¥Þ¥·¥óɽ¸½²Äǽ¤Ê¶è´Ö¤Ë´Ý¤á¤é¤ì¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È
INTEGER
¡¢¥Ç¥Õ¥©¥ë¥ÈREAL
¤Þ¤¿¤ÏREAL(8)
¤Îξ½ªÎ»ÅÀ¤ò»ý¤Ä ¶è´ÖÄê¿ô¤Ï¥Ç¥Õ¥©¥ë¥È·¿¶è´Ö¤ò»ý¤Á¤Þ¤¹¡£½ªÎ»ÅÀ¤Î·¿¤¬¥Ç¥Õ¥©¥ë¥È
INTEGER
¡¢¥Ç¥Õ¥©¥ë¥ÈREAL
¤Þ¤¿¤ÏREAL(8)
¤Ç¤¢¤ë¾ì¹ç¡¢¤½¤Î½ªÎ»ÅÀ¤ÏÆâÉôŪ¤ËREAL(8)
·¿¤ÎÃͤؤÈÊÑ´¹¤µ¤ì¤Þ¤¹¡£½ªÎ»ÅÀ¤Î·¿¤¬
INTEGER(8)
¤Ç¤¢¤ë¾ì¹ç¡¢¤½¤Î½ªÎ»ÅÀ¤ÏÆâÉôŪ¤ËREAL(16)
·¿¤ÎÃͤؤÈÊÑ´¹¤µ¤ì¤Þ¤¹¡£½ªÎ»ÅÀ¤Î·¿¤¬
INTEGER(4)
¤Ç¤¢¤ë¾ì¹ç¡¢¤½¤Î½ªÎ»ÅÀ¤ÏÆâÉôŪ¤ËREAL(8)
·¿¤ÎÃͤؤÈÊÑ´¹¤µ¤ì¤Þ¤¹¡£½ªÎ»ÅÀ¤Î·¿¤¬
INTEGER(1)
¤Þ¤¿¤ÏINTEGER(2)
¤Ç¤¢¤ë¾ì¹ç¡¢¤½¤Î½ªÎ»ÅÀ¤ÏÆâÉôŪ¤ËREAL(4)
·¿¤ÎÃͤؤÈÊÑ´¹¤µ¤ì¤Þ¤¹¡£Î¾Êý¤Î½ªÎ»ÅÀ¤¬
REAL
·¿¤Ç¤¢¤ê¡¢°Û¤Ê¤ë KTPV ¤ò»ý¤Ä¾ì¹ç¡¢¤½¤ì¤é¤Ï¤è¤êÂ礤¤¾®¿ôÅÀÀºÅÙ¤ò»ý¤Ä½ªÎ»ÅÀ¤Î¶á»÷ÃͼêË¡¤òÍѤ¤¤ÆÆâÉôŪ¤Ëɽ¸½¤µ¤ì¤Þ¤¹¡£¶è´ÖÄê¿ô¤Î KTPV ¤Ï¡¢ºÇÂç¾®¿ôÅÀÀºÅÙ¤ò»ý¤ÄÉôʬ¤Î KTPV ¤Ç¤¹¡£
¥³¡¼¥ÉÎã 2-1 ¤Ï¡¢¤µ¤Þ¤¶¤Þ¤Ê ¶è´ÖÄê¿ô¤Î KTPV ¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£
¥³¡¼¥ÉÎã 2-1 ¶è´ÖÄê¿ô¤Î KTPV
0.1
¤Þ¤¿¤Ï[0.1,0.2]
¤Î¤è¤¦¤Ê Fortran Äê¿ô¤Ï¡¢Äê¿ô¤¬É½¤¹³°ÉôÃͤÈÆâÉôŪ¤Ê¶á»÷ÃͤΠ2 ¤Ä¤ÎÃͤ˴ØÏ¢ÉÕ¤±¤é¤ì¤Þ¤¹¡£Fortran ¤Ç¤Ï¡¢Äê¿ô¤ÎÃͤϤ½¤ÎÆâÉôŪ¤Ê¶á»÷ÃͤǤ¹¡£Äê¿ô¤Î³°ÉôÃͤÈÄê¿ô¤ÎÆâÉôŪ¤Ê¶á»÷ÃͤȤò¶èÊ̤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£¶è´Ö¤Ç¤Ï¤³¤ì¤ò¶èÊ̤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£Fortran Äê¿ô¤Î³°ÉôÃͤòɽ¤¹¤Ë¤Ï¡¢¼¡¤Îɽµ¤¬ÍѤ¤¤é¤ì¤Þ¤¹¡£
- ev(
0.1
) = 0.1¡¢¤Þ¤¿¤Ï¡¢ev([0.1,0.2]
)= [0.1, 0.2]Fortran µ¬³Ê¤Ë½¾¤¨¤Ð¡¢¶è´ÖÄê¿ô¤Î¿ôÃͤϡ¢¤½¤ÎÆâÉôŪ¤Ê¶á»÷ÃͤȤʤê¤Þ¤¹¡£¶è´ÖÄê¿ô¤Î³°ÉôÃͤϾï¤ËÌÀ¼¨Åª¤Ë¤½¤Î¤è¤¦¤Ëɸ¼±ÉÕ¤±¤é¤ì¤Þ¤¹¡£
¤¿¤È¤¨¤Ð¡¢¶è´ÖÄê¿ô
[1,
2]
¤È¤½¤Î³°ÉôÃÍ ev ([1,
2]
) ¤Ï¡¢¿ô³ØÃÍ [1, 2] ¤ÈƱ¤¸¤Ç¤¹¡£¤·¤«¤·¡¢ev ([0.1,
0.2]
) = [0.1, 0.2] ¤Ç¤¹¤¬¡¢¿ô 0.1 ¤È 0.2 ¤Ï¥Þ¥·¥ó¤Çɽ¸½¤Ç¤¤Ê¤¤¤Î¤Ç¡¢[0.1,
0.2]
¤Ïñ¤Ê¤ë¥Þ¥·¥ó¤ÎÆâÉôŪ¤Ê¶á»÷Ãͤˤ¹¤®¤Þ¤»¤ó¡£¤³¤Î¤¿¤á¡¢¶è´ÖÄê¿ô¤ÎÃÍ[0.1,
0.2]
¤Ï¡¢¥Þ¥·¥óÆâÉô¤Î¶á»÷ÃͤʤΤǤ¹¡£¤³¤Î³°ÉôÃÍ¤Ï ev
([0.1,
0.2]
) ¤Çɽ¤µ¤ì¤Þ¤¹¡£¸·Ì©¶è´Ö¼°½èÍý¤Î¤â¤È¤Ç¤Ï¡¢Â¾¤Î Fortran ¿ôÃÍÄê¿ô¤Î¾ì¹ç¤ÈƱÍͤˡ¢¶è´ÖÄê¿ô¤ÎÆâÉôŪ¤Ê¶á»÷ÃͤϸÇÄꤵ¤ì¤Þ¤¹¡£
REAL
Äê¿ô¤ÎÃͤϤ½¤ÎÆâÉôŪ¤Ê¶á»÷ÃͤǤ¹¡£Æ±Íͤˡ¢¶è´ÖÄê¿ô¤ÎÆâÉôŪ¤Ê¶á»÷ÃͤÎÃͤÏÄê¿ô¤ÎÃͤȤ·¤Æ»²¾È¤µ¤ì¤Þ¤¹¡£Äê¿ô¤Î³°ÉôÃÍ (ɸ½à Fortran ¤ÎÄêµÁ³µÇ°¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó) ¤Ï¡¢¤½¤ÎÆâÉôŪ¤Ê¶á»÷ÃͤȰۤʤ뤳¤È¤â¤¢¤ê¤Þ¤¹¡£ºÇÂçÉýÍ׵ἰ½èÍý¤Î¤â¤È¤Ç¤Ï¡¢¶è´ÖÄê¿ô¤ÎÃͤÏʸ̮¤Ë°Í¸¤·¤Þ¤¹¡£¤·¤«¤·¤½¤Î¾ì¹ç¤Ç¤â¡¢strict
¤ÈºÇÂçÉýÍ׵ἰ½èÍý¤ÎξÊý¤Ç¡¢¶è´ÖÄê¿ô¤ÎÆâÉôŪ¤Ê¶á»÷ÃͤϤ½¤Î³°ÉôÃͤò´Þ¤Þ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£Ç¤°Õ¤Î¿ô³ØÄê¿ô¤ÈƱÍͤˡ¢¶è´ÖÄê¿ô¤Î³°ÉôÃͤÏÉÔÊѤǤ¹¡£Ì¾Á°ÉÕ¤¶è´ÖÄê¿ô (
PARAMETER
) ¤Î³°ÉôÃÍ¤Ï 1 ¤Ä¤Î¥×¥í¥°¥é¥àñ°Ì¤ÎÃæ¤Ç¤ÏÊѹ¹¤Ç¤¤Þ¤»¤ó¡£¤·¤«¤·¡¢Ç¤°Õ¤Î̾Á°ÉÕ¤Äê¿ô¤Î¾ì¹ç¤ÈƱÍͤˡ¢°Û¤Ê¤ë¥×¥í¥°¥é¥àñ°Ì´Ö¤Ç¤ÏƱ¤¸Ì¾Á°ÉÕ¤Äê¿ô¤Ë°Û¤Ê¤ëÃͤò´Ø·¸ÉÕ¤±¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¶è´Ö¤ÏÉÔÆ©ÌÀ¤Ç¤¹¤«¤é¡¢¶è´Ö¤òÆâÉôŪ¤Ëɽ¸½¤¹¤ë¤Î¤ËɬÍפʾðÊó¤ò³ÊǼ¤¹¤ë¸À¸ìÍ×·ï¤Ï¸ºß¤·¤Þ¤»¤ó¡£¶è´Ö¤ÎºÇÂç²¼¸Â¤ÈºÇ¾®¾å¸Â¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤ËÁȤ߹þ¤ß´Ø¿ô¤¬Ä󶡤µ¤ì¤Æ¤¤¤Þ¤¹¡£¤·¤«¤·¡¢¶è´ÖÄê¿ô¤Ï½ç°ÌÉÕ¤±¤é¤ì¤¿ 1 ÂФÎ
REAL
¤Þ¤¿¤Ï¶è´ÖÄê¿ô¤Ë¤è¤êÄêµÁ¤µ¤ì¤Þ¤¹¡£Äê¿ô¤Ï¥«¥ó¥Þ¤Ë¤è¤ê¶èÀÚ¤é¤ì¡¢1 ÂФξðÊó¤Ï³Ñ³ç¸Ì¤Ç°Ï¤Þ¤ì¤Þ¤¹¡£Âè 1 Äê¿ô¤ÏºÇÂç²¼¸Â (infimum) ¤Ç¤¢¤ê¡¢Âè 2 Äê¿ô¤ÏºÇ¾®¾å¸Â (supremum) ¤Ç¤¹¡£³Ñ³ç¸Ì¤ÎÃæ¤Ë 1 ¤Ä¤ÎÄê¿ô¤¬¸½¤ì¤ë¾ì¹ç¤Ë¸Â¤ê¡¢É½¸½¤µ¤ì¤ë¶è´Ö¤Ï½ÌÂष¤Æ¡¢Æ±¤¸ºÇÂç²¼¸Â¤ÈºÇ¾®¾å¸Â¤ò»ý¤Ä¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£¤³¤Î¾ì¹ç¡¢Ã±°ì¤Î¾®¿ôʸ»úÄê¿ô¤Î³°ÉôÃͤò´Þ¤à¤³¤È¤¬Êݾڤµ¤ì¤¿¶è´Ö¤ÎÆâÉôŪ¤Ê¶á»÷Ãͤ¬¹½ÃÛ¤µ¤ì¤Þ¤¹¡£
͸ú¤Ê¶è´Ö¤Ï¡¢ºÇ¾®¾å¸Â¤è¤ê¾®¤µ¤¤¤«¤Þ¤¿¤ÏÅù¤·¤¤ 1 ¤Ä¤ÎºÇÂç²¼¸Â¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£Æ±Íͤˡ¢¶è´ÖÄê¿ô¤â¤Þ¤¿¡¢¤½¤ÎºÇ¾®¾å¸Â¤è¤ê¾®¤µ¤¤¤«¤Þ¤¿¤ÏÅù¤·¤¤ 1 ¤Ä¤ÎºÇÂç²¼¸Â¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¤¿¤È¤¨¤Ð¡¢¼¡¤ÎÉôʬ¥³¡¼¥É¤Ï true ¤Èɾ²Á¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
INF([0.1]) .LE. SUP([0.1])
¥³¡¼¥ÉÎã 2-2 ¤Ï¡¢Í¸ú¤Ê¶è´ÖÄê¿ô¤È̵¸ú¤Ê¶è´ÖÄê¿ô¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹¡£
¶è´ÖÄê¿ô¤Ë´Ø¤¹¤ëÄɲþðÊó¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡Ö»²¹Íʸ¸¥¡×¤Ç°úÍѤ·¤Æ¤¤¤ëÊ᪠[4] ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
¥³¡¼¥ÉÎã 2-2 ͸ú¤Ê¶è´ÖÄê¿ô¤È̵¸ú¤Ê¶è´ÖÄê¿ô
ÆâÉôŪ¤Ê¶á»÷ÃÍ
REAL
Äê¿ô¤ÎÆâÉôŪ¤Ê¶á»÷ÃͤÏÄê¿ô¤Î³°ÉôÃͤÈƱ¤¸¤Ç¤¢¤ë¤È¤Ï¸Â¤ê¤Þ¤»¤ó¡£¤¿¤È¤¨¤Ð¡¢10 ¿Ê¾®¿ô 0.1 ¤Ï 2 ¿Ê¤ÎÉâÆ°¾®¿ôÅÀ¿ô½¸¹ç¤Î¥á¥ó¥Ð¡¼¤Ç¤Ï¤Ê¤¤¤Î¤Ç¡¢¤³¤ÎÃÍ¤Ï 0.1 ¤Ë¶á¤¤ 2 ¿Ê¤ÎÉâÆ°¾®¿ôÅÀ¿ô¤Ë¤è¤Ã¤Æ¶á»÷¤µ¤ì¤Þ¤¹¡£REAL
¥Ç¡¼¥¿¹àÌܤˤĤ¤¤Æ¡¢Fortran µ¬³Ê¤Ç¤Ï¶á»÷¤ÎÀµ³ÎÀ¤Ï»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó¡£¶è´Ö¥Ç¡¼¥¿¹àÌܤˤĤ¤¤Æ¤Ï¡¢¶è´ÖÄê¿ô¤òµ¹æŪ¤Ëɽ¸½¤¹¤ë¤Î¤Ë»È¤ï¤ì¤ë 10 ¿Ê¾®¿ô¤ò»ÈÍѤ·¤ÆÄêµÁ¤µ¤ì¤¿ 1 ÁȤοô³ØÃͤò´Þ¤à¤³¤È¤ÇÃΤé¤ì¤¿¡¢°ìÂФÎÉâÆ°¾®¿ôÅÀ¿ôÃͤ¬ÍѤ¤¤é¤ì¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢¿ô³Ø¶è´Ö [0.1, 0.2] ¤Ï¡¢¶è´ÖÄê¿ô[0.1,0.2]
¤Î³°ÉôÃͤǤ¹¡£Fortran ¸À¸ì¤Ë
REAL
Äê¿ô¤ÎÀµ³Î¤Ê¶á»÷Ãͤòµá¤á¤ëÍ׷郎¸ºß¤·¤Ê¤¤¤Î¤ÈƱÍͤˡ¢¶¹¤¤Éý¤Î¶è´ÖÄê¿ô¤ò»È¤Ã¤Æ¶è´Ö¤Î³°ÉôÃͤζá»÷Ãͤòµá¤á¤ë¸À¸ìÍ×·ï¤â¸ºß¤·¤Þ¤»¤ó¡£¶è´ÖÄê¿ô¤Ë¤Ï¤½¤Î³°ÉôÃͤò´Þ¤à¤È¤¤¤¦Í׷郎¤¢¤ê¤Þ¤¹¡£
- ev(
INF
([0.1,0.2]
))inf(ev(
[0.1,0.2]
)) = inf([0.1, 0.2])
- sup([0.1, 0.2]) = sup(ev(
[0.1,0.2]
))ev(
SUP
([0.1,0.2]
))![]()
f95
¤Î¶è´ÖÄê¿ô¤Ï±Ô¤¤ÃͤǤ¹¡£¤³¤ì¤Ï¡¢¼ÂÁõÉʼÁ¤ÎÆÃÀ¤Ç¤¹¡£¶è´Öʸ
¶è´ÖÀë¸Àʸ¤Ï¡¢
f95
¤Î Fortran ¸À¸ì¤ËÄɲ䵤줿ͣ°ì¤Î¶è´Ö¸ÇͤÎʸ¤Ç¤¹¡£¶è´Ö¥Ç¡¼¥¿¹àÌܤȤÎÂÐÏäò¹Ô¤¦ ¶è´ÖÀë¸Àʸ¤Èɸ½à Fortran ʸ¤Î¾ÜºÙ¤Ê²òÀâ¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡ÖINTERVAL¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£¥Ç¡¼¥¿·¿¤È¥Ç¡¼¥¿¹àÌÜ
f95
¤Î¥³¥Þ¥ó¥É¹Ô¤Ë¡¢-xia
¡¢¤Þ¤¿¤Ï¡¢-xinterval
¥ª¥×¥·¥ç¥ó¤¬ÆþÎϤµ¤ì¤ë¤«¡¢¤¢¤ë¤¤¤Ï¡¢¤³¤ì¤é¤Î¥ª¥×¥·¥ç¥ó¤¬widestweed
¤Èstrict
¤Î¤¤¤º¤ì¤«¤ËÀßÄꤵ¤ì¤ë¤È¡¢INTERVAL
¥Ç¡¼¥¿·¿¤Ïf95
¤ÎÁȤ߹þ¤ß¤Î¿ôÃͥǡ¼¥¿·¿¤È¤·¤Æǧ¼±¤µ¤ì¤Þ¤¹¡£f95
¤Î¥³¥Þ¥ó¥É¹Ô¤Ë¤¤¤º¤ì¤Î¥ª¥×¥·¥ç¥ó¤âÆþÎϤµ¤ì¤Ê¤¤¤«¡¢¤¢¤ë¤¤¤Ï¡¢»ÈÍѤ·¤Ê¤¤¤ÈÀßÄꤵ¤ì¤ë¤È¡¢INTERVAL
¥Ç¡¼¥¿·¿¤ÏÁȤ߹þ¤ß¤Î¥Ç¡¼¥¿·¿¤È¤Ïǧ¼±¤µ¤ì¤Þ¤»¤ó¡£¶è´Ö¤Î¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡Ö¶è´Ö¤Î¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£Ì¾Á°¡§
INTERVAL
6 ¸Ä¤ÎÁȤ߹þ¤ß¤Î Fortran ¥Ç¡¼¥¿·¿¤Ë¡¢ÁȤ߹þ¤ß·¿¤Î
INTERVAL
¤¬Äɲ䵤ì¤Æ¤¤¤Þ¤¹¡£INTERVAL
·¿¤Ï¡¢¶è´Ö¥Ç¡¼¥¿¹àÌܤÎÆâÉô·Á¼°¤¬ÌÀµ¤µ¤ì¤Æ¤¤¤Ê¤¤¤È¤¤¤¦°ÕÌ£¤ÇÉÔÆ©ÌÀ¤Ç¤¹¡£¤·¤«¤·¡¢¶è´Ö¥Ç¡¼¥¿¹àÌܤγ°Éô·Á¼°¤Ï¡¢¶è´Ö¥Ç¡¼¥¿¹àÌܤÈƱ¤¸¼ïÊÌ·¿¥Ñ¥é¥á¡¼¥¿ÃÍ (KTPV) ¤ò»ý¤Ä°ìÂФÎREAL
¥Ç¡¼¥¿¹àÌܤǤ¹¡£¼ïÊÌ·¿¥Ñ¥é¥á¡¼¥¿ÃÍ (KTPV)
¶è´Ö¥Ç¡¼¥¿¹àÌܤϡ¢ºÇÂç²¼¸Â¤ÈºÇ¾®¾å¸Â¤Ç¹½À®¤µ¤ì¤ë»»½Ñ¶è´Ö¤Î¶á»÷ÃͤǤ¹¡£¶è´Ö¥Ç¡¼¥¿¹àÌܤϾ¤Î¿ôÃͥǡ¼¥¿¹àÌܤΤ¹¤Ù¤Æ¤ÎÆÃÀ¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£
¥Ç¥Õ¥©¥ë¥È¶è´Ö¥Ç¡¼¥¿¹àÌܤΠKTPV ¤Ï 8 ¤Ç¤¹¡£KTPV ¤Î»ØÄê¤Î¤Ê¤¤¥Ç¥Õ¥©¥ë¥È¶è´Ö¥Ç¡¼¥¿¹àÌܤΥµ¥¤¥º¤Ï 16 ¥Ð¥¤¥È¤Ç¤¹¡£
f95
¤Î¥Ç¥Õ¥©¥ë¥È¶è´Ö¥Ç¡¼¥¿¹àÌܤΥµ¥¤¥º¤Ï¡¢-xtypemap
¡¢¤Þ¤¿¤Ï¡¢-r8const
¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤ÆÊѹ¹¤¹¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£¤è¤ê¾ÜºÙ¤Ê¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡Ö-xtypemap ¤È -r8const ¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£¤³¤Î¤¿¤á¡¢-xtypemap
¤ò»È¤Ã¤Æ¥Ç¥Õ¥©¥ë¥È¤ÎREAL
¤ÈINTEGER
¥Ç¡¼¥¿¹àÌܤΥµ¥¤¥º¤¬Êѹ¹¤µ¤ì¤Ê¤±¤ì¤Ð¡¢¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
KIND([0])=
2*KIND(0)
=
KIND(0.0_8)
=
8¥µ¥¤¥º¤È¶³¦À°Îó¤Î¤Þ¤È¤á
INTERVAL
·¿¤Î¥µ¥¤¥º¤È¶³¦À°Îó¤Ï¡¢f95
¥³¥ó¥Ñ¥¤¥é¥ª¥×¥·¥ç¥ó¤Î±Æ¶Á¤ò¼õ¤±¤Þ¤»¤ó¡£É½ 2-2 ¤Ï¡¢INTERVAL
¤Î¥µ¥¤¥º¤È¶³¦À°Îó¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹¡£
ɽ 2-2 INTERVAL
¤Î¥µ¥¤¥º¤ÈÀ°Îó INTERVALINTERVAL(4)INTERVAL(8)INTERVAL(16) 1681632 84816
Ãí - ¶è´ÖÇÛÎó¤ÏÍ×ÁǤÈƱ¤¸Ê¤Ӥˤʤê¤Þ¤¹¡£
¶è´ÖÇÛÎó
¶è´ÖÇÛÎó¤Ï¡¢°Û¤Ê¤ë¿ôÃÍ·¿¤Î¤¹¤Ù¤Æ¤ÎÇÛÎóÆÃÀ¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£¶è´ÖÇÛÎó¤ÎÀë¸À¤Ë¤Ä¤¤¤Æ¤Ï¡¢¥³¡¼¥ÉÎã 2-25 ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
¼¡¤ÎÇÛÎóÁȤ߹þ¤ß´Ø¿ô¤Ë¤Ä¤¤¤Æ¤Ï¡¢¶è´Ö¥Ð¡¼¥¸¥ç¥ó¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
ALLOCATED()
¡¢ASSOCIATED()
¡¢CSHIFT()
¡¢DOT_PRODUCT()
¡¢EOSHIFT()
¡¢KIND()
¡¢LBOUND()
¡¢MATMUL()
¡¢MAXVAL()
¡¢MERGE()
¡¢MINVAL()
¡¢NULL()
¡¢PACK()
¡¢PRODUCT()
¡¢RESHAPE()
¡¢SHAPE()
¡¢SIZE()
¡¢SPREAD()
¡¢SUM()
¡¢TRANSPOSE()
¡¢UBOUND()
¡¢UNPACK()
MINVAL
¤ÈMAXVAL
ÁȤ߹þ¤ß´Ø¿ô¤¬¶è´ÖÇÛÎó¤ËŬÍѤµ¤ì¤ë¤È¡¢ÇÛÎó¤ÎÍ×ÁǤˤè¤ê½èÍý¤µ¤ì¤Ê¤¤¶è´ÖÃͤòÊÖ¤¹²ÄǽÀ¤¬¤¢¤ë¤Î¤Ç¡¢¶è´ÖÇÛÎóÍѤÎMINLOC()
¤ÈMAXLOC()
ÁȤ߹þ¤ß´Ø¿ô¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£MAX
¤ÈMIN
ÁȤ߹þ¤ß´Ø¿ô¤Î²òÀâ¤Ë¤Ä¤¤¤Æ¤Ï¡¢²¼µ¤ÎÀá¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£Îã
¡§MINVAL((/[1,2],[3,4]/))
=
[1,3]
¼¡¤ÎÁȤ߹þ¤ß¶è´Ö¸ÄÊÌ´Ø¿ô¤Ë¤Ä¤¤¤Æ¤Ï¡¢ÇÛÎó¥Ð¡¼¥¸¥ç¥ó¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
ABS()
¡¢INF()
¡¢INT()
¡¢MAG()
¡¢MAX()
¡¢MID()
¡¢MIG()
¡¢MIN()
¡¢NDIGITS()
¡¢SUP()
¡¢WID()
¼¡¤ÎÁȤ߹þ¤ß¶è´Ö»»½Ñ´Ø¿ô¤Ë¤Ä¤¤¤Æ¤Ï¡¢ÇÛÎó¥Ð¡¼¥¸¥ç¥ó¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
ACOS()
¡¢AINT()
¡¢ANINT()
¡¢ASIN()
¡¢ATAN()
¡¢ATAN2()
¡¢CEILING()
¡¢COS()
¡¢COSH()
¡¢EXP()
¡¢FLOOR()
¡¢LOG()
¡¢LOG10()
¡¢MOD()
¡¢SIGN()
¡¢SIN()
¡¢SINH()
¡¢SQRT()
¡¢TAN()
¡¢TANH()
¼¡¤Î¶è´Ö¹½À®»Ò¤Ë¤Ä¤¤¤Æ¤Ï¡¢ÇÛÎó¥Ð¡¼¥¸¥ç¥ó¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
INTERVAL()
¡¢DINTERVAL()
¡¢SINTERVAL()
¡¢QINTERVAL()
¶è´Ö±é»»¼°
¶è´Ö»»½Ñ¼°¤Ï¡¢Â¾¤Î¿ôÃͥǡ¼¥¿·¿¤ÈƱ¤¸»»½Ñ±é»»»Ò¤«¤é¹½ÃÛ¤µ¤ì¤Þ¤¹¡£¶è´Ö¼°¤ÈÈó¶è´Ö¼°´Ö¤Î´ðËÜŪ¤ÊÁê°ãÅÀ¤Ï¡¢Ç¤°Õ¤Î²Äǽ¤Ê¶è´Ö¼°¤Î·ë²Ì¤¬¶è´Ö±é»»¤ÎÊñ¹ç¤ÎÀ©Ìó¤òËþ¤¿¤¹Í¸ú¤Ê¶è´Ö¤Ç¤¢¤ë¤È¤¤¤¦¤³¤È¤Ç¤¹¡£¤³¤ì¤ÈÂоÈŪ¤Ë¡¢Èó¶è´Ö¼°¤Î·ë²Ì¤ÏǤ°Õ¤Î¶á»÷ÃͤǤ¢¤Ã¤Æ¤â¤«¤Þ¤¤¤Þ¤»¤ó¡£
º®¹ç¥â¡¼¥É¤Î¶è´Ö¼°
º®¹ç¥â¡¼¥É (¶è´Ö¤ÎÅÀ) ¼°¤ÏÊñ´Þ¤òÊݾڤ¹¤ë¤¿¤á¤Ë¡¢ºÇÂçÉýÍ׵ἰ½èÍý¤¬É¬ÍפȤʤê¤Þ¤¹¡£
-xia
¥³¥Þ¥ó¥É¹Ô¥Þ¥¯¥í¡¢¤Þ¤¿¤Ï¡¢-xinterval
¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¤ò»ÈÍѤ·¤Æ¶è´Ö¥µ¥Ý¡¼¥È¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç¤Î¼°½èÍý¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤ÇºÇÂçÉýÍ×µá¤È¤Ê¤ê¤Þ¤¹¡£ºÇÂçÉýÍ×µá¤Îɾ²Á¤¬¹¥¤Þ¤·¤¯¤Ê¤¤¾ì¹ç¤Ï¡¢-xia=strict
¡¢¤Þ¤¿¤Ï¡¢-xinterval=strict
¤Î¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¸·Ì©¼°½èÍý¤ò¸Æ¤Ó½Ð¤·¤Æ¤¯¤À¤µ¤¤¡£¸·Ì©¼°½èÍý¤Î¤â¤È¤Ç¤Ï¡¢º®¹ç¥â¡¼¥É¤Î¶è´Ö¼°¤Ï¥³¥ó¥Ñ¥¤¥ë»þ¥¨¥é¡¼¤È¤Ê¤ê¤Þ¤¹¡£¶è´Ö¤ÈCOMPLEX
¥ª¥Ú¥é¥ó¥É´Ö¤Îº®¹ç¥â¡¼¥É±é»»¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£ºÇÂçÉýÍ׵ἰ½èÍý¤ò»È¤¦¤È¡¢¶è´Ö¼°Ãæ¤Î¤¹¤Ù¤Æ¤Î¥ª¥Ú¥é¥ó¥É¤Î KTPV ¤Ï¡¢Á´ÂΤòÄ̤¸¤ÆºÇÂç¤Î¶è´Ö KTPV¤Ç¤¢¤ë KTPVmax¤Ø¤È¾º³Ê¤µ¤ì¤Þ¤¹¡£
Ãí - KTPV ¾º³Ê¤Ï¼°¤Îɾ²ÁÁ°¤Ë¼Â¹Ô¤µ¤ì¤Þ¤¹¡£
- ¶è´Ö¤ÎÊñ´Þ
- ·¿¤Þ¤¿¤ÏÀºÅÙ¤ÎÊÑ´¹¤Ï¡¢ÊÑ´¹¤µ¤ì¤¿¶è´Ö¤ËÉý¤òÄɲä·¤Þ¤»¤ó¡£
Ãí°Õ -¸·Ì©¼°½èÍý¤ò»ÈÍѤ¹¤ëɬÍפ¬ÆÃÊ̤ˤʤ¤¸Â¤ê¡¢ºÇÂçÉýÍ׵ἰ½èÍý¤òƳÆþ¤¹¤ë¤³¤È¤ò¶¯¤¯¿ä¾©¤·¤Þ¤¹¡£Ç¤°Õ¤Î¼°¤Þ¤¿¤Ï¼°¤Î°ìÉô¤Ç¤Ï¡¢ÌÀ¼¨Åª¤Ê
INTEVAL
·¿¤È KTPV ¤ÎÊÑ´¹¤¬¾ï¤ËȯÀ¸¤·¤Þ¤¹¡£
¼¡¤ÎÎã¤Ç¤ÏºÇÂçÉýÍ׵ἰ½èÍý¤ÎÆ°ºî¤È¸ú²Ì¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£³ÆÎã¤Ë¤Ï¡¢¼¡¤Î 3 ¤Ä¤Î¥³¡¼¥É¥Ö¥í¥Ã¥¯¤¬Â¸ºß¤·¤Þ¤¹¡£
Îã¤Ï¡¢¼¡¤Î 3 ¤Ä¤Î¥á¥Ã¥»¡¼¥¸¤òÅÁ¤¨¤ë¤è¤¦¤ËÀ߷פµ¤ì¤Æ¤¤¤Þ¤¹¡£
- ÆÃÊ̤ʴĶ¤Ë¤¢¤ë¾ì¹ç¤ò½ü¤¡¢ºÇÂçÉýÍ׵ἰ½èÍý¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£
- ºÇÂçÉý¼°½èÍý¤Ï͸ú¤Ç¤¢¤ë¤¬¡¢»ÈÍѤ·¤¿¤¯¤Ê¤¤¾ì¹ç¤Ï¡¢¤¤¤Ä¤Ç¤â¶è´Ö¹½ÃÛ»Ò¤ò»È¤Ã¤Æ·¿¤È KTPV ¤ÎÊÑ´¹¤ò¶¯À©¼Â¹Ô¤¹¤ë¤è¤¦¾å½ñ¤¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
- ¸·Ì©¼°½èÍý¤ò»È¤¦¾ì¹ç¡¢
INTERVAL
·¿¤ÈÀºÅÙÊÑ´¹¤Ï¶è´ÖÄê¿ô¤È¶è´Ö¹½ÃÛ»Ò¤ò»ÈÍѤ·¤ÆÌÀ¼¨Åª¤Ë»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ÃͤÎÂåÆþ
¶è´Ö¤ÎÂåÆþʸ¤Ï¡¢¶è´Ö¤Î¥¹¥«¥é¡¼¡¢ÇÛÎóÍ×ÁǤޤ¿¤ÏÇÛÎó¼°¤ÎÃͤò¶è´ÖÊÑ¿ô¡¢ÇÛÎóÍ×ÁǤޤ¿¤ÏÇÛÎó¤ËÂåÆþ¤·¤Þ¤¹¡£¤³¤Î¹½Ê¸¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£
V =
exprexpr ¤Ï¶è´Ö±é»»¤Þ¤¿¤ÏÇÛÎ󼰤βÄÊÑÉôʬ¤Ç¤¢¤ê¡¢
V
¤Ï¶è´ÖÊÑ¿ô¡¢ÇÛÎóÍ×ÁǤޤ¿¤ÏÇÛÎó¤Ç¤¹¡£¶è´Ö¤ÎÂåÆþ¤ò¼Â¹Ô¤¹¤ë¤È¡¢ºÇÂçÉýÍ×µá¤Þ¤¿¤Ï¸·Ì©¼°½èÍý¤ò»ÈÍѤ·¤Æ¼°¤¬É¾²Á¤µ¤ì¤Þ¤¹¡£¤³¤Î¸å¤Ç¡¢·ë²Ì¤ÎÃͤ¬
V
¤ËÂåÆþ¤µ¤ì¤Þ¤¹¡£ºÇÂçÉýÍ׵ἰ½èÍý¤òÍѤ¤¤¿¼°¤Îɾ²Á¤Ç¤Ï¼¡¤Î¼ê½ç¤¬È¯À¸¤·¤Þ¤¹¡£1. ¤¹¤Ù¤Æ¤ÎÅÀ (Èó¶è´Ö) ¥Ç¡¼¥¿¹àÌܤζè´Ö KTPV ¤¬·×»»¤µ¤ì¤Þ¤¹¡£
- ÅÀ¹àÌܤ¬À°¿ô¤Ç¤¢¤ì¤Ð¡¢·ë²Ì¤È¤·¤Æ¤Î¶è´Ö¤Î KTPV ¤ÏÀ°¿ô¤Î KTPV ¤Î 2 ÇܤȤʤê¤Þ¤¹¡£¤½¤Î¾¤Î¾ì¹ç¡¢¶è´Ö¤Î KTPV ¤ÏÅÀ¹àÌܤΠKTPV ¤ÈƱ¤¸¤Ç¤¹¡£
2. ÂåÆþʸ¤Îº¸Â¦¤ò´Þ¤à¼°¤¬Áöºº¤µ¤ì¡¢KTPVmax ¤Çɽ¤µ¤ì¤ëºÇÂç¶è´Ö KTPV ¤¬µá¤á¤é¤ì¤Þ¤¹¡£3. ¼°¤Îɾ²Á¤ËÀèΩ¤Á¡¢¶è´Ö¼°¤ÎÃæ¤Î¤¹¤Ù¤Æ¤ÎÅÀ¤È¶è´Ö¥Ç¡¼¥¿¹àÌܤ¬¼°¤Îɾ²Á¤ËÀèΩ¤Á¡¢KTPVmax ¤Ø¤È¾º³Ê¤µ¤ì¤Þ¤¹¡£4.¥³¡¼¥ÉÎã 2-3KIND(V)
< KTPVmax ¤Ç¤¢¤ì¤Ð¡¢¼°¤Î·ë²Ì¤Ï KTPV =KIND(V)
¤ò»ý¤Ä¶è´Ö¤ò´Þ¤à¤â¤Î¤Ø¤ÈÊÑ´¹¤µ¤ì¡¢¤½¤Î·ë²Ì¤È¤·¤Æ¤ÎÃͤ¬V
¤ËÂåÆþ¤µ¤ì¤Þ¤¹¡£KIND
(º¸Â¦) ¤Ë°Í¸¤¹¤ëKTPVmax
Ãí - ºÇÂçÉýÍ×µá¤Î¤â¤È¤Ç¤Ï¡¢ÂåÆþÀèÊÑ¿ô (º¸Â¦) ¤Î KTPV ¤Ï¡¢¶è´Öʸ¤Î¤¹¤Ù¤Æ¤Î¹àÌܤ¬¾º³Ê¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡¢KTPVmax ÃͤηèÄêÍ×ÁǤ˴ޤޤì¤Þ¤¹¡£
¥³¡¼¥ÉÎã 2-4 º®¹ç¥â¡¼¥É¤ÎÂåÆþʸ
¥³¡¼¥ÉÎã 2-4 Ãíµ¡§
- ¸·Ì©¤ÈÅù²Á¤Ê¥³¡¼¥É¤ÏºÇÂçÉýÍ׵ἰ½èÍý¤ò»ÈÍѤ·¤Æ¼èÆÀ¤·¤¿·ë²Ì¤òºÆ¸½¤¹¤ë¤Î¤ËɬÍפʼê½ç¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£
- 4 ¹ÔÌܤǤϡ¢
KIND(R)
= 8 ¤Ç¤¹¤¬¡¢KIND(X1)
= 4 ¤È¤Ê¤ê¤Þ¤¹¡£Êñ´Þ¤òÊݾڤ·±Ô¤¤·ë²Ì¤òÀ¸À®¤¹¤ë¤¿¤á¤Ë¡¢R
¤Ï¼°¤Îɾ²ÁÁ°¤Ë¡¢¶è´Ö¤ò´Þ¤à KTPVmax = 8 ¤Ø¤ÈÊÑ´¹¤µ¤ì¤Þ¤¹¡£¼¡¤Ë¡¢¤½¤Î·ë²Ì¤¬¶è´Ö¤ò´Þ¤à KTPV-4 ¤Ø¤ÈÊÑ´¹¤µ¤ì¡¢X1
¤ËÂåÆþ¤µ¤ì¤Þ¤¹¡£¤³¤ì¤é¤Î¼ê½ç¤Ï¡¢6 ¹ÔÌܤθ·Ì©¤ÈÅù²Á¤Ê¥³¡¼¥É¤Ç¤ÏÌÀ¼¨Åª¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£- 5 ¹ÔÌܤǤϡ¢
KIND(R)
=
KIND(X2)
= 8 ¤È¤Ê¤ê¤Þ¤¹¡£¤³¤Î¤¿¤á¡¢X1
¤Ï¼°¤Îɾ²ÁÁ°¤Ë KTPV-8 ¶è´Ö¤Ø¤È¾º³Ê¤µ¤ì¡¢¤½¤Î·ë²Ì¤¬X2
¤ËÂåÆþ¤µ¤ì¤Þ¤¹¡£¤³¤ì¤È¸·Ì©¤ÈÅù²Á¤Ê¥³¡¼¥É¤ò 7 ¹ÔÌܤǼ¨¤·¤Æ¤¤¤Þ¤¹¡£- 8 ¹ÔÌÜ¤È 9 ¹ÔÌܤθ¡¾Ú¤Ç¤Ï¡¢ºÇÂçÉýÍ×µá¤È¸·Ì©¤Î·ë²Ì¤¬Æ±¤¸¤Ç¤¢¤ë¤³¤È¤ò³Î¤«¤á¤Æ¤¤¤Þ¤¹¡£ºÇÂçÉýÍ×µá¤È¸·Ì©¼°½èÍý¤Ë´Ø¤¹¤ë¤è¤ê¾ÜºÙ¤Ê¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡Ö¶è´Ö±é»»¼°¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
¶è´Ö¤Î¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó
f95
¥³¥ó¥Ñ¥¤¥é¤Ç¤Î¶è´Öµ¡Ç½¤Ï¼¡¤Î¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¤Ë¤è¤êµ¯Æ°¤µ¤ì¤Þ¤¹¡£
-xinterval
=(no|widestneed|strict)
¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¤Ï¡¢¶è´Ö½èÍý¤ò͸ú¤Ë¤·¡¢µöÍƤµ¤ì¤¿¼°É¾²Á¹½Ê¸¤òÀ©¸æ¤·¤Þ¤¹¡£
- ¡Ö
no
¡×¤Ïf95
¤Î¶è´Ö³ÈÄ¥¤ò̵¸ú¤Ë¤·¤Þ¤¹¡£- ¡Ö
widestneed
¡×¤Ï¡¢¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Î-xinterval
¤ÈƱ¤¸ºÇÂçÉýÍ׵ἰ½èÍý¤È´Ø¿ô¤ò͸ú¤Ë¤·¤Þ¤¹¡£¡Öº®¹ç¥â¡¼¥É¤Î¶è´Ö¼°¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£- ¡Ö
strict
¡×¤Ï¤¹¤Ù¤Æ¤ÎINTERVAL
·¿¤È KTPV ¤ÎÌÀ¼¨Åª¤ÊÊÑ´¹¤òÍ׵᤹¤ë¤«¡¢¤¢¤ë¤¤¤Ï¡¢¤½¤ì¤¬¡¢¡Ö¥¨¥é¡¼¤Î¸¡½Ð¡×¤Ç²òÀ⤷¤¿¤è¤¦¤Ë¡¢¥³¥ó¥Ñ¥¤¥ë»þ¥¨¥é¡¼¤È¤Ê¤ê¤Þ¤¹¡£-xia
=(widestneed|strict)
¤Ï¡¢INTERVAL
¥Ç¡¼¥¿·¿¤Î½èÍý¤ò²Äǽ¤Ë¤·¡¢Å¬ÀÚ¤ÊÉâÆ°¾®¿ôÅÀ´Ä¶¤òÀßÄꤹ¤ë¥Þ¥¯¥í¤Ç¤¹¡£-xia
¤ÎµºÜ¤¬¤Ê¤±¤ì¤Ð (1 ÈÖÌܤΥǥե©¥ë¥È)¡¢³ÈÄ¥¤Ï¹Ô¤ï¤ì¤Þ¤»¤ó¡£¥³¥Þ¥ó¥É¹Ô½èÍý¤ÎËöÈø¤Ë¡¢
xinterval=(widestneed|strict)
¤¬ÀßÄꤵ¤ì¡¢¤µ¤é¤Ë-fsimple
¤Þ¤¿¤Ï-fns
¤¬-fsimple=0
¡¢-fns=no
°Ê³°¤ÎÃͤËÀßÄꤵ¤ì¤ë¤ÈÃ×̿Ū¤Ê¥¨¥é¡¼¤Ë¤Ê¤ê¤Þ¤¹¡£¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¤Î»ÈÍÑ»þ¡§
- ¥³¥Þ¥ó¥É¹Ô½èÍý¤ÎºÇ¸å¤Ë
-ansi
¤¬ÀßÄꤵ¤ì¡¢¤Þ¤¿¡¢-xinterval
¤¬widestneed
¤Èstrict
¤Î¤¤¤º¤ì¤«¤ËÀßÄꤵ¤ì¤ë¤È¡¢¼¡¤Î·Ù¹ð¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£
¶è´Ö¥Ç¡¼¥¿·¿¤ÏÈóɸ½àµ¡Ç½¤Ç¤¹¡£- ¶è´Ö±é»»¤È¥ë¡¼¥Á¥ó¤Ï³«»Ï»þ¤È½ªÎ»»þ¤Ë´Ý¤á¥â¡¼¥É¤ÎÊݸ¤ÈÉüµ¢¤ò¹Ô¤¦¤¿¤á¡¢
-fround = <r>
(µ¯Æ°»þ¤Ë IEEE ´Ý¤á¥â¡¼¥É¤ò͸ú¤ËÀßÄꤹ¤ë) ¤Ï¡¢-xia
¤ÈÁê¸ß¤ËºîÍѤ·¤Þ¤»¤ó¡£
INTERVAL
·¿¤òǧ¼±¤¹¤ë¤è¤¦µ¯Æ°¤·¤¿¾ì¹ç¡§
- ¶è´Ö±é»»»Ò¤È´Ø¿ô¤ÏÁȤ߹þ¤ß¤Ë¤Ê¤ê¤Þ¤¹¡£
- ÁȤ߹þ¤ß¶è´Ö±é»»»Ò¤È´Ø¿ô¤Î³ÈÄ¥¤Ë¤Ï¡¢É¸½à¤ÎÁȤ߹þ¤ß±é»»»Ò¤È´Ø¿ô¤Î³ÈÄ¥¤Ë²Ý¤»¤é¤ì¤ë¤Î¤ÈƱ¤¸À©Ì󤬲ݤ»¤é¤ì¤Þ¤¹¡£
- ÁȤ߹þ¤ß¤Î¶è´Ö¸ÄÊÌ´Ø¿ô̾¤¬Ç§¼±¤µ¤ì¤Þ¤¹¡£¡Ö¶è´ÖÇÛÎó¡×¤È ¡Ö¿ô³Ø´Ø¿ô¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
-xtypemap
¤È-r8const
¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¶è´Ö¥¡¼¥ï¡¼¥É¤À¤±¤ò»È¤Ã¤ÆÀë¸À¤µ¤ì¤¿¥Ç¥Õ¥©¥ë¥È¶è´ÖÊÑ¿ô¤Î¥µ¥¤¥º¤Ï¡¢
-xtypemap
¤È-r8const
¤Î¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤ÆÊѹ¹¤¹¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£¤³¤ì¤é¤Î¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¤Ï¥Ç¥Õ¥©¥ë¥È¤Î
¥³¡¼¥ÉÎã 2-5 º®¹ç¥â¡¼¥É¤Î¼°INTERVAL
·¿¤Ë¤Ï±Æ¶Á¤òÍ¿¤¨¤Þ¤»¤ó¤¬¡¢¥³¡¼¥ÉÎã 2-5 ¤Ç¼¨¤·¤Æ¤¤¤ë¤è¤¦¤Ë¡¢º®¹ç¥â¡¼¥É¤Î¶è´Ö¼°¤Î·ë²Ì¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
Ãí --xtypemap
¤ÏX
¤Î KTPV ¤Ë±Æ¶Á¤òµÚ¤Ü¤·¤Þ¤»¤ó¤¬¡¢X
¤ÎÃͤˤϱƶÁ¤òÍ¿¤¨¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
Äê¿ô¼°
¶è´Ö¤ÎÄê¿ô¼°¤Ï¡¢Ç¤°Õ¤ÎÅÀÄê¿ô¼°¹½À®Í×ÁǤÀ¤±¤Ç¤Ê¤¯¡¢¶è´Ö¤Î¥ê¥Æ¥é¥ë¤È̾Á°ÉÕ¤Äê¿ô¤ò´Þ¤à¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£¤³¤Î¤¿¤á¡¢³Æ¥ª¥Ú¥é¥ó¥É¤Þ¤¿¤Ï°ú¿ô¤Ï¤½¤ì¼«ÂΤ¬¡¢Â¾¤ÎÄê¿ô¼°¡¢Äê¿ô¡¢Ì¾Á°ÉÕ¤Äê¿ô¡¢¤¢¤ë¤¤¤Ï¡¢Äê¿ô°ú¿ô¤ò»È¤Ã¤Æ¸Æ¤Ó½Ð¤µ¤ì¤¿ÁȤ߹þ¤ß´Ø¿ô¤Ç¤¹¡£
¥³¡¼¥ÉÎã 2-6 Äê¿ô¼°
math%cat ce2-6.f95
INTERVAL :: P, Q! ºÇÂçÉýÍ׵ᥳ¡¼¥ÉP = SIN([1.23])+[3.45]/[9, 11.12]! Åù²Á¤Ê¸·Ì©¥³¡¼¥ÉQ = SIN([1.23_8])+[3.45_8]/[9.0_8, 11.12_8]IF(P .SEQ. Q) PRINT *, 'Check'ENDmath%f95 -xia ce2-6.f95
math%a.out
Check
Ãí - ºÇÂçÉýÍ׵ἰ¤Î¤â¤È¤Ç¤Ï¡¢¶è´ÖÄê¿ô¤Î KTPV ¤Ï¶è´Ö¤Îʸ̮¤Ë´ð¤Å¤·èÄꤵ¤ì¤Þ¤¹¡£¤è¤ê¾ÜºÙ¤Ê¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡Ö¥Ç¥Õ¥©¥ë¥È¤Î¼ïÊÌ·¿¥Ñ¥é¥á¡¼¥¿ÃÍ (KTPV)¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
¶è´ÖÄê¿ô¤Î»ÈÍѤ¬µö²Ä¤µ¤ì¤ë¾ì¹ç¤Ï¡¢¾ï¤Ë¶è´ÖÄê¿ô¼°¤¬»ÈÍѤǤ¤Þ¤¹¡£
ÁȤ߹þ¤ß±é»»»Ò
ɽ 2-3 ¤Ï¡¢¶è´Ö±é»»¤Ç»ÈÍѤǤ¤ëÁȤ߹þ¤ß±é»»»Ò¤ò°ìÍ÷¤Ë¤·¤¿¤â¤Î¤Ç¤¹¡£É½ 2-3 ¤Ç¤Ï¡¢
X
¤ÈY
¤Ï¶è´Ö¤òɽ¤·¤Þ¤¹¡£
ɽ 2-3 ÁȤ߹þ¤ß±é»»»Ò **
¤Ù¤¾è X**Y
X
¤òINTERVAL
Y
¾è¤¹¤ë
X**N
X
¤òINTEGER
N
¾è¤¹¤ë (Ãíµ1¤ò»²¾È)*
¾è»» X*Y
X
¤ÈY
¤ò¾è¤º¤ë/
½ü»» X/Y
X
¤òY
¤Ç½ü¤¹¤ë+
²Ã»» X+Y
X
¤ÈY
¤ò²Ã»»¤¹¤ë+
Ʊ°ì +X
(Éä¹æ¤Ê¤·) X
¤ÈƱ¤¸-
¸º»» X-Y
X
¤«¤éY
¤ò¸º¤º¤ë-
¿ôÃÍÈÝÄê -X
X
¤òÈÝÄꤹ¤ë.IH.
INTERVAL
ÊñX.IH.Y
X
¤ÈY
¤Î¶è´ÖÊñ.IX.
Àѽ¸¹ç X.IX.Y
X
¤ÈY
¤ÎÀѽ¸¹ç(1) N ¤¬À°¿ô¼°¤Ç¤¢¤ì¤Ð¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Ë¤è¤êÊñ´Þ¤Î¥¨¥é¡¼½¤Àµ¤¬È¯À¸¤¹¤ë²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹¡£¤³¤ì¤Ï f95
¤Î¶è´Ö¥µ¥Ý¡¼¥È¤ÎºÇ½é¤Î¥ê¥ê¡¼¥¹¤Ç¤Ï¥¨¥é¡¼½¤Àµ¤Ç¤¤Ê¤¤´ûÃΤΥ¨¥é¡¼¤Ç¤¹¡£¤³¤Î¥¨¥é¡¼¤¬½¤Àµ¤µ¤ì¤ë¤Þ¤Ç¤Ï¡¢¥æ¡¼¥¶¡¼¤ÎÀÕǤ¤ÇÀ°¿ô¤Î¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤òËɻߤ·¤Æ¤¯¤À¤µ¤¤¡£¤µ¤é¤Ë¾ÜºÙ¤Ê¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡ÖÀ°¿ô¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
- ±é»»»Ò ** ¤Ï¡¢*¡¢+¡¢-¡¢
.IH
.¡¢.IX.
±é»»»Ò¤è¤ê¤âÍ¥À褷¤Þ¤¹¡£- ±é»»»Ò * ¤È/¤Ï¡¢+¡¢-¡¢
.IH.
¡¢.IX.
±é»»»Ò¤è¤ê¤âÍ¥À褷¤Þ¤¹¡£- ±é»»»Ò + ¤È - ¤Ï¡¢
.IH.
¤È.IX.
±é»»»Ò¤è¤ê¤âÍ¥À褷¤Þ¤¹¡£- ±é»»»Ò
.IH.
¤È.IX.
¤Ï¡¢// ±é»»»Ò¤è¤ê¤âÍ¥À褷¤Þ¤¹¡£¶è´Ö ** ±é»»»Ò¤ÈÀ°¿ô»Ø¿ô¤òÊ̤ˤ¹¤ì¤Ð¡¢¶è´Ö±é»»»Ò¤ÏƱ¤¸ KIND ·¿¤Î¥Ñ¥é¥á¡¼¥¿Ãͤò»ý¤Ä 2 ¤Ä¤Î¶è´Ö¥ª¥Ú¥é¥ó¥É¤Ë¤À¤±Å¬ÍѤ¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¤³¤Î¤¿¤á¡¢¶è´Ö±é»»»Ò¤Î·ë²Ì¤Î·¿¤È KTPV ¤Ï¤½¤Î¥ª¥Ú¥é¥ó¥É¤Î·¿ KTPV ¤ÈƱ¤¸¤Ç¤¹¡£
¶è´Ö ** ±é»»»Ò¤ÎÂè 2 ¥ª¥Ú¥é¥ó¥É¤¬À°¿ô¤Ç¤¢¤ì¤Ð¡¢Âè 1 ¥ª¥Ú¥é¥ó¥É¤ÏǤ°Õ¤Î¶è´Ö KTPV ¤È¤Ê¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¤³¤Î¾ì¹ç¡¢·ë²Ì¤ÏÂè 1 ¥ª¥Ú¥é¥ó¥É¤Î·¿¤È KTPV ¤ò»ý¤Á¤Þ¤¹¡£
¤¤¤¯¤Ä¤«¤Î¶è´Ö¸ÄÊ̱黻»Ò¤ÏÅÀ (Èó¶è´Ö) Íѱ黻»Ò¤¬¤¢¤ê¤Þ¤»¤ó¡£É½ 2-4 ¤Ç¼¨¤¹¤è¤¦¤Ë¡¢¤³¤ì¤é¤Î±é»»»Ò¤Ï¡Öset¡×¡¢¡Öcertainly¡×¡¢¡Öpossibly¡×¤Î 3 ¤Ä¤Î¥°¥ë¡¼¥×¤Ë¤Þ¤È¤á¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¤¤¤¯¤Ä¤«¤Î¸Çͤν¸¹ç±é»»»Ò¤Ï¡Öcertainly¡×¤Þ¤¿¤Ï¡Öpossibly¡×¤ÎÁêÅö¤¹¤ë±é»»»Ò¤¬¤¢¤ê¤Þ¤»¤ó¡£
ɽ 2-4 ÁȤ߹þ¤ß¶è´Ö´Ø·¸±é»»»Ò set ´Ø·¸±é»»»Ò .SP. .PSP .SB. .PSB. .IN. .DJ.
. EQ
.
(== ¤ÈƱÍÍ). NEQ
.
(/= ¤ÈƱÍÍ)
.SEQ. .SNE. .SLT. .SLE. .SGT. .SGE.certainly ´Ø·¸±é»»»Ò .CEQ. .CNE. .CLT. .CLE. .CGT. .CGE.possibly ´Ø·¸±é»»»Ò .PEQ. .PNE. .PLT. .PLE. .PGT. .PGE.
ÁȤ߹þ¤ß¶è´Ö´Ø·¸±é»»»Ò¤ÎÀè¹Ô¥ª¥Ú¥é¥ó¥É¤Ï
REAL
´Ø·¸±é»»»Ò¤Î¾ì¹ç¤ÈƱ¤¸¤Ç¤¹¡£.
IN
. ±é»»»Ò¤ò½ü¤¡¢ÁȤ߹þ¤ß¶è´Ö´Ø·¸±é»»»Ò¤Ï¡¢Æ±¤¸ KTPV ¤ò»ý¤Ä 2 ¤Ä¤Î¶è´Ö¥ª¥Ú¥é¥ó¥É¤Ë¤À¤±Å¬ÍѤ¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£.
IN
. ±é»»»Ò¤ÎÂè 1 ¥ª¥Ú¥é¥ó¥É¤ÏǤ°Õ¤ÎINTEGER
·¿¤Þ¤¿¤ÏREAL
·¿¤Ç¤¹¡£Âè 2 ¥ª¥Ú¥é¥ó¥É¤Ë¤ÏǤ°Õ¤Î¶è´Ö KTPV ¤ò»ý¤Ä¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¶è´Ö´Ø·¸¼°¤Î·ë²Ì¤Ï¥Ç¥Õ¥©¥ë¥È¤Î
LOGICAL
¼ïÎà·¿¤Î¥Ñ¥é¥á¡¼¥¿¤ò»ý¤Á¤Þ¤¹¡£»»½Ñ±é»»»Ò
+
¡¢-
¡¢*
¡¢/
͸¤Î
REAL
¶è´Ö¤Ë´Ø¤¹¤ë¶è´Ö±é»»¤Î½ªÎ»ÅÀ¤Î·×»»¸ø¼°¤Ï¡¢¤¹¤Ù¤Æ¤Î²ÄǽÀ¤Î¤¢¤ëÅÀ·ë²Ì¤Î½¸¹ç¤ò´Þ¤à¤³¤È¤¬Êݾڤµ¤ì¤¿ºÇ¤â¶¹¤¤¶è´Ö¤òÀ¸À®¤¹¤ëɬÍ×À¤«¤é¤â¤¿¤é¤µ¤ì¤Þ¤·¤¿¡£Ramon Moore ¤Ï¡¢¤³¤ì¤é¤Î¸ø¼°¤ò¤è¤ê½ÅÍפʰÕÌ£¤ÇÆȼ«¤Ë³«È¯¤·¡¢¤Þ¤¿¶è´Ö±é»»¤Ø¤ÎŬÍѤËɬÍפÊʬÀϤò¤Ï¤¸¤á¤Æ³«È¯¤·¤Þ¤·¤¿¡£¤è¤ê¾ÜºÙ¤Ê¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï¡¢R. Moore Ãø¡ØInterval Analysis¡Ù¡¢Prentice-Hall (1966ǯ) ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£¤¹¤Ù¤Æ¤Î²Äǽ¤ÊÃͤν¸¹ç¤Ï¡¢¥ª¥Ú¥é¥ó¥É¶è´Ö¤ÎǤ°Õ¤ÎÍ×ÁǤ˴ؤ¹¤ë±é»»²ÝÂê¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ë¤è¤êÆȼ«¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¤³¤Î¤¿¤á¡¢
¤ò»ý¤Ä½êÍ¿¤Î͸¶è´Ö [a,b] ¤È [c,d] ¤Ï¡¢¥¼¥í¤Ë¤è¤ë½ü»»¤ò½ü³°¤¹¤ì¤Ð¡¢¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
![]()
¤³¤Î¸ø¼°¤Þ¤¿¤ÏÏÀÍýŪ¤ËƱ¤¸¤â¤Î¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
![]()
![]()
![]()
![]()
À¸À®¤µ¤ì¤ë¶è´Ö¤Ë¤¹¤Ù¤Æ¤Î²Äǽ¤ÊÃͤν¸¹ç¤¬´Þ¤Þ¤ì¤ë¤³¤È¤òÊݾڤ¹¤ë¤¿¤á¤Ë¡¢Í¸ÂÀºÅ٤λ»½Ñ¤ò»È¤Ã¤¿·×»»¤Ç¤Ï͸þ¤Î´Ý¤á¤¬ÍѤ¤¤é¤ì¤Þ¤¹¡£
Ǥ°Õ¤Î¶è´Ö¤Î·ë²Ì¤¬´Þ¤Þ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤Ãͤν¸¹ç¤Ï¡¢·ë²Ì¤òÀ¸À®¤¹¤ë±é»»¤Þ¤¿¤Ï¼°¤ÎÊñ´Þ½¸¹ç¤È¸Æ¤Ð¤ì¤Þ¤¹¡£
Êñ´Þ½¸¹ç¤Ï¡¢(̵¸Â¤Î½ªÎ»ÅÀ¤ò»ý¤Ä) ³ÈÄ¥¶è´Ö¤È¥¼¥í¤Ë¤è¤ë½ü»»¤ò´Þ¤à¤¿¤á¤Ë¡¢¼ÂÃͤ˴ؤ¹¤ë»»½Ñ±é»»¤ÎÃͤˡ¢Ä¾Àܰ͸¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤»¤ó¡£³ÈÄ¥¶è´ÖÍѤÎÊñ´Þ½¸¹ç¤Ë¤Ï¡¢Ä̾ï¤Ê¤é̤ÄêµÁ¤ÎÅÀ¤Ë´Ø¤¹¤ë±é»»Í׷郎²Ý¤»¤é¤ì¤Þ¤¹¡£Ì¤ÄêµÁ¤Î±é»»¤Ë¤ÏÉÔÄê·Á¼°
¡¢
¡¢
¡¢
¤¬´Þ¤Þ¤ì¤Þ¤¹¡£
Êñ´Þ½¸¹ç¤ÎÊÄÊññ°Ì¤Ï¡¢Æðۤʤޤ¿¤ÏÉÔÄê¤ÊÅÀ¤Ç¤Î¼°¤ÎÊñ´Þ½¸¹ç¤ÎÃͤμ±Ê̤ÎÌäÂê¤ò²ò·è¤·¤Þ¤¹¡£¤³¤Îñ°Ì¤ÏÊñ´Þ½¸¹ç¤¬ÊÄÊñ¤Ç¤¢¤ë¤³¤È¤ò¼¨¤·¤Þ¤¹¡£ÊÑ°è¤Î¶³¦¾å¤ÎÅÀ¤Ç¤Î´Ø¿ô¤ÎÊÄÊñ¤Ï¡¢¤¹¤Ù¤Æ¤Î½¸ÀÑÅÀ (limit point ¤Þ¤¿¤Ï accumulation point) ¤ò´Þ¤ß¤Þ¤¹¡£¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡ÖÍѸì¡×¤È ¡Ö»²¹Íʸ¸¥¡×¤Ç°úÍѤ·¤¿ÊäÂʸ¸¥ [1]¡¢[3]¡¢[10]¡¢[11] ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
µ¹æɽ¸½¤Ç¤Ï¡¢cset(x op y, {(x0, y0)}) =
¤È¤Ê¤ê¤Þ¤¹¡£¤³¤³¤Ç¤Ï¡¢
¤Ï op ±é»»¤ÎÊÄÊñ¤òɽ¤·¡¢{x0} ¤Ï 1 ¤Ä¤ÎÍ×ÁÇ x0 ¤À¤±¤ò»ý¤Äñ½¸¹ç¤òɽ¤·¤Þ¤¹¡£²¼Éդʸ»ú¤Î 0 ¤Ï¡¢ÊÑ¿ô x ¤ÎÆðۤÊÃÍ x0 ¤ÈÊÑ¿ô¼«ÂΤòµ¹æŪ¤Ë¶èÊ̤¹¤ë¤Î¤ËÍѤ¤¤é¤ì¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢x0 = 1¡¢op =3 ÷¡¢y0 = 0¤ò»È¤¦¤È¡¢x0³3 ÷ y0 ¤Ï̤ÄêµÁ¤È¤Ê¤ê¤Þ¤¹¤¬¡¢ÊÄÊñ¤Ï¡¢
¤È¤Ê¤ê¤Þ¤¹¡£
¤³¤Î·ë²Ì¤Ï¡¢¼¡¤Î¤è¤¦¤Ê¸Â³¦¤ò»ý¤Ä¡¢
![]()
¼¡¤Î¤É¤Á¤é¤«¤Î¥·¡¼¥±¥ó¥¹¤ò»È¤Ã¤Æ¼èÆÀ¤Ç¤¤Þ¤¹¡£
¡¢¤Þ¤¿¤Ï¡¢
![]()
¤³¤Î 2 ¤Ä¤Î¥·¡¼¥±¥ó¥¹¤ò»È¤¦¤È¡¢x0 = 1¡¢y0 = 0 ¤Ç¤Î½ü»»±é»»»Ò¤ÎÊÄÊñ¤Ç¤¢¤ë¾åµ{yj}¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
![]()
°Ê²¼¤Îɽ 2-5 ¤«¤éɽ 2-9 ¤Þ¤Ç¤Îɽ¤Ï 4 ¤Ä¤Î´ðËÜ»»½Ñ±é»»»ÒÍѤÎÊñ´Þ½¸¹ç¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£
ɽ 2-5 ²Ã»»ÍѤÎÊñ´Þ½¸¹ç¡§cset(x +y, {(x0, y0)}) {- }
{- }
{- }
![]()
{real: x0} {- }
{x0 + y0} {+ }
{+ }
![]()
{+ }
{+ }
ɽ 2-6 ¸º»»ÍѤÎÊñ´Þ½¸¹ç¡§cset(x - y, {(x0, y0)}) {- }
![]()
{- }
{- }
{real: x0} {+ }
{x0 - y0} {- }
{+ }
{+ }
{+ }
![]()
ɽ 2-7 ¾è»»ÍѤÎÊñ´Þ½¸¹ç¡§cset(x × y, {(x0, y0)}) {- }
{+ }
{+ }
![]()
{- }
{- }
{real: x0 < 0} {+ }
{x × y} {0} {x × y} {- }
{0} ![]()
{0} {0} {0} ![]()
{real: x0 > 0} {- }
x × y {0} x × y {+ }
{+ }
{- }
{- }
![]()
{+ }
{+ }
ɽ 2-8 ½ü»»ÍѤÎÊñ´Þ½¸¹ç¡§cset(x ÷ y, {(x0, y0)}) {- }
[0, + ]
{+ }
{- , +
}
{- }
[- , 0]
{real: x0 0}
{0} {x ÷ y} {- , +
}
{x ÷ y} {0} {0} {0} {0} ![]()
{0} {0} {+ }
[- , 0]
{- }
{- , +
}
{+ }
[0, + ]
ɽ¤ÎÃæ¤Î¤¹¤Ù¤Æ¤ÎÆþÎϤÏñ½¸¹ç¤È¤·¤Æ¼¨¤·¤Æ¤¤¤Þ¤¹¡£·ë²Ì¤Ï¡¢Ã±½¸¹ç¡¢½¸¹ç¡¢¤Þ¤¿¤Ï¡¢¶è´Ö¤È¤·¤Æ¼¨¤·¤Æ¤¤¤Þ¤¹¡£¤¢¤¤¤Þ¤¤¤µ¤òÈò¤±¤ë¤¿¤á¡¢¤¿¤È¤¨¤Ð¡¢
¡¢
¡¢
¤Î¤è¤¦¤Ê´·¹Ô¤Îɽµ¤òÍѤ¤¤Æ¤¤¤Þ¤»¤ó¡£¤³¤ì¤é¤Îɽ¤Ï¡¢³Æ±é»»¤Ø¤Îñ½¸¹çÆþÎϤËÂФ¹¤ë·ë²Ì¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£°ìÈ̽¸¹ç (¤Þ¤¿¤Ï¶è´Ö) ¤ÎÆþÎϤËÂФ¹¤ë·ë²Ì¤Ï¡¢ÆþÎϽ¸¹ç (¤Þ¤¿¤Ï¶è´Ö) ¤ÎÈϰϤˤޤ¿¤¬¤ëñ°ìÅÀ·ë²Ì¤Î¹çƱ¤Ç¤¹¡£
1 ¤Ä¤Î¥±¡¼¥¹¤È¤·¤Æ¡¢¥¼¥í¤Ë¤è¤ë½ü»»¤Ç¤Ï¡¢·ë²Ì¤Ï¶è´Ö¤Ç¤Ê¤¯¡¢½¸¹ç
¤Ç¤¹¡£¤³¤Î¾ì¹ç¡¢¶è´Ö»»½Ñ¤ÎÊñ´Þ¤ÎÀ©Ìó¤ËÈ¿¤·¤Ê¤¤¸½ºß¤Î¥·¥¹¥Æ¥à¤Ç¤ÎºÇ¤â¶¹¤¤¶è´Ö¤Ï¡¢¶è´Ö
¤È¤Ê¤ê¤Þ¤¹¡£
Éä¹æ¤ÎÊѹ¹¤Ï´üÂԤȤª¤ê¤Î·ë²Ì¤òÀ¸À®¤·¤Þ¤¹¡£
¤³¤ì¤é¤Î·ë²Ì¤ò¶è´Ö½ªÎ»ÅÀ¤Î·×»»ÍѤθø¼°¤ËÁȤ߹þ¤à¤¿¤á¤ËɬÍפʤΤϡ¢Æ±Íͤ˴ݤáÊý¸þ¤ËÉä¹æ²½¤µ¤ì¤ëɬÍפʽªÎ»ÅÀ¤ò¼±Ê̤¹¤ë¤³¤È¤À¤±¤Ç¤¹¡£
¤ò»È¤Ã¤Æ (-
¤ËÂФ¹¤ë) ´Ý¤áÀڤ겼¤²¤òɽ¤·¡¢
¤ò»È¤Ã¤Æ (+
¤ËÂФ¹¤ë) ´Ý¤áÀÚ¤ê¾å¤²¤òɽ¤¹¤È¡¢°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
![]()
and
![]()
![]()
![]()
and
![]()
![]()
![]()
and
![]()
![]()
ºÇ¸å¤Ë¡¢Fortran ¤Ç¤Ï¶õ¤Î¶è´Ö¤Ïʸ»úÎó
[empty]
¤Çɽ¤µ¤ì¡¢½¸¹çÂå¿ô¤Î¤Çɽ¤µ¤ì¤ë¶õ¤Î½¸¹ç¤ÈƱ¤¸ÆÃÀ¤ò»ý¤Á¤Þ¤¹¡£¶õ¤Î¶è´Ö¤Ë´Ø¤¹¤ëǤ°Õ¤Î»»½Ñ±é»»¤Ï¶õ¤Î¶è´Ö·ë²Ì¤òÀ¸À®¤·¤Þ¤¹¡£¶õ¤Î¶è´ÖÍÑË¡¤ÎÄɲþðÊó¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡Ö»²¹Íʸ¸¥¡×¤Ç°úÍѤ·¤¿ÊäÂʸ¸¥ [6]¡¢[7] ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
f95
¤Ï¡¢¤³¤ì¤é¤Î·ë²Ì¤òÍѤ¤¤Æ¡¢ÊĤ¸¤¿¶è´Ö¥·¥¹¥Æ¥à¤ò¼ÂÁõ¤·¤Æ¤¤¤Þ¤¹¡£¤¹¤Ù¤Æ¤Î»»½Ñ±é»»¤È´Ø¿ô¤Ï¾ï¤Ë͸ú¤Ê¶è´Ö·ë²Ì¤òÀ¸À®¤·¤Þ¤¹¤«¤é¡¢¥·¥¹¥Æ¥à¤ÏÊĤ¸¤Æ¤¤¤Þ¤¹¡£¡Ö»²¹Íʸ¸¥¡×¤Ç°úÍѤ·¤¿ÊäÂʸ¸¥ [2]¡¢[8] ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£¤Ù¤¾è±é»»»Ò
X**N
¤ÈX**Y
¤Ù¤¾è±é»»»Ò¤ÏÀ°¿ô»Ø¿ô (
X**N
) ¤È¶¦¤Ë»È¤¦¤³¤È¤â¡¢Ï¢Â³¤¹¤ë»Ø¿ô (X**Y
) ¤È¶¦¤Ë»È¤¦¤³¤È¤â¤Ç¤¤Þ¤¹¡£¤Ù¤¾è±é»»»Ò¤ÏϢ³¤¹¤ë»Ø¿ô¤È¶¦¤ËÍѤ¤¤ë¤È¡¢4 ¤Ä¤Î»»½Ñ±é»»»Ò¤ËÎà»÷¤·¤¿ÉÔÄê¤Î·Á¼°¤ò»ý¤Á¤Þ¤¹¡£À°¿ô»Ø¿ô¤Î¥±¡¼¥¹¤Ç¤Ï¡¢
¤Î°Ï¤ß¤¬´Þ¤Þ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤¹¤Ù¤Æ¤ÎÃͤν¸¹ç¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
![]()
ñĴÀ¤Ï¡¢À°¿ô¤Ù¤¾è´Ø¿ô¤Î±Ô¤¤¶è´Ö¤Î°Ï¤ß¤ò¹½ÃÛ¤¹¤ë¤Î¤Ë»ÈÍѤǤ¤Þ¤¹¡£n = 0 ¤Ç¤¢¤ì¤Ð¡¢¤¹¤Ù¤Æ¤Î
¤Ë¤Ä¤¤¤Æ¡¢cset(xn, {x0}) = 1 ¤Ç¤¢¤ê¡¢¤Þ¤¿¡¢¤¹¤Ù¤Æ¤Î
N
¤Ë¤Ä¤¤¤Æ¡¢[empty]**N
=[empty]
¤È¤Ê¤ê¤Þ¤¹¡£Ï¢Â³¤¹¤ë»Ø¿ô¤Î¥±¡¼¥¹¤Ç¤Ï¡¢
¤Î¶è´Ö¤Î°Ï¤ß¤¬´Þ¤Þ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤¹¤Ù¤Æ¤ÎÃͤν¸¹ç¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
![]()
¤³¤³¤Ç¤Ï¡¢
¤Ï¡¢¼°
¤ÎÊñ´Þ½¸¹ç¤Ç¤¹¡£´Ø¿ô
¤Ï¡¢
¤ÎÃͤÀ¤±¤ò¹Íθ¤¹¤ëɬÍפΤ¢¤ë¤³¤È¤òÌÀ¼¨¤·¡¢¤³¤ì¤Ï¡¢Fortran ¤Ç¤Î
REAL
°ú¿ô¤ò»ý¤ÄX**Y
¤ÎÄêµÁ¤È°ì´ÓÀ¤¬¤¢¤ê¤Þ¤¹¡£¶è´Ö°ú¿ô¤¬¶õ¤Ç¤¢¤ë¤«¡¢¤Þ¤¿¤Ï¡¢x < 0¤Ç¤¢¤ì¤Ð¡¢¤³¤Î·ë²Ì¤Ï¶õ¤Ë¤Ê¤ê¤Þ¤¹¡£¤³¤ì¤Ï¡¢Fortran ¤Ç¤Î
X**Y
¤ÎÅÀ¥Ð¡¼¥¸¥ç¥ó¤È°ì´ÓÀ¤¬¤¢¤ê¤Þ¤¹¡£É½ 2-9 ¤Ï¡¢cset(exp(yln (x)), {(y0, x0)}) ¤Î¤¹¤Ù¤Æ¤ÎÆðÛÅÀ¤ÈÉÔÄê·Á¼°¤Ë¤Ä¤¤¤Æ¤ÎÆâÉôŪ¤Ê½¸¹ç¤òɽ¤·¤Æ¤¤¤Þ¤¹¡£
ɽ 2-9 cset(exp(yln(x)), {(y0, x0)}) 0 y0 < 0 + ![]()
1 - ![]()
[0,+ ]
1 + ![]()
[0,+ ]
+ ![]()
0 [0,+ ]
0 0 [0,+ ]
ɽ 2-9 ¤Î·ë²Ì¤Ï¡¢°Ê²¼¤Î 2 ¤Ä¤ÎÊýË¡¤Çµá¤á¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
- ¼°¤¬Ì¤ÄêµÁ¤Î x0 ¤È y0 ¤ÎÃͤˤĤ¤¤Æ¡¢¹çÀ®¼°¤ÎÊñÊÄ¡¢exp(y ln(x))¤òľÀÜ·×»»¤·¤Þ¤¹¡£
- Êñ´Þ½¸¹çɾ²ÁÍýÏÀ¤ò»È¤Ã¤Æ¡¢Êñ´Þ½¸¹çÆâÉô¤ÎÃͤν¸¹ç¤ò°Ï¤ß¤Þ¤¹¡£
¤Û¤È¤ó¤É¤Î¹çÀ®¤Ç¤Ï¡¢2 ¤ÄÌܤΥª¥×¥·¥ç¥ó¤ò»È¤¦Êý¤¬´Êñ¤Ç¤¹¡£½½Ê¬¤Ê¾ò·ï¤¬Ëþ¤¿¤µ¤ì¤Ê¤¤¾ì¹ç¡¢¹çÀ®¤Î°Ï¤ß¤Ï¤½¤ÎÊñÊĤιçÀ®¤«¤é·×»»¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢³Æ²¼°Ì¼°¤ÎÊñÊĤò»È¤Ã¤Æ¼°Á´ÂΤÎÊñÊĤò·×»»¤·¤Þ¤¹¡£Â¸ºß¤¹¤ë¥±¡¼¥¹¤Ç¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
- cset(exp(yln(x)), {x0, y0}) =
![]()
¾ï¤Ë¤¢¤Æ¤Ï¤Þ¤ë¥±¡¼¥¹¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
- cset(exp(yln(x)), {x0, y0})
![]()
![]()
¤³¤ì¤Ï¶è´Ö±é»»¤¬¶è´Ö¤Ë¤É¤Î¤è¤¦¤Ëµ¡Ç½¤¹¤ë¤«Àµ³Î¤Ëɽ¤·¤Æ¤¤¤ë¤È¤¤¤¦ÅÀ¤Ëα°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ln ¤Èexp ´Ø¿ô¤ËɬÍפÊÊñÊĤϰʲ¼¤Î¤È¤ª¤ê¤Ç¤¹¡£
![]()
ÊñÊĹçÀ®¤ÎÅù¼°¤ËɬÍפʾò·ï¤Ï¡¢¼°¤¬Ã±°ìÍÑÅÓ¼° (SUE = single-use expression) ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤³¤È¤Ç¤¹¡£¤Ä¤Þ¤ê¡¢³ÆÆÈΩÊÑ¿ô¤Ï¼°¤ÎÃæ¤Ç 1 ²ó¤À¤±¸½¤ì¤ë¤³¤È¤¬¤Ç¤¤ë¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡£
¸ºß¤¹¤ë¥±¡¼¥¹¤Ç¤Ï¡¢¼°¤ÏÌÀ¤é¤«¤Ë 1 ¤Ä¤Î SUE ¤È¤Ê¤ê¤Þ¤¹¡£
ɽ 2-9 ¤Î¹àÌܤϡ¢ln ¤Èexp ´Ø¿ô¤ÎÊñÊĤ˴ؤ¹¤ëɽ 2-7 ¤Ç¤Î´ðËܾ軻¤ÎÊñ´Þ½¸¹çÍÑË¡¤ÎľÀܤηë²Ì¤Ç¤¹¡£¤¿¤È¤¨¤Ð¡¢x0 = 1 ¤È y0 = -
¤ò»È¤¦¤È¡¢ln(x0) = 0 ¤È¤Ê¤ê¤Þ¤¹¡£É½ 2-7 ¤Ç¤ÎÃÍ -
¤È0 ¤Ë´Ø¤¹¤ë¾è»»¤ÎÊñÊĤˤĤ¤¤Æ¡¢·ë²Ì¤Ï [-
, +
] ¤È¤Ê¤ê¤Þ¤¹¡£ºÇ¸å¤Ë¡¢É½ 2-9 ¤Ç¤Î 2 ÈÖÌܤιàÌܤϡ¢exp([-
, +
])= [0, +
] ¤È¤Ê¤ê¤Þ¤¹¡£»Ä¤ê¤Î¹àÌܤâƱ¤¸¥¹¥Æ¥Ã¥×¤ò»È¤Ã¤Æ¼èÆÀ¤Ç¤¤Þ¤¹¡£exp(y ln(x)) ¤ÎÊñ´Þ½¸¹ç¤«¤éľÀÜƳ¤¯¤³¤È¤Ç¡¢¤³¤ì¤é¤ÈƱ¤¸·ë²Ì¤¬ÆÀ¤é¤ì¤Þ¤¹¡£º£Å٤ϡ¢Ç¤°Õ¤Î¼°¤ÎÊñÊĹçÀ®Åù¼°¤Î½½Ê¬¤Ê¾ò·ï¤¬ÌÀ¤é¤«¤Ë¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£¤·¤«¤·¡¢¤½¤ì¤Ç¤â°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
- Êñ´Þ½¸¹çɾ²ÁÍýÏÀ¤Ï¡¢ÊñÊĤǤʤ¯ÊñÊĹçÀ®¤Î·×»»¤«¤é¡¢Êñ´Þ¤Î¼ºÇÔ¤¬·è¤·¤ÆÀ¸À®¤µ¤ì¤Ê¤¤¤³¤È¤òÊݾڤ·¤Þ¤¹¡£
- ¼°¤Ï¡¢ÊñÊĹçÀ®¤ÎÅù¼°¤¬ true ¤È¤Ê¤ë SUE ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
½¸¹çÍýÏÀ±é»»»Ò
f95
¤Ï°Ê²¼¤Î¤è¤¦¤Ê¡¢2 ¤Ä¤Î¶è´Ö¤Î¶è´ÖÊñ¤ÈÀѽ¸¹ç¤òȽÄꤹ¤ë¤¿¤á¤Î½¸¹çÍýÏÀ±é»»»Ò¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£Êñ¡§ X
Y¡¢¤Þ¤¿¤Ï
(X.IH.Y)
²òÀ⡧ 2 ¤Ä¤Î¶è´Ö¤Î¶è´ÖÊñ¤Ç¤¹¡£¶è´ÖÊñ¤Ï¥ª¥Ú¥é¥ó¥É¶è´Ö¤Î¤¹¤Ù¤Æ¤ÎÍ×ÁǤò´Þ¤àºÇ¾®¤Î¶è´Ö¤Ç¤¹¡£
![]()
![]()
°ú¿ô¡§
X
¤ÈY
¤Ï¡¢Æ±¤¸ KTPV ¤ò»ý¤Ä¶è´Ö¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£Àѽ¸¹ç¡§ X
Y¡¢¤Þ¤¿¤Ï
(X.IX.Y)
²òÀ⡧ 2 ¤Ä¤Î¶è´Ö¤ÎÀѽ¸¹ç¤Ç¤¹¡£
![]()
![]()
°ú¿ô¡§
X
¤ÈY
¤Ï¡¢Æ±¤¸KTPV¤ò»ý¤Ä¶è´Ö¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£½¸¹ç¤Î´Ø·¸
f95 ¤Ï¶è´Ö¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤¿¤á¤Ë³ÈÄ¥¤µ¤ì¤¿²¼µ¤Î¤è¤¦¤Ê½¸¹ç´Ø·¸±é»»»Ò¤òÄ󶡤·¤Æ¤¤¤Þ¤¹¡£
ÁÇ¡§ X
Y =
¡¢¤Þ¤¿¤Ï
(X.DJ.Y)
²òÀ⡧ 2 ¤Ä¤Î¶è´Ö¤¬ÁǤǤ¢¤ë¤«¤É¤¦¤«¤ò¥Æ¥¹¥È¤·¤Þ¤¹¡£
![]()
![]()
°ú¿ô¡§
X
¤ÈY
¤Ï¡¢Æ±¤¸ KTPV ¤ò»ý¤Ä¶è´Ö¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£·ë²Ì·¿¡§ ¥Ç¥Õ¥©¥ë¥È¤ÎÏÀÍý¥¹¥«¥é¡¼¤Ç¤¹¡£
Í×ÁÇ¡§ r
Y¡¢¤Þ¤¿¤Ï
(R.IN.Y)
²òÀ⡧ ¿ô
R
¤¬¶è´ÖY
¤ÎÍ×ÁǤǤ¢¤ë¤«¤É¤¦¤«¤ò¥Æ¥¹¥È¤·¤Þ¤¹¡£
![]()
°ú¿ô¡§
R
¤Î·¿¤ÏINTEGER
¤Þ¤¿¤ÏREAL
¤Ç¤¢¤ê¡¢Y
¤Î·¿¤ÏINTERVAL
¤Ç¤¹¡£·ë²Ì·¿¡§ ¥Ç¥Õ¥©¥ë¥È¤ÎÏÀÍý¥¹¥«¥é¡¼¤Ç¤¹¡£
¼¡¤ÎÃí¼á¤Ï
½¸¹ç´Ø·¸¤Ë´Ø¤¹¤ë¤â¤Î¤Ç¤¹¡£
- ºÇÂçÉýÍ׵ἰ½èÍý¤Î¤â¤È¤Ç¤Ï¡¢°Û¤Ê¤ë KTPV ¤ò»ý¤Ä
R
¤ÈY
¤Ï¡¢¤½¤ì¤é¤Îɾ²ÁÊýË¡¤Ë±Æ¶Á¤·¤Þ¤»¤ó¡£ºÇÂçÉýÍ׵ἰ½èÍý¤ÏY
¤ËŬÍѤµ¤ì¤Þ¤¹¤¬¡¢R
¤Îɾ²Á¤Ë¤ÏŬÍѤµ¤ì¤Þ¤»¤ó¡£É¾²Á¸å¡¢Í×ÁÇÊñ´Þ¥Æ¥¹¥È¤¬¹Ô¤ï¤ì¤ëÁ°¤Ë¡¢Y
¤Þ¤¿¤ÏR
¤Î KTPV ¤Î¾º³Ê¤¬¹Ô¤ï¤ì¤Þ¤¹¡£- ¸·Ì©¼°É¾²Á¤Î¤â¤È¤Ç¤Ï¡¢
R
¤ÈY
¤ÏƱ¤¸ KTPV ¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£R
¤¬NaN
(Èó¿ôÃÍ) ¤Ç¤¢¤ì¤Ð¡¢R. IN. Y
¤Ï̵¾ò·ï¤Ë false ¤È¤Ê¤ê¤Þ¤¹¡£Y
¤¬¶õ¤Ç¤¢¤ì¤Ð¡¢R .IN. Y
¤Ï̵¾ò·ï¤Ë false ¤È¤Ê¤ê¤Þ¤¹¡£ÆâÉô¡§
(X
.INT.
Y)
²òÀ⡧
X
¤¬Y
¤ÎÆâÉô¤«¤É¤¦¤«¤ò¥Æ¥¹¥È¤·¤Þ¤¹¡£°ÌÁê¶õ´Ö¤Ç¤Î½¸¹ç¤ÎÆâÉô¤Ï¡¢¤¹¤Ù¤Æ¤Î³«¤¤¤¿Éôʬ½¸¹ç¤ÎϽ¸¹ç¤Ç¤¹¡£
¶è´Ö¤Ë¤Ä¤¤¤Æ¡¢
X .INT. Y
(Y
¤ÎÆâÉô¤Ë¤ª¤±¤ëX
) ¤ÏX
¤¬Y
¤Î 1 ¤Ä¤ÎÉôʬ½¸¹ç¤Ç¤¢¤ê¡¢²¼µ¤ÎξÊý¤Î´Ø·¸¤¬ false ¤È¤Ê¤ë¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡£
¤Ç¤¹¤¬¡¢
[empty] .INT. [empty]
= true ¤Ç¤¢¤ëÅÀ¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£¶õ¤Î½¸¹ç¤Ï³«¤¤¤Æ¤¤¤ë¤Î¤Ç¡¢¤½¤ì¼«ÂΤΠ1 ¤Ä¤ÎÉôʬ½¸¹ç¤È¤Ê¤ê¤Þ¤¹¡£
![]()
°ú¿ô¡§
X
¤ÈY
¤Ï¡¢Æ±¤¸ KTPV ¤ò»ý¤Ä¶è´Ö¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£·ë²Ì·¿¡§ ¥Ç¥Õ¥©¥ë¥È¤ÎÏÀÍý¥¹¥«¥é¡¼¤Ç¤¹¡£
¿¿Éôʬ½¸¹ç¡§ X
Y ¤Þ¤¿¤Ï
(X.PSB.Y)
²òÀ⡧
X
¤¬Y
¤Î¿¿Éôʬ½¸¹ç¤Ç¤¢¤ë¤«¤É¤¦¤«¤ò¥Æ¥¹¥È¤·¤Þ¤¹¡£
![]()
![]()
°ú¿ô¡§
X
¤ÈY
¤Ï¡¢Æ±¤¸ KTPV ¤ò»ý¤Ä¶è´Ö¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£·ë²Ì·¿¡§ ¥Ç¥Õ¥©¥ë¥È¤ÎÏÀÍý¥¹¥«¥é¡¼¤Ç¤¹¡£
¿¿Ä¶½¸¹ç¡§ X
Y¡¢¤Þ¤¿¤Ï
(X.PSP.Y)
²òÀ⡧
¤ò»ý¤Ä¿¿Ä¶½¸¹ç¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
Éôʬ½¸¹ç¡§ X
Y¡¢¤Þ¤¿¤Ï
(X.SB.Y)
²òÀ⡧
X
¤¬Y
¤ÎÉôʬ½¸¹ç¤Ç¤¢¤ë¤«¤É¤¦¤«¤ò¥Æ¥¹¥È¤·¤Þ¤¹¡£
![]()
![]()
°ú¿ô¡§
X
¤ÈY
¤Ï¡¢Æ±¤¸ KTPV ¤ò»ý¤Ä¶è´Ö¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£·ë²Ì·¿¡§ ¥Ç¥Õ¥©¥ë¥È¤ÎÏÀÍý¥¹¥«¥é¡¼¤Ç¤¹¡£
Ķ½¸¹ç¡§ X
Y¡¢¤Þ¤¿¤Ï
(X.SP.Y)
²òÀ⡧
¤ò»ý¤ÄĶ½¸¹ç¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
´Ø·¸±é»»»Ò
.
qop.
¤Çɽ¤µ¤ì¤ëÁȤ߹þ¤ß¤Î¶è´Ö´Ø·¸±é»»»Ò¤Ï¡¢¼¡¤ÎÏ¢·ë¤Ë¤è¤ê¹½À®¤µ¤ì¤Þ¤¹¡£
- ¥Ô¥ê¥ª¥É¤Ë¤è¤ë¶èÀڤ굹æ
- ±é»»»ÒÀÜƬ¼¡¢q ¢º {
C,P,S
} (C
¡¢P
¡¢S
¤Ï¤½¤ì¤¾¤ì¡Öcertainly¡×¡¢¡Öpossibly¡×¡¢¡Öset¡×¤òɽ¤¹)- Fortran ´Ø·¸±é»»»ÒÀÜÈø¼¡¢op ¢º {
LT
,LE
,EQ
,NE
,GT
,GE
}
.SEQ.
¤È.SNE.
¤ÎÂå¤ï¤ê¤Ë¡¢¥Ç¥Õ¥©¥ë¥È±é»»»Ò¤Î.EQ.
(¤Þ¤¿¤Ï¡¢==
) ¤È.NE.
(¤Þ¤¿¤Ï¡¢/=
) ¤¬¼õ¤±Æþ¤ì¤é¤ì¤Þ¤¹¡£¥³¡¼¥É¤Î¤¢¤¤¤Þ¤¤¤µ¤ò¼è¤ê½ü¤¯¤¿¤á¤Ë¡¢Â¾¤Î¤¹¤Ù¤Æ¤Î¶è´Ö´Ø·¸±é»»»Ò¤Ï¡¢ÀÜƬ¼¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¤¹¤Ù¤Æ¤Î¶è´Ö´Ø·¸±é»»»Ò¤ÏƱ¤¸Í¥Àè½ç°Ì¤ò»ý¤Á¤Þ¤¹¡£»»½Ñ±é»»»Ò¤Ï´Ø·¸±é»»»Ò¤è¤ê¤â¹â¤¤Í¥Àè½ç°Ì¤ò»ý¤Á¤Þ¤¹¡£
¶è´Ö´Ø·¸¼°¤Ï 2 ¤Ä¤Î¥ª¥Ú¥é¥ó¥É¤¬ºÇ½é¤Ëɾ²Á¤µ¤ì¡¢¤½¤Î¸å¤Ç¡¢2 ¤Ä¤Î¼°¤ÎÃͤ¬Èæ³Ó¤µ¤ì¤ë¤³¤È¤Ë¤è¤êɾ²Á¤µ¤ì¤Þ¤¹¡£»ØÄꤵ¤ì¤¿´Ø·¸¤ò»ý¤Ä¾ì¹ç¤Ï·ë²Ì¤¬ true ¤È¤Ê¤ê¡¢¤½¤ì°Ê³°¤Ï false ¤È¤Ê¤ê¤Þ¤¹¡£
ºÇÂçÉýÍ׵ἰ½èÍý¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¤È¡¢¶è´Ö´Ø·¸±é»»»Ò¤ÎξÊý¤Î¶è´Ö¥ª¥Ú¥é¥ó¥É¼°¤ËŬÍѤµ¤ì¤Þ¤¹¡£
¡Önop¡×¤ò±é»»»Ò op ¤ÎÊä¿ô¤È¤·¤¿¾ì¹ç¡¢¡Öcertainly¡×¤È¡Öpossibly¡×±é»»»Ò¤Ï¼¡¤Î¤è¤¦¤Ë´Ø·¸ÉÕ¤±¤é¤ì¤Þ¤¹¡£
.C
op.
¢á.NOT.(.P
nop.)
.P
op.
¢á.NOT.(.C
nop.)
Ãí°Õ -¤³¤Î¡Öcertainly¡×¤È¡Öpossibly¡×±é»»»Ò¤Î´Ö¤ÎƱ°ìÀ¤Ï op ¢º {
EQ
,NE
} ¤Ç¤¢¤ì¤Ð̵¾ò·ï¤Ë¡¢¤½¤ì°Ê³°¤Î¾ì¹ç¤ÏξÊý¤Î¥ª¥Ú¥é¥ó¥É¤¬¶õ¤Î¾ì¹ç¤Ë¤À¤±À®¤êΩ¤Á¤Þ¤¹¡£µÕ¤Ë¡¢op ¢º {LT
,LE
,GT
,GE
} ¤Ç¤¢¤ê¡¢¤É¤Á¤é¤«¤Î¥ª¥Ú¥é¥ó¥É¤¬¶õ¤Ç¤¢¤ë¾ì¹ç¤Ï¡¢Æ±°ìÀ¤ÏÀ®¤êΩ¤Á¤Þ¤»¤ó¡£
2 ¤Ä¤Î¥ª¥Ú¥é¥ó¥É¤Î¤É¤Á¤é¤â¶õ¤Ç¤Ê¤¤¾ì¹ç¤òÁ°Äó¤Ë¡¢É½ 2-10 ¤Ï¡¢¼¡¤Î·Á¼°¤Î¤¹¤Ù¤Æ¤Î¶è´Ö´Ø·¸±é»»»Ò¤Î Fortran ±é»»ÄêµÁ¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹¡£
ºÇ½é¤Î·å¤ÏÀÜƬ¼¤ÎÃͤò´Þ¤ß¡¢ºÇ½é¤Î¹Ô¤Ï±é»»»ÒÀÜÈø¼¤ÎÃͤò´Þ¤ó¤Ç¤¤¤Þ¤¹¡£É½¤Ë¼¨¤·¤¿¾ò·ï¤¬Ëþ¤¿¤µ¤ì¤ë¤È·ë²Ì¤Ï true ¤È¤Ê¤ê¤Þ¤¹¡£
ɽ 2-10 ¶è´Ö½ç°Ì´Ø·¸¤Î±é»»ÄêµÁ . S
x<
yandx < y
x
y
andx
y
x=
yandx = y
x
y
andx
y
x>
y
andx > y
x
y
orx
y
. C
x <
yx
y
y
x
andx
y
x
y
x> y
x> y
ory> x
. P
x< y
x
y
x
y
andy
x
x
y
x >
yy >
xorx >
y
¥³¡¼¥ÉÎã 2-7 ´Ø·¸±é»»»Ò
math%cat ce2-7.f95
INTERVAL :: X = [1.0, 3.0], Y = [2.0, 4.0], ZINTEGER :: V = 4, W = 5LOGICAL :: L1, L2, L3, L4REAL :: RL1 = (X == X) .AND. (Y .SEQ. Y)L2 = X .SLT. Y! ºÇÂçÉýÍ׵ᥳ¡¼¥ÉZ = WL3 = W .CEQ. ZL4 = X-Y .PLT. V-WIF( L1 .AND. L2 .AND. L3 .AND. L4) PRINT *, 'Check1'! ƱÅù¤Î¸·Ì©¥³¡¼¥É (L3 ¤È L4 ¤Ø¤ÎÂåÆþÍÑ)L3 = INTERVAL(W, KIND=8) .CEQ. ZL4 = X-Y .PLT. INTERVAL(V, KIND=8)-INTERVAL(W, KIND=8)IF(L3 .AND. L4) PRINT *, 'Check2'ENDmath%f95 -xia ce2-7.f95
math%a.out
Check1Check2¥³¡¼¥ÉÎã 2-7 Ãíµ¡§
- ¶è´Ö¤Ï¤½¤ì¼«ÂΤËÂФ·¤ÆÅù¤·¤¯¡¢¥Ç¥Õ¥©¥ë¥È¤Î
.EQ.
(¤Þ¤¿¤Ï¡¢==
) ±é»»»Ò¤Ï.SEQ.
¤ÈƱ¤¸¤Ê¤Î¤Ç¡¢L1
¤Ï true ¤È¤Ê¤ê¤Þ¤¹¡£(INF(X).LT.INF(Y)).AND.(SUP(X).LT.SUP(Y))
¤¬ true ¤Ê¤Î¤Ç¡¢L2
¤Ï true ¤È¤Ê¤ê¤Þ¤¹¡£- ºÇÂçÉýÍ×µá¤Ç
W
¤ò¶è´Ö[5,5]
¤Ë¾º³Ê¤·¤Þ¤¹¡£¤Þ¤¿¡¢2 ¤Ä¤Î¶è´Ö¤Ï 4 ¤Ä¤Î¤¹¤Ù¤Æ¤Î½ªÎ»ÅÀ¤¬Åù¤·¤¤¾ì¹ç¤Ë¸Â¤ê¡¢¡ÖÃÇÄêŪ¤Ê´Ø·¸¡×¤ÇÅù¤·¤¯¤Ê¤ë¤Î¤Ç¡¢L3
¤Ï true ¤È¤Ê¤ê¤Þ¤¹¡£- ¶è´Ö¼°
X
-Y
¤ÈV
-W
¤Îɾ²Á¤Ë¤è¤ê¡¢¤½¤ì¤¾¤ì¡¢¶è´Ö[-3,1]
¤È[-1,1]
¤¬À¸À®¤µ¤ì¤ë¤Î¤Ç¡¢L4
¤Ï true ¤È¤Ê¤ê¤Þ¤¹¡£¤³¤Î¤¿¤á¡¢¼°(INF(X-Y) .LT. SUP(V-W))
¤Ï¡¢true ¤È¤Ê¤ê¤Þ¤¹¡£½¸¹ç´Ø·¸±é»»»Ò
¼¡¤Î¤è¤¦¤Ê´Ø·¸¤ò»ý¤Ä¡¢2 ¤Ä¤ÎÅÀ
x
¤Èy
´Ö¤Î¡ÖÃÇÄêŪ¤Ê¡×½ç°Ì´Ø·¸¤Ë¤Ä¤¤¤Æ¡¢
- op Î {
LT
,LE
,EQ
,GE
,GT
} andÂбþ¤¹¤ë 2 ¤Ä¤Î¶õ¤Ç¤Ê¤¤¶è´Ö
X
¤ÈY
´Ö¤Î¡Ö½¸¹ç¤Î´Ø·¸¡×.S
op.
¤Î¿ô³ØÄêµÁ¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
x
¤Èy
¤Î 2 ÅÀ´Ö¤Î´Ø·¸¤Ë¤Ä¤¤¤Æ¡¢Âбþ¤¹¤ë 2 ¤Ä¤Î¶õ¤Ç¤Ê¤¤¶è´Ö X ¤È
Y
´Ö¤Î¡Ö½¸¹ç¤Î´Ø·¸¡×.SNE.
¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
![]()
¶õ¤Î¶è´Ö¤Ï¡¢¸å³¤Î³Æ´Ø·¸¤ÎÃæ¤ÇÌÀ¼¨Åª¤Ë¹Í褵¤ì¤Þ¤¹¡£¤É¤Î¾ì¹ç¤â¼¡¤Î·¿µ¬Â§¤Ë½¾¤¤¤Þ¤¹¡£
°ú¿ô¡§
X
¤ÈY
¤Ï¡¢Æ±¤¸ KTPV ¤ò»ý¤Ä¶è´Ö¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£·ë²Ì·¿¡§ ¥Ç¥Õ¥©¥ë¥È¤ÎÏÀÍý¥¹¥«¥é¡¼¤Ç¤¹¡£
¡ÖCertainly¡×(ÃÇÄêŪ¤Ê) ´Ø·¸±é»»»Ò
¡ÖÃÇÄêŪ¤Ê¡×´Ø·¸±é»»»Ò¤Ï¡¢¥ª¥Ú¥é¥ó¥É¶è´Ö¤Î¤¹¤Ù¤Æ¤ÎÍ×ÁǤˤĤ¤¤ÆÁ°Äó¤È¤Ê¤ë´Ø·¸¤¬ true ¤Ç¤¢¤ì¤Ð¡¢true ¤È¤Ê¤ê¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢¤¹¤Ù¤Æ¤Î
¤È
¤Ë¤Ä¤¤¤Æ¡¢
x
<y
¤Ç¤¢¤ì¤Ð¡¢[a,b]
.CLT.
[c,d]
¤Ï true ¤È¤Ê¤ê¤Þ¤¹¡£¤³¤ì¤Ï¡¢b < c ¤ÈƱ¤¸¤Ç¤¹¡£¼¡¤Î¤è¤¦¤Ê´Ø·¸¤ò»ý¤Ä¡¢2 ¤Ä¤ÎÅÀ
x
¤Èy
´Ö¤Î¡ÖÃÇÄêŪ¤Ê¡×½ç°Ì´Ø·¸¤Ë¤Ä¤¤¤Æ¡¢
- op Î {
LT
,LE
,EQ
,GE
,GT
} and![]()
Âбþ¤¹¤ë 2 ¤Ä¤Î¶è´Ö
X
¤ÈY
´Ö¤Î¡ÖÃÇÄêŪ¤Ê¡×true ¤Î´Ø·¸.C
op.
¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
![]()
ÈÝÄêŪ¤Ê¡¢¡ÖÃÇÄêŪ¤Ë¡×Åù¤·¤¯¤Ê¤¤´Ø·¸¤ò½ü¤¤¤Æ¡¢¡ÖÃÇÄêŪ¤Ê¡×´Ø·¸¤Î¤É¤Á¤é¤«¤Î¥ª¥Ú¥é¥ó¥É¤¬¶õ¤Ç¤¢¤ì¤Ð¡¢¤½¤Î·ë²Ì¤Ï false ¤È¤Ê¤ê¤Þ¤¹¡£¤³¤Î 1 ¤Ä¤ÎÎã³°¤Ç¤¢¤ë¡ÖÃÇÄêŪ¤Ë¡×Åù¤·¤¯¤Ê¤¤´Ø·¸
.CNE.
¤Ï¡¢¤³¤Î¾ì¹ç¤Ë true ¤È¤Ê¤ê¤Þ¤¹¡£¤½¤ì¤¾¤ì¤Î¡ÖÃÇÄêŪ¤Ê¡×´Ø·¸±é»»»Ò¤Ç¤Ï¡¢¼¡¤Î·¿µ¬Â§¤Ë½¾¤¤¤Þ¤¹¡£
°ú¿ô¡§
X
¤ÈY
¤Ï¡¢Æ±¤¸ KTPV ¤ò»ý¤Ä¶è´Ö¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£·ë²Ì·¿¡§ ¥Ç¥Õ¥©¥ë¥È¤ÎÏÀÍý¥¹¥«¥é¡¼¤Ç¤¹¡£
¡ÖPossibly¡×(²ÄǽÀ¤Î¤¢¤ë) ´Ø·¸±é»»»Ò
¡Ö²ÄǽÀ¤Î¤¢¤ë¡×´Ø·¸±é»»»Ò¤Ï¡¢¥ª¥Ú¥é¥ó¥É¶è´Ö¤ÎǤ°Õ¤ÎÍ×ÁǤ¬Á°Äó¤È¤Ê¤ë´Ø·¸¤òËþ¤¿¤»¤Ð¡¢true ¤È¤Ê¤ê¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢x < y ¤Ç¤¢¤ë¤è¤¦¤Ê¡¢
¤È
¤¬Â¸ºß¤¹¤ì¤Ð¡¢
[a,b]
.PLT.
[c,d]
¤Ï true ¤È¤Ê¤ê¤Þ¤¹¡£¤³¤ì¤Ï¡¢a < d ¤ÈƱ¤¸¤Ç¤¹¡£¼¡¤Î¤è¤¦¤Ê´Ø·¸¤ò»ý¤Ä¡¢2 ¤Ä¤ÎÅÀ
x
¤Èy
´Ö¤Î¡Ö¹ÎÄêŪ¤Ê¡×½ç°Ì´Ø·¸¤Ë¤Ä¤¤¤Æ¡¢
op
Î {LT
,LE
,EQ
,GE
,GT
} and![]()
Âбþ¤¹¤ë 2 ¤Ä¤Î¶è´Ö X ¤È Y ´Ö¤Î¡Ö²ÄǽÀ¤Î¤¢¤ë¡×true ¤Î´Ø·¸ .Pop. ¤Ï¡¢¼¡¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Þ¤¹¡£
![]()
¶õ¤Î¶è´Ö¤¬¡Ö²ÄǽÀ¤Î¤¢¤ë¡×´Ø·¸¤Î¥ª¥Ú¥é¥ó¥É¤Ç¤¢¤ì¤Ð¡¢·ë²Ì¤Ï false ¤È¤Ê¤ê¤Þ¤¹¡£¤³¤Î 1 ¤Ä¤ÎÎã³°¤Ç¤¢¤ë¡¢ÈÝÄêŪ¤Ê¡Ö²ÄǽÀ¤Î¤¢¤ë¡×Åù¤·¤¯¤Ê¤¤´Ø·¸
.PNE.
¤Ï¡¢¤³¤Î¾ì¹ç¤Ë true ¤È¤Ê¤ê¤Þ¤¹¡£¤½¤ì¤¾¤ì¤Î¡Ö²ÄǽÀ¤Î¤¢¤ë¡×´Ø·¸±é»»»Ò¤Ç¤Ï¡¢°Ê²¼¤Î·¿µ¬Â§¤Ë½¾¤¤¤Þ¤¹¡£
°ú¿ô¡§
X
¤ÈY
¤Ï¡¢Æ±¤¸ KTPV ¤ò»ý¤Ä¶è´Ö¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£·ë²Ì·¿¡§ ¥Ç¥Õ¥©¥ë¥È¤ÎÏÀÍý¥¹¥«¥é¡¼¤Ç¤¹¡£
ÁȤ߹þ¤ß¶è´Ö±é»»»Ò¤Î³ÈÄ¥
¥æ¡¼¥¶¡¼¤ÎÄ󶡤¹¤ë±é»»»Ò¥¤¥ó¥¿¥Õ¥§¡¼¥¹¥Ö¥í¥Ã¥¯¤Î
INTERFACE
ʸ¤ÎÃæ¤Ç»ØÄꤵ¤ì¤¿±é»»»Ò¤¬ÁȤ߹þ¤ß¤Î¶è´Ö±é»»»Ò (¤¿¤È¤¨¤Ð.IH.
) ¤Ç¤¢¤ë¾ì¹ç¡¢ÁȤ߹þ¤ß¤Î¶è´Ö±é»»»Ò¤Î 1 ¤Ä¤Î³ÈÄ¥¤¬ºîÀ®¤µ¤ì¤Þ¤¹¡£ÁȤ߹þ¤ß¤Î¶è´Ö±é»»»Ò¤ò³ÈÄ¥¤¹¤ë¥æ¡¼¥¶¡¼¤¬Ä󶡤¹¤ë±é»»»Ò´Ø¿ô¤Ï¡¢¥ª¥Ú¥é¥ó¥É¤Î¥Ç¡¼¥¿·¿¤Ë¤Ä¤¤¤Æ¤½¤Î±é»»»Ò¤¬»öÁ°ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢³ÈÄ¥¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤»¤ó¡£
°Ê²¼¤Î¥ê¥¹¥È¤Î¤è¤¦¤Ê°ú¿ô¤ÎÁȤ߹ç¤ï¤»¤Ë¤Ä¤¤¤Æ¤Ï¡¢ÁȤ߹þ¤ß¤Î¶è´Ö±é»»»Ò +¡¢-¡¢*¡¢/¡¢
.IH.
¡¢.IX.
¡¢** ¤¬»öÁ°ÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢¥æ¡¼¥¶¡¼¤¬³ÈÄ¥¤¹¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£
- (Ǥ°Õ¤Î
INTERVAL
·¿¡¢Ç¤°Õ¤ÎINTERVAL
·¿)- (Ǥ°Õ¤Î
INTERVAL
·¿¡¢Ç¤°Õ¤ÎREAL
¤Þ¤¿¤ÏINTEGER
·¿)- (Ǥ°Õ¤Î
REAL
¤Þ¤¿¤ÏINTEGER
·¿¡¢Ç¤°Õ¤ÎINTERVAL
·¿)À°¿ô»Ø¿ô¤ò»ý¤Ä¶è´Ö±é»»»Ò ** ¤Ï»öÁ°ÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢¼¡¤Î¤è¤¦¤Ê°ú¿ô¤ÎÁȤ߹ç¤ï¤»¤È¤·¤Æ¥æ¡¼¥¶¡¼¤¬³ÈÄ¥¤¹¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£
- (Ǥ°Õ¤Î
INTERVAL
·¿¡¢Ç¤°Õ¤ÎINTEGER
·¿)
.IN.
¤ò½ü¤¡¢¶è´Ö´Ø·¸±é»»»Ò¤Ï°Ê²¼¤Î¥ê¥¹¥È¤Î¤è¤¦¤Ê°ú¿ô¤ÎÁȤ߹ç¤ï¤»¤È¤·¤Æ»öÁ°ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¤«¤é¡¢¥æ¡¼¥¶¡¼¤¬³ÈÄ¥¤¹¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£
- (Ǥ°Õ¤Î
INTERVAL
·¿¡¢Ç¤°Õ¤ÎINTERVAL
·¿)- (Ǥ°Õ¤Î
INTERVAL
·¿¡¢Ç¤°Õ¤ÎREAL
¤Þ¤¿¤ÏINTEGER
·¿)- (Ǥ°Õ¤Î
REAL
¤Þ¤¿¤ÏINTEGER
·¿¡¢Ç¤°Õ¤ÎINTERVAL
·¿)¶è´Ö´Ø·¸±é»»»Ò
.IN.
¤Ï»öÁ°ÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢¼¡¤Î¤è¤¦¤Ê°ú¿ô¤ÎÁȤ߹ç¤ï¤»¤È¤·¤Æ¡¢¥æ¡¼¥¶¡¼¤¬³ÈÄ¥¤¹¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£
- (Ǥ°Õ¤Î
REAL
¤Þ¤¿¤ÏINTEGER
·¿¡¢Ç¤°Õ¤ÎINTERVAL
·¿)¥³¡¼¥ÉÎã 2-8 ¤ÎÄêµÁ¤Ç¤Ï¡¢
¥³¡¼¥ÉÎã 2-8 ¶è´Ö¤Î.IH.
¤¬ (LOGICAL
,INTERVAL
(16
)) ¥ª¥Ú¥é¥ó¥ÉÍѤˤϻöÁ°ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢S1
¤ÈS2
¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ÏÀµ¤·¤¤µ½Ò¤Ç¤¹¡£.IH.
±é»»»Ò¤Î³ÈÄ¥
math%cat ce2-8.f95
MODULE M INTERFACE OPERATOR (.IH.) MODULE PROCEDURE S1 MODULE PROCEDURE S2 END INTERFACE CONTAINS REAL FUNCTION S1(L, Y) LOGICAL, INTENT(IN) :: L INTERVAL(16), INTENT(IN) :: Y S1 = 1.0 END FUNCTION S1 INTERVAL FUNCTION S2(R1, R2) REAL, INTENT(IN) :: R1 REAL, INTENT(IN) :: R2 S2 = [2.0] END FUNCTION S2 END MODULE M PROGRAM TEST USE M INTERVAL(16) :: X = [1, 2] LOGICAL :: L = .TRUE. REAL :: R = 0.1 PRINT *, 'L .IH. X = ', L .IH. X PRINT *, 'R1 .IH. R2 =', R1 .IH. R2 END PROGRAM TEST math%f95 -xia ce2-8.f95
math%a.out
L .IH. X = 1.0 R1 .IH. R2 = [2.0,2.0]¥³¡¼¥ÉÎã 2-9 ¤Î + ±é»»»Ò¤Î³ÈÄ¥¤Ï¡¢(
¥³¡¼¥ÉÎã 2-9 ÁȤ߹þ¤ß¤Î¶è´Ö¤Î (+) ±é»»»ÒÍÑË¡¤È¾×Æͤ¹¤ë¥æ¡¼¥¶¡¼ÄêµÁ¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹INTERVAL
,INTERVAL
) ·¿¤Î¥ª¥Ú¥é¥ó¥ÉÍѤ˻öÁ°ÄêµÁ¤µ¤ì¤Æ¤¤¤ëÁȤ߹þ¤ß¤Î¶è´Ö (+) ±é»»»Ò¤ÎÄêµÁ¤òÊѹ¹¤·¤è¤¦¤È¤·¤Æ¤¤¤ë¤Î¤ÇÀµ¤·¤¯¤¢¤ê¤Þ¤»¤ó¡£
math%cat ce2-9.f95
MODULE M1 INTERFACE OPERATOR (+) MODULE PROCEDURE S4 END INTERFACE CONTAINS REAL FUNCTION S4(X, Y) INTERVAL, INTENT(IN) :: X INTERVAL, INTENT(IN) :: Y S4 = 4.0 END FUNCTION S4 END MODULE M1 PROGRAM TEST USE M1 INTERVAL :: X = [1.0], Y = [2.0] PRINT *, 'X + Y = ', X + Y END PROGRAM TEST math%f95 -xia ce2-9.f95
MODULE M1 ^ "ce2-9.f95", Line = 1, Column = 8: ¥¨¥é¡¼¡§¥³¥ó¥Ñ¥¤¥é¤¬¥â¥¸¥å¡¼¥ë "M" ¤Ç¥¨¥é¡¼¤ò¸¡½Ð¤·¤Þ¤·¤¿¡£¤³¤Î¥â¥¸¥å¡¼¥ë¤Ë¤Ï¥â¥¸¥å¡¼¥ë¾ðÊó¥Õ¥¡¥¤¥ë¤ÏºîÀ®¤µ¤ì¤Þ ¤»¤ó¡£ MODULE PROCEDURE S4 ^ "ce2-9.f95", Line = 3, Column = 22: ¥¨¥é¡¼¡§¤³¤Î¸ÄÊÌ°úÍÑ»ÅÍÍ "S1" ¤Ï¡¢"ih" ¤ÎÁȤ߹þ¤ß»ÈÍѤȾ×Æͤ·¤Æ¤¤¤Þ¤¹¡£ USE M1 ^ "ce2-9.f95", Line = 14, Column = 5: ¥¨¥é¡¼¡§¥â¥¸¥å¡¼¥ë "M" ¤Ë¤Ï¥³¥ó¥Ñ ¥¤¥é¥¨¥é¡¼¤¬¤¢¤ë¤¿¤á¡¢USE ʸ¤òÄ̤·¤Æ¤³¤Î¥â¥¸¥å¡¼¥ë¤«¤é³ÍÆÀ¤µ¤ì¤¿Àë¸À¤ÏÉÔ½½Ê¬ ¤Ê²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹¡£ f90: ¥³¥ó¥Ñ¥¤¥ë»þ´Ö 0.820000 SECONDS f90: ºÇÂç¥Õ¥£¡¼¥ë¥ÉĹ 5518744 10 ¿Ê¥ï¡¼¥É f90: 17 ¥½¡¼¥¹¹Ô¥³¡¼¥ÉÎã 2-10 ¤Ç¤Ï¡¢
¥³¡¼¥ÉÎã 2-10 ÁȤ߹þ¤ß¤Î.IH.
¤Ï (INTERVAL(4)
,INTERVAL(8)
) ¤Î¥ª¥Ú¥é¥ó¥ÉÍѤ˻öÁ°ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢°Ê²¼¤ÎS1
¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ÏÀµ¤·¤¯¤¢¤ê¤Þ¤»¤ó¡£.IH.
ÍÑË¡¤È¾×Æͤ¹¤ë¥æ¡¼¥¶¡¼ÄêµÁ¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹
math%cat ce2-10.f95
MODULE MINTERFACE OPERATOR (.IH.)MODULE PROCEDURE S1END INTERFACECONTAINSINTERVAL FUNCTION S1(X, Y)INTERVAL(4), INTENT(IN) :: XINTERVAL(8), INTENT(IN) :: YS1 = [1.0]END FUNCTION S1END MODULE MPROGRAM TESTUSE MINTERVAL(4) :: X = [1.0]INTERVAL(8) :: Y = [2.0]PRINT *, 'X .IH. Y = ', X .IH. YEND PROGRAM TESTmath%f95 -xia ce2-10.f95
MODULE M^"ce2-10.f95", Line = 1, Column = 8: ¥¨¥é¡¼¡§¥³¥ó¥Ñ¥¤¥é¤¬¥â¥¸¥å¡¼¥ë "M" ¤Ç¥¨¥é¡¼¤ò¸¡½Ð¤·¤Þ¤·¤¿¡£¤³¤Î¥â¥¸¥å¡¼¥ë¤Ë¤Ï¥â¥¸¥å¡¼¥ë¾ðÊó¥Õ¥¡¥¤¥ë¤ÏºîÀ®¤µ¤ì¤Þ ¤»¤ó¡£MODULE PROCEDURE S1^"ce2-10.f95", Line = 3, Column = 22: ¥¨¥é¡¼¡§¤³¤Î¸ÄÊÌ°úÍÑ»ÅÍÍ "S1" ¤Ï¡¢"ih" ¤ÎÁȤ߹þ¤ß»ÈÍѤȾ×Æͤ·¤Æ¤¤¤Þ¤¹¡£USE M^"ce2-10.f95", Line = 14, Column = 5: ¥¨¥é¡¼¡§¥â¥¸¥å¡¼¥ë "M" ¤Ë¤Ï¥³¥ó ¥Ñ¥¤¥é¥¨¥é¡¼¤¬¤¢¤ë¤¿¤á¡¢USE ʸ¤òÄ̤·¤Æ¤³¤Î¥â¥¸¥å¡¼¥ë¤«¤é³ÍÆÀ¤µ¤ì¤¿Àë¸À¤ÏÉÔ½½ ʬ¤Ê²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹¡£f90: ¥³¥ó¥Ñ¥¤¥ë»þ´Ö 0.190000 SECONDSf90: ºÇÂç¥Õ¥£¡¼¥ë¥É 4135778 10 ¿Ê¥ï¡¼¥Éf90: 18 ¥½¡¼¥¹¹Ôf90: 3 ¸Ä¤Î¥¨¥é¡¼, 0 ¸Ä¤Î·Ù¹ð, 0 ¸Ä¤Î¾¤Î¥á¥Ã¥»¡¼¥¸, 0 ¸Ä¤Î ANSIÁȤ߹þ¤ß¤Î¶è´Ö±é»»»Ò¤ò³ÈÄ¥¤¹¤ë±é»»»Ò´Ø¿ô¤Î°ú¿ô¤Î¿ô¤Ï¡¢¥³¡¼¥ÉÎã 2-11 ¤Ç¼¨¤·¤Æ¤¤¤ë¤è¤¦¤Ë¡¢ÁȤ߹þ¤ß¤Î±é»»»Ò¤ËɬÍפʥª¥Ú¥é¥ó¥É¿ô¤È°ìÃפ·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
¥³¡¼¥ÉÎã 2-11 »öÁ°ÄêµÁ¤µ¤ì¤¿¶è´Ö±é»»»Ò¤Î°ú¿ô¤Î¿ô¤Î´Ö°ã¤Ã¤¿Êѹ¹
math%cat ce2-11.f95
MODULE M INTERFACE OPERATOR (.IH.) MODULE PROCEDURE S1 END INTERFACE CONTAINS REAL FUNCTION S1(R) REAL, INTENT(IN) :: R S1 = 1.0 END FUNCTION S1 END MODULE M PROGRAM TEST USE M REAL :: R = 0.1 PRINT *, ' .IH. R = ', .IH. R END PROGRAM TEST math%f95 -xia ce2-11.f95
MODULE M ^ "ce2-11.f95", Line = 1, Column = 8: ¥¨¥é¡¼¡§¥³¥ó¥Ñ¥¤¥é¤¬¥â¥¸¥å¡¼¥ë "M" ¤Ç¥¨¥é¡¼¤ò¸¡½Ð¤·¤Þ¤·¤¿¡£¤³¤Î¥â¥¸¥å¡¼¥ë¤Ë¤Ï¥â¥¸¥å¡¼¥ë¾ðÊó¥Õ¥¡¥¤¥ë¤ÏºîÀ®¤µ¤ì¤Þ ¤»¤ó¡£ MODULE PROCEDURE S1 ^ "ce2-11.f95", Line = 3, Column = 22: ¥¨¥é¡¼¡§¸ÄÊÌ°úÍÑ»ÅÍÍ "S1" ¤ÏÍøÍÑ ¼ÔÄêµÁ 2 ¹à±é»»»Ò¤Î°úÍÑ»ÅÍÍÀë¸À¤ÎÆâÉô¤Ë¤¢¤ë¤È¤¤Ï¡¢¤Á¤ç¤¦¤É 2 ¸Ä¤Î²¾°ú¿ô¤ò¤â ¤¿¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ USE M ^ "ce2-11.f95", Line = 13, Column = 5: ¥¨¥é¡¼¡§¥â¥¸¥å¡¼¥ë "M" ¤Ë¤Ï¥³¥ó¥Ñ ¥¤¥é¥¨¥é¡¼¤¬¤¢¤ë¤¿¤á¡¢USE ʸ¤òÄ̤·¤Æ¤³¤Î¥â¥¸¥å¡¼¥ë¤«¤é³ÍÆÀ¤µ¤ì¤¿Àë¸À¤ÏÉÔ½½Ê¬ ¤Ê²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹¡£ PRINT *, ' .IH. R = ', .IH. R ^ "ce2-11.f95", Line = 15, Column = 24: ¥¨¥é¡¼¡§Í½´ü¤·¤Ê¤¤¹½Ê¸¡§ "operand" ¤¬Í½´ü¤µ¤ì¤ë¤È¤³¤í¤Ë "." ¤¬¤¢¤ê¤Þ¤·¤¿¡£ f90: ¥³¥ó¥Ñ¥¤¥ë»þ´Ö 0.200000 SECONDS f90: ºÇÂç¥Õ¥£¡¼¥ë¥ÉĹ 4135778 10 ¿Ê¥ï¡¼¥É f90: 16 ¥½¡¼¥¹¹Ô f90: 4 ¸Ä¤Î¥¨¥é¡¼, 0 ¸Ä¤Î·Ù¹ð, 0 ¸Ä¤Î¾¤Î¥á¥Ã¥»¡¼¥¸, 0 ¸Ä¤Î ANSIÁȤ߹þ¤ß¤Î¶è´ÖÆó¹à±é»»»Ò¤Ï¡¢1 ¤Ä¤Î
INTERVAL
°ú¿ô¤ò¤È¤ëñ¹à±é»»»Ò´Ø¿ô¤ò»ÈÍѤ·¤Æ³ÈÄ¥¤¹¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£¥³¡¼¥ÉÎã 2-12 ¤Ç¤Ï¡¢¡Ö+¡×¤Ï¶è´Ö¥ª¥Ú¥é¥ó¥ÉÍѤËÄêµÁºÑ¤ß¤Ê¤Î¤Ç¡¢
¥³¡¼¥ÉÎã 2-12 ÁȤ߹þ¤ß¤Îñ¹à¡ÖS1
¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ÏÀµ¤·¤¯¤¢¤ê¤Þ¤»¤ó¡£+
¡×ÍÑË¡¤È¾×Æͤ¹¤ë¥æ¡¼¥¶¡¼ÄêµÁ¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹
math%cat ce2-12.f95
MODULE M INTERFACE OPERATOR (+) MODULE PROCEDURE S1 END INTERFACE CONTAINS REAL FUNCTION S1(X) INTERVAL, INTENT(IN) :: X S1 = 1.0 END FUNCTION S1 END MODULE M PROGRAM TEST USE M INTERVAL :: X = 0.1 PRINT *, ' + X = ', + X END PROGRAM TEST math%f95 -xia ce2-12.f95
MODULE M ^ "ce2-12.f95", Line = 1, Column = 8: ¥¨¥é¡¼¡§¥³¥ó¥Ñ¥¤¥é¤¬¥â¥¸¥å¡¼¥ë "M" ¤Ç¥¨¥é¡¼¤ò¸¡½Ð¤·¤Þ¤·¤¿¡£¤³¤Î¥â¥¸¥å¡¼¥ë¤Ë¤Ï¥â¥¸¥å¡¼¥ë¾ðÊó¥Õ¥¡¥¤¥ë¤ÏºîÀ®¤µ¤ì¤Þ ¤»¤ó¡£ MODULE PROCEDURE S1 ^ "ce2-12.f95", Line = 3, Column = 22: ¥¨¥é¡¼¡§¤³¤Î¸ÄÊÌ°úÍÑ»ÅÍÍ "S1" ¤Ï¡¢"+" ¤ÎÁȤ߹þ¤ß»ÈÍѤȾ×Æͤ·¤Æ¤¤¤Þ¤¹¡£ USE M ^ "ce2-12.f95", Line = 13, Column = 5: ¥¨¥é¡¼¡§¥â¥¸¥å¡¼¥ë "M" ¤Ë¤Ï¥³¥ó¥Ñ ¥¤¥é¥¨¥é¡¼¤¬¤¢¤ë¤¿¤á¡¢USE ʸ¤òÄ̤·¤Æ¤³¤Î¥â¥¸¥å¡¼¥ë¤«¤é³ÍÆÀ¤µ¤ì¤¿Àë¸À¤ÏÉÔ½½Ê¬ ¤Ê²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹¡£ f90: ¥³¥ó¥Ñ¥¤¥ë»þ´Ö 0.290000 SECONDS f90: ºÇÂç¥Õ¥£¡¼¥ë¥ÉĹ 4146432 10 ¿Ê¥ï¡¼¥É f90: 16 ¥½¡¼¥¹¹Ô f90: 3 ¸Ä¤Î¥¨¥é¡¼, 0 ¸Ä¤Î·Ù¹ð, 0 ¸Ä¤Î¾¤Î¥á¥Ã¥»¡¼¥¸, 0 ¸Ä¤Î ANSI°ìÈÌŪ¤Ê¥¤¥ó¥¿¥Õ¥§¡¼¥¹¥Ö¥í¥Ã¥¯¤ÎÃæ¤Ç¤Ï¡¢
INTERFACE
ʸ¤ÎÃæ¤Ç»ØÄꤷ¤¿°ìÈÌŪ¤Ê̾Á°¤¬ÁȤ߹þ¤ß¤Î¶è´Ö¥µ¥Ö¥×¥í¥°¥é¥à¤Î̾Á°¤Ç¤¢¤ì¤Ð¡¢ÆÃÄê¤Î¥æ¡¼¥¶¡¼ÄêµÁ¥µ¥Ö¥×¥í¥°¥é¥à¤ÏÁȤ߹þ¤ß¥µ¥Ö¥×¥í¥°¥é¥à¤ÎÄêµÁºÑ¤ß¤Î°ÕÌ£¤ò³ÈÄ¥¤·¤Þ¤¹¡£Æ±¤¸°ìÈÌ̾¤ò»ý¤Ä¥µ¥Ö¥×¥í¥°¥é¥à¤Ø¤Î¤¹¤Ù¤Æ¤Î»²¾È¤Ï¡¢¤¢¤¤¤Þ¤¤¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡£
ÁȤ߹þ¤ß¤Î¥µ¥Ö¥×¥í¥°¥é¥à¤Ï¡¢¤½¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹ÄêµÁ¤â¤Þ¤¿°ìÈÌŪ¤Ê¥¤¥ó¥¿¥Õ¥§¡¼¥¹¥Ö¥í¥Ã¥¯¤Ç»ØÄꤵ¤ì¤¿ÆÃÄê¤ÎÁȤ߹þ¤ß¥µ¥Ö¥×¥í¥°¥é¥à¤Î 1 ¤Ä¤Î½¸¤Þ¤ê¤È¤·¤Æ°·¤ï¤ì¤Þ¤¹¡£
¥³¡¼¥ÉÎã 2-13 ÁȤ߹þ¤ß¶è´Ö´Ø¿ôWID
¤ÎÀµ¤·¤¤³ÈÄ¥
math%cat ce2-13.f95
MODULE M INTERFACE WID MODULE PROCEDURE S1 MODULE PROCEDURE S2 END INTERFACE CONTAINS REAL FUNCTION S1(X) REAL, INTENT(IN) :: X S1 = 1.0 END FUNCTION S1 INTERVAL FUNCTION S2(X, Y) INTERVAL, INTENT(IN) :: X INTERVAL, INTENT(IN) :: Y S2 = [2.0] END FUNCTION S2 END MODULE M PROGRAM TEST USE M INTERVAL :: X = [1, 2], Y = [3, 4] REAL :: R = 0.1 PRINT *, WID(R) PRINT *, WID(X, Y) END PROGRAM TEST math%f95 -xia ce2-13.f95
math%a.out
1.0 [2.0,2.0]¥³¡¼¥ÉÎã 2-14 ¤ÏÀµ¤·¤¤¥³¡¼¥É¤Ç¤¹¡£
¥³¡¼¥ÉÎã 2-14 ÁȤ߹þ¤ß¶è´Ö´Ø¿ôABS
¤ÎÀµ¤·¤¤³ÈÄ¥
math%cat ce2-14.f95
MODULE MINTERFACE ABSMODULE PROCEDURE S1END INTERFACECONTAINSINTERVAL FUNCTION S1(X)INTERVAL, INTENT(IN) :: XS1 = [-1.0]END FUNCTION S1END MODULE MPROGRAM TESTUSE MINTERVAL :: X = [1, 2]PRINT *, ABS(X)END PROGRAM TESTmath%f95 -xia ce2-14.f95
math%a.out
[-1.0,-1.0]¥³¡¼¥ÉÎã 2-15 ¤ÏÀµ¤·¤¤¥³¡¼¥É¤Ç¤¹¡£
¥³¡¼¥ÉÎã 2-15 ÁȤ߹þ¤ß¶è´Ö´Ø¿ôMIN
¤ÎÀµ¤·¤¤³ÈÄ¥
math%cat ce2-15.f95
MODULE MINTERFACE MINMODULE PROCEDURE S1END INTERFACECONTAINSINTERVAL FUNCTION S1(X, Y)INTERVAL(4), INTENT(IN) :: XINTERVAL(8), INTENT(IN) :: YS1 = [-1.0]END FUNCTION S1END MODULE MPROGRAM TESTUSE MINTERVAL(4) :: X = [1, 2]INTERVAL(8) :: Y = [3, 4]REAL :: R = 0.1PRINT *, MIN(X, Y)END PROGRAM TESTmath%f95 -xia ce2-15.f95
math%a.out
[-1.0,-1.0]ºÇÂçÉýÍ×µá¤Îɾ²Á¤ò»ý¤Ä³ÈÄ¥±é»»»Ò
¥³¡¼¥ÉÎã 2-16 ¤Ï¡¢ÁȤ߹þ¤ß¤Î¶è´Ö±é»»»Ò¤Î»öÁ°ÄêµÁ¥Ð¡¼¥¸¥ç¥ó¤È³ÈÄ¥¥Ð¡¼¥¸¥ç¥ó¤ò¸Æ¤Ó½Ð¤¹¾ì¹ç¤Î¡¢ºÇÂçÉýÍ׵ἰ½èÍý¤¬¤É¤Î¤è¤¦¤ËȯÀ¸¤¹¤ë¤«¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£
¥³¡¼¥ÉÎã 2-16 ÁȤ߹þ¤ß¶è´Ö±é»»»Ò¤Î»öÁ°ÄêµÁ¥Ð¡¼¥¸¥ç¥ó¤ò¸Æ¤Ó½Ð¤¹¾ì¹ç¤ÎºÇÂçÉýÍ׵ἰ¤Î½èÍý
math%cat ce2-16.f95
MODULE MINTERFACE OPERATOR (.IH.)MODULE PROCEDURE S4END INTERFACECONTAINSINTERVAL FUNCTION S4(X, Y)COMPLEX, INTENT(IN) :: XCOMPLEX, INTENT(IN) :: YS4 = [0]END FUNCTION S4END MODULE MUSE MINTERVAL :: X = [1.0]REAL :: R = 1.0COMPLEX :: C = (1.0, 0.0)X = (R-0.1).IH.(R-0.2) ! ξÊý¤Î°ú¿ô¤¬ºÇÂçÉýÍ×µá¤Ç¡¢! ÁȤ߹þ¤ß¤Î¶è´Ö±é»»»Ò.IH.¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£X = X .IH. (R+R) ! ξÊý¤Î°ú¿ô¤¬ºÇÂçÉýÍ×µá¤Ç¡¢! ÁȤ߹þ¤ß¤Î¶è´Ö±é»»»Ò.IH.¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£X = X .IH. (R+R+X) ! Âè2°ú¿ô¤¬ºÇÂçÉýÍ×µá¤Ç¡¢! ÁȤ߹þ¤ß¤Î¶è´Ö±é»»»Ò.IH.¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£X = (R+R) .IH. (R+R+X) ! ξÊý¤Î°ú¿ô¤¬ºÇÂçÉýÍ×µá¤Ç¡¢! ÁȤ߹þ¤ß¤Î¶è´Ö±é»»»Ò.IH.¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£X = C .IH. (C+R) ! ºÇÂçÉýÍ×µá¤Ê¤·¤Ç¡¢s4¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ENDmath%f95 -xia ce2-16.f95
math%a.out
¥³¡¼¥ÉÎã 2-17 ¤Ï¡¢¥æ¡¼¥¶¡¼ÄêµÁ¤Î±é»»»Ò¤ò¸Æ¤Ó½Ð¤¹¾ì¹ç¤ËºÇÂçÉýÍ׵ἰ¤Î½èÍý¤¬¤É¤Î¤è¤¦¤ËȯÀ¸¤¹¤ë¤«¼¨¤·¤Æ¤¤¤Þ¤¹¡£
¥³¡¼¥ÉÎã 2-17 ¥æ¡¼¥¶¡¼ÄêµÁ±é»»»Ò¤ò¸Æ¤Ó½Ð¤¹¾ì¹ç¤ÎºÇÂçÉýÍ׵ἰ¤Î½èÍý
math%cat ce2-17.f95
MODULE M INTERFACE OPERATOR (.AA.) MODULE PROCEDURE S1 MODULE PROCEDURE S2 END INTERFACE CONTAINS INTERVAL FUNCTION S1(X, Y) INTERVAL, INTENT(IN) :: X REAL, INTENT(IN) :: Y PRINT *, 'S1 is invoked.' S1 = [1.0] END FUNCTION S1 INTERVAL FUNCTION S2(X, Y) INTERVAL, INTENT(IN) :: X INTERVAL, INTENT(IN) :: Y PRINT *, 'S2 is invoked.' S2 = [2.0] END FUNCTION S2 END MODULE M USE M INTERVAL :: X = [1.0] REAL :: R = 1.0 X = X .AA. R+R ! S1 is invoked X = X .AA. X ! S2 is invoked END math% f95 -xia ce2-17.f95 MODULE PROCEDURE S1 ^ "ce2-17.f95", Line = 3, Column = 22: ·Ù¹ð¡§ºÇÂçÉýÍ×µá¤Îɾ²Á¤Ï¡¢¥æ¡¼¥¶¡¼ ÄêµÁ¤Î°ú¿ô¤ËŬÍѤµ¤ì¤Þ¤»¤ó¡£ USE M ^ "ce2-17.f95", Line = 20, Column = 5: ·Ù¹ð¡§ºÇÂçÉýÍ×µá¤Îɾ²Á¤Ï¡¢¥æ¡¼¥¶¡¼ ÄêµÁ¤Î°ú¿ô¤ËŬÍѤµ¤ì¤Þ¤»¤ó¡£ f90: ¥³¥ó¥Ñ¥¤¥ë»þ´Ö 0.700000 SECONDS f90: ºÇÂç¥Õ¥£¡¼¥ë¥ÉĹ 5605590 DECIMAL WORDS f90: 26 ¥½¡¼¥¹¹Ô f90: 0 ¸Ä¤Î¥¨¥é¡¼, 2 ¸Ä¤Î·Ù¹ð, 0 ¸Ä¤Î¾¤Î¥á¥Ã¥»¡¼¥¸, 0 ¸Ä¤Î ANSI math% a.out S1¤¬¸Æ¤Ó½Ð¤µ¤ì¤Þ¤·¤¿¡£ S2¤¬¸Æ¤Ó½Ð¤µ¤ì¤Þ¤·¤¿¡£
INTERVAL
(X [,Y, KIND]
)²òÀ⡧
INTERVAL
·¿¤Ø¤ÈÊÑ´¹¤·¤Þ¤¹¡£
X
¤Ï¡¢INTEGER
¡¢REAL
¡¢¤Þ¤¿¤Ï¡¢INTERVAL
·¿¤Ç¤¹¡£
Y
(¥ª¥×¥·¥ç¥ó) ¤ÏINTEGER
¤Þ¤¿¤ÏREAL
·¿¤Ç¤¹¡£X
¤¬INTERVAL
·¿¤Ç¤¢¤ì¤Ð¡¢Y
¤Ï»ØÄꤷ¤Æ¤Ï¤¤¤±¤Þ¤»¤ó¡£
KIND
(¥ª¥×¥·¥ç¥ó) ¤Ï¥¹¥«¥é¡¼INTEGER
¤Î½é´üÃͼ°¤Ç¤¹¡£
KIND
¤¬Â¸ºß¤¹¤ë¾ì¹ç¤Ï¡¢·ë²Ì¤Î KTPV ¤Î·èÄê¤Ë¤½¤ÎÃͤ¬»È¤ï¤ì¤Þ¤¹¡£¤½¤ì°Ê³°¤Ï¡¢·ë²Ì¤Î KTPV ¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç»È¤ï¤ì¤ë¶è´Ö¤Î KTPV ¤ÈƱ¤¸¤Ç¤¹¡£
X
¤¬¶è´Ö¤Î¾ì¹ç¤ÏÊñ´Þ¤¬Êݾڤµ¤ì¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢¼¡¤Î¾ì¹ç¡¢
INTERVAL(16):: X
INTERVAL
(X, KIND=4
) ¤Î·ë²Ì¤Ë¤ÏINTERVAL
X
¤¬´Þ¤Þ¤ì¤Þ¤¹¡£¤·¤«¤·¡¢
REAL(8)
::X
,Y
¤Ç¤¢¤ì¤Ð¡¢INTERVAL(X,Y, KIND=4)
¤Î·ë²Ì¤ÏÆâÉôŪ¤Ê¶è´ÖX .IH. Y
¤ò´Þ¤à¤È¤Ï¸Â¤ê¤Þ¤»¤ó¡£¤³¤ÎÍýͳ¤Ï¡¢X
¤ÈY
¤¬REAL
¼°¤Ç¤â¤è¤¯¡¢¤½¤ì¤é¤ÎÃͤÏÊݾڤµ¤ì¤Ê¤¤¤«¤é¤Ç¤¹¡£
INTERVAL
¹½À®»Ò¤Ï¡¢É¬¤º¤·¤âƱ¤¸½ªÎ»ÅÀ¤ò»ý¤ÄINTERVAL
ʸ»úÄê¿ô¤ÎÃͤò´Þ¤à¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤¿¤È¤¨¤Ð¡¢INTERVAL(1.1,1.3)
¤Ïɬ¤º¤·¤â³°ÉôÃÍ ev([1.1
,1.3]
) =[1.1, 1.3]
¤ò´Þ¤à¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤½¤ÎÍýͳ¤Ï¡¢REAL
Äê¿ô¤ÎÆâÉôÃͤ¬Ì¤ÃΤÎÀµ³Î¤µ¤ò»ý¤Ä¶á»÷ÃͤǤ¢¤ë¤«¤é¤Ç¤¹¡£¾ï¤Ë 2 ¤Ä¤Î
REAL
Ãͤò´Þ¤à¶è´Ö¤ò¹½ÃÛ¤¹¤ë¤¿¤á¤Ë¤Ï¡¢¥³¡¼¥ÉÎã 2-18 ¤Ç¼¨¤·¤Æ¤¤¤ë¤è¤¦¤Ë¡¢¶è´ÖÊñ±é»»»Ò.IH.
¤ò»È¤¤¤Þ¤¹¡£·ë²ÌÃÍ¡§ ¶è´Ö¤Î·ë²ÌÃÍ¤Ï 1 ¤Ä¤Î͸ú¤Ê¶è´Ö¤Ç¤¹¡£
Y
¤¬Â¸ºß¤»¤º¡¢X
¤¬¶è´Ö¤Ç¤¢¤ë¾ì¹ç¡¢INTERVAL(X[,KIND])
¤ÏX
¤ò´Þ¤à 1 ¤Ä¤Î¶è´Ö¤Ç¤¢¤ê¡¢INTERVAL(X[,KIND])
¤Ïº¸±¦¤Î½ªÎ»ÅÀ[XL,XU]
¤ò»ý¤Ä 1 ¤Ä¤Î¶è´Ö¤È¤Ê¤ê¤Þ¤¹¡£
XL = REAL(INF(X) [,KIND])
¤Ï´Ý¤áÀڤ겼¤²¤Ë¤è¤ê¡¢XL .LE. INF(X)
¤È¤Ê¤ê¡¢
XU = REAL(SUP(X) [,KIND])
¤Ï´Ý¤áÀÚ¤ê¾å¤²¤Ë¤è¤ê¡¢XU .GE. SUP(X)
¤È¤Ê¤ê¤Þ¤¹¡£
X
¤ÈY
¤¬¶¦¤Ë¸ºß¤¹¤ë (¤³¤Î¤¿¤á¡¢¶è´Ö¤Ç¤Ï¤Ê¤¤) ¾ì¹ç¡¢INTERVAL(X,Y[,KIND])
¤Ïº¸±¦¤Î½ªÎ»ÅÀ¤¬¤½¤ì¤¾¤ìREAL(X[,KIND])
¤ÈREAL(Y[,KIND])
¤ËÅù¤·¤¤½ªÎ»ÅÀ¤ò»ý¤Ä¶è´Ö¤È¤Ê¤ê¤Þ¤¹¡£
Ãí - ¤³¤Î¥±¡¼¥¹¤Ç¤Ï¡¢Í¸þ¤Î´Ý¤á¤Ï»ØÄꤵ¤ì¤Þ¤»¤ó¡£¤³¤Î¤¿¤á¡¢Êñ´Þ¤ÏÄ󶡤µ¤ì¤Þ¤»¤ó¡£
°Ê²¼¤Î 2 ¤Ä¤Î¥±¡¼¥¹¤Ç¤Ï [
-inf,inf
] ¤¬ÊÖ¤µ¤ì¤Þ¤¹¡£
X
¤ÈY
¤¬¶¦¤Ë¸ºß¤·¡¢Y
¤¬X
¤è¤ê¾®¤µ¤¤¾ì¹ç¡£X
¤Þ¤¿¤ÏY
¤«¤½¤ÎξÊý¤¬»»½ÑÀ°¿ô¤Þ¤¿¤Ï¼Â¿ô¤òɽ¤µ¤Ê¤¤ (¤¿¤È¤¨¤Ð¡¢1 ¤Ä¤Þ¤¿¤ÏξÊý¤Î¼Â°ú¿ô¤¬NaN
¤Ç¤¢¤ë) ¾ì¹ç¡£ºÇÂçÉýÍ×µá¤Î¥¹¥³¡¼¥×À©¸Â
ÁȤ߹þ¤ß¤Î ¶è´Ö¹½À®»Ò´Ø¿ô¤Ï°Ê²¼¤Î 2 ¤Ä¤ÎÍÑÅÓ¤ÇÍѤ¤¤é¤ì¤Þ¤¹¡£
½êÍ¿¤ÎÈó¶è´Ö (
REAL
¤Þ¤¿¤ÏINTEGER
) ¼° EXP ¤Ë¤Ä¤¤¤Æ¡¢¼¡¤Î¥³¡¼¥É¤Ï¡¢
INTERVAL Y
EXP
REAL R
R =
Y = R
INTERVAL Y
EXP
Y = INTERVAL()
¤³¤ì¤Ï¡¢¼¡¤Î¥³¡¼¥É¤È¤Ï°Û¤Ê¤ê¤Þ¤¹¡£
INTERVAL Y
EXP
Y =¸å¤Î¥³¡¼¥É¤Ï¡¢EXP ¤ò 1 ¤Ä¤Î¶è´Ö¼°¤È¤·¤Æɾ²Á¤¹¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ºÇ½é¤Î 2 ¤Ä¤ÎÉôʬ¥³¡¼¥É¤Ç¤Ï¡¢¼° EXP ¤ÏÈó¶è´Ö¼°¤È¤·¤Æɾ²Á¤µ¤ì¡¢¤½¤Î·ë²Ì¤¬½ÌÂà¶è´Ö¤Î¹½Ãۤ˻Ȥï¤ì¤Æ¤¤¤Þ¤¹¡£
2 ¤Ä¤Î°ú¿ô EXP1 ¤È EXP2 ¤ò»È¤¨¤Ð¡¢¶è´Ö(EXP1, EXP2)¤ÏξÊý¤Î¼°¤òºÇÂçÉýÍ׵ἰ½èÍý¤«¤é³ÖÎ¥¤·¡¢¤½¤Î¼°¤ÎÈó¶è´Öɾ²Á·ë²Ì¤ÈƱ¤¸½ªÎ»ÅÀ¤ò»ý¤Ä 1 ¤Ä¤Î¶è´Ö¤ò¹½ÃÛ¤·¤Þ¤¹¡£
KIND ¥Ñ¥é¥á¡¼¥¿¤ò´Þ¤á¤ë¤È¡¢·ë²Ì¤Î KTPV ¤òÀ©¸æ¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£¤³¤ì¤Ï¿¤¯¤Î¾ì¹ç¡¢ÌÀ¼¨Åª¤Ê KTPV ÊÑ´¹¤¬É¬Í×¤Ê -strict ¼°½èÍý¤Î¤â¤È¤ÇɬÍפǤ¹¡£
Èó¶è´Ö°ú¿ô¤ò»ý¤ÄÁȤ߹þ¤ß¤Î¶è´Ö´Ø¿ô¤Î°·¤¤¤Ë¤ÏÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£¶è´Ö¤ÎÊñ´Þ¤¬É¬Íפʾì¹ç¤Ï¡¢¥³¡¼¥ÉÎã 2-18 ¤Ç¼¨¤·¤Æ¤¤¤ë¤è¤¦¤Ë¡¢¶è´ÖÊñ±é»»»Ò
.IH.
¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤¡£¶è´Ö¹½À®»Ò¤Ï
¥³¡¼¥ÉÎã 2-18INTERVAL
¤ÈREAL
¤Þ¤¿¤ÏINTERGER
¼°´Ö¤Î¶³¦¤È¤·¤ÆÆ°ºî¤·¤Þ¤¹¡£¤³¤Î¶³¦¤ÎÈóINTERVAL
¦¤Ç¤ÏÀµ³ÎÀ (¤³¤Î¤¿¤á¡¢¤µ¤é¤ËÊñ´Þ¤â) ¤ÎÊݾڤò¶¯À©¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤»¤ó¡£.IH.
±é»»»Ò¤ò»ÈÍѤ·¤¿Êñ´Þ
math%cat ce2-18.f95
REAL(16) :: A, B INTERVAL :: X1, X2 PRINT *, "Press Control/D to terminate!" WRITE(*, 1, ADVANCE='NO') READ(*, *, IOSTAT=IOS) A, B DO WHILE (IOS >= 0) PRINT *, " FOR A =", A, ", AND B =", B ! ºÇÂçÉýÍ׵ᥳ¡¼¥É X1 = A .IH. B ! ƱÅù¤Î¸·Ì©¥³¡¼¥É X2 = INTERVAL(INTERVAL(A, KIND=16) .IH. INTERVAL(B, KIND=16)) IF (X1 .SEQ. X2) PRINT *, 'Check.' PRINT *, 'X1 = ', X1 WRITE(*, 1, ADVANCE='NO') READ(*, *, IOSTAT=IOS) A, B END DO 1 FORMAT(" A, B = ") END math%f95 -xia ce2-18.f95
math%a.out
Control/D to terminate! A, B = 1.3 1.7 FOR A = 1.3 , AND B = 1.7 X1 = [1.2999999999999998,1.7000000000000002] A, B = 0.0 0.2 FOR A = 0.0E+0 , AND B = 0.2 X1 = [0.0E+0,0.20000000000000002] A, B = <Control-D>ÁȤ߹þ¤ß¤Î¶è´Ö¹½À®»Ò´Ø¿ô¤Î»È¤¤Êý¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡ÖINTERVAL (X [,Y, KIND])¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
ÁȤ߹þ¤ß¤Î¶è´Ö¹½À®»Ò´Ø¿ô¤Î KTPV ¸ÄÊÌ̾
ɽ 2-11 ¤Ë¼¨¤·¤Æ¤¤¤ë¤è¤¦¤Ë¡¢ÁȤ߹þ¤ß¤Î¶è´Ö¹½À®»Ò´Ø¿ô¤Ï¡¢¥ª¥×¥·¥ç¥ó¤Î KIND ¥Ñ¥é¥á¡¼¥¿¤ò»ÈÍѤ·¤Ê¤¤ KTPV ¸ÄÊÌ̾¤ò»ÈÍѤ·¤Æ¸Æ¤Ó½Ð¤¹¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
ɽ 2-11 ÁȤ߹þ¤ß¤Î¶è´Ö¹½À®»Ò´Ø¿ôÍѤΠKTPV ¸ÄÊ̼° DINTERVAL(X[,Y])INTERVAL(X[,Y],
KIND
=
8)
¡¢¤Þ¤¿¤Ï¡¢INTERVAL(X[,Y])
SINTERVAL(X[,Y])INTERVAL(X[,Y],
KIND
=
4)
QINTERVAL(X[,Y])INTERVAL(X[,Y],
KIND
=
16)
ÁȤ߹þ¤ß¶è´Ö¹½À®»Ò´Ø¿ô¤ÎÊÑ´¹Îã
¤³¤ÎÀá¤Î 3 ¤Ä¤ÎÎã¤Ï¡¢ÁȤ߹þ¤ß¤Î¶è´Ö¹½ÃÛ»Ò¤ò»È¤Ã¤Æ¡¢
¥³¡¼¥ÉÎã 2-19 ¶è´ÖÊÑ´¹REAL
¤«¤éINTERVAL
·¿¥Ç¡¼¥¿¹àÌܤËÊÑ´¹¤¹¤ëÊýË¡¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£¥³¡¼¥ÉÎã 2-19 ¤Ï¡¢¶è´Ö¹½ÃÛ»Ò¤ÎREAL
¼°°ú¿ô¤¬REAL
±é»»¤ò»È¤Ã¤Æɾ²Á¤µ¤ì¤ë¤Î¤ÇºÇÂçÍ×µáÉý¼°¤Îɾ²Á¤«¤é³ÖÎ¥¤µ¤ì¤ë¤³¤È¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£
math%cat ce2-19.f95
REAL :: R = 0.1, S = 0.2, T = 0.3 REAL(8) :: R8 = 0.1D0, T1, T2 INTERVAL(4) :: X, Y INTERVAL(8) :: DX, DY R = 0.1 Y = INTERVAL(R, R, KIND=4) X = INTERVAL(0.1, KIND=4) ! 7¹ÔÌÜ IF ( X == Y ) PRINT *, 'Check1' X = INTERVAL(0.1, 0.1, KIND=4) ! 10¹ÔÌÜ IF ( X == Y ) PRINT *, 'Check2' T1 = R+S T2 = T+R8 DY = INTERVAL(T1, T2) DX = INTERVAL(R+S, T+R8) ! 15¹ÔÌÜ IF ( DX == DY ) PRINT *, 'Check3' DX = INTERVAL(Y, KIND=8) ! 17¹ÔÌÜ IF (Y .CEQ. INTERVAL(0.1, 0.1, KIND=8)) PRINT *, 'Check4' END math%f95 -xia ce2-19.f95
math%a.out
Check1 Check2 Check3 Check4¥³¡¼¥ÉÎã 2-19 Ãíµ¡§
- 7¡¢10 ¹ÔÌÜ¡§¶è´Ö
X
¤Ë¤Ï¡¢¼ÂÄê¿ô 0.1 ¤ÎÆâÉôɽ¸½¤ÈƱ¤¸Î¾½ªÎ»ÅÀ¤ò»ý¤Ä½ÌÂष¤¿¶è´Ö¤¬ÂåÆþ¤µ¤ì¤Þ¤¹¡£- 15 ¹ÔÌÜ¡§¶è´Ö
DX
¤Ë¤Ï¡¢R+S
¤ÈT+R8
¤Î¤½¤ì¤¾¤ì¤ÎREAL
¼°¤Î·ë²Ì¤ÈƱ¤¸º¸±¦¤Î½ªÎ»ÅÀ¤ò»ý¤Ä 1 ¤Ä¤Î¶è´Ö¤¬ÂåÆþ¤µ¤ì¤Þ¤¹¡£- 17 ¹ÔÌÜ¡§¶è´Ö
Y
¤Ï¡¢KTPV-8 ¤ò´Þ¤à¶è´Ö¤Ø¤ÈÊÑ´¹¤µ¤ì¤Þ¤¹¡£¥³¡¼¥ÉÎã 2-20 ¤Ï¡¢¶è´Ö¹½À®»Ò¤ò»È¤Ã¤Æ¡¢
¥³¡¼¥ÉÎã 2-20 ½êÍ¿¤Î¼Â¿ô¤ò´Þ¤à¶¹¤¤¶è´Ö¤òºîÀ®¤¹¤ëY
¤Î½ªÎ»ÅÀ¤¬½êÍ¿¤Î¶è´Ö¡¢X
¤ÎÍ×ÁǤȤʤé¤Ê¤¤¡¢²Äǽ¤ÊºÇ¾®¶è´ÖY
¤ò¹½ÃÛ¤¹¤ëÊýË¡¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£
math%cat ce2-20.f95
INTERVAL :: X = [10.E-10,11.E+10]INTERVAL :: YY = INTERVAL(-TINY(INF(X)), TINY(INF(X))) + XPRINT *, X .INT. YENDmath%f95 -xia ce2-20
math%a.out
T½êÍ¿¤Î¶è´Ö
X
¤Ë¤Ä¤¤¤Æ¡¢¾ò·ïX .INT. Y
¤òËþ¤¿¤¹±Ô¤¤¶è´ÖY
¤¬¹½ÃÛ¤µ¤ì¤Þ¤¹¡£ÆâÉô½¸¹ç´Ø·¸¤Ë´Ø¤¹¤ë¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡ÖÆâÉô¡§(X .INT. Y)¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£¥³¡¼¥ÉÎã 2-21 ¤Ï¡¢¶è´Ö¹½À®»Ò¤¬¤É¤Î¤è¤¦¤Ê¾ì¹ç¤Ë¶è´Ö [-
¥³¡¼¥ÉÎã 2-21INF
,INF
] ¤È[MAX_FLOAT
,INF
] ¤òÊÖ¤¹¤«¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£INTERVAL(NaN)
math%cat ce2-21.f95
REAL :: R = 0., S = 0.T = R/S ! 2¹ÔÌÜPRINT *, TPRINT *, INTERVAL(T, S) ! 4¹ÔÌÜPRINT *, INTERVAL(T, T) ! 5¹ÔÌÜPRINT *, INTERVAL(2., 1.) ! 6¹ÔÌÜPRINT *, INTERVAL(1./R) ! 7¹ÔÌÜENDmath%f95 -xia ce2-21.f95
math%a.out
NaN[-Inf,Inf][-Inf,Inf][-Inf,Inf][1.7976931348623157E+308,Inf]¥³¡¼¥ÉÎã 2-21 Ãíµ¡§
- 2 ¹ÔÌÜ¡§ÊÑ¿ô
T
¤Ë¤ÏNaN
¤ÎÃͤ¬ÂåÆþ¤µ¤ì¤Þ¤¹¡£- 4¡¢5 ¹ÔÌÜ¡§¶è´Ö¹½À®»Ò¤Î 1 ¤Ä¤Î°ú¿ô¤Ï
NaN
¤Ç¤¢¤ê¡¢·ë²Ì¤Ï¶è´Ö[-INF
,INF]
¤Ç¤¹¡£- 6 ¹ÔÌÜ¡§Ìµ¸ú¤Ê¶è´Ö [2,1] ¤ÎÂå¤ï¤ê¤Ë¡¢¶è´Ö [
-INF
,INF
] ¤¬¹½ÃÛ¤µ¤ì¤Þ¤¹¡£- 7 ¹ÔÌÜ¡§¶è´Ö [
INF
,INF
] ¤ò´Þ¤à¶è´Ö [MAX_FLOAT
,INF
] ¤¬¹½ÃÛ¤µ¤ì¤Þ¤¹¡£ÆâÉôɽ¸½¤Î¤¿¤á¤Î¶è´ÖÁªÂò¤ÎµÄÏÀ¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡Ö»²¹Íʸ¸¥¡×¤Ç°úÍѤ·¤¿ÊäÂʸ¸¥ [8] ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ÁȤ߹þ¤ß¤Î°ìÈ̶è´Ö´Ø¿ôÍѤθÄÊÌ̾
ÁȤ߹þ¤ß¤Î°ìÈ̶è´Ö´Ø¿ôÍѤÎ
f95
¸ÄÊÌ̾¤Ï¡¢ËöÈø¤¬ÁȤ߹þ¤ß´Ø¿ô¤Î°ìÈÌ̾¤È¤Ê¤ê¡¢V
¤Ç»Ï¤Þ¤ê¡¢¤½¤Î¸å¤í¤Ë¡¢INTERVAL(4)
¡¢INTERVAL(8)
¡¢INTERVAL(16)
·¿¤Î°ú¿ôÍѤˤ½¤ì¤¾¤ìS
¡¢D
¡¢¤Þ¤¿¤ÏQ
¤¬Â³¤¤Þ¤¹¡£
f95
¤Ç¤Ï¡¢INTERVAL(16)
¥Ç¡¼¥¿·¿ÍѤˤϼ¡¤Î¸ÄÊÌ̾ÁȤ߹þ¤ß´Ø¿ô¤À¤±¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
VQABS
¡¢VQAINT
¡¢VQANINT
¡¢VQINF
¡¢VQSUP
¡¢VQMID
¡¢VQMAG
¡¢VQMIG
¡¢VQISEMPTY
Èó¶è´Ö¥×¥í¥°¥é¥à¤Ç¤Î̾Á°¶õ´Ö¤Î¾×Æͤò²óÈò¤¹¤ë¤¿¤á¤Ë¡¢¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¤Ë¤è¤ëÊýË¡¤Ç¤Î¤ß¸ÄÊÌ̾¤¬ÍøÍѤǤ¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
-xinterval
-xinterval=strict
¡¢¤Þ¤¿¤Ï¡¢-xinterval=widestneed
- ¥Þ¥¯¥í
-xia
¡¢-xia=strict
¡¢¤Þ¤¿¤Ï¡¢-xia=widestneed
¤è¤ê¾ÜºÙ¤Ê¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡Ö¶è´Ö¤Î¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
¥µ¥Ý¡¼¥È¤µ¤ì¤ë¤¹¤Ù¤Æ¤ÎÁȤ߹þ¤ß´Ø¿ô¤Ï¸ÄÊÌ̾¤ò»ý¤Á¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢É½ 2-12 ¤Ç¤Ï¡¢
ABS
ÁȤ߹þ¤ß´Ø¿ô¤Î¶è´Ö¥Ð¡¼¥¸¥ç¥ó¤Î̾Á°¤ò°ìÍ÷ɽ¼¨¤·¤Æ¤¤¤Þ¤¹¡£
ɽ 2-12 ÁȤ߹þ¤ß¤Î¶è´Ö ABS
´Ø¿ôÍѤθÇͤÎ̾Á°VSABS
INTERVAL(4)
INTERVAL(4)
VDABS
INTERVAL(8)
INTERVAL(8)
VQABS
INTERVAL(16)
INTERVAL(16)
¤³¤ì°Ê³°¤Î¸ÄÊÌ̾ÁȤ߹þ¤ß´Ø¿ô¤Ï¡¢¡ÖÁȤ߹þ¤ß´Ø¿ô¡×¤Ë°ìÍ÷ɽ¼¨¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
INTERVAL
¤³¤ÎÀá¤Ç¤Ï
f95
¤Ë¤è¤êǧ¼±¤µ¤ì¤ëINTERVAL
ʸ¤ò²òÀ⤷¤Þ¤¹¡£¤³¤³¤Ç¤Ï¡¢¹Í¤¨¤é¤ì¤ëÀ©Ìó¤ÈÎã¤ò¸ò¤¨¤Æ¡¢³Æʸ¤Î¹½Ê¸¤È²òÀâ¤ò¼¨¤·¤Þ¤¹¡£·¿¤ÎÀë¸À
INTERVAL
̾Á°ÉÕ¤Äê¿ô¡¢ÊÑ¿ô¡¢´Ø¿ô¤Î·ë²Ì¤òÀë¸À¤¹¤ë¤Ë¤Ï¡¢INTERVAL
ʸ¤ò»ÈÍѤ·¤Þ¤¹¡£INTERVAL
¤Ïɸ½à¤Î¿ôÃÍ·¿Àë¸Àʸ¤ÈƱ¤¸¹½Ê¸¤È°ÕÌ£ÏÀ¤ò»ý¤ÄÁȤ߹þ¤ß¤Î¿ôÃÍ·¿Àë¸Àʸ¤Ç¤¹¡£INTERVAL
ʸ¤ò»È¤Ã¤¿ÍÑË¡¤Ç¤Ï¡¢Â¾¤Î¿ôÃÍ·¿Àë¸ÀÍÑË¡¤Ë¸ºß¤¹¤ë¤Î¤ÈƱ¤¸»ØÄ꤬ÍøÍѤǤ¤Þ¤¹¡£²òÀ⡧Àë¸À¤Ï¡¢
INTERVAL
¡¢INTERVAL(4)
¡¢INTERVAL(8)
¡¢INTERVAL(16)
¤Î¤¤¤º¤ì¤«¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
INTERVAL
INTERVAL :: W
ÊÑ¿ô
W
¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Î 8 ¤Î¶è´Ö KTPV ¤ò»ý¤Á¡¢16 ¥Ð¥¤¥È¤ÎϢ³¤¹¤ë¥á¥â¥ê¡¼¤òÀêͤ·¤Þ¤¹¡£Sun WorkShop 6 ¤Î Fortran 95 ¤Ç¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Î¶è´Ö KTPV ¤Ï¡¢-xtypemap
¤Þ¤¿¤Ï-r8const
¤Î¤è¤¦¤ÊǤ°Õ¤Î¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¤Ë¤è¤êÊѹ¹¤µ¤ì¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£¥³¡¼¥ÉÎã 2-22 ´Ö°ã¤Ã¤¿¹½Â¤·¿¡§
INTERVAL
¤Ï¹½Â¤·¿Ì¾¤È¤·¤Æ¤Ï»ÈÍѤǤ¤Þ¤»¤ó¡£¤¿¤È¤¨¤Ð¡¢¥³¡¼¥ÉÎã 2-22 ¤Î¥³¡¼¥É¤ÏÀµ¤·¤¯¤¢¤ê¤Þ¤»¤ó¡£INTERVAL
TYPE INTERVALREAL :: INF, SUPEND TYPE INTERVALn
{4, 8, 16} ÍѤÎ
INTERVAL
(n)
INTERVAL(n) :: W
ÊÑ¿ô
W
¤Ï¡¢KTPV = n ¤Î KTPV ¤ò»ý¤Á¡¢2n ¥Ð¥¤¥È¤ÎϢ³¤¹¤ë¥á¥â¥ê¡¼¤òÀêͤ·¤Þ¤¹¡£¥³¡¼¥ÉÎã 2-23 ¤Ï¡¢°Û¤Ê¤ë KTPV ¤ò»ý¤Ä¶è´ÖÊÑ¿ô¤ÎÀë¸À¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£ºÇÂçÉýÍ×µáÃͤȸ·Ì©ÃͤÎÀ°Îó¤â¼¨¤·¤Æ¤¤¤Þ¤¹¡£
¥³¡¼¥ÉÎã 2-23 °Û¤Ê¤ë KTPV ¤ò»ý¤Ä¶è´Ö¤ÎÀë¸À
math%cat ce2-23.f95
INTERVAL(4) :: X1, X2INTERVAL(8) :: Y1, Y2INTERVAL(16) :: Z1, Z2REAL(8) :: D = 1.2345! ºÇÂçÉýÍ׵ᥳ¡¼¥ÉX1 = DY1 = DZ1 = D! ƱÅù¤Î¸·Ì©¥³¡¼¥ÉX2 = INTERVAL(INTERVAL(D, KIND=8), KIND=4)Y2 = INTERVAL(D, KIND=8)Z2 = INTERVAL(D, KIND=16)IF (X1 == X2) PRINT *, 'Check1'IF (Y1 == Y2) PRINT *, 'Check2'IF (Z1 == Z2) PRINT *, 'Check3'ENDmath%f95 -xia ce2-23.f95
math%a.out
Check1Check2Check3¥³¡¼¥ÉÎã 2-24 ¤Ï¡¢¶è´ÖÊÑ¿ô¤ÎÀë¸À¤È½é´ü²½¤Ë¤Ä¤¤¤Æ¼¨¤·¤Æ¤¤¤Þ¤¹¡£¶è´ÖÄê¿ô¤òÊ̤ÎÊýË¡¤Çɽ¸½¤¹¤ë¤Ë¤Ï¡¢¡Ö¶è´ÖÄê¿ô¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
¥³¡¼¥ÉÎã 2-24 ¶è´ÖÊÑ¿ô¤ÎÀë¸À¤È½é´ü²½
math%cat ce2-24.f95
INTERVAL :: U = [1, 9.1_8], V = [4.1]! ºÇÂçÉýÍ׵ᥳ¡¼¥ÉINTERVAL :: W1 = 0.1_16! ƱÅù¤Î¸·Ì©¥³¡¼¥ÉINTERVAL :: W2 = [0.1_16]PRINT *, U, VIF (W1 .SEQ. W2) PRINT *, 'Check'ENDmath%f95 -xia ce2-24.f95
math%a.out
[1.0,9.1000000000000015] [4.0999999999999996,4.1000000000000006]¸¡¾ÚǤ°Õ¤Î½é´ü²½¤òȼ¤¦Àë¸Àʸ¤ÎÃæ¤Ç¤Ï¡¢¥Ç¡¼¥¿¼°¤Î·¿¤¬µ¹æ̾¤Î·¿¤È°ìÃפ·¤Ê¤¤¾ì¹ç¡¢·¿ÊÑ´¹¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£
¥³¡¼¥ÉÎã 2-25 ¶è´ÖÇÛÎó¤ÎÀë¸À
INTERVAL(4) :: R(5), S(5)INTERVAL :: U(5), V(5)INTERVAL(16) :: X(5), Y(5)
DATA
ʸ¹½Ê¸
¶è´ÖÊÑ¿ô¤ò´Þ¤à
¥³¡¼¥ÉÎã 2-26 ¶è´ÖÊÑ¿ô¤ò´Þ¤àDATA
ʸ¤Î¹½Ê¸¤Ï¡¢¶è´ÖÊÑ¿ô¤¬¶è´ÖÄê¿ô¤òÍѤ¤¤Æ½é´ü²½¤µ¤ì¤ëÅÀ¤ò½ü¤±¤Ð¡¢Â¾¤Î¿ôÃͥǡ¼¥¿·¿¤Î¤â¤Î¤ÈƱ¤¸¤Ç¤¹¡£DATA
ʸ
INTERVAL XDATA X/[1,2]/
EQUIVALENCE
ʸǤ°Õ¤Î¶è´ÖÊÑ¿ô¤Þ¤¿¤ÏÇÛÎó¤Ï¡¢¼¡¤ÎÀ©¸ÂÉÕ¤¤Ç
EQUIVALENCE
ʸ¤ÎÃæ¤Ë¸½¤ì¤Æ¤â¤«¤Þ¤¤¤Þ¤»¤ó¡£¤Ä¤Þ¤ê¡¢·ë¹çÂбþ¤¬¶è´ÖÊÑ¿ô¤Þ¤¿¤ÏÇÛÎó¤ò´Þ¤à¾ì¹ç¡¢·ë¹çÂбþÆâÉô¤Î¤¹¤Ù¤Æ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢¥³¡¼¥ÉÎã 2-18 ¤Ç¼¨¤·¤Æ¤¤¤ë¤è¤¦¤Ë¡¢Æ±¤¸·¿¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¤³¤ì¤Ï¶è´Ö¸ÇͤÎÀ©Ìó¤Ç¤Ï¤Ê¤¯¡¢Fortran µ¬³Ê¤ÎÀ©Ìó¤Ç¤¹¡£
FORMAT
ʸ¹½Ê¸
¶è´ÖÍѤÎÈ¿Éü²Äǽ¤ÊÊÔ½¸µ½Ò»Ò¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£
D
¢º {E
,EN
,ES
,G
}
F
w.d¡¢VF
w.d¡¢D
w.d¡¢VD
w.d¡¢D
w.dEe¡¢VD
w.dEe¡¢Y
w.d¡¢Y
w.dEe- w ¤È e ¤Ï¡¢Èó¥¼¥í¤ÎÉä¹æ¤Ê¤·À°¿ôÄê¿ô¤ò¡¢d ¤ÏÉä¹æ¤Ê¤·À°¿ôÄê¿ô¤òɽ¤·¤Þ¤¹¡£
ÊÔ½¸µ½Ò»Ò¤ò»È¤Ã¤Æ¶è´Ö¥Ç¡¼¥¿¤ò½èÍý¤¹¤ë¤¿¤á¤Îµ½Ò»Ò¤Î»ØÄêÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡ÖÆþÎϤȽÐÎϡפò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£¤Þ¤¿¡¢Èó¶è´Ö¥Ç¡¼¥¿¤òÍѤ¤¤¿É¸½àÊÔ½¸µ½Ò»Ò¤ÎÆ°ºî¤Ë¤Ä¤¤¤Æ¤Ï¡¢Fortran ¤Î¥ê¥Õ¥¡¥ì¥ó¥¹¥Þ¥Ë¥å¥¢¥ë¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
¤¹¤Ù¤Æ¤Îɸ½à Fortran ¤ÎÊÔ½¸µ½Ò»Ò¤Ï¶è´Ö¤ò¼õ¤±Æþ¤ì¤Þ¤¹¡£¶è´ÖÀìÍѥС¼¥¸¥ç¥ó¤Îɸ½à
E
¡¢F
¡¢G
¤ÎÊÔ½¸µ½Ò»Ò¤Ë¤ÏÀÜƬ¼¤È¤·¤ÆV
¤òÉÕ¤±¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¥³¡¼¥ÉÎã 2-27 ¤Ç¼¨¤·¤Æ¤¤¤ë¤è¤¦¤Ë¡¢¶è´Ö¥Ç¡¼¥¿¤òÆɤ߹þ¤ß¤Þ¤¿¤Ï½ñ¤½Ð¤·¤¹¤ë¾ì¹ç¡¢È¿ÉüÉÔǽ¤ÎÊÔ½¸µ½Ò»Ò¤òÊѹ¹¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£
¥³¡¼¥ÉÎã 2-27 È¿ÉüÉÔǽ¤ÎÊÔ½¸µ½Ò»Ò¤ÎÎã
math%cat ce2-27.f95
INTERVAL :: X = [-1.3, 1.3]WRITE(*, '(SP, VF20.5)') XWRITE(*, '(SS, VF20.5)') XENDmath%f95 -xia ce2-27.f95
math%a.out
[-1.30001,+1.30001][-1.30001, 1.30001]²òÀâ
È¿Éü²Äǽ¤ÊÊÔ½¸µ½Ò»Ò¡¢
E
¡¢F
¡¢EN
¡¢ES
¡¢G
¡¢VE
¡¢VEN
¡¢VES
¡¢VF
¡¢VG
¡¢Y
¤Ï¡¢¶è´Ö¥Ç¡¼¥¿¤ÎÊÔ½¸ÊýË¡¤ò»ØÄꤷ¤Þ¤¹¡£¥³¡¼¥ÉÎã 2-28 ¤Ï¡¢¶è´Ö¸ÇͤÎÊÔ½¸µ½Ò»Ò¤ÎÎã¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹¡£
¥³¡¼¥ÉÎã 2-28 ¶è´Ö¸ÇͤÎÊÔ½¸µ½Ò»Ò¤ò»È¤Ã¤¿ FORMAT ʸ
FORMAT(VE22.4E4)FORMAT(VEN22.4)FORMAT(VES25.5)FORMAT(VF25.5)FORMAT(VG25.5)FORMAT(VG22.4E4)FORMAT(Y25.5)ÄɲÃŪ¤ÊÎã¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡ÖÆþÎϤȽÐÎϡפò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
FUNCTION
(³°Éô)¥³¡¼¥ÉÎã 2-29 ¤Ç¼¨¤·¤Æ¤¤¤ë¤è¤¦¤Ë¡¢¶è´Ö³°Éô´Ø¿ô¤ÈÈó¶è´Ö³°Éô´Ø¿ô¤È¤Î´Ö¤Ë¤Ï¡¢´Ø¿ô¤È°ú¿ô¤ÎÄêµÁ¤ÎÃæ¤Ç
¥³¡¼¥ÉÎã 2-29 ¥Ç¥Õ¥©¥ë¥È¤Î¶è´Ö´Ø¿ôINTERVAL
·¿ (INTERVAL
¡¢INTERVAL(4)
¡¢INTERVAL(8)
¡¢¤Þ¤¿¤Ï¡¢INTERVAL(16)
) ¤ò»ÈÍѤ¹¤ëÅÀ¤ò½ü¤±¤Ð¡¢Â¾¤Ë°ã¤¤¤Ï¤¢¤ê¤Þ¤»¤ó¡£
INTERVAL FUNCTION SQR (A) ! 1¹ÔÌÜINTERVAL :: ASQR = A**2RETURNEND1 ¹ÔÌܤΥǥե©¥ë¥È¤Î
¥³¡¼¥ÉÎã 2-30 ÌÀ¼¨Åª¤ÊINTERVAL
¤Ï¡¢¥³¡¼¥ÉÎã 2-30 ¤Ç¼¨¤·¤Æ¤¤¤ë¤è¤¦¤Ë¡¢ÌÀ¼¨Åª¤Êɽ¸½¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£INTERVAL(16)
´Ø¿ôÀë¸À
INTERVAL(16) FUNCTION SQR (A) ! 1¹ÔÌÜ
IMPLICIT
°À¶è´Ö̾¤Î¥Ç¥Õ¥©¥ë¥È·¿¤ò»ØÄꤹ¤ë¤Ë¤Ï¡¢
IMPLICIT
°À¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£
IMPLICIT INTERVAL
(8)
(V)
INTRINSIC
ʸ¼ÂºÝ¤Î°ú¿ô¤È¤·¤Æ°ú¤ÅϤ»¤ë¤è¤¦¤Ë¤¹¤ë¤¿¤á¤ËÁȤ߹þ¤ß¤Î´Ø¿ô¤òÀë¸À¤¹¤ë¤Ë¤Ï¡¢
¥³¡¼¥ÉÎã 2-31 ÁȤ߹þ¤ß¤Î´Ø¿ôÀë¸ÀINTRINSIC
ʸ¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£
INTRINSIC VDSIN, VDCOS, VQSINX = CALC(VDSIN, VDCOS, VQSIN)
Ãí -INTRINSIC
ʸ¤Ç¤Ï¡¢°ìÈÌ´Ø¿ô¤Î¸ÄÊÌ̾¤¬»ÈÍѤµ¤ì¡¢¼ÂºÝ¤Î°ú¿ô¤È¤·¤Æ°ú¤ÅϤµ¤ì¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¡ÖÁȤ߹þ¤ß¤Î°ìÈ̶è´Ö´Ø¿ôÍѤθÄÊÌ̾¡×¤È¡ÖÁȤ߹þ¤ß´Ø¿ô¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
¼¡¤ÎÁȤ߹þ¤ß¤Î¶è´Ö´Ø¿ô¤Ï¡¢°ìÈÌ´Ø¿ô¤Ç¤¹¤«¤é¡¢¼ÂºÝ¤Î°ú¿ô¤È¤·¤Æ°ú¤ÅϤ¹¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£
NDIGITS
¡¢INTERVAL
NAMELIST
ʸ¥³¡¼¥ÉÎã 2-32
NAMELIST
ʸ¤Ï¶è´Ö¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£NAMELIST
¤Ç¤ÎINTERVAL
CHARACTER(8) :: NAMECHARACTER(4) :: COLORINTEGER :: AGEINTERVAL(4) :: HEIGHTINTERVAL(4) :: WEIGHTNAMELIST /DOG/ NAME, COLOR, AGE, WEIGHT, HEIGHT
PARAMETER
°PARAMETER
°À¤Ï¡¢¶è´Ö¤Î½é´ü²½·ë²Ì¤ò̾Á°ÉÕ¤Äê¿ô (PARAMETER
) ¤ËÂåÆþ¤¹¤ë¤Î¤Ë»ÈÍѤ·¤Þ¤¹¡£¹½Ê¸
PARAMETER
(p=
e [, p=
expr]...)
- p ¶è´Ö±Ñ»ú̾
- expr ¶è´ÖÄê¿ô¼°
=
e ¤ÎÃͤòµ¹æ̾ p ¤ËÂåÆþ¤¹¤ë²òÀâ
µ¹æ̾ p ¤ÈÄê¿ô¼° expr ¤Ï¶¦¤Ë
INTERVAL
·¿¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£Äê¿ô¼°¤Ç¤Ï¡¢À°¿ô¤ÎÎß¾è¤ËÂФ¹¤ëÎß¾èË¡¤Ïµö¤µ¤ì¤Þ¤¹¡£
ºÇÂçÉýÍ׵ἰ½èÍý¤Î¤â¤È¤Ç¤Ï¡¢¶è´Ö¤Î̾Á°ÉÕ¤Äê¿ôÄêµÁ¤ÎÃæ¤Ç¡¢º®¹ç¥â¡¼¥É¤Î¶è´Ö¼°¤Îɾ²Á¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤¹¡£Äê¿ô¼°¤Î·¿¤¬Ì¾Á°ÉÕ¤Äê¿ô¤Î·¿¤È°ìÃפ·¤Ê¤¤¾ì¹ç¤Ï¡¢ºÇÂçÉýÍ׵ἰ½èÍý¤Î¤â¤È¤Ç·¿ÊÑ´¹¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£
Ãí°Õ -![]()
f95
¤Ç¤Ï¡¢Èó¶è´ÖÄê¿ô¼°¤Ï¸å³¤Îº®¹ç¥â¡¼¥É¶è´Ö¼°¤ÎÃæ¤Ç¤Î»ÈÍѤò¹Í褻¤º¤Ë¥³¥ó¥Ñ¥¤¥ë»þ¤Ëɾ²Á¤µ¤ì¤Þ¤¹¡£¤³¤ì¤é¤Î¼°¤ÏºÇÂçÉýÍ׵ἰ½èÍý¤Î¥¹¥³¡¼¥×³°¤Ë¤¢¤ê¤Þ¤¹¡£¤³¤Î¤¿¤á¡¢Èó¶è´Ö¤Î̾Á°ÉÕ¤Äê¿ô¤ÎÃͤÎÀßÄê¤ËÍѤ¤¤é¤ì¤ëÅÀ¼°¤ÎÃͤò´Þ¤à¤¿¤á¤ÎÍ×·ï¤Ï¸ºß¤·¤Þ¤»¤ó¡£º®¹ç¥â¡¼¥É¤Î¶è´Ö¼°¤ÎÃæ¤ÇÈó¶è´Ö¤Î̾Á°ÉÕ¤Äê¿ô¤¬¸½¤ì¤ëÅ٤ˡ¢¥æ¡¼¥¶¡¼¤¬µ¤ÉÕ¤¯¤è¤¦¥³¥ó¥Ñ¥¤¥ë»þ¤Î·Ù¹ð¥á¥Ã¥»¡¼¥¸¤¬½ÐÎϤµ¤ì¤Þ¤¹¡£Fortran µ¬³Ê¤ÇÄêµÁ¤µ¤ì¤¿Ì¾Á°ÉÕ¤Äê¿ô¤Ï¤è¤êŬÀڤˤϡ¢Æɤ߼è¤êÀìÍÑÊÑ¿ô¤È¸Æ¤Ð¤ì¤Þ¤¹¡£Æɤ߼è¤êÀìÍÑÊÑ¿ô¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿³°ÉôÃͤϸºß¤·¤Þ¤»¤ó¡£
ɸ½à Fortran 95 ¤Ç¤Ï¡¢Ì¾Á°ÉÕ¤Äê¿ô¤Ï¡¢¶è´ÖÄê¿ô¤ÎºÇÂç²¼¸Â¤ÈºÇ¾®¾å¸Â¤Îɽ¸½¤Ë¤Ï»ÈÍѤǤ¤Þ¤»¤ó¡£¤³¤ÎÀ©Ì󤬤³¤Î¥ê¥ê¡¼¥¹¤Ç¶¯À©¤µ¤ì¤Ê¤¤¤Î¤Ï¡¢´ûÃΤΥ¨¥é¡¼¤Ç¤¹¡£
¥³¡¼¥ÉÎã 2-33 Èó¶è´Ö¤ÎPARAMETER
°À¤Ç¤ÎÄê¿ô¼°
math%cat ce2-33.f95
REAL(4), PARAMETER :: R = 0.1INTERVAL(4), PARAMETER :: I4 = 0.1INTERVAL(16), PARAMETER :: I16 = 0.1INTERVAL :: XR, XIXR = R4XI = I4IF ((.NOT.(XR.SP.I16)).AND. (XI.SP.I16)) PRINT *, 'Check'ENDmath%f95 -xia ce2-33.f95
math%a.out
¸¡¾Ú
Ãí -XR
¤Ï¡¢1/10 ¤ò´Þ¤ß¤Þ¤»¤ó¤¬¡¢XI
¤Î¾ì¹ç¤Ï´Þ¤ß¤Þ¤¹¡£
Fortran 95 ·Á¼°¤Î
POINTER
¥Ý¥¤¥ó¥¿¤ò»ÈÍѤ·¤Æ¶è´Ö¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¥³¡¼¥ÉÎã 2-34 ¶è´Ö¥Ý¥¤¥ó¥¿
INTERVAL, POINTER :: PXINTERVAL :: XX => Pʸ´Ø¿ô
¥Ñ¥é¥á¡¼¥¿ÉÕ¤¶è´Ö¼°¤ÎÀë¸À¤Èɾ²Á¤Ë¤Ïʸ´Ø¿ô¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¤½¤Î¾ì¹ç¡¢Èó¶è´Öʸ´Ø¿ô¤ÎÀ©Ìó¤¬Å¬ÍѤµ¤ì¤Þ¤¹¡£
¥³¡¼¥ÉÎã 2-35 ¶è´Öʸ´Ø¿ô
math%cat ce2-35.f95
INTERVAL :: X, FF(X) = SIN(X)**2 + COS(X)**2IF(1 .IN. F([0.5])) PRINT *, 'Check'ENDmath%f95 -xia ce2-35.f95
math%a.out
Check·¿Àë¸Àʸ
·¿Àë¸Àʸ¤Ï¡¢ÊÑ¿ôʤӤÎÃæ¤ÎÊÑ¿ô¤Î¥Ç¡¼¥¿·¿¤ò»ØÄꤷ¤Þ¤¹¡£¥ª¥×¥·¥ç¥ó¤È¤·¤Æ¡¢·¿Àë¸Àʸ¤ÏÇÛÎó¤Î¼¡¸µ¤ò»ØÄꤷ¡¢Ãͤò»ÈÍѤ·¤Æ½é´ü²½¤·¤Þ¤¹¡£
¹½Ê¸
¹½Ê¸¤Ï¡¢·¿¤¬
INTERVAL
¡¢INTERVAL(4)
¡¢INTERVAL(8)
¡¢INTERVAL(16)
¤ÎINTERVAL
·¿»ØÄê»Ò¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ëÅÀ¤ò½ü¤±¤Ð¡¢Èó¶è´Ö¤Î¿ôÃͥǡ¼¥¿·¿¤Î¾ì¹ç¤ÈƱ¤¸¤Ç¤¹¡£²òÀâ
·¿Àë¸Àʸ¤ÎÆÃÀ¤Ï¡¢
INTERVAL
·¿¤Ë¤Ä¤¤¤Æ¤â¡¢Â¾¤Î¿ôÃͥǡ¼¥¿·¿¤Î¾ì¹ç¤ÈƱ¤¸¤Ç¤¹¡£À©Ìó
Èó
¥³¡¼¥ÉÎã 2-36INTERVAL
¤Î¿ôÃÍ·¿¤Î¾ì¹ç¤ÈƱ¤¸¤Ç¤¹¡£INTERVAL
¤Î·¿Àë¸Àʸ
INTERVAL :: I, J = [0.0]INTERVAL(16) :: K = [0.1, 0.2_16]INTERVAL(16) :: L = [0.1]
J
¤Ï¡¢[0.0] ¤Ë½é´ü²½¤µ¤ì¤Þ¤¹¡£K
¤Ï¡¢[0.1, 0.2] ¤ò´Þ¤à¶è´Ö¤Ë½é´ü²½¤µ¤ì¤Þ¤¹¡£L
¤Ï¡¢[0.1] ¤ò´Þ¤à¶è´Ö¤Ë½é´ü²½¤µ¤ì¤Þ¤¹¡£
WRITE
ʸ
WRITE
ʸ¤Ï¡¢ÈóINTERVAL
·¿¤ÎÊÑ¿ô¤¬½èÍý¤µ¤ì¤ë¤Î¤ÈƱ¤¸ÊýË¡¤Ç¡¢¶è´ÖÊÑ¿ô¤ò¼õ¤±Æþ¤ì¤ÆÆþÎÏ/½ÐÎϤÎʤӤò½èÍý¤·¤Þ¤¹¡£ÄêµÁºÑ¤ß¤Î¶è´ÖÊÔ½¸µ½Ò»Ò¤ò»È¤¨¤Ð¡¢¶è´Ö¥Ç¡¼¥¿¤Î½ñ¼°²½µ½Ò¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ÊÑ¿ô·²Í×ÁÇʤӤÎWRITE
ʸ¤Ï¶è´Ö¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£
READ
ʸ
READ
ʸ¤Ï¡¢ÈóINTERVAL
·¿¤ÎÊÑ¿ô¤¬½èÍý¤µ¤ì¤ë¤Î¤ÈƱ¤¸ÊýË¡¤Ç¡¢¶è´ÖÊÑ¿ô¤ò¼õ¤±Æþ¤ì¤ÆÆþÎÏ/½ÐÎϤÎʤӤò½èÍý¤·¤Þ¤¹¡£ÆþÎϤȽÐÎÏ
¶è´ÖÆþÎÏ/½ÐÎϤò¼Â¹Ô¤¹¤ë¥×¥í¥»¥¹¤Ï¾¤ÎÈó¶è´Ö¥Ç¡¼¥¿·¿¤Î¾ì¹ç¤ÈƱ¤¸¤Ç¤¹¡£
³°Éôɽ¸½
x ¤¬¡¢Ê¤Ӥˤè¤ë¡¢¤Þ¤¿¤Ï¡¢½ñ¼°²½¤µ¤ì¤¿ÆþÎÏ/½ÐÎϤòÍѤ¤¤ÆÆɤ߽ñ¤¤Ç¤¤ë³°Éô (¾®¿ô) ¿ô¤Ç¤¢¤ë¤â¤Î¤È¤·¤Þ¤¹¡£ÆâÉôŪ¤Ê¶á»÷Ãͤȳ°ÉôÃͤȤζèÊ̤˴ؤ·¤Æ¤Ï¡¢¡ÖFortran ³ÈÄ¥¡×°Ê²¼¤Î³ÆÀá¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£¤³¤Î¤è¤¦¤Ê¿ô¤Ï³°Éô¶è´Ö¤Þ¤¿¤Ï½ªÎ»ÅÀ¤Î¤¤¤º¤ì¤«¤Îɽ¸½¤Ë»È¤¨¤Þ¤¹¡£³°Éô¶è´Ö¤Ë¤Ï¡¢¼¡¤Ë¼¨¤¹ 3 ¤Ä¤Îɽ¼¨²Äǽ¤Ê·Á¼°¤¬¤¢¤ê¤Þ¤¹¡£
[X_inf, X_sup]
¤Ï¡¢»»½Ñ¶è´Ö¤òɽ¤·¤Þ¤¹¡£
[X]
¤Ï¡¢½ÌÂष¤¿»»½Ñ¶è´Ö¤Þ¤¿¤Ï [x] ¤òɽ¤·¤Þ¤¹¡£
X
¤Ï¡¢Èó½ÌÂà»»½Ñ¶è´Ö [x] + [-1,+1]uld (ºÇ½ª·å¤Îñ°Ì) ¤òɽ¤·¤Þ¤¹¡£¤³¤Î·Á¼°¤Ï¡¢Ã±¿ôɽ¸½¤Ç¤¢¤ê¡¢¤³¤³¤Ç¤Ï¶è´Ö¤Î¹½Ãۤ˺ǽª¾®¿ô·å¤¬»È¤ï¤ì¤Þ¤¹ (Y
ÊÔ½¸µ½Ò»Ò¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤)¡£¤³¤Î·Á¼°¤Ç¤Ï¸å³¤Î¥¼¥í¤¬½ÅÍפʰÕÌ£¤ò»ý¤Á¤Þ¤¹¡£¤³¤Î¤¿¤á¡¢0.10
¤Ï¶è´Ö[0.09, 0.11]
¤òɽ¤·¡¢100E-1
¤Ï¶è´Ö[9.9, 10.1]
¤òɽ¤·¡¢¤Þ¤¿¡¢0.10000000
¤Ï¶è´Ö[0.99999999, 0.100000001]
¤òɽ¤·¤Þ¤¹¡£Àµ¤Þ¤¿¤ÏÉé¤ÎÉÔÄê¶è´Ö½ªÎ»ÅÀ¤Ï¡¢¥Þ¥¤¥Ê¥¹¤Þ¤¿¤Ï¥ª¥×¥·¥ç¥ó¤Î¥×¥é¥¹µ¹æ¤ÎÀÜƬ¼¤ò»ý¤ÄÂçʸ»ú¤È¾®Ê¸»ú¤ò¶èÊ̤·¤Ê¤¤Ê¸»úÎó
INF
¤Þ¤¿¤ÏINFINITY
¤È¤·¤Æ¤ÎÆþÎÏ/½ÐÎϤǤ¹¡£¶õ¤Î¶è´Ö¤Ï¡¢³Ñ³ç¸Ì
[...]
¤Ç°Ï¤Þ¤ì¤¿Âçʸ»ú¤È¾®Ê¸»ú¤ò¶èÊ̤·¤Ê¤¤Ê¸»úÎóEMPTY
¤È¤·¤Æ¤ÎÆþÎÏ/½ÐÎϤǤ¹¡£Ê¸»úÎóEMPTY
¤Ï¡¢¤½¤ÎÁ°¸å¤ò¶õÇò¤È¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¥³¡¼¥ÉÎã 1-6 ¤ò»È¤¨¤Ð¡¢³ÈÄ¥¶è´Ö¤ò»î¤¹¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¤µ¤é¤Ë¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡Ö»»½Ñ±é»»»Ò +¡¢-¡¢*¡¢/¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
ÆþÎÏ
ÆþÎÏ»þÅÀ¤Ç¤Ï¡¢Ç¤°Õ¤Î³°Éô¶è´Ö X ¤Þ¤¿¤Ï¤½¤Î¹½À®Í×ÁǤǤ¢¤ë X_inf ¤È X_sup ¤ò¡¢
D
w.d ÊÔ½¸µ½Ò»Ò¤¬¼õ¤±Æþ¤ì¤ëǤ°Õ¤ÎÊýË¡¤Ç½ñ¼°²½¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¤½¤³¤Ç¡¢input-field¡¢input-field1¡¢input-field2 ¤¬¡¢¤½¤ì¤¾¤ì¡¢D
w'.
d¡¢D
w1.
d¡¢D
w2.
d ÊÔ½¸µ½Ò»ÒÍѤÎ͸ú¤ÊÆþÎÏ¥Õ¥£¡¼¥ë¥É¤Ç¤¢¤ë¤â¤Î¤È¤·¤Þ¤¹¡£w ¤Ï¶è´ÖÆþÎÏ¥Õ¥£¡¼¥ë¥É¤ÎÉý¤Ç¤¢¤ë¤â¤Î¤È¤·¤Þ¤¹¡£ÆþÎÏ»þ¤Ë¡¢w ¤Ï¥¼¥í¤è¤êÂ礤¯¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£¤¹¤Ù¤Æ¤Î¶è´ÖÊÔ½¸µ½Ò»Ò¤Ï¡¢°Ê²¼¤Î 3 ¤Ä¤Î·Á¼°¤Î¤É¤ì¤« 1 ¤Ä¤Î·Á¼°¤Ç¶è´Ö¥Ç¡¼¥¿¤ÎÆþÎϤò¼õ¤±Æþ¤ì¤Þ¤¹¡£
- [input-field1, input-field2]¡¢¤³¤Î¥±¡¼¥¹¤Ç¤Ï¡¢w1 + w2 = w - 3¡¢¤Þ¤¿¤Ï¡¢w = w1 + w2 + 3 ¤Ç¤¹¡£
- [input-field]¡¢¤³¤Î¥±¡¼¥¹¤Ç¤Ï¡¢w' = w -2¡¢¤Þ¤¿¤Ï¡¢w = w' +2 ¤Ç¤¹¡£
- input-field¡¢¤³¤Î¥±¡¼¥¹¤Ç¤Ï¡¢w' = w ¤Ç¤¹¡£
ºÇ½é¤Î·Á¼° (³Ñ³ç¸Ì¤Ç°Ï¤Þ¤ì¡¢¥³¥ó¥Þ¤Ç¶èÀÚ¤é¤ì¤¿ 2 ¤Ä¤Î¿ô) ¤Ï¡¢ÆëÀ÷¤ß¤Î¤¢¤ë [inf, sup] ɽ¸½¤Ç¤¹¡£
2 ÈÖÌܤηÁ¼° (³Ñ³ç¸Ì¤Ç°Ï¤Þ¤ì¤¿Ã±°ì¤Î¿ô) ¤ÏÅÀ¡¢¤Þ¤¿¤Ï½ÌÂष¤¿¶è´Ö¤òɽ¤·¤Þ¤¹¡£
3 ÈÖÌܤηÁ¼° (³Ñ³ç¸Ì¤Ê¤·) ¤Ï¶è´Ö¤Îñ¿ô·Á¼°¤Ç¤¢¤ê¡¢¤³¤³¤Ç¤Ï¶è´ÖÉý¤Î·èÄê¤ËºÇ½ªÉ½¼¨·å¤¬ÍѤ¤¤é¤ì¤Þ¤¹¡£¡ÖY ÊÔ½¸µ½Ò»Ò¤òÍѤ¤¤¿Ã±¿ôÊÔ½¸¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£¤µ¤é¤Ë¾ÜºÙ¤Ê¾ðÊó¤Ë¤Ä¤¤¤Æ¤Ï¡¢M.Schulte¡¢V.Zelov¡¢G.W.Walster¡¢D.Chiriaev Ãø¡¢¡ÖSingle-Number Interval I/O¡×¡¢¡ØDevelopments in Reliable Computing¡Ù¡¢T. Schulte¾ (Kluwer 1999ǯ) ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
ºÇÂç²¼¸Â¤¬ÆâÉôŪ¤Ëɽ¸½¤Ç¤¤Ê¤¤¾ì¹ç¤Ï¡¢Æ±¤¸¤â¤Î¤è¤ê¤â¾®¤µ¤¤¤³¤È¤¬¤ï¤«¤Ã¤Æ¤¤¤ëÆâÉôŪ¤Ê¶á»÷ÃͤؤȴݤáÀڤ겼¤²¤¬¹Ô¤ï¤ì¤Þ¤¹¡£ºÇ¾®²¼¸Â¤¬ÆâÉôŪ¤Ëɽ¸½¤Ç¤¤Ê¤¤¾ì¹ç¤Ï¡¢ÆþÎÏÃͤÈƱ¤¸¤â¤Î¤è¤ê¤âÂ礤¤¤³¤È¤¬¤ï¤«¤Ã¤Æ¤¤¤ëÆâÉôŪ¤Ê¶á»÷ÃͤؤȴݤáÀÚ¤ê¾å¤²¤¬¹Ô¤ï¤ì¤Þ¤¹¡£½ÌÂष¤¿¶è´Ö¤¬ÆâÉôŪ¤Ëɽ¸½¤Ç¤¤Ê¤¤¾ì¹ç¤Ï¡¢´Ý¤áÀڤ겼¤²¤Þ¤¿¤Ï´Ý¤áÀÚ¤ê¾å¤²¤Ë¤è¤ê¡¢ÆþÎÏÃͤÈƱ¤¸¤â¤Î¤ò´Þ¤à¤³¤È¤¬¤ï¤«¤Ã¤Æ¤¤¤ëÆâÉôŪ¤Ê
INTERVAL
¶á»÷Ãͤ¬·ÁÀ®¤µ¤ì¤Þ¤¹¡£Ê¤Ӥˤè¤ëÆþÎÏ
ÆþÎϤÎʤӹàÌܤ¬¶è´Ö¤Ç¤¢¤ë¾ì¹ç¡¢ÆþÎϵϿÆâÉô¤ÎÂбþ¤¹¤ëÍ×ÁǤϳ°Éô¤Î¶è´Ö¤Þ¤¿¤Ï¥Ì¥ëÃͤǤʤ±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
³°Éô¤Î¶è´ÖÃͤϡ¢¶è´Ö¡¢
REAL
¤Þ¤¿¤ÏINTEGER
ʸ»úÄê¿ô¤ÈƱ¤¸·Á¼°¤ò»ý¤Ä¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¶è´Ö¤ÎÃͤ¬³Ñ³ç¸Ì [...] ¤Ç°Ï¤Þ¤ì¤Ê¤¤REAL
¤Þ¤¿¤ÏINTEGER
ʸ»úÄê¿ô¤Î·Á¼°¤ò»ý¤Ä¾ì¹ç¡¢³°Éô¤Î¶è´Ö¤Ïñ¿ô¶è´Öɽ¸½ ([x] + [-1,1]uld ¡ÝºÇ½ª·å¤Ç¤Îñ°Ì) ¤ò»È¤Ã¤ÆËÝÌõ¤µ¤ì¤Þ¤¹¡£[inf, sup] ÆþÎÏ·Á¼°¤ò»È¤¦¾ì¹ç¤Ï¡¢ºÇÂç²¼¸Â (infimum) ¤È¥«¥ó¥Þ¤Î´Ö¡¢¤Þ¤¿¤Ï¡¢¥«¥ó¥Þ¤ÈºÇ¾®¾å¸Â (supremum) ¤Î´Ö¤ÇµÏ¿½ªÎ»¤¬È¯À¸¤¹¤ë²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹¡£
2 ¤Ä¤ÎϢ³¤¹¤ë¥³¥ó¥Þ¤Ë¤è¤ê»ØÄꤵ¤ì¤¿¥Ì¥ëÃͤϡ¢Âбþ¤¹¤ë¶è´Ö¤ÎʤӹàÌܤ¬Êѹ¹¤µ¤ì¤Ê¤¤¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡£
Ãí - ¶è´Ö¤ÎºÇÂç²¼¸Â¤Þ¤¿¤ÏºÇ¾®¾å¸ÂÍѤ˥̥ëÃͤò»ÈÍѤ·¤Æ¤Ï¤¤¤±¤Þ¤»¤ó¡£
¥³¡¼¥ÉÎã 2-37 ʤÓÆþÎÏ/½ÐÎÏ¥³¡¼¥É
math%cat ce2-37.f95
INTERVAL, DIMENSION(6) :: XINTEGER IDO I = LBOUND(X, 1), UBOUND(X, 1)READ(*, *) X(I)WRITE(*, *) X(I)END DOENDmath%f95 -xia ce2-37.f95
math%a.out
1.234500
[1.2344989999999997,1.2345010000000001][1.2345]
[1.2344999999999999,1.2345000000000002][-inf,2]
[-Inf,2.0][-inf]
[-Inf,-1.7976931348623157E+308][EMPTY]
[EMPTY][1.2345,1.23456]
[1.2344999999999999,1.2345600000000002]½ñ¼°ÉÕ¤ÆþÎÏ/½ÐÎÏ
¼¡¤Ë¡¢¶è´ÖÊÔ½¸µ½Ò»Ò¤ò¼¨¤·¤Þ¤¹¡£
¶è´ÖÊÔ½¸µ½Ò»Ò¤Ï°Ê²¼¤Î¤è¤¦¤Ê»ØÄê¤ò¹Ô¤¤¤Þ¤¹¡£
- w ¤Ï¡¢¥Õ¥£¡¼¥ë¥É¤¬Àêͤ¹¤ë°ÌÃ֤οô¤ò»ØÄꤷ¤Þ¤¹¡£
- d ¤Ï¡¢¾®¿ôÅÀ¤Î±¦Â¦¤Î·å¿ô¤ò»ØÄꤷ¤Þ¤¹¡£
E
e ¤Ï»Ø¿ô¥Õ¥£¡¼¥ë¥É¤ÎÉý¤ò»ØÄꤷ¤Þ¤¹¡£w ¤È d ¥Ñ¥é¥á¡¼¥¿¤Ïɬ¤º»ÈÍѤ·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
E
e ¤Ï¡¢¥ª¥×¥·¥ç¥ó¤Ç¤¹¡£w ¤È d »ØÄê»Ò¤Ïɬ¤ºÂ¸ºß¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢°Ê²¼¤ÎÀ©Ìó¤Ë½¾¤ï¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
- e ¡ä 0 ¤Ç¤¢¤ë¤³¤È¡£
F
ÊÔ½¸µ½Ò»Ò¤ò»È¤¦¾ì¹ç¤Ï¡¢w ¡æ 0¡¢F
°Ê³°¤Î¤¹¤Ù¤Æ¤ÎÊÔ½¸µ½Ò»Ò¤ò»È¤¦¾ì¹ç¤Ï¡¢w ¡ä 0¤Ç¤¢¤ë¤³¤È¡£ÆþÎÏÆ°ºî
½ñ¼°ÉÕ¤¶è´ÖÆþÎϤÎÆþÎÏÆ°ºî¤Ï¡¢¤¹¤Ù¤Æ¤Î¾ì¹ç¤Ç³ÊǼ¤µ¤ì¤¿ÆâÉôŪ¤Ê¶á»÷Ãͤ¬ÆþÎÏʸ»úÎó¤Çɽ¤µ¤ì¤ë³°ÉôÃͤò´Þ¤à¤È¤¤¤¦ÅÀ¤ò½ü¤±¤Ð¡¢Â¾¤Î¿ôÃͥǡ¼¥¿·¿¤Î¾ì¹ç¤ÈƱ¤¸¤Ç¤¹¡£¤³¤Î¤¿¤á¡¢Êñ´Þ¤Ç¤Ï¡¢¶è´Ö½ªÎ»ÅÀ¤Î´Ý¤á¤¬É¬Íפˤʤ뤳¤È¤¬¤¢¤ê¤Þ¤¹¡£Ç¤°Õ¤ÎÆþÎ϶è´Öʸ»ú¤ò
input_string
¡¢¤³¤ì¤ËÂбþ¤¹¤ë³°ÉôÃÍ ev ¤ò (input_string)¡¢ÆþÎÏÊÑ´¹¸å¤Î·ë²Ì¤È¤·¤Æ¤ÎÆâÉôŪ¤Ê¶á»÷ÃͤòX
¤È¤¹¤ë¤È¡¢¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
- ev(input_string) ¢¼
X
ÆþÎϲáÄø¤Ç¤Ï¡¢¤¹¤Ù¤Æ¤Î¶è´ÖÊÔ½¸µ½Ò»Ò¤ÏƱ¤¸°ÕÌ£ÏÀ¤ò»ý¤Á¤Þ¤¹¡£¥Ñ¥é¥á¡¼¥¿ w ¤ÎÃͤϡ¢³°Éô¤Î¶è´Ö¤ò´Þ¤à¥Õ¥£¡¼¥ë¥ÉÉý¤Ç¤¢¤ê¡¢e ¤ÎÃͤÏ̵»ë¤µ¤ì¤Þ¤¹¡£
½ÐÎÏÆ°ºî
½ñ¼°ÉÕ¤¶è´Ö½ÐÎϤνÐÎÏÆ°ºî¤Ï¡¢¤¹¤Ù¤Æ¤Î¾ì¹ç¤Ç½ÐÎÏʸ»úÎó¤Î»»½ÑÃͤ¬½ÐÎÏʤӤÎÆâÉôŪ¤Ê¥Ç¡¼¥¿¹àÌÜ»»½ÑÃͤò´Þ¤Þ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ÅÀ¤ò½ü¤±¤Ð¡¢Â¾¤Î¥Ç¡¼¥¿·¿¤Î¾ì¹ç¤ÈƱ¤¸¤Ç¤¹¡£¤³¤Î¤¿¤á¡¢Êñ´Þ¤Ç¤Ï¶è´Ö½ªÎ»ÅÀ¤Î´Ý¤á¤¬É¬Íפˤʤ뤳¤È¤â¤¢¤ê¤Þ¤¹¡£Ç¤°Õ¤ÎÆâÉôŪ¤Ê¶è´Ö
X
¤¬Í¿¤¨¤é¤ì¤ë¤È¡¢¤³¤ì¤ËÂбþ¤¹¤ë½ÐÎÏʸ»úoutput_string
¤È³°ÉôÃÍ ev(output_string) ¤Ï¡¢¼¡¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤Þ¤¹¡£
X
ev(output_string)
½ÐÎϲáÄø¤Ç¤Ï¡¢°Û¤Ê¤ëÊÔ½¸µ½Ò»Ò¤òÍѤ¤¤ë¤È¡¢¶è´Ö½ÐÎÏʤӹàÌܤζè´ÖÃͤ¬°Û¤Ê¤ë·Á¼°¤ò»ÈÍѤ·¤Æɽ¼¨¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£¤·¤«¤·¡¢Êñ´Þ¤ÎÀ©Ìó¤Ï¼¡¤Î¤³¤È¤òÍ׵ᤷ¤Þ¤¹¡£
- ev(input_string)
![]()
X
ev(output_string)
½ñ¼°ÉÕ¤ÆþÎÏ
¡Ö½ñ¼°ÉÕ¤ÆþÎÏ/½ÐÎϡפ˷Ǻܤ·¤¿¤¹¤Ù¤Æ¤Î¶è´ÖÊÔ½¸µ½Ò»Ò¤Ë¤Ä¤¤¤Æ¡¢½ñ¼°²½½ÐÎϤÎÆ°ºî¤ÏƱ¤¸¤Ç¤¹¡£¡ÖÆþÎϡפDzòÀ⤷¤Æ¤¤¤ë¤¹¤Ù¤Æ¤ÎÆþÎϤ¬¼õ¤±Æþ¤ì¤é¤ì¤Þ¤¹¡£
ÆþÎÏ¥Õ¥£¡¼¥ë¥É¤¬¾®¿ôÅÀ¤ò´Þ¤à¾ì¹ç¡¢d ¤ÎÃͤÏ̵»ë¤µ¤ì¤Þ¤¹¡£ÆþÎÏ¥Õ¥£¡¼¥ë¥É¤Ç¾®¿ôÅÀ¤¬¾Êά¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¡¢d ¤ÏÆþÎÏÃͤξ®¿ôÅÀ¤Î°ÌÃÖ¤òɽ¤·¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢ÆþÎÏÃͤÏÀ°¿ô¤È¤·¤ÆÆɤ߼è¤é¤ì¤Æ¡¢10(-d) ¤¬¾è¤¼¤é¤ì¤Þ¤¹¡£
¥³¡¼¥ÉÎã 2-38 ÆþÎÏÃͤξ®¿ôÅÀ¤Ï½ñ¼°»ØÄê»Ò¤ËÍ¥À褹¤ë
¥³¡¼¥ÉÎã 2-39 ¶è´Ö¤Î¤¹¤Ù¤Æ¤ÎÊÔ½¸µ½Ò»Ò¤Ïñ¿ô¤ÎÆþÎϤò¼õ¤±Æþ¤ì¤ë
math%cat ce2-38.f95
INTERVAL :: X, YREAD(*, '(F10.4)') XREAD(*, '(F10.4)') YWRITE(*, *)'1234567890123456789012345678901234567890-position'WRITE(*, '(1X, E19.6)') XWRITE(*, '(1X, E19.6)') YENDmath%f95 -xia ce2-38.f95
math%a.out
[.1234]
[1234]
1234567890123456789012345678901234567890-position0.123400E+0000.123400E+000
math%cat ce2-39.f95
INTERVAL, DIMENSION(9) :: XINTEGER :: IREAD(*, '(Y25.3)') X(1)READ(*, '(E25.3)') X(2)READ(*, '(F25.3)') X(3)READ(*, '(G25.3) ') X(4)READ(*, '(VE25.3)') X(5)READ(*, '(VEN25.3)') X(6)READ(*, '(VES25.3)') X(7)READ(*, '(VF25.3)') X(8)READ(*, '(VG25.3)') X(9)DO I = LBOUND(X, 1), UBOUND(X, 1)PRINT *, X(I)END DOEND%mathf95 -xia ce2-39.f95
%matha.out
1.23
1.23
1.23
1.23
1.23
1.23
1.23
1.23
1.23
[1.2199999999999999,1.2400000000000003][1.2199999999999999,1.2400000000000003][1.2199999999999999,1.2400000000000003][1.2199999999999999,1.2400000000000003][1.2199999999999999,1.2400000000000003][1.2199999999999999,1.2400000000000003][1.2199999999999999,1.2400000000000003][1.2199999999999999,1.2400000000000003][1.2199999999999999,1.2400000000000003]¶õÇò¤ÎÊÔ½¸ (BZ)
¸å³¤Î¥¼¥í¤Ïñ¿ô¤Î¶è´ÖÆþÎϤǤϰÕÌ£¤ò»ý¤Ä¤Î¤Ç¡¢¶è´Ö¥ê¥¹¥È¹àÌܤÎÆþÎϤΤ¿¤á¤Ë¶õÇò¤ò½èÍý¤¹¤ë¤È¡¢
¥³¡¼¥ÉÎã 2-40BZ
À©¸æÊÔ½¸µ½Ò»Ò¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£BZ
µ½Ò»Ò
math%cat ce2-40.f95
INTERVAL :: XREAL(4) :: RREAD(*, '(BZ, F40.6 )') XREAD(*, '(BZ, F40.6 )') RWRITE(*, '(VF40.3)') XWRITE(*, '(F40.3)') RENDmath%f95 -xia ce2-40.f95
math%a.out
[.9998 ].9998[ 0.999, 1.000]1.000·å°ÜÆ°¿ô (P)
Y
¡¢VE
¡¢VEN
¡¢VES
¡¢VF
¡¢VG
µ½Ò»ÒÍѤηå°ÜÆ°¿ô¤È¡¢¶è´Ö¤ËŬÍѤµ¤ì¤¿¾ì¹ç¤ÎF
¡¢E
¡¢EN
¡¢ES
¡¢G
ÊÔ½¸µ½Ò»ÒÍѤηå°ÜÆ°¿ô¤ÏP
ÊÔ½¸µ½Ò»Ò¤ÇÊѹ¹¤Ç¤¤Þ¤¹¡£P
ÊÔ½¸µ½Ò»Ò¤Ï¡¢¶è´Ö¤Î½ªÎ»ÅÀ¤òREAL
Ãͤξì¹ç¤ÈƱÍͤÎÊýË¡¤Ç·å°ÜÆ°¤·¤Þ¤¹¡£½ñ¼°ÉÕ¤½ÐÎÏ
¶è´Ö¤ËŬÍѤµ¤ì¤¿¡¢
F
¡¢E
¡¢G
ÊÔ½¸µ½Ò»Ò¤Ï¡¢F
¤Þ¤¿¤ÏG
ÊÔ½¸µ½Ò»Ò¤¬ÍѤ¤¤é¤ì¤ë¤È½ÐÎÏ¥Õ¥£¡¼¥ë¥É¤¬F
ÊÔ½¸µ½Ò»Ò¤ò»ÈÍѤ·¤Æ½ñ¼°²½¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¤È¤¤¤¦ÅÀ¤ò½ü¤±¤Ð¡¢Y
ÊÔ½¸µ½Ò»Ò¤ÈƱ¤¸°ÕÌ£¤ò»ý¤Á¤Þ¤¹¡£E
ÊÔ½¸µ½Ò»Ò¤¬»ÈÍѤµ¤ì¤ë¾ì¹ç¤Ï¡¢½ÐÎÏ¥Õ¥£¡¼¥ë¥É¤ÏE
ÊÔ½¸µ½Ò»Ò¤Ë¤è¤êµ½Ò¤µ¤ì¤¿·Á¼°¤ò¾ï¤Ë»ý¤Ä¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£½ñ¼°ÉÕ¤¶è´Ö½ÐÎϤϼ¡¤Î¤è¤¦¤ÊÆÃÀ¤ò»ý¤Á¤Þ¤¹¡£
- Àµ¤Î¶è´Ö½ªÎ»ÅÀ¤Ï¥ª¥×¥·¥ç¥ó¤Î¥×¥é¥¹µ¹æ¤Ç»Ï¤Þ¤ê¤Þ¤¹¡£
- Éé¤Î½ªÎ»ÅÀ¤Ï¾ï¤ËÀè¹Ô¤¹¤ë¥Þ¥¤¥Ê¥¹µ¹æ¤Ç»Ï¤Þ¤ê¤Þ¤¹¡£
- ¥¼¥í¤Î¶è´Ö½ªÎ»ÅÀ¤ÏÀè¹Ô¤¹¤ë¥×¥é¥¹¤Þ¤¿¤Ï¥Þ¥¤¥Ê¥¹µ¹æ¤Ç»Ï¤Þ¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£
VF
¡¢VE
¤Þ¤¿¤ÏVG
ÊÔ½¸µ½Ò»Ò¤Ï¶è´Ö¤Î [inf, sup] ·Á¼°¤Î½ñ¼°²½¤òÄ󶡤·¤Þ¤¹¡£Y
ÊÔ½¸µ½Ò»Ò¤Ïñ¿ô¶è´Ö½ÐÎϤòÀ¸À®¤·¤Þ¤¹¡£VF
¡¢VE
¡¢VG
¡¢Y
ÊÔ½¸µ½Ò»Ò¤Ë°ìÃפ¹¤ë½ÐÎϤÎʤӹàÌܤ¬¶è´Ö°Ê³°¤ÎǤ°Õ¤Î·¿¤Ç¤¢¤ë¾ì¹ç¤Ï¡¢½ÐÎÏ¥Õ¥£¡¼¥ë¥ÉÁ´ÂΤ¬¥¢¥¹¥¿¥ê¥¹¥¯ (¡Ö*¡×) ¤ÇËþ¤¿¤µ¤ì¤Þ¤¹¡£VF
¡¢VE
¡¢VG
ÊÔ½¸µ½Ò»Ò¤Ç¤Î½ÐÎÏ¥Õ¥£¡¼¥ë¥É¤ÎÉý w ¤¬¶ö¿ô¤Î¾ì¹ç¡¢¤½¤Î¥Õ¥£¡¼¥ë¥É¤Ï 1 ¤Ä¤ÎÀè¹Ô¤¹¤ë¶õÇòʸ»ú¤ÇËþ¤¿¤µ¤ì¡¢½ÐÎÏ¥Õ¥£¡¼¥ë¥ÉÉý¤Ë¤Ï w-1 ¤¬»È¤ï¤ì¤Þ¤¹¡£É½ 2-13 ¤Ï¡¢½ÐÎϤ˴ؤ¹¤ë»Ø¿ô¥Õ¥£¡¼¥ë¥É¡¢e ¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤò¼¨¤·¤Æ¤¤¤Þ¤¹¡£
ɽ 2-13 ½ÐÎÏÊÔ½¸µ½Ò»Ò¤Î»Ø¿ô¥Õ¥£¡¼¥ë¥É¥Ç¥Õ¥©¥ë¥ÈÃÍ Y,
E,
EN,
ES,
G
3 3 3 VE,
VEN,
VES,
VG
2 2 3
Y
ÊÔ½¸µ½Ò»Ò¤òÍѤ¤¤¿Ã±¿ôÊÔ½¸
Y
ÊÔ½¸µ½Ò»Ò¤Ïñ¿ô·Á¼°¤Ç¤Î³ÈÄ¥¶è´ÖÃͤò½ñ¼°²½¤·¤Þ¤¹¡£³°Éô¶è´ÖÃͤ¬½ÌÂष¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢½ÐÎÏ·Á¼°¤Ï
REAL
¤Þ¤¿¤ÏINTEGER
¤Îʸ»úÄê¿ô (³Ñ³ç¸Ì[
...]
¤Ç°Ï¤Þ¤Ê¤¤X
) ¤Î¾ì¹ç¤ÈƱ¤¸¤Ç¤¹¡£³°ÉôÃͤϽÌÂष¤Æ¤¤¤Ê¤¤»»½Ñ¶è´Ö
[x] + [-1,1]uld ¤ËËÝÌõ¤µ¤ì¤Þ¤¹¡£
Y
ÊÔ½¸µ½Ò»Ò¤Î°ìÈÌ·Á¼°¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£
Y
w.dE
ed »ØÄê»Ò¤Ï¡¢Í¸ú·å¤Îɽ¼¨ÍѤ˳ä¤êÅö¤Æ¤é¤ì¤¿¾ì½ê¤Î¿ô¤òÀßÄꤷ¤Þ¤¹¡£¤·¤«¤·¡¢¼ÂºÝ¤Ëɽ¼¨¤µ¤ì¤ë·å¿ô¤Ï¡¢w ¤ÎÃͤȳ°Éô¶è´Ö¤ÎÉý¤Ë°Í¸¤·¤Æ¡¢d ¤è¤ê¿¤¤¤³¤È¤â¡¢¾¯¤Ê¤¤¤³¤È¤â¤¢¤ê¤Þ¤¹¡£
e »ØÄê»Ò (¸ºß¤¹¤ì¤Ð) ¤Ï¡¢»Ø¿ôÍѤ˳ÎÊݤµ¤ì¤¿½ÐÎϲ¼°Ì¥Õ¥£¡¼¥ë¥É¤Î¾ì½ê¤Î¿ô¤òÄêµÁ¤·¤Þ¤¹¡£
e »ØÄê»Ò¤¬Â¸ºß¤¹¤ë¤È¡¢½ÐÎÏ¥Õ¥£¡¼¥ë¥É¤Ï (
F
ÊÔ½¸µ½Ò»Ò¤È¤ÏÈ¿ÂФË)E
ÊÔ½¸µ½Ò»Ò¤Ë¤è¤êµ½Ò¤µ¤ì¤¿·Á¼°¤ò»ý¤Ä¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£Ã±¿ô¶è´Öɽ¸½¤Ï¡¢[inf, sup] ɽ¸½¤è¤ê¤âÀµ³ÎÀ¤ËÎô¤ë¤³¤È¤¬¤·¤Ð¤·¤Ð¤¢¤ê¤Þ¤¹¡£¤³¤ì¤Ï¡¢Æä˶è´Ö¤Þ¤¿¤Ï¶è´Ö¤Îñ¿ôɽ¸½¤¬¥¼¥í¤Þ¤¿¤Ï̵¸ÂÂç¤ò´Þ¤ó¤Ç¤¤¤ë¾ì¹ç¤Ë¤¢¤Æ¤Ï¤Þ¤ê¤Þ¤¹¡£
¤¿¤È¤¨¤Ð¡¢[-15, +75] ¤Îñ¿ôɽ¸½¤Î³°ÉôÃͤϡ¢ev(
[0E2]
) = [-100, +100]¤Ç¤¹¡£[1, ¡ç] ¤Îñ¿ôɽ¸½¤Î³°ÉôÃͤϡ¢ev([0E+inf]
) =¤Ç¤¹¡£
¤³¤ì¤é¤Î¾ì¹ç¡¢ÆâÉôŪ¤Ê¶á»÷ÃͤΤè¤ê¶¹¤¤³°Éôɽ¸½¤òÀ¸À®¤¹¤ë¤¿¤á¤Ë¡¢w ʸ»ú¤ÎÆþÎÏ¥Õ¥£¡¼¥ë¥ÉÆâÉô¤ÎºÇÂçɽ¼¨²Äǽ¤Ê͸ú·å¿ô¤òɽ¼¨¤¹¤ë d' ¡æ 1¤È¶¦¤Ë¡¢
¥³¡¼¥ÉÎã 2-41VG
w.d'E
e ÊÔ½¸µ½Ò»Ò¤¬»È¤ï¤ì¤Þ¤¹¡£Y
[inf, sup] ·Á¼°¤Î½ÐÎÏ
math%cat ce2-41.f95
INTERVAL :: X = [-1, 10]INTERVAL :: Y = [1, 6]WRITE(*, '(Y20.5)') XWRITE(*, '(Y20.5)') YENDmath%f95 -xia ce2-41.f95
math%a.out
[-1. ,0.1E+002][1.0 ,6.0 ]w ʸ»ú½ÐÎÏ¥Õ¥£¡¼¥ë¥ÉÆâÉô¤Î½ÌÂष¤¿¶è´Ö¤Îɽ¼¨¤¬²Äǽ¤Ç¤¢¤ì¤Ð¡¢Ã±¿ô¤Î½ÐÎÏʸ»úÎó¤ÏÄ̾ï¤Î³Ñ³ç¸Ì
[
...]
¤Ç°Ï¤Þ¤ì¡¢·ë²Ì¤¬ÅÀ¤Ç¤¢¤ë¤³¤È¼¨¤·¤Þ¤¹¡£½½Ê¬¤Ê¥Õ¥£¡¼¥ë¥ÉÉý¤¬¤¢¤ì¤Ð¡¢¤è¤êÂ礤¤Í¸ú·å¿ô¤òɽ¼¨¤Ç¤¤ë¤«¤É¤¦¤«¤Ë±þ¤¸¤Æ¡¢
¥³¡¼¥ÉÎã 2-42E
¤Þ¤¿¤ÏF
ÊÔ½¸µ½Ò»Ò¤¬»ÈÍѤµ¤ì¤Þ¤¹¡£E
¤ÈF
ÊÔ½¸µ½Ò»Ò¤ò»ÈÍѤ·¤¿É½¼¨·å¿ô¤¬Æ±¤¸¤Ç¤¢¤ì¤Ð¡¢F
ÊÔ½¸µ½Ò»Ò¤¬»ÈÍѤµ¤ì¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£Y
w.d ½ÐÎÏ
catmath% cat ce2-42.f95
WRITE(*, *) '1234567890123456789012345678901234567890-position'WRITE(*, '(1x, F20.6)') [1.2345678, 1.23456789]WRITE(*, '(1x, F20.6)') [1.234567, 1.2345678]WRITE(*, '(1x, F20.6)') [1.23456, 1.234567]WRITE(*, '(1x, F20.6)') [1.2345, 1.23456]WRITE(*, '(1x, F20.6)') [1.5111, 1.5112]WRITE(*, '(1x, F20.6)') [1.511, 1.512]WRITE(*, '(1x, F20.6)') [1.51, 1.52]WRITE(*, '(1x, F20.6)') [1.5, 1.5]ENDmath%f95 -xia ce2-42.f95
math%a.out
1234567890123456789012345678901234567890-position1.23456791.2345671.234561.23451.5111.511.5[ 1.50000000000]¶è´ÖÉý¤¬Áý¤¨¤ë¤È¡¢Ã±¿ôɽ¸½¤Çɽ¼¨¤µ¤ì¤ë·å¿ô¤Ï¸º¾¯¤·¤Þ¤¹¡£¶è´Ö¤¬½ÌÂष¤Æ¤¤¤ë¤È¡¢»Ä¤ê¤Î¤¹¤Ù¤Æ¤Î°ÌÃÖ¤¬¥¼¥í¤ÇËä¤á¤é¤ì¡¢½ÌÂष¤¿¶è´Ö¤ÎÃͤ¬Àµ³Î¤Ëɽ¤µ¤ì¤ë¾ì¹ç¤Ï³Ñ³ç¸Ì¤¬Äɲ䵤ì¤Þ¤¹¡£
ÁȤ߹þ¤ß¤Î´Ø¿ô
¥³¡¼¥ÉÎã 2-43NDIGITS
(ɽ 2-21 ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤) ¤Ï¡¢Ã±¿ô·Á¼°¤ò»È¤Ã¤¿¶è´ÖÊÑ¿ô¤Þ¤¿¤ÏÇÛÎó¤Î½ñ¤½Ð¤·¤ËɬÍפʺÇÂç¾å°Ì·å¿ô¤òÊÖ¤·¤Þ¤¹¡£NDIGITS
ÁȤ߹þ¤ß´Ø¿ô¤ò»ÈÍѤ·¤¿Y
w.d ½ÐÎÏ
math%cat ce2-43.f95
INTEGER :: I, ND, T, D, DIM PARAMETER(D=5) ! ¥Ç¥Õ¥©¥ë¥È¤Î·å¿ô PARAMETER(DIM=8) INTERVAL, DIMENSION(DIM) :: X CHARACTER(20) :: FMT X = (/ [1.2345678, 1.23456789], & [1.234567, 1.2345678], & [1.23456, 1.234567], & [1.2345, 1.23456], & [1.5111, 1.5112], & [1.511, 1.512], & [1.51, 1.52], & [1.5]/) ND=0 DO I=1, DIM T = NDIGITS(X(I)) IF(T == EPHUGE(T)) THEN ! ¶è´Ö¤Ï½ÌÂष¤Æ¤¤¤ë ND = MAX(ND, D) ELSE ND = MAX( ND, T ) ENDIF END DO WRITE(FMT, '(A2, I2, A1, I1, A1)') '(E', 10+ND, '.', ND, ')' DO I=1, DIM WRITE(*, FMT) X(I) END DO END math%f95 -xia ce2-43.f95
math%a.out
0.12345679E+001 0.1234567 E+001 0.123456 E+001 0.12345 E+001 0.1511 E+001 0.151 E+001 0.15 E+001 [ 0.15000000E+001]Æɤߤ䤹¤¯¤¹¤ë¤¿¤á¡¢¾®¿ôÅÀ¤Ï¾ï¤Ë½ÐÎÏ¥Õ¥£¡¼¥ë¥É¤Î±¦Â¦¤«¤é¿ô¤¨¤Æ¡¢p = e + d + 4¤Î°ÌÃÖ¤ËÇÛÃÖ¤µ¤ì¤Þ¤¹¡£
¥³¡¼¥ÉÎã 2-44 {Y
,F
,E
,G
}w.d ½ÐÎϤǤϡ¢d ¤Ï¾å°Ì·å¤ÎºÇ¾®Ãͤòɽ¼¨ÀßÄꤹ¤ë
math%cat ce2-44.f95
INTERVAL :: X = [1.2345678, 1.23456789]INTERVAL :: Y = [1.5]WRITE(*, *) '1234567890123456789012345678901234567890-position'WRITE(*, '(1X, F20.5)') XWRITE(*, '(1X, F20.5)') YWRITE(*, '(1X, 1E20.5)') XWRITE(*, '(1X, 1E20.5)') YWRITE(*, '(1X, G20.5)') XWRITE(*, '(1X, G20.5)') YWRITE(*, '(1X, Y20.5)') XWRITE(*, '(1X, Y20.5)') YENDmath%f95 -xia ce2-44.f95
math%a.out
1234567890123456789012345678901234567890-position1.2345679[ 1.5000000000]0.12345E+001[ 0.15000E+001]1.2345679[ 1.5000000000]1.2345679[ 1.5000000000]»Ø¿ôÉô¤Î¿ô»ú¤Î¿ô¤Ï¡¢¥ª¥×¥·¥ç¥ó¤Î e »ØÄê»Ò¤Ç»ØÄꤷ¤Þ¤¹¡£»Ø¿ôÉô¤Î¿ô¤¬»ØÄꤵ¤ì¤ë¾ì¹ç¡¢w ¤Ï¾¯¤Ê¤¯¤È¤â¡¢d + e + 7 ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
¥³¡¼¥ÉÎã 2-45Y
w.dE
e ½ÐÎÏ (e »ØÄê»Ò¤ÎÍÑË¡)
math%cat ce2-45.f95
INTERVAL :: X = [1.2345, 1.2346]INTERVAL :: Y = [3.4567, 3.4568]INTERVAL :: Z = [1.5]WRITE(*, *) '1234567890123456789012345678901234567890-position'WRITE(*, '(1X, Y19.5E4)') XWRITE(*, '(1X, Y19.5E4)') YWRITE(*, '(1X, Y19.5E4)') ZWRITE(*, '(1X, Y19.5E3)') XWRITE(*, '(1X, Y19.5E3)') YWRITE(*, '(1X, Y19.5E3)') ZENDmath%f95 -xia ce2-45.f95
math%a.out
1234567890123456789012345678901234567890-position0.1234 E+00010.3456 E+0001[ 0.15000E+0001]0.1234 E+0010.3456 E+001[ 0.15000E+001]
E
ÊÔ½¸µ½Ò»Ò
E
ÊÔ½¸µ½Ò»Ò¤Ï¡¢Y
ÊÔ½¸µ½Ò»Ò¤Îñ¿ô E ·Á¼°¤ò»ÈÍѤ·¤Æ¡¢¶è´Ö¥Ç¡¼¥¿¹àÌܤò½ñ¼°²½¤·¤Þ¤¹¡£¥³¡¼¥ÉÎã 2-46
E
w.dE
eE
w.dE
e ÊÔ½¸µ½Ò»Ò
math%cat ce2-46.f95
INTERVAL :: X = [1.2345678, 1.23456789] INTERVAL :: Y = [1.5] WRITE(*, *) '1234567890123456789012345678901234567890-position' WRITE(*, '(1X, E20.5)') X WRITE(*, '(1X, E20.5E3)') X WRITE(*, '(1X, E20.5E3)') Y WRITE(*, '(1X, E20.5E4)') X WRITE(*, '(1X, E20.5E2)') X END math%f95 -xia ce2-46.f95
math%a.out
1234567890123456789012345678901234567890-position 0.12345E+001 0.12345E+001 [ 0.15000E+001] 0.12345E+0001 0.12345E+01
F
ÊÔ½¸µ½Ò»Ò
F
ÊÔ½¸µ½Ò»Ò¤Ï¡¢¶è´Ö¤ÎY
ÊÔ½¸µ½Ò»Ò¤ÎF
·Á¼°¤À¤±¤ò»È¤Ã¤Æ¡¢¶è´Ö¥Ç¡¼¥¿¹àÌܤò½ñ¼°²½¤·¤Þ¤¹¡£¤³¤Î°ìÈÌ·Á¼°¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£
F
w.d¥³¡¼¥ÉÎã 2-47
F
µ½Ò»Ò¤ò»È¤¦¤È¡¢d ¤ò»ØÄꤹ¤ë¾ì¹ç¤è¤ê¤â¾å°Ì¤Î·å¤òɽ¼¨¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£É½¼¨¤µ¤ì¤Ê¤¤·å¤ËÂбþ¤¹¤ë°ÌÃ֤϶õÇò¤ÇËä¤á¤é¤ì¤Þ¤¹¡£F
w.d ÊÔ½¸µ½Ò»Ò
math%cat ce2-47.f95
INTERVAL :: X = [1.2345678, 1.23456789]INTERVAL :: Y = [2.0]WRITE(*, *) '1234567890123456789012345678901234567890-position'WRITE(*, '(1X, F20.4)') XWRITE(*, '(1X, E20.4)') XWRITE(*, '(1X, F20.4)') YWRITE(*, '(1X, E20.4)') YENDmath%f95 -xia ce2-47.f95
math%a.out
1234567890123456789012345678901234567890-position1.23456790.1234E+001[ 2.000000000][ 0.2000E+001]
G
ÊÔ½¸µ½Ò»Ò
G
ÊÔ½¸µ½Ò»Ò¤Ï¡¢Ã±¿ôE
¤Þ¤¿¤ÏY
ÊÔ½¸µ½Ò»Ò¤ÎF
·Á¼°¤ò»È¤Ã¤Æ¡¢¶è´Ö¥Ç¡¼¥¿¹àÌܤò½ñ¼°²½¤·¤Þ¤¹¡£¤³¤Î°ìÈÌ·Á¼°¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£¥³¡¼¥ÉÎã 2-48
G
w.dE
eG
w.dE
e ÊÔ½¸µ½Ò»Ò
math%cat ce2-48.f95
INTERVAL :: X = [1.2345678, 1.23456789]WRITE(*, *) '1234567890123456789012345678901234567890-position'WRITE(*, '(1X, G20.4)') XWRITE(*, '(1X, G20.4E3)') XENDmath%f95 -xia ce2-48.f95
math%a.out
1234567890123456789012345678901234567890-position1.23456790.1234E+001
Ãí -F
µ½Ò»Ò¤Ë½¾¤Ã¤Æ¶è´Ö¤Î½ªÎ»ÅÀ¤¬½ÐÎϤǤ¤Ê¤¤¾ì¹ç¡¢G
ÊÔ½¸µ½Ò»Ò¤ÏE
µ½Ò»Ò¤ò»ÈÍѤ·¤Þ¤¹¡£
VE
ÊÔ½¸µ½Ò»Ò
VE
ÊÔ½¸µ½Ò»Ò¤Î°ìÈÌ·Á¼°¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£
VE
w.dE
e
Xd
¤¬¡¢E
w'.d ÊÔ½¸µ½Ò»Ò¤ò»ÈÍѤ·¤¿Í¸ú¤Ê³°ÉôÃͤǤ¢¤ë¤â¤Î¤È¤·¤Þ¤¹¡£VE
ÊÔ½¸µ½Ò»Ò¤Ï¡¢¶è´Ö¥Ç¡¼¥¿¹àÌܤò¼¡¤Î·Á¼°¤Ç½ÐÎϤ·¤Þ¤¹¡£
[X_inf,X_sup]
¡¢¤¿¤À¤·¡¢w' = (w-3)/2³°ÉôÃÍ
¥³¡¼¥ÉÎã 2-49X_inf
¤ÈX_sup
¤Ï¡¢¤½¤ì¤¾¤ì¡¢¶è´Ö½ÐÎÏʤӹàÌܤκÇÂç²¼¸Â¤ÈºÇ¾®¾å¸Â¤Ë´Ø¤¹¤ë²¼¸Â¤È¾å¸Â¤Ç¤¹¡£VE
¤Î½ÐÎÏ
math%cat ce2-49.f95
INTERVAL :: X = [1.2345Q45, 1.2346Q45]WRITE(*, *) '1234567890123456789012345678901234567890-position'WRITE(*, '(1X, VE25.3)') XWRITE(*, '(1X, VE33.4E4)') XENDmath%f95 -xia ce2-49.f95
math%a.out
1234567890123456789012345678901234567890-position[ 0.123E+046, 0.124E+046][ 0.1234E+0046, 0.1235E+0046]
VEN
ÊÔ½¸µ½Ò»Ò
VEN
ÊÔ½¸µ½Ò»Ò¤Î°ìÈÌ·Á¼°¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£
VEN
w.dE
e
X_inf
¤ÈX_sup
¤¬¡¢EN
w'.d ÊÔ½¸µ½Ò»Ò¤ò»È¤Ã¤Æɽ¼¨¤µ¤ì¤ë͸ú¤Ê³°ÉôÃͤǤ¢¤ë¤â¤Î¤È¤·¤Þ¤¹¡£VEN
ÊÔ½¸µ½Ò»Ò¤Ï¡¢¶è´Ö¥Ç¡¼¥¿¹àÌܤò¼¡¤Î·Á¼°¤Ç½ÐÎϤ·¤Þ¤¹¡£
[X_inf,X_sup]
¡¢¤¿¤À¤·¡¢w' = (w-3)/2³°ÉôÃÍ
¥³¡¼¥ÉÎã 2-50X_inf
¤ÈX_sup
¤Ï¡¢¤½¤ì¤¾¤ì¡¢¶è´Ö½ÐÎÏʤӹàÌܤκÇÂç²¼¸Â¤ÈºÇ¾®¾å¸Â¤Ç¤¹¡£VEN
¤Î½ÐÎÏ
math%cat ce2-50.f95
INTERVAL :: X = [1024.82]WRITE(*, *) '1234567890123456789012345678901234567890-position'WRITE(*, '(1X, VEN25.3)') XWRITE(*, '(1X, VEN33.4E4)') XENDmath%f95 -xia ce2-50.f95
math%a.out
1234567890123456789012345678901234567890-position[ 1.024E+003, 1.025E+003][ 1.0248E+0003, 1.0249E+0003]
VES
ÊÔ½¸µ½Ò»Ò
VES
ÊÔ½¸µ½Ò»Ò¤Î°ìÈÌ·Á¼°¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£
VES
w.dE
e
X_inf
¤ÈX_sup
¤¬¡¢ES
w'.d ÊÔ½¸µ½Ò»Ò¤ò»ÈÍѤ·¤¿Í¸ú¤Ê³°ÉôÃͤǤ¢¤ë¤â¤Î¤È¤·¤Þ¤¹¡£VES
ÊÔ½¸µ½Ò»Ò¤Ï¡¢¶è´Ö¥Ç¡¼¥¿¹àÌܤò¼¡¤Î·Á¼°¤Ç½ÐÎϤ·¤Þ¤¹¡£
[X_inf,X_sup]
¡¢¤¿¤À¤·¡¢w' = (w-3)/2³°ÉôÃÍ
¥³¡¼¥ÉÎã 2-51X_inf
¤ÈX_sup
¤Ï¡¢¤½¤ì¤¾¤ì¡¢¶è´Ö½ÐÎÏʤӹàÌܤκÇÂç²¼¸Â¤ÈºÇ¾®¾å¸Â¤Ç¤¹¡£VES
¤Î½ÐÎÏ
math%cat ce2-51.f95
INTERVAL :: X = [21.234]WRITE(*, *) '1234567890123456789012345678901234567890-position'WRITE(*, '(1X, VES25.3)') XWRITE(*, '(1X, VES33.4E4)') XENDmath%f95 -xia ce2-51.f95
math%a.out
1234567890123456789012345678901234567890-position[ 2.123E+001, 2.124E+001][ 2.1233E+0001, 2.1235E+0001]
VF
ÊÔ½¸µ½Ò»Ò
X_inf
¤ÈX_sup
¤¬¡¢F
w'.d ÊÔ½¸µ½Ò»Ò¤ò»ÈÍѤ·¤Æɽ¼¨¤µ¤ì¤ë͸ú¤Ê³°ÉôÃͤǤ¢¤ë¤â¤Î¤È¤·¤Þ¤¹¡£VF
ÊÔ½¸µ½Ò»Ò¤Ï¡¢¶è´Ö¥Ç¡¼¥¿¹àÌܤò¼¡¤Î·Á¼°¤Ç½ÐÎϤ·¤Þ¤¹¡£
[X_inf,X_sup]
¡¢¤¿¤À¤·¡¢w' = (w-3)/2³°ÉôÃÍ
¥³¡¼¥ÉÎã 2-52X_inf
¤ÈX_sup
¤Ï¡¢¤½¤ì¤¾¤ì¡¢¶è´Ö½ÐÎÏʤӹàÌܤκÇÂç²¼¸Â¤ÈºÇ¾®¾å¸Â¤Ç¤¹¡£VF
½ÐÎÏÊÔ½¸
math%cat ce2-52.f95
INTERVAL :: X = [1.2345, 1.2346], Y = [1.2345E11, 1.2346E11]WRITE(*, *) '1234567890123456789012345678901234567890-position'WRITE(*, '(1X, VF25.3)') XWRITE(*, '(1X, VF25.3)') YENDmath%f95 -xia ce2-52.f95
math%a.out
1234567890123456789012345678901234567890-position[ 1.234, 1.235][***********,***********]
Ãí - ½ñ¼°Éդʸ¤Ë½¾¤Ã¤Æ¶è´Ö¤¬½ÐÎϤǤ¤Ê¤¤¾ì¹ç¤Ï¡¢¥¢¥¹¥¿¥ê¥¹¥¯ (¡Ö*¡×) ¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£
VG
ÊÔ½¸µ½Ò»Ò¶è´Ö¤Î½ÐÎϤǤϡ¢
¥³¡¼¥ÉÎã 2-53G
ÊÔ½¸µ½Ò»Ò¤¬¶è´Ö¤Î½ªÎ»ÅÀ½ÐÎϤνñ¼°²½¤Ë»È¤ï¤ì¤ëÅÀ¤ò½ü¤±¤Ð¡¢VG
ÊÔ½¸¤ÏVE
ÊÔ½¸¤Þ¤¿¤ÏVF
ÊÔ½¸¤ÈƱ¤¸¤Ç¤¹¡£VG
¤Î½ÐÎÏ
math%cat ce2-53.f95
INTERVAL :: X = [1.2345, 1.2346], Y = [1.2345E11, 1.2346E11]WRITE(*, *) '1234567890123456789012345678901234567890-position'WRITE(*, '(1X, VG25.3)') XWRITE(*, '(1X, VG25.3)') YENDmath%f95 -xia ce2-53.f95
math%a.out
1234567890123456789012345678901234567890-position[ 1.23 , 1.24 ][ 0.123E+012, 0.124E+012]
Ãí -F
µ½Ò»Ò¤Ë½¾¤Ã¤Æ¶è´Ö¤Î½ªÎ»ÅÀ¤¬½ÐÎϤǤ¤Ê¤¤¾ì¹ç¡¢VG
ÊÔ½¸µ½Ò»Ò¤ÏE
µ½Ò»Ò¤ò»ÈÍѤ·¤Þ¤¹¡£
½ñ¼°¤Ê¤·ÆþÎÏ/½ÐÎÏ
½ñ¼°¤Ê¤·ÆþÎÏ/½ÐÎϤϡ¢¥Ç¡¼¥¿¤ÎÆâÉôŪ¤Êɽ¸½¤òÊѹ¹¤»¤º¤Ë¡¢¥á¥â¥ê¡¼°ÌÃ֤Ȥδ֤ǥǡ¼¥¿¤ÎžÁ÷¤ËÍѤ¤¤Þ¤¹¡£¶è´Ö¤ò»È¤¦¾ì¹ç¤Ë¤Ï¡¢ÆþÎÏ/½ÐÎϤ˴ؤ¹¤ë³°Â¦¤Î´Ý¤á¤¬²óÈò¤Ç¤¤ë¤Î¤Ç¡¢½ñ¼°¤Ê¤·ÆþÎÏ/½ÐÎϤÏÆä˽ÅÍפǤ¹¡£
Ãí - ½ñ¼°¤Ê¤·ÆþÎÏ/½ÐÎϤϽñ¼°¤Ê¤·¶è´Ö¥Ç¡¼¥¿¤ÎÆɤ߽ñ¤¤Î¤¿¤á¤À¤±¤Ë»È¤Ã¤Æ¤¯¤À¤µ¤¤¡£¾Íè¤Î¥ê¥ê¡¼¥¹¤È¤Î¥Ð¥¤¥Ê¥ê¥Õ¥¡¥¤¥ë¤Î¸ß´¹À¤ÏÊݾڤµ¤ì¤Þ¤»¤ó¡£
½ñ¼°¤Ê¤·ÆþÎÏ/½ÐÎϤ϶è´Ö¥Ç¡¼¥¿¹àÌܤ¬Æ©ÌÀ¤Ç¤¢¤ë¤È¤¤¤¦»ö¼Â¤Ë°Í¸¤·¤Æ¤¤¤Þ¤¹¡£
ʤӤˤè¤ë½ÐÎÏ
º¸±¦¤Î½ªÎ»ÅÀÍѤÎ
REAL
Äê¿ô¤Ï¡¢F
¤Þ¤¿¤ÏE
ÊÔ½¸µ½Ò»Ò¤ò»ÈÍѤ·¤ÆÀ¸À®¤µ¤ì¤Þ¤¹¡£|x|¤¬¡¢½ÐÎ϶è´Ö½ªÎ»ÅÀ¤ÎÀäÂÐÃͤǤ¢¤ë¤â¤Î¤È¤·¤Þ¤¹¡£¤¹¤ë¤È¡¢
![]()
¤Ç¤¢¤ì¤Ð¡¢
0PF
w.d ÊÔ½¸µ½Ò»Ò¤ò»ÈÍѤ·¤Æ½ªÎ»ÅÀ¤¬À¸À®¤µ¤ì¤Þ¤¹¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï¡¢1PE
w.dE
e µ½Ò»Ò¤¬»ÈÍѤµ¤ì¤Þ¤¹¡£f95
¤Ç¤Ï¡¢d1=
-2
¡¢¤«¤Ä¡¢d2=
+8
¤Ç¤¹¡£
f95
¤Ç¤Î¶è´Ö¥Ç¡¼¥¿¹àÌܤνÐÎϤˤĤ¤¤Æ¤Ï¡¢d ¤È e ÍѤÎÃͤϡ¢Æ±¤¸ KTPV ¤ò»ý¤ÄREAL
·¿ÍѤΤâ¤Î¤ÈƱ¤¸¤Ç¤¹¡£w ¤ÎÃͤϡ¢¥³¡¼¥ÉÎã 2-37 ¤¬¼¨¤·¤Æ¤¤¤ë¤è¤¦¤Ë¡¢2 ¤Ä¤ÎREAL
¤È³Ñ³ç¸Ì¡Ö[
¡×¡¢¡Ö]
¡×¤È¥³¥ó¥Þ¤Î 3 ¤Ä¤ÎÄɲÃʸ»ú¤ÎÄ´À°¤ò¹Ô¤¤¤Þ¤¹¡£Ã±¿ôÆþÎÏ/½ÐÎϤȴðËÜÊÑ´¹
ñ¿ô¶è´ÖÆþÎϤϤ½¤Îľ¸å¤Ë½ÐÎϤ¬Â³¤¯¤È¡¢¼ÂºÝ¤Ë´ð¿ôÊÑ´¹¤¬¡¢³ÊǼ¤µ¤ì¤¿ÆþÎ϶è´ÖÉý¤ò 1 ¤Þ¤¿¤Ï 2-ulp ¤À¤±Áý²Ã¤µ¤»¤ë¤¿¤á¡¢¾®¿ô·å¤ÎÀµ³ÎÀ¤¬¼º¤ï¤ì¤¿·Á¤Ç¸½¤ì¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢1.37 ¤ÎÆþÎϤÎľ¸å¤Ëɽ¼¨¤ò¹Ô¤¦¤È¡¢1.3 ¤¬½ÐÎϤµ¤ì¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£¡Ö½ñ¼°ÉÕ¤ÆþÎÏ/½ÐÎϡפò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
¥³¡¼¥ÉÎã 1-6 ¤Ç¼¨¤·¤Æ¤¤¤ë¤è¤¦¤Ë¡¢¥×¥í¥°¥é¥à¤Ï¡¢ÆþÎÏÃÍ¤È (ÆþÎÏʸ»úÎó¤ò͸ú¤ÊÆâÉôŪ¤Ê¶á»÷ÃͤËÊÑ´¹¤¹¤ë¤¿¤á¤Î) ÆâÉôŪ¤ÊÆɤ߼è¤ê¤È¤òÀµ³Î¤ËÈ¿±Ç¤¹¤ë¤¿¤á¤Ë¡¢Ê¸»úÆþÎÏ/½ÐÎϤò»ÈÍѤ·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
ÁȤ߹þ¤ß¶è´Ö´Ø¿ô
¤³¤ÎÀá¤Ë¤Ï
f95
¤ÎÁȤ߹þ¤ß¤Î¶è´Ö´Ø¿ô¤ÎÆÃÀÄêµÁ¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£Ê£¿ô¤Î KTPV ¤ò»ý¤Ä°ú¿ô¤ò¼õ¤±Æþ¤ì¤ë°ìÈÌŪ¤ÊÁȤ߹þ¤ß¤Î¶è´Ö´Ø¿ô¤Ï¡¢°ìÈÌŪ¤Ê̾Á°¤È KTPV ¸ÄÊÌ̾¤ÎξÊý¤ò»ý¤Á¤Þ¤¹¡£ÁȤ߹þ¤ß¤Î´Ø¿ô¤¬¤½¤Î KTPV ¸ÄÊÌ̾¤Î̾Á°¤ò»ÈÍѤ·¤Æ¸Æ¤Ó½Ð¤µ¤ì¤ë¾ì¹ç¡¢°ú¿ô¤Ï¤½¤ì¤Ë¸«¹ç¤Ã¤¿ KTPV ¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
Ãí -f95
¤Ç¤Ï¡¢¤¤¤¯¤Ä¤«¤Î KTPV-16 ¸ÄÊÌÁȤ߹þ¤ß´Ø¿ô¤ÏÄ󶡤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£¤³¤ì¤Ï¡¢¼ÂÁõ¾å¤Î̤²ò·è¤ÎÌäÂê¤Ç¤¹¡£
Ê£¿ô¤Î¶è´Ö¥Ç¡¼¥¿¹àÌÜ (¤¿¤È¤¨¤Ð¡¢
SIGN(A,B)
) ¤ò¼õ¤±Æþ¤ì¤ë´Ø¿ô¤ò»ÈÍѤ·¤¿¾ì¹ç¤Ï¡¢¤¹¤Ù¤Æ¤Î¥Ç¡¼¥¿°ú¿ô¤ÏƱ¤¸ KTPV ¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ºÇÂçÉýÍ׵ἰ½èÍý¤Î¤â¤È¤Ç¤Ï¡¢¤³¤ÎÀ©Ìó¤Ø¤Î½àµò¤¬¼«Æ°Åª¤Ë¹Ô¤ï¤ì¤Þ¤¹¡£¸·Ì©¼°½èÍý¤ò»È¤¦¾ì¹ç¤Ï¡¢ÁȤ߹þ¤ß´Ø¿ô¤Î°ú¿ô¤Ë´Ø¤¹¤ë·¿¤È KTPV ¤ÎÀ©¸Â¤ò³«È¯¼Ô¤ÎÀÕǤ¤Ç¼é¤é¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£°Û¤Ê¤ë KTPV ¤Î°ú¿ô¤ò»ÈÍѤ¹¤ë¤È¼Â¹Ô»þ¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤¹¡£¿ô³Ø´Ø¿ô
¤³¤ÎÀá¤Ç¤Ï¡¢¶è´Ö°ú¿ô¤ò¼õ¤±Æþ¤ì¤ë·¿ÊÑ´¹´Ø¿ô¡¢»°³Ñ´Ø¿ô¡¢¤½¤Î¾¤Î´Ø¿ô¤òÎóµó¤·¤Þ¤¹¡£¶è´Ö [
,
] ¤Ç¤Îµ¹æ
¤È
¤Ï¡¢¤½¤ì¤¾¤ì¡¢½ç°ÌÉÕ¤±¤é¤ì¤¿Í×ÁǤȤ·¤Æ¡¢ºÇÂç²¼¸Â¤ÈºÇ¾®¾å¸Â¤òɽ¤¹¤¿¤á¤ËÍѤ¤¤é¤ì¤Þ¤¹¡£ÅÀ (Èó¶è´Ö) ´Ø¿ôÄêµÁÆâÉô¤Ç¤Ï¡¢¾®Ê¸»ú¤Î x ¤È y ¤Ï¡¢
REAL
¤Þ¤¿¤ÏINTEGER
Ãͤòɽ¤¹¤¿¤á¤ËÍѤ¤¤é¤ì¤Þ¤¹¡£¶è´Ö°ú¿ô X ¤Î´Ø¿ô f ¤Îɾ²Á»þ¤Ë¤Ï¡¢¶è´Ö·ë²Ì f(X) ¤Ï¡¢¼¡¤Î¤è¤¦¤ËÊñ´Þ½¸¹ç¡¢cset(f,{x})¤Î°Ï¤ß¤ÎÃæ¤ËÆþ¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
![]()
n ¸Ä¤ÎÊÑ¿ô¤Î´Ø¿ô¤Ë¤Ä¤¤¤Æ¤âƱÍͤηë²Ì¤¬Åö¤Æ¤Ï¤Þ¤ê¤Þ¤¹¡£¶è´Ö
¤¬ f ¤ÎÊÑ°è¤Î³°Â¦¤ÎÃͤò´Þ¤à¾ì¹ç¤Ë´Þ¤Þ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ÃͤÎÊñ´Þ½¸¹ç¤Î·èÄê¤Î¤·¤«¤¿¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡Ö»²¹Íʸ¸¥¡×¤Ç°úÍѤ·¤¿ÊäÂʸ¸¥ [1] ¤ÎÃæ¤Ç²òÀ⤵¤ì¤Æ¤¤¤Þ¤¹¡£¤½¤³¤Ç¤Î·ë²Ì¤Ï¡¢ÄêµÁ¤Î¶³¦¾å¤Ç¤¢¤ë¤¤¤ÏÄêµÁ¤ÎÊÑ°è¤Î³°Â¦¤Çɾ²Á¤µ¤ì¤ë¾ì¹ç¤Ë¡¢´Ø¿ô¤¬À¸À®¤Ç¤¤ëÃͤν¸¹ç¤ò·èÄꤹ¤ë¤¿¤á¤ËɬÍפǤ¹¡£¤³¤ÎÊñ´Þ½¸¹ç¤È¸Æ¤Ð¤ì¤ëÃͤν¸¹ç¤Ï¡¢´Ø¿ô¤Î°ú¿ô¤Þ¤¿¤Ï±é»»»Ò¥ª¥Ú¥é¥ó¥É¤ÎÃͤΤ¬²¿¤Ç¤¢¤ë¤«¤Ë¤«¤«¤ï¤é¤ºÍ¸ú¤Ê·ë²Ì¤òÊÖ¤¹¶è´Ö¥·¥¹¥Æ¥à¤òÄêµÁ¤¹¤ë¾å¤Ç¤Î¸°¤È¤Ê¤ê¤Þ¤¹¡£¤³¤Î¤¿¤á¡¢
f95
¤ÎǤ°Õ¤ÎÁȤ߹þ¤ß¤ÎINTERVAL
´Ø¿ô¤Ë´Ø¤·¡¢°ú¿ô¤ÎÀ©Ìó¤Ï¸ºß¤·¤Þ¤»¤ó¡£µÕÀµÀܤÎÁȤ߹þ¤ß´Ø¿ô
ATAN2(Y,X)
¤³¤ÎÀá¤Ç¤Ï¡¢µÕÀµÀÜÁȤ߹þ¤ß´Ø¿ô¤ÎÄɲÃŪ¤Ê¾ðÊó¤òÄ󶡤·¤Þ¤¹¡£¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢¡Ö»²¹Íʸ¸¥¡×¤Ç°úÍѤ·¤¿ÊäÂʸ¸¥ [9] ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
²òÀ⡧ °ìÂФζè´Ö¤ËÂФ¹¤ëµÕÀµÀÜÁȤ߹þ¤ß´Ø¿ô¤Î¶è´Ö¤Î°Ï¤ß¤Ç¤¹¡£
![]()
ÆÃÊ̤ÊÃÍ¡§ ɽ 2-14 ¤È¥³¡¼¥ÉÎã 2-24 ¤Ï
ATAN2
¤ÎÉÔÄê·Á¼°¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£
ɽ 2-14 ATAN2
¤ÎÉÔÄê·Á¼°0 0 [-1, 1] [-1, 1] ![]()
+ ![]()
+ ![]()
[0, 1] [0, 1] ![]()
+ ![]()
- ![]()
[0, 1] [-1, 0] ![]()
- ![]()
- ![]()
[-1, 0] [-1, 0] ![]()
- ![]()
+ ![]()
[-1, 0] [0, 1] ![]()
¥³¡¼¥ÉÎã 2-54ATAN2
¤ÎÉÔÄê·Á¼°
math%cat ce2-54.f95
INTERVAL :: X, Y INTEGER :: IOS = 0 PRINT *, "Press Control/D to terminate!" WRITE(*, 1, ADVANCE='NO') READ(*, *, IOSTAT=IOS) Y, X DO WHILE (ios >= 0) PRINT *, "For X =", X, "For Y =", Y PRINT *, 'ATAN2(Y,X)= ', ATAN2(Y,X) WRITE(*, 1, ADVANCE='NO') READ(*, *, IOSTAT=IOS) Y, X END DO 1 FORMAT("Y, X = ?") END math%f95 -xia ce2-54.f95
math%a.out
Press Control/D to terminate! Y, X = ?[0] [0]
For X = [0.0E+0,0.0E+0] For Y = [0.0E+0,0.0E+0] ATAN2(Y,X)= [-3.1415926535897936,3.1415926535897936] Y, X = ?inf inf
For X = [1.7976931348623157E+308,Inf] For Y = [1.7976931348623157E+308,Inf] ATAN2(Y,X)= [0.0E+0,1.5707963267948968] Y, X = ?inf -inf
For X = [-Inf,-1.7976931348623157E+308] For Y = [1.7976931348623157E+308,Inf] ATAN2(Y,X)= [1.5707963267948965,3.1415926535897936] Y, X = ?-inf +inf
For X = [1.7976931348623157E+308,Inf] For Y = [-Inf,-1.7976931348623157E+308] ATAN2(Y,X)= [-1.5707963267948968,0.0E+0] Y, X = ?-inf -inf
For X = [-Inf,-1.7976931348623157E+308] For Y = [-Inf,-1.7976931348623157E+308] ATAN2(Y,X)= [-3.1415926535897936,-1.5707963267948965] Y, X = ? <Control-D>°ú¿ô¡§
Y
¤ÏINTERVAL
·¿¤Ç¤¹¡£X
¤ÏY
¤ÈƱ¤¸·¿¤ÈKIND
¤Î¥Ñ¥é¥á¡¼¥¿¤Ç¤¹¡£·ë²ÌÃÍ¡§ ¶è´Ö¤Î·ë²ÌÃͤϡ¢»ØÄꤷ¤¿¶è´Ö¤ËÂФ¹¤ë 1 ¤Ä¤Î°Ï¤ß¤Ç¤¹¡£ÍýÁÛŪ¤Ê°Ï¤ß¤Ï¡¢µ½Ò¤µ¤ì¤¿¤â¤Î¤ÈƱ¤¸¿ô³ØŪ¤Ê¶è´Ö¤ò´Þ¤àºÇ¾®Éý¤Î¶è´Ö¤Ç¤¹¡£
1 ¤Ä¤Þ¤¿¤ÏξÊý¤Î°ú¿ô¤¬¶õ¤Ç¤¢¤ì¤Ð¡¢·ë²Ì¤Ï¶õ¤Ë¤Ê¤ê¤Þ¤¹¡£
x < 0¡¢¤«¤Ä¡¢
¤Î¾ì¹ç¤Ë¡¢±Ô¤¤¶è´Ö¤Î°Ï¤ß (¦¨¤Çɽ¤µ¤ì¤ë) ¤òÆÀ¤ë¤¿¤á¤Ë¤Ï¡¢¤¹¤Ù¤Æ¤ÎÊÖ¤µ¤ì¤ë²ÄǽÀ¤Î¤¢¤ë¶è´Ö³ÑÅ٤ν¸¹ç¤ò°ì°Õ¤ËÄêµÁ¤¹¤ë¼¡¤ÎÊýË¡¤òÍѤ¤¤Æ¤¯¤À¤µ¤¤¡£
![]()
¤³¤ÎÁªÂò¤ò¼¡¤ÎÁªÂò¤È¹ç¤ï¤»¤ì¤Ð¡¢
![]()
ATAN2(Y, X)
¤¬É¬¤º´Þ¤Þ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¶è´Ö³ÑÅÙ ¦¨ ¤Î°ì°Õ¤ÎÄêµÁ¤È¤Ê¤ê¤Þ¤¹¡£É½ 2-15 ¤Ï¡¢±Ô¤¤¶è´Ö³ÑÅÙ¤ÎÀ¸À®¤ËɬÍפÊÀ©¸Â¤òËþ¤¿¤¹¥¢¥ë¥´¥ê¥º¥à¤Ç¤Î ¦¨ ¤Î½ªÎ»ÅÀ¤Î·×»»¤Ë»ÈÍѤ¹¤ë
REAL
ATAN2
´Ø¿ô¤Î¥Æ¥¹¥ÈÆâÍƤȰú¿ô¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£ºÇ½é¤Î 2 ¤Ä¤Î·å¤Ï¶èÊ̤¹¤ë¥±¡¼¥¹¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹¡£3 ¤ÄÌܤηå¤Ï¶è´Ö ¦¨ ¤ÎÃæÅÀ m (¦¨)¤Î²Äǽ¤ÊÃͤÎÈϰϤò´Þ¤ß¤Þ¤¹¡£ºÇ¸å¤Î 2 ¤Ä¤Î·å¤Ï¡¢REAL
ATAN2
ÁȤ߹þ¤ß´Ø¿ô¤ò»È¤Ã¤Æ¡¢¦¨ ¤Î½ªÎ»ÅÀ¤¬·×»»¤µ¤ì¤ëÊýË¡¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£Êñ´Þ¤òÊݾڤ¹¤ë¤¿¤á¤Ë¤Ï͸þ¤Î´Ý¤á¤¬»È¤ï¤ì¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
ɽ 2-15 REAL
ATAN2
´Ø¿ô¤Î¥Æ¥¹¥ÈÆâÍƤȰú¿ô- < y
x < 0 ![]()
ATAN2
(y, x)ATAN2
(, x) + 2
![]()
- = y
x < 0 ![]()
ATAN2
(y, x)2 -
![]()
< -
![]()
x < 0 ![]()
ATAN2
(y, x) - 2![]()
ATAN2
(, x)
ºÇÂ硧
MAX(X1,X2,[X3, ...])
max(X1, ..., Xn) ¤ËÂФ¹¤ëÊñ´Þ½¸¹ç¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£
![]()
MAX ÁȤ߹þ¤ß´Ø¿ô¤Î¼ÂÁõ¤Ï¼¡¤Î¼°¤òËþ¤¿¤µ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
MAX(X1,X2,[X3, ...])
{max(X1, ..., Xn)}
°ú¿ô¡§ °ú¿ô¤Ï
INTERVAL
·¿¤Ç¤¢¤ê¡¢Æ±¤¸·¿¤ÈKIND
·¿¤Î¥Ñ¥é¥á¡¼¥¿¤ò»ý¤Á¤Þ¤¹¡£·ë²ÌÆÃÀ¡§ ·ë²ÌÆÃÀ¤Ï
INTERVAL
·¿¤Ç¤¹¡£kind ·¿¥Ñ¥é¥á¡¼¥¿¤Ï°ú¿ô¤ÈƱ¤¸·¿¤Ç¤¹¡£ºÇ¾®¡§
MIN(X1,X2,[X3, ...])
min(X1, ..., Xn) ¤ËÂФ¹¤ëÊñ´Þ½¸¹ç¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡£
![]()
MIN ÁȤ߹þ¤ß´Ø¿ô¤Î¼ÂÁõ¤Ï¼¡¤Î¼°¤òËþ¤¿¤µ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
MIN(X1,X2,[X3, ...])
¢½ {min(X1, ..., Xn)}°ú¿ô¡§ °ú¿ô¤Ï
INTERVAL
·¿¤Ç¤¢¤ê¡¢Æ±¤¸·¿¤ÈKIND
·¿¤Î¥Ñ¥é¥á¡¼¥¿¤ò»ý¤Á¤Þ¤¹¡£·ë²ÌÆÃÀ¡§ ·ë²Ì¤Ï
INTERVAL
·¿¤Ç¤¹¡£ kind ·¿¥Ñ¥é¥á¡¼¥¿¤Ï°ú¿ô¤ÈƱ¤¸·¿¤Ç¤¹¡£ÁȤ߹þ¤ß´Ø¿ô
ɽ 2-17 ¤«¤éɽ 2-21 ¤Ç¤Ï¡¢¶è´Ö°ú¿ô¤ò¼õ¤±Æþ¤ì¤ëÁȤ߹þ¤ß´Ø¿ô¤ÎÆÃÀ¤ò°ìÍ÷ɽ¼¨¤·¤Æ¤¤¤Þ¤¹¡£É½ 2-16 ¤Ç¤Ï¡¢¤³¤ì¤é¤Îɽ¤Î¶è´ÖÁȤ߹þ¤ß´Ø¿ô¤ÎÆÃÀ¹àÌܤò°ìÍ÷ɽ¼¨¤·¤Æ¤¤¤Þ¤¹¡£
ɽ 2-16 ³Æ¶è´ÖÁȤ߹þ¤ß´Ø¿ô¤ÎÆÃÀ¹àÌÜ ÆÃÀ¹àÌÜ ²òÀâ ÁȤ߹þ¤ß´Ø¿ô ´Ø¿ô¤Î½èÍýÆâÍÆ ÄêµÁ ¿ô³Ø¾å¤ÎÄêµÁ °ú¿ô¤Î¿ô ´Ø¿ô¤¬¼õ¤±Æþ¤ì¤ë°ú¿ô¤Î¿ô °ìÈÌ̾ ´Ø¿ô¤Î°ìÈÌ̾ ¸ÄÊÌ̾ ´Ø¿ô¤Î¸ÄÊÌ̾ °ú¿ô¤Î·¿ ³Æ¸ÇͤÎ̾Á°¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥Ç¡¼¥¿·¿ ´Ø¿ô¤Î·¿ ¸ÄÊÌ°ú¿ô¥Ç¡¼¥¿·¿¤ËÂФ¹¤ëÌá¤êÃͤΥǡ¼¥¿·¿
¶è´ÖÁȤ߹þ¤ß´Ø¿ô¤Ë¤Ï¡¢KTPV4¡¢8¡¢16 ¤Î¥Ð¡¼¥¸¥ç¥ó¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£Âбþ¤¹¤ë¸ÄÊÌÁȤ߹þ¤ß´Ø¿ô̾¤Ï
VS
¡¢VD
¡¢VQ
¤Ç»Ï¤Þ¤ê¡¢¤½¤ì¤¾¤ì¡¢inter
Val
Single¡¢inter
Val
Double¡¢inter
Val
Quad ¤òɽ¤·¤Þ¤¹¡£³Æ¸ÄÊÌ
REAL
ÁȤ߹þ¤ß´Ø¿ô¤ËÂбþ¤¹¤ë¶è´ÖÁȤ߹þ¤ß´Ø¿ô¤¬Â¸ºß¤·¡¢VSSIN()
¤ÈVDSIN()
¤Î¤è¤¦¤Ë¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ë¤Ï¡¢VS
¡¢VD
¡¢VQ
¤ÎÀÜƬ¼¤¬ÉÕ¤¤Þ¤¹¡£ÉÔÄê·Á¼°¤Ï²Äǽ¤Ç¤¹¤«¤é¡¢¡Ö¤Ù¤¾è±é»»»Ò X**N ¤È X**Y¡×¤È ¡ÖµÕÀµÀܤÎÁȤ߹þ¤ß´Ø¿ô ATAN2(Y,X)¡×¤Ë¤Ï¡¢X**Y ¤È ATAN2 ´Ø¿ô¤ÎÆÃÊ̤ÊÃͤ¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£¤½¤Î¾¤ÎÁȤ߹þ¤ß´Ø¿ô¤Ç¤Ï¤³¤Î¤è¤¦¤Ê¼è¤ê°·¤¤¤ÎɬÍפϤ¢¤ê¤Þ¤»¤ó¡£
ɽ 2-17 ÁȤ߹þ¤ß¤Î¶è´Ö±é»»´Ø¿ô ÀäÂÐÃÍ |a| 1 ABS
VDABS
VSABS
VQABS
INTERVAL(8)
INTERVAL(4)
INTERVAL(16)
INTERVAL(8)
INTERVAL(4)
INTERVAL(16)
ÀÚ¤ê¾å¤² (Ãíµ 1 ¤ò»²¾È) int(a) 1 AINT
VDINT
VSINT
VQINT
INTERVAL(8)
INTERVAL(4)
INTERVAL(16)
INTERVAL(8)
INTERVAL(4)
INTERVAL(16)
ºÇ¶á»÷ÃÍÀ°¿ô a 0 ¤Î¾ì¹ç¤Ï int(a + .5) a < 0 ¤Î¾ì¹ç¤Ï int(a - .5)
1 ANINT
VDNINT
VSNINT
VQNINT
INTERVAL(8)
INTERVAL(4)
INTERVAL(16)
INTERVAL(8)
INTERVAL(4)
INTERVAL(16)
¾ê; a-b(int(a/b)) 2 MOD
VDMOD
VSMOD
INTERVAL(8)
INTERVAL(4)
INTERVAL(8)
INTERVAL(4)
Éä¹æžÁ÷ (Ãíµ 2 ¤ò»²¾È) |a| sgn(b) 2 SIGN
VDSIGN
VSSIGN
INTERVAL(8)
INTERVAL(4)
INTERVAL(8)
INTERVAL(4)
ºÇÂçÃͤÎÁªÂò (Ãíµ 3 ¤ò»²¾È) max(a,b,...) 2
MAX
MAX
INTERVAL
INTERVAL
ºÇ¾®ÃͤÎÁªÂò (Ãíµ 3 ¤ò»²¾È) min(a,b,...) 2
MIN
MIN
INTERVAL
INTERVAL
(1) a > 0 ¤Î¾ì¹ç¤Ï int(a) = floor(a)¡¢a < 0 ¤Î¾ì¹ç¤Ï ceiling(a) (2) signum ´Ø¿ô¤Ï¡¢a < 0 ¤Î¾ì¹ç sgn(a) = -1¡¢a < 0¤Î¾ì¹ç +1¡¢a = 0 ¤Î¾ì¹ç 0 ¤È¤Ê¤ê¤Þ¤¹¡£ (3) MIN
¤ÈMAX
ÁȤ߹þ¤ß´Ø¿ô¤Ï¡¢¤¹¤Ù¤Æ¤Î°ú¿ô¤¬¶õ¤Ç¤Ê¤±¤ì¤Ð¡¢¶õ¤Î¶è´Ö°ú¿ô¤ò̵»ë¤·¤Þ¤¹¡£¤¹¤Ù¤Æ¤Î°ú¿ô¤¬¶õ¤Î¾ì¹ç¤Ï¶õ¤Î¶è´Ö¤¬ÊÖ¤µ¤ì¤Þ¤¹¡£
ɽ 2-18 ÁȤ߹þ¤ß¤Î¶è´Ö·¿ÊÑ´¹´Ø¿ô INTERVAL 1¡¢2 ¤Þ¤¿¤Ï 3 INTERVAL
INTERVAL
INTERVAL(4)
INTERVAL(8)
INTEGER
REAL
REAL(8)
REAL(16)
INTERVAL
INTERVAL
INTERVAL
INTERVAL
INTERVAL
INTERVAL
INTERVAL
INTERVAL(4) 1 ¤Þ¤¿¤Ï 2 SINTERVAL
INTERVAL
INTERVAL(4)
INTERVAL(8)
INTEGER
REAL
REAL(8)
REAL(16)
INTERVAL(4)
INTERVAL(4)
INTERVAL(4)
INTERVAL(4)
INTERVAL(4)
INTERVAL(4)
INTERVAL(4)
INTERVAL(8) 1 ¤Þ¤¿¤Ï 2 DINTERVAL
INTERVAL
INTERVAL(4)
INTERVAL(8)
INTEGER
REAL
REAL(8)
REAL(16)
INTERVAL(8)
INTERVAL(8)
INTERVAL(8)
INTERVAL(8)
INTERVAL(8)
INTERVAL(8)
INTERVAL(8)
INTERVAL(16) 1 ¤Þ¤¿¤Ï 2 QINTERVAL
INTERVAL
INTERVAL(4)
INTERVAL(8)
INTERVAL(16)
INTEGER
REAL
REAL(8)
INTERVAL(16)
INTERVAL(16)
INTERVAL(16)
INTERVAL(16)
INTERVAL(16)
INTERVAL(16)
INTERVAL(16)
ɽ 2-19 ÁȤ߹þ¤ß¤Î¶è´Ö»°³Ñ´Ø¿ô Àµ¸¹ sin(a) 1 SIN
VDSIN
VSSIN
INTERVAL(8)
INTERVAL(4)
INTERVAL(8)
INTERVAL(4)
;¸¹ cos(a) 1 COS
VDCOS
VSCOS
INTERVAL(8)
INTERVAL(4)
INTERVAL(8)
INTERVAL(4)
˵ˆ tan(a) 1 TAN
VDTAN
VSTAN
INTERVAL(8)
INTERVAL(4)
INTERVAL(8)
INTERVAL(4)
µÕÀµ¸¹ arcsin(a) 1 ASIN
VDASIN
VSASIN
INTERVAL(8)
INTERVAL(4)
INTERVAL(8)
INTERVAL(4)
µÕ;¸¹ arccos(a) 1 ACOS
VDACOS
VSACOS
INTERVAL(8)
INTERVAL(4)
INTERVAL(8)
INTERVAL(4)
µÕÀµÀÜ arctan(a) 1 ATAN
VDATAN
VSATAN
INTERVAL(8)
INTERVAL(4)
INTERVAL(8)
INTERVAL(4)
µÕÀµÀÜ (Ãíµ 1 ¤ò»²¾È) arctan(a/b) 2 ATAN2
VDATAN2
VSATAN2
INTERVAL(8)
INTERVAL(4)
INTERVAL(8)
INTERVAL(4)
ÁжÊÀµ¸¹ sinh(a) 1 SINH
VDSINH
VSSINH
INTERVAL(8)
INTERVAL(4)
INTERVAL(8)
INTERVAL(4)
ÁжÊ;¸¹ cosh(a) 1 COSH
VDCOSH
VSCOSH
INTERVAL(8)
INTERVAL(4)
INTERVAL(8)
INTERVAL(4)
ÁжÊÀµÀÜ tanh(a) 1 TANH
VDTANH
VSTANH
INTERVAL(8)
INTERVAL(4)
INTERVAL(8)
INTERVAL(4)
(1) a = h sin ¡¢b = h cos
¡¢¤«¤Ä¡¢h2 = a2 + b2 ¤Ç¤¢¤ì¤Ð¡¢arctan(a/b) =
¤È¤Ê¤ê¤Þ¤¹¡£
ɽ 2-20 ¤½¤Î¾¤ÎÁȤ߹þ¤ß¤Î¶è´Ö¿ô³Ø´Ø¿ô Ê¿Êýº¬ (Ãíµ 1 ¤ò»²¾È) exp{ln(a)/2} 1 SQRT
VDSQRT
VSSQRT
INTERVAL(8)
INTERVAL(4)
INTERVAL(8)
INTERVAL(4)
»Ø¿ô exp(a) 1 EXP
VDEXP
VSEXP
INTERVAL
INTERVAL(4)
INTERVAL(8)
INTERVAL(4)
¼«Á³Âпô ln(a) 1 LOG
VDLOG
VSLOG
INTERVAL(8)
INTERVAL(4)
INTERVAL(8)
INTERVAL(4)
¾ïÍÑÂпô log(a) 1 LOG10
VDLOG10
VSLOG10
INTERVAL(8)
INTERVAL(4)
INTERVAL(8)
INTERVAL(4)
(1) sqrt(a) ¤ÏÊ£¿ô¤ÎÃͤò»ý¤Á¤Þ¤¹¡£Àµ¤ÈÉé¤ÎξÊý¤ÎÊ¿Êýº¬¤ò´Þ¤à¤¿¤á¤Ë¤Ï¡¢Å¬Àڤʶè´Ö¤Î°Ï¤ß¤¬É¬ÍפǤ¹¡£ SQRT
ÁȤ߹þ¤ß´Ø¿ô¤ò¼¡¤Î¤è¤¦¤ËÄêµÁ¤¹¤ë¤È¤³¤ÎÌäÂê¤ò½üµî¤Ç¤¤Þ¤¹¡£![]()
ɽ 2-21 ¶è´ÖÁȤ߹þ¤ß´Ø¿ô INF inf([a, b]) = a 1 INF
VDINF
VSINF
VQINF
INTERVAL(8)
INTERVAL(4)
INTERVAL(16)
REAL(8)
REAL(4)
REAL(16)
SUP sup([a, b]) = b 1 SUP
VDSUP
VSSUP
VQSUP
INTERVAL(8)
INTERVAL(4)
INTERVAL(16)
REAL(8)
REAL(4)
REAL(16)
Éý w([a, b]) = b - a 1 WID
VDWID
VSWID
VQWID
INTERVAL(8)
INTERVAL(4)
INTERVAL(16)
REAL(8)
REAL(4)
REAL(16)
ÃæÅÀ mid([a, b]) = (a + b)/2
1 MID
VDMID
VSMID
VQMID
INTERVAL(8)
INTERVAL(4)
INTERVAL(16)
REAL(8)
REAL(4)
REAL(16)
¥Þ¥°¥Ë¥Á¥å¡¼¥É (Ãíµ 1 ¤ò»²¾È) max(|a|) A
1 MAG
VDMAG
VSMAG
VQMAG
INTERVAL(8)
INTERVAL(4)
INTERVAL(16)
REAL(8)
REAL(4)
REAL(16)
¥ß¥°¥Ë¥Á¥å¡¼¥É (Ãíµ 2 ¤ò»²¾È) min(|a|) A
1 MIG
VDMIG
VSMIG
VQMIG
INTERVAL(8)
INTERVAL(4)
INTERVAL(16)
REAL(8)
REAL(4)
REAL(16)
¶õ¶è´Ö¤Î¸¡ºº A ¤¬¶õ¤Ê¤é true 1 ISEMPTY
VDISEMPTY
VSISEMPTY
VQISEMPTY
INTERVAL(8)
INTERVAL(4)
INTERVAL(16)
LOGICAL
LOGICAL
LOGICAL
²¼¸Â floor(A) 1 FLOOR
INTERVAL(8)
INTERVAL(4)
INTERVAL(16)
INTEGER
INTEGER
INTEGER
¾å¸Â ceiling(A) 1 CEILING
INTERVAL(8)
INTERVAL(4)
INTERVAL(16)
INTEGER
INTEGER
INTEGER
ÀºÅÙ precision(A) 1 PRECISION
INTERVAL(8)
INTERVAL(4)
INTERVAL(16)
INTEGER
INTEGER
INTEGER
ÈÏ°Ï range(A) 1 RANGE
INTERVAL(8)
INTERVAL(4)
INTERVAL(16)
INTEGER
INTEGER
INTEGER
·å¿ô (Ãíµ 3 ¤ò»²¾È) Y
ÊÔ½¸µ½Ò»Ò¤ò»È¤Ã¤¿ºÇÂç·å¿ô1 NDIGITS
INTERVAL
INTERVAL(4)
INTERVAL(16)
INTEGER
INTEGER
INTEGER
(1) mag([a, b]) = max(|a|,|b|) (2) a > 0 ¤Þ¤¿¤Ï b < 0 ¤Ç¤¢¤ì¤Ð¡¢mig([a, b]) = min(|a|,|b|)¡¢¤½¤Î¾¤Î¾ì¹ç¤Ï¡¢0 (3) ÆÃÊ̤ʥ±¡¼¥¹¡§ NDIGITS([-inf, +inf])
=NDIGITS([EMPTY])
= 0
»²¹Íʸ¸¥
²¼µ¤Îµ»½ÑÊó¹ð½ñ¤¬¥ª¥ó¥é¥¤¥ó¤ÇÍøÍѤǤ¤Þ¤¹¡£¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Î½êºß¤Ë¤Ä¤¤¤Æ¤Ï¡¢¶è´Ö±é»»¤Î README ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
- G.W.Walster¡¢E.R.Hansen¡¢J.D.PryceÃø¡¢¡ØExtended Real Intervals and the Topological Closure of Extended Real Relations¡Ù¡¢µ»½ÑÊó¹ð½ñ¡¢Sun Microsystems (2000 ǯ 2 ·î)¡£
- G.William WalsterÃø¡¢¡ØEmpty Intervals¡Ù¡¢µ»½ÑÊó¹ð½ñ¡¢Sun Microsystems
(1998 ǯ 4 ·î)¡£- G.William WalsterÃø¡¢¡ØClosed Interval Systems¡Ù¡¢µ»½ÑÊó¹ð½ñ¡¢Sun Microsystems (1999 ǯ 8 ·î)¡£
- G.William WalsterÃø¡¢¡ØLiteral Interval Constants¡Ù¡¢µ»½ÑÊó¹ð½ñ¡¢Sun Microsystems (1999 ǯ 8 ·î)¡£
- G.William WalsterÃø¡¢¡ØWidest-need Interval Expression Evaluation¡Ù¡¢µ»½ÑÊó¹ð½ñ¡¢Sun Microsystems (1999 ǯ 8 ·î)¡£
- G.William WalsterÃø¡¢¡ØCompiler Support of Interval Arithmetic With Inline Code Generation ans Nonstop Exception Handling¡Ù¡¢µ»½ÑÊó¹ð½ñ¡¢Sun Microsystems (2000 ǯ 2 ·î)¡£
- G.William WalsterÃø¡¢¡ØFinding Roots on the Edge of a Function's Domain¡Ù¡¢µ»½ÑÊó¹ð½ñ¡¢Sun Microsystems (2000 ǯ 2 ·î)¡£
- G.William WalsterÃø¡¢¡ØImplementing the 'Simple' Closed Interval System¡Ù¡¢µ»½ÑÊó¹ð½ñ¡¢Sun Microsystems (2000 ǯ 2 ·î)¡£
- G.William WalsterÃø¡¢¡ØInterval Angles and the Fortran ATAN2 Intrinsic Function¡Ù¡¢µ»½ÑÊó¹ð½ñ¡¢Sun Microsystems (2000 ǯ 2 ·î)¡£
- G.William WalsterÃø¡¢¡ØThe 'Simple' Closed Interval System¡Ù¡¢µ»½ÑÊó¹ð½ñ¡¢Sun Microsystems (2000 ǯ 2 ·î)¡£
- G.William Walster¡¢Margaret S. BiermanÃø¡¢¡ØInterval Arithmetic in Forte Developer Fortran¡Ù¡¢µ»½ÑÊó¹ð½ñ¡¢Sun Microsystems (2000 ǯ 2 ·î)¡£
¥µ¥ó¡¦¥Þ¥¤¥¯¥í¥·¥¹¥Æ¥à¥º³ô¼°²ñ¼Ò Copyright information. All rights reserved. |
¥Û¡¼¥à | Ìܼ¡ | Á°¥Ú¡¼¥¸¤Ø | ¼¡¥Ú¡¼¥¸¤Ø | º÷°ú |