ããã¯ãUbuntu OnlineãFedora OnlineãWindows ãªã³ã©ã€ã³ ãšãã¥ã¬ãŒã¿ãŒããŸã㯠MAC OS ãªã³ã©ã€ã³ ãšãã¥ã¬ãŒã¿ãŒãªã©ã®è€æ°ã®ç¡æãªã³ã©ã€ã³ ã¯ãŒã¯ã¹ããŒã·ã§ã³ã® XNUMX ã€ã䜿çšããŠãOnWorks ç¡æãã¹ãã£ã³ã° ãããã€ããŒã§å®è¡ã§ããã³ãã³ã funcalc ã§ãã
ããã°ã©ã ïŒ
NAME
funcalc - Funtools èšç®æ© (ãã€ã㪠ããŒãã«çš)
SYNOPSIS
ãã¡ã³ã«ã«ã¯ [-n] [-a argstr] [-e expr] [-f file] [-l link] [-p prog] [åå [å]]
OPTIONS
-a argstr # ã³ã³ãã€ã«ãããããã°ã©ã ã«æž¡ããŠãŒã¶ãŒåŒæ°
-e expr # funcalc åŒ
-f file # funcalc åŒãå«ããã¡ã€ã«
-l libs # ãªã³ã¯ã³ãã³ãã«è¿œå ããã©ã€ãã©ãª
-n # ã³ã³ãã€ã«ããŠå®è¡ãã代ããã«ãçæãããã³ãŒããåºåããŸã
-p prog # ååä»ãããã°ã©ã ãçæããŸããå®è¡ã¯ããŸãã
-u # 宣èšãããŠããªãå€æ°ãããå Žåã¯çµäºããŸã (èªå宣èšããªã)
DESCRIPTION
ãã¡ã³ã«ã«ã¯ ä»»æã®åŒãäœæã§ããèšç®ããã°ã©ã ã§ãã
Funtools ããŒãã« (FITS ãã€ã㪠ããŒãã«ãŸãã¯çã®ã€ãã³ã) å ã®åã§ã³ã³ãã€ã«ããã³å®è¡ãããŸãã
ãã¡ã€ã«ïŒã ãŠãŒã¶ãŒãæå®ããåŒããã³ãã¬ãŒã C ããã°ã©ã ã«çµ±åããããšã§æ©èœããŸãã
ããã°ã©ã ãã³ã³ãã€ã«ããŠå®è¡ããŸãã ãã¡ã³ã«ã«ã¯ åŒã¯ C ã¹ããŒãã¡ã³ãã§ãããäžéšã®åŒã¯ C ã¹ããŒãã¡ã³ãã§ãã
éèŠãªç°¡ç¥å (å€æ°ã®èªå宣èšãªã©) ããµããŒããããŠããŸãã
ãã¡ã³ã«ã«ã¯ åŒã¯ XNUMX ã€ã®æ¹æ³ã§æå®ã§ããŸããã³ãã³ã ã©ã€ã³ã§ -e
[è¡šçŸ] ã¹ã€ããããã¡ã€ã«å 㧠-f [ãã¡ã€ã«] ã¹ã€ããããŸãã¯æšæºå ¥åãã (ã©ã¡ãã§ããªãå Žå) -e
ãŸã -f ãæå®ãããŠããŸãïŒã ãã¡ããã ãã¡ã³ã«ã«ã¯ åŒã¯ããèªã¿åãããšãã§ããŸã
stdinã
ããããã®åŒã³åºã ãã¡ã³ã«ã«ã¯ å ¥å Funtools ããŒãã« ãã¡ã€ã«ã
æåã®ã³ãã³ãã©ã€ã³åŒæ°ã åºå Funtools ããŒãã« ãã¡ã€ã«ã¯ XNUMX çªç®ã®ãªãã·ã§ã³ã§ãã
å£è«ã ããã¯ãåºå FITS ãã¡ã€ã«ãäœæãããŠããå Žå (ã€ãŸãã
ã ãã¡ã³ã«ã«ã¯ åŒã¯å€ãåºåããã ãã§ãããåºåãã¡ã€ã«ã¯å¿ èŠãããŸãã)ã å ¥åãšåºåã®å Žå
ãã¡ã€ã«ãäž¡æ¹ãšãæå®ãããŠããå ŽåãXNUMX çªç®ã®ãªãã·ã§ã³ã®åŒæ°ã§åã®ãªã¹ããæå®ã§ããŸãã
ã¢ã¯ãã£ãåïŒã䜿çšã㊠FunColumnActivate()ïŒ ãäºæ¿ãã ãã ãã¡ã³ã«ã«ã¯ ãããã©ããã決å®ããŸã
åºåã®æç¡ã«åºã¥ããŠåºåãã¡ã€ã«ãæžã蟌ãã³ãŒããçæãã
ãã¡ã€ã«åŒæ°ã
A ãã¡ã³ã«ã«ã¯ åŒã¯ããŒãã«ã®åè¡ã§å®è¡ãããXNUMX ã€ä»¥äžã® C ã§æ§æãããŸãã
ãã®è¡ã®åãæäœããã¹ããŒãã¡ã³ã (ããããäžæå€æ°ã䜿çš)ã
åŒå ã§ããã®åãžã®åç §ãè¡ãããŸãã çŸåš C æ§é äœã䜿çšããè¡
æ§æ çŸåš-[colname]>ãäŸ: cur->xãcur->pha ãªã©ãããŒã«ã« ã¹ã«ã©ãŒå€æ°ãå®çŸ©ã§ããŸãã
åŒã®å é 㧠C 宣èšã䜿çšããããå®çŸ©ã§ããŸãã
èªåçã« ãã¡ã³ã«ã«ã¯ (double åã§ããå¿ èŠããããŸã)ã ãããã£ãŠãããšãã°ãå x ã®äº€æ
ããŒãã«å ã® y ã¯ã次ã®åçã®ããããã䜿çšããŠå®è¡ã§ããŸãã ãã¡ã³ã«ã«ã¯
åŒïŒ
äºéã®æž©åºŠã
枩床 = cur->x;
cur->x = cur->y;
cur->y = 枩床;
ãŸãã¯ïŒ
枩床 = cur->x;
cur->x = cur->y;
cur->y = 枩床;
ãã®åŒã次ã®ãããªã³ãã³ãã䜿çšããŠå®è¡ããããšã
funcalc -f swap.expr itest.ev otest.ev
çµæã®ãã¡ã€ã«ã§ã¯ãx åãš y åã®å€ã亀æãããŸãã
ããã©ã«ãã§ã¯ãåã®å€æ°ã®ããŒã¿åã¯ãåã®å€æ°ã®ããŒã¿åãšåãã§ãã
ãã¡ã€ã«ã«ä¿åãããŠããåã ããã¯ãæåã®è¡ã«ã:[dtype]ããè¿œå ããããšã§å€æŽã§ããŸãã
ãã®ã³ã©ã ãåç §ããŠãã ããã äžã®äŸã§ã¯ãx ãš y ã double ãšããŠåŒ·å¶çã«åºåããã«ã¯ã次ã®ããã«ããŸãã
ã¿ã€ããDããæ瀺çã«æå®ããŸãã
temp = cur->x:D;
cur->x = cur->y:D;
cur->y = 枩床;
ããŒã¿åæå®åã¯ãTFORM ã䜿çšããŠåãå®çŸ©ããããã®æšæº FITS ããŒãã«æ§æã«åŸããŸãã
ã»AïŒASCIIæå
ã»BïŒç¬Šå·ãªã8ãããæå
· I: 笊å·ä»ã 16 ããã int
· U: 笊å·ãªã 16 ããã int (æšæº FITS ã§ã¯ãããŸãã)
ã»JïŒç¬Šå·ä»ã32ãããæŽæ°
· V: 笊å·ãªã 32 ããã int (æšæº FITS ã§ã¯ãããŸãã)
ã»EïŒ32ãããæµ®åå°æ°ç¹æ°
ã»DïŒ64ãããæµ®åå°æ°ç¹æ°
· X: ããã (æåã®é åãšããŠæ±ãããŸã)
åãžã®æåã®åç §ã®ã¿ã«æ瀺çãªããŒã¿åãå«ããå¿ èŠãããããšã«æ³šæããŠãã ããã
æå®åã
ãã¡ãããåã®ããŒã¿åãæ£ããåŠçããããšãéèŠã§ãã ã®XNUMXã€
æãé »ç¹ã«çºçãããšã©ãŒã®åå ãã¡ã³ã«ã«ã¯ ããã°ã©ãã³ã°ãšã¯ãééã£ãããŒã¿ãæé»çã«äœ¿çšããããšã§ã
åŒå ã®åã®åã ããšãã°ã次ã®ãããªèšç®ã«ãªããŸãã
dx = (cur->x - cur->y)/(cur->x + cur->y);
éåžžãæµ®åå°æ°ç¹æŒç®ã䜿çšããŠå®è¡ããå¿ èŠããããŸãã x ãš y ã
åãæŽæ°ã§ããå Žåãããã¯æ瀺çãªã¡ãœããã䜿çšããŠåã double ãšããŠèªã¿åãããšã§å®è¡ã§ããŸãã
ã¿ã€ãæå®:
dx = (cur->x:D - cur->y:D)/(cur->x + cur->y);
ãããã¯ãåŒã§ C ã®åãã£ã¹ãã䜿çšããŠå®è¡ããããšãã§ããŸãã
dx = ((double)cur->x - (double)cur->y)/((double)cur->x + (double)cur->y);
çŸåšã®è¡ã®åã«ã¢ã¯ã»ã¹ããã ãã§ãªãã
å 䜿çšããè¡ åãž-[colname]>ããã㊠次㮠䜿çšããè¡ æ¬¡-[åå]>ã ãäºæ¿ãã ãã
if åãž-[colname]> ã¯ã ãã¡ã³ã«ã«ã¯ åŒã®æåã®è¡ã¯ããã§ã¯ãããŸãã
å å·¥ãããã ãã 次-[colname]> ã¯ã ãã¡ã³ã«ã«ã¯ åŒãæåŸã®è¡
åŠçãããŠããŸããã ãã®ããã«ããŠã åã®ããŒãž & 次㮠垞ã«æå¹ãªè¡ãæãããšãä¿èšŒãããŸãã
ããšãã°ãçŸåšã® x åãšåã® y åã®å€ãåºåããã«ã¯ã次ã®ããã«ããŸãã
C ã® fprintf é¢æ°ã䜿çšããŸãã ãã¡ã³ã«ã«ã¯ åŒïŒ
fprintf(stdout, "%d %d\n", cur->x, prev->y);
åããã®ã䜿çšããŠæ°ããåãæå®ã§ããŸã çŸåš-[colname]> åãè¿œå ããæ§æ
type (ããã³ãªãã·ã§ã³ã® tlmin/tlmax/binsiz æå®å) ãã³ãã³ã§åºåã£ãŠæå®ããŸãã äŸãã°ã
cur->avg:D ã¯ãdouble åã®æ°ããåãå®çŸ©ããŸãã åæå®åã¯åãã§ã
æ¢åã®åã«æ°ããããŒã¿åãæå®ããããã«äžèšã§äœ¿çšãããŠããŸãã
ããšãã°ãx ãš y ã®å¹³åå€ã§ããæ°ããåãäœæããŠåºåããã«ã¯ã
åã«å ããŠãæ°ãããavgãåãå®çŸ©ã§ããŸãã
cur->avg:D = (cur->x + cur->y)/2.0
æåŸã®ã;ãã«æ³šæããŠãã ããã åäžè¡ã®åŒã«ã¯å¿ èŠãããŸããã
FITS TFORM ããŒã¿åæå®ãšåæ§ã«ãåããŒã¿åæå®åãåã«çœ®ãããšãã§ããŸãã
æ°å€ã«ãŠã³ãã«ãã£ãŠé åãå®çŸ©ããŸããããšãã°ãã10Iã㯠10 åã® short int ã®ãã¯ãã«ãæå³ããã2Eãã¯
XNUMX ã€ã®å粟床浮åå°æ°ç¹æ°ãªã©ãæå³ããŸããæ°ããåãå®çŸ©ããå¿ èŠãããã®ã¯ XNUMX ã€ã®äžã§ XNUMX åã ãã§ãã
ãã¡ã³ã«ã«ã¯ åŒãäœæããåŸã¯ãåãåæå®ããããšãªã䜿çšã§ããŸãã ãã
åé åã®èŠçŽ ãžã®åç §ãå«ãŸããŸãã
cur->avg[0]:2D = (cur->x + cur->y)/2.0;
cur->avg[1] = (cur->x - cur->y)/2.0;
'X' (ããã) ããŒã¿åã¯ã次å (numeric_count/8) ã® char é åãšããŠæ±ãããŸããã€ãŸãã次ã®ããã«ãªããŸãã
16X 㯠2 ãã€ãã® char é åãšããŠåŠçãããŸãã 8 ãããé åã®åèŠçŽ ã¯åå¥ã«ã¢ã¯ã»ã¹ãããŸãã
cur->stat[0]:16X = 1;
cur->stat[1] = 2;
ããã§ã¯ãMSB ã 16ãLSB ã 1 ã«èšå®ããã 2 ãããåãäœæãããŸãã
ããã©ã«ãã§ã¯ãåŠçããããã¹ãŠã®è¡ãæå®ãããåºåãã¡ã€ã«ã«æžã蟌ãŸããŸãã ããªãããããå Žåã¯
ç¹å®ã®è¡ã®æžã蟌ã¿ãã¹ãããããåã« C ã®ãContinueãã¹ããŒãã¡ã³ããæåŸã«å®è¡ããŸãã
ãã¡ã³ã«ã«ã¯ è¡ã®æžã蟌ã¿ã¯åŒã®çŽåŸã«å®è¡ãããããã
åŒãå®è¡ãããŸãã ããšãã°ãå¹³åãåãè¡ã®æžã蟌ã¿ãã¹ãããããã«ã¯ã
çŸåšã® x å€:
cur->avg[0]:2D = (cur->x + cur->y)/2.0;
cur->avg[1] = (cur->x - cur->y)/2.0;
if( cur->avg[0] == cur->x )
ç¶ãã;
åºåãã¡ã€ã«åŒæ°ãæå®ãããŠããªãå Žåã ãã¡ã³ã«ã«ã¯ ã³ãã³ãã©ã€ã³ã§ã¯åºåãã¡ã€ã«ã¯ãããŸãã
éãããŠããŸãããè¡ã¯æžã蟌ãŸããŸããã ããã¯ãåçŽã«åºåãåºåããåŒã§åœ¹ç«ã¡ãŸãã
æ°ãããã¡ã€ã«ãçæãã代ããã«çµæãçæããŸãã
fpv = (cur->av3:D-cur->av1:D)/(cur->av1+cur->av2:D+cur->av3);
fbv = cur->av2/(cur->av1+cur->av2+cur->av3);
fpu = ((double)cur->au3-cur->au1)/((double)cur->au1+cur->au2+cur->au3);
fbu = cur->au2/(double)(cur->au1+cur->au2+cur->au3);
fprintf(stdout, "%f\t%f\t%f\t%f\n", fpv, fbv, fpu, fbu);
äžèšã®äŸã§ã¯ãæ瀺çãªåæå® (ãavãåã®å Žå) ãšåã®äž¡æ¹ã䜿çšããŠããŸãã
ãã¹ãŠã®æäœãäºéã«å®è¡ãããããšãä¿èšŒããããã®ãã£ã¹ã (ãauãåã®å Žå)
粟床ã
åºåãã¡ã€ã«ãæå®ãããšãéžæããå ¥åããŒãã«ãåŠçãããŠè¡ãåºåãããŸãã
åºåãã¡ã€ã«ã«ã³ããŒãããŸãã åºåãã¡ã€ã«ã¯ãstdoutããšããŠæå®ã§ããããšã«æ³šæããŠãã ããã
åºåè¡ãæšæºåºåã«æžã蟌ãããã åºåãã¡ã€ã«ã®åŒæ°ã
æž¡ããããšããªãã·ã§ã³ã® XNUMX çªç®ã®åŒæ°ãæž¡ããŠãåŠçããåãæå®ããããšãã§ããŸãã
FITS ãã€ã㪠ããŒãã«ã§ã¯ãä»ã® FITS æ¡åŒµæ©èœããã¹ãŠã³ããŒããããšãæãŸããå ŽåããããŸãã
åºåãã¡ã€ã«ã«ãã ãããè¡ãã«ã¯ãååã«ã+ãèšå·ãè¿œå ããŸãã
å ¥åãã¡ã€ã«åã®æ¡åŒµåã èŠã ãã¡ã³ã¿ãã« é¢é£ããäŸã«ã€ããŠã¯ã
ãã¡ã³ã«ã«ã¯ ãŠãŒã¶ãŒæå®ã®åŒããã³ãã¬ãŒã C ããã°ã©ã ã«çµ±åããããšã§æ©èœããŸãã
tabcalc.c ãšåŒã°ããŸãã å®æããããã°ã©ã ã¯ã³ã³ãã€ã«ãããŠå®è¡ãããŸãã å€æ°
ã§å§ãŸãå®£èš ãã¡ã³ã«ã«ã¯ åŒã¯ããŒã«ã«å®£èšã»ã¯ã·ã§ã³ã«é 眮ãããŸã
ãã³ãã¬ãŒãã¡ã€ã³ããã°ã©ã ã®ã ä»ã®ãã¹ãŠã®è¡ã¯ãã³ãã¬ãŒãã®ã¡ã€ã³ ããã°ã©ã ã«é 眮ãããŸãã
å éšåŠçã«ãŒãã ããã°ã©ã çæã®ãã®ä»ã®è©³çŽ°ã¯èªåçã«åŠçãããŸãã ã®ããã«
ããšãã°ãåæå®åã¯ãè¡ãåŠçããããã® C æ§é äœãæ§ç¯ããããã«åæãããŸãã
ã«æž¡ããã FunColumnSelect() ãããŠã§äœ¿çšããã FunTableRowGet()ã æªç¥ã®å€æ°ã䜿çšããå Žå
åŒå ã§ã³ã³ãã€ã« ãšã©ãŒãçºçããå Žåãããã°ã©ã ã®ãã«ãã¯ãã®åŸåè©Šè¡ãããŸãã
æªç¥ã®å€æ°ã double åã«å®çŸ©ããŸãã
éåžžã¯ã ãã¡ã³ã«ã«ã¯ åŒã³ãŒããè¿œå ãããŸã ãã¡ã³ã«ã«ã¯ è¡åŠçã«ãŒãã å¯èœã§ã
ãã®ã³ãŒããç¹å¥ãªãã£ã¬ã¯ãã£ãå ã«é 眮ããããšã§ãããã°ã©ã ã®ä»ã®éšåã«ã³ãŒããè¿œå ããŸãã
ãã©ãŒã ã®ïŒ
[ãã£ã¬ã¯ãã£ãå]
... ããã«ã³ãŒããå ¥ããŸã ...
end
ãã£ã¬ã¯ãã£ãã¯æ¬¡ã®ãšããã§ãã
· å šäœç㪠ã¡ã€ã³ ã«ãŒãã³ã®åã«ãã°ããŒãã«ç©ºéã«ã³ãŒããšå®£èšãè¿œå ããŸãã
· ããŒã«ã« main ã®ããŒã«ã«å®£èšã®çŽåŸã«å®£èš (ããã³ã³ãŒã) ãè¿œå ããŸãã
· ã¡ã€ã³è¡åŠçã«ãŒãã«å ¥ãçŽåã«ã³ãŒããè¿œå ããŸãã
· After ã¡ã€ã³è¡åŠçã«ãŒããçµäºããçŽåŸã«ã³ãŒããè¿œå ããŸãã
ãããã£ãŠã次㮠ãã¡ã³ã«ã«ã¯ åŒã¯ã°ããŒãã«å€æ°ã宣èšãããµãã«ãŒãã³ãäœæããŸã
ã¡ã€ã³åŠçã«ãŒãã®çŽåãšçŽåŸã«åŒã³åºããŸãã
å šäœçãª
ããã« v1ãv2ã
ããã«åæå(void);
ããã«ãã£ããã·ã¥(ããã«v);
end
v1 = åæå();
end
... v1 ã䜿çšããèšç®ã§è¡ãåŠçããŸã ...
After
v2 = çµäº(v1);
if( v2 < 0.0 ){
fprintf(stderr, "åŠçã«å€±æããŸãã %g -> %g\n", v1, v2);
çµäºããïŒ1ïŒ;
}
end
ãªã©ã®ã«ãŒãã³ ãã®äžã«ïŒïŒ & ãã£ããã·ã¥() äžèšã¯ãªã³ã¯ã®ããã«çæãããããã°ã©ã ã«æž¡ãããŸã
-l [ãªã³ã¯ ãã£ã¬ã¯ãã£ã ...] ã¹ã€ããã ãã®ã¹ã€ããã§æå®ããæååã¯æ¬¡ã®ããã«ãªããŸãã
ããã°ã©ã ã®ãã«ãã«äœ¿çšããããªã³ã¯è¡ (funtools ã©ã€ãã©ãªã®å) ã«è¿œå ãããŸãã ã®ããã«
ããšãã°ã次ã®ããã«ä»®å®ãããš ãã®äžã«ïŒïŒ & ãã£ããã·ã¥() ã©ã€ãã©ãª libmysubs.a ã«ãããŸãã
/opt/special/lib ãã£ã¬ã¯ããªã§ã¯ã以äžã䜿çšããŸãã
funcalc -l "-L/opt/special/lib -lmysubs" ...
ãŠãŒã¶ãŒåŒæ°ã¯ãæåååŒæ°ã䜿çšããŠã³ã³ãã€ã«ããã funcalc ããã°ã©ã ã«æž¡ãããšãã§ããŸãã
ã-aãã¹ã€ããã æååã«ã¯ãã¹ãŠã®ãŠãŒã¶ãŒåŒæ°ãå«ãŸããŠããå¿ èŠããããŸãã ããšãã°ããã¹ããã«ã¯
æŽæ° 1 ãš 2 ã®å Žåã¯ã次ã䜿çšããŸãã
funcalc -a "1 2" ...
åŒæ°ã¯å éšé åã«ä¿åãããARGV(n) çµç±ã§æååãšããŠã¢ã¯ã»ã¹ãããŸãã
倧ããã ããšãã°ã次ã®åŒãèããŠã¿ãŸãããã
ããŒã«ã«
int pminãpmax;
end
pmin=ã¢ãã€(ARGVïŒ0ïŒïŒ;
pmax=ã¢ãã€(ARGVïŒ1ïŒïŒ;
end
if( (cur->pha >= pmin) && (cur->pha <= pmax) )
fprintf(stderr, "%d %d %d\n", cur->x, cur->y, cur->pha);
ãã®åŒã¯ãpha å€ãå«ãŸãããã¹ãŠã®è¡ã® xãyãããã³ pha å€ãåºåããŸãã
XNUMX ã€ã®ãŠãŒã¶ãŒå ¥åå€ã®é:
funcalc -a '1 12' -f foo snr.ev'[cir 512 512 .1]'
512 512 6
512 512 8
512 512 5
512 512 5
512 512 8
funcalc -a '5 6' -f foo snr.ev'[cir 512 512 .1]'
512 512 6
512 512 5
512 512 5
åŒæ°ã®æ°ãæ£ãããã©ããã確èªããã®ã¯ãŠãŒã¶ãŒã®è²¬ä»»ã§ããããšã«æ³šæããŠãã ããã
æž¡ãããŸãã èŠæ±ãããåŒæ°ãå¶éå€ã®å ŽåãARGV(n) ãã¯ã㯠NULL ãè¿ããŸãã
åŒæ°ã®å®éã®æ°ãç²ç®çã«åŠçãããšãé垞㯠SEGV ãçºçããŸãã ãã§ãã¯ãã
åŒæ°ã®æ°ãæå®ããã«ã¯ãARGC ãã¯ãã䜿çšããŸãã
ããŒã«ã«
ãã³ã° int ã·ãŒã = 1;
äºééç=0.8;
end
if( ARGC >= 1 ) ã·ãŒã = atol(ARGVïŒ0ïŒïŒ;
if( ARGC >= 2 ) å¶é = atof(ARGVïŒ1ïŒïŒ;
srand48(ã·ãŒã);
end
if ( drand48() > limit ) ç¶è¡;
ãã¯ã WRITE_ROW ã¯æ¬¡ã®ããã«å±éãããŸãã FunTableRowPut() çŸåšã®è¡ãæžã蟌ãåŒã³åºãã ãã
è¡ãè€æ°åæžã蟌ãããã«äœ¿çšã§ããŸãã ããã«ããã¯ã NROW ã¯æ¬¡ã®ããã«å±éãããŸãã
çŸåšåŠçäžã®è¡çªå·ã ããã XNUMX ã€ã®ãã¯ãã®äœ¿çšæ³ã以äžã«ç€ºããŸãã
äŸïŒ
if( cur->pha:I == cur->pi:I ) ç¶è¡;
a = cur->pha;
cur->pha = cur->pi;
cur->pi = a;
cur->AVG:E = (cur->pha+cur->pi)/2.0;
cur->NR:I = NROW;
if( NROW < 10 ) WRITE_ROW;
Status -p ãçªçµã ã¹ã€ãããæå®ãããŠããå ŽåãåŒã¯å®è¡ãããŸããã ãããã
çæãããå®è¡å¯èœãã¡ã€ã«ã¯ãåŸã§äœ¿çšã§ããããã«ãæå®ãããããã°ã©ã åã§ä¿åãããŸãã
Status -n ã¹ã€ãããæå®ãããŠããå ŽåãåŒã¯å®è¡ãããŸããã ããããçæãããã³ãŒã
æšæºåºåã«æžã蟌ãŸããŸãã ããã¯ãã¹ã±ã«ãã³ ãã¡ã€ã«ãçæããå Žåã«ç¹ã«äŸ¿å©ã§ãã
ç¬èªã®ã³ãŒããè¿œå ããããã³ã³ãã€ã« ãšã©ãŒã確èªããå¿ èŠãããå Žåã¯ã ã³ã¡ã³ãã«æ³šæããŠãã ãã
åºåã®å é ã«ããã®äžã«ããã°ã©ã ããã«ãããããã«å¿ èŠãªã³ã³ãã€ã© ã³ãã³ãã衚瀺ãããŸãã
ãã©ããããŒã ã (ã³ãã³ãã¯ã次ã®ã³ãã³ãã䜿çšããããããã©ãããã©ãŒã ããšã«ç°ãªãå¯èœæ§ããããŸãã
ç°ãªãã©ã€ãã©ãªãã³ã³ãã€ã© ã¹ã€ãããªã©)
åè¿°ããããã«ã ãã¡ã³ã«ã«ã¯ ã¹ã«ã©ãŒå€æ°ãèªåçã«å®£èšããŸãïŒ
double) ãã®å€æ°ã䜿çšãããŠããã宣èšãããŠããªãå Žåã ãã®æœèšãå°å ¥ãããŠããã®ã¯
funcalc.sed ãšããååã® sed ã¹ã¯ãªããã䜿çšããŸããããã¯ã³ã³ãã€ã©åºåãåŠçããŠã
æªå®£èšå€æ°ãšã©ãŒã ãã®ã¹ã¯ãªããã«ã¯é©åãªãšã©ãŒãã·ãŒããããŠããŸã
gccãããã³ SolarisãDecAlphaãããã³ SGI ãã©ãããã©ãŒã äžã® cc ã®æ å ±ã ãããèŠã€ããã
ã䜿ãã®ãã©ãããã©ãŒã ã§ã¯ã¹ã«ã©ãŒã®èªå宣èšãæ©èœããŸããããã® sed ã¹ã¯ãªããã確èªããŠãã ããã
æ€åºãããšã©ãŒ ã¡ãã»ãŒãžã®äžéšãè¿œå ãŸãã¯ç·šéããå¿ èŠãããå ŽåããããŸãã
åå¥è§£æãç¶æããããã«ã ãã¡ã³ã«ã«ã¯ ïŒé©åºŠã«ïŒã·ã³ãã«ãªè¡šçŸãéžã³ãŸãã
C ã®ã³ã¡ã³ããã¹ããŒã¹ãæ¹è¡ã®æ£ç¢ºãªé 眮ã«é¢ããããã€ãã®å¶éãåãå ¥ãã
çæãããããã°ã©ã å ã§ã ç¹ã«ã宣èšãããããŒã«ã«å€æ°ã«é¢é£ä»ããããã³ã¡ã³ã
åŒã®å é (ã€ãŸãã ããŒã«ã«...çµäº ãããã¯ïŒã¯éåžžã¯çµäºããŸã
ããŒã«ã«å®£èšã§ã¯ãªããå åŽã®ã«ãŒãå ã§:
/* ãã®ã³ã¡ã³ãã¯ééã£ãå Žæ (ã€ãŸããå éšã«ãŒã) ã«é 眮ãããŠããŸããŸã */
ããã«a; /* å Žæãééã£ãŠããŸã */
/* ããã¯æ£ããå Žæ (å éšã«ãŒã) ã«é 眮ãããŸã */
if( cur->x:D == cur->y:D ) ç¶è¡; /* ãããæ£ããå Žæã«ãããŸã */
a = cur->x;
cur->x = cur->y;
cur->y = a;
cur->avg:E = (cur->x+cur->y)/2.0;
åæ§ã«ãã¹ããŒã¹ãæ¹è¡ã¯ãäžèŠãããšä»»æã«çç¥ããããè¿œå ããããããããšããããŸãã
ããæ¹ã ãã¡ããããããã®æäœã®æ¬ é¥ã¯ããããã
çæãããã³ãŒãã
ãªããªã ãã¡ã³ã«ã«ã¯ ã«æž¡ãããããŒã¿ ãã¡ã€ã«ã䜿çšããŠãŠãŒã¶ãŒè¡šçŸãåæããå¿ èŠããããŸãã
ã³ãã³ãã©ã€ã³ã§ã¯ãå ¥åãã¡ã€ã«ãéã㊠XNUMX åèªã¿åãå¿ èŠããããŸã (ããã°ã©ã äžã« XNUMX å)ã
çææã« XNUMX åãå®è¡äžã« XNUMX åã ãã®çµæãæšæºå ¥åã䜿çšããããšã¯ã§ããŸããã
å ¥åãã¡ã€ã«ïŒ ãã¡ã³ã«ã«ã¯ ãã£ã«ã¿ãŒãšããŠã¯äœ¿ããŸããã ãã®å¶éã解é€ããããšãæ€èšããŸã
ãã°ããçµã£ãŠã
C ã®ã³ã¡ã³ããšãšãã«ã ãã¡ã³ã«ã«ã¯ åŒã«ã¯ XNUMX è¡ã®å éšã³ã¡ã³ããå«ããããšãã§ããŸãã
çæããã C ããã°ã©ã ã«ã¯æž¡ãããŸããã ãããã®å éšã³ã¡ã³ãã¯æ¬¡ã§å§ãŸããŸãã #
æåãå ¥åããæ¹è¡ãŸã§ç¶ããŸãã
ããã«a; # ããã¯çæããã C ãã¡ã€ã«ã«ã¯æž¡ãããŸãã
#ãããããã§ã¯ãªã
a = cur->x;
cur->x = cur->y;
cur->y = a;
/* ãã®ã³ã¡ã³ã㯠C ãã¡ã€ã«ã«æž¡ãããŸã */
cur->avg:E = (cur->x+cur->y)/2.0;
åè¿°ããããã«ãå ¥ååã¯éåžžãå éšã§äœ¿çšãããŠãããã©ããã«ãã£ãŠèå¥ãããŸãã
å éšã€ãã³ãã«ãŒãã ãŸãã«ãã³ã©ã ãèªãã§ã
ã¡ã€ã³ã«ãŒãã®å€ã§åŠçããŸãã ããšãã°ãqsort ã¯ãœãŒãã«åã䜿çšããå ŽåããããŸãã
å éšã«ãŒãå ã§åŠçãããªãæ¯èŒã«ãŒãã³ (ãããã£ãŠã
èªã¿åãããåãšããŠæé»çã«æå®ãããŸã)ã ãã®ãããªåã確å®ã«èªã¿åãããããã«ããã«ã¯ã
ã€ãã³ã ã«ãŒãã®å Žåã¯ã æçœãª ããŒã¯ãŒãã ãã®ããŒã¯ãŒãã®åŒæ°ã¯ã次ã®åãæå®ããŸãã
ããšãèšè¿°ãããŠããªããŠããå ¥åã¬ã³ãŒãæ§é ã«èªã¿èŸŒãå¿ èŠããããŸãã
å åŽã®ã«ãŒãã äŸãã°ïŒ
æ瀺çãªãã€ãã¡
ããšãããã§ãªãå Žåã§ããåè¡ã® pi åãš pha åã確å®ã«èªã¿åãããããã«ããŸãã
å éšã€ãã³ãã«ãŒãã§åŠçãããŸãã ã® æçœãª ã¹ããŒãã¡ã³ãã¯ã©ãã«ã§ãé 眮ã§ããŸãã
æåŸã«ã泚æããŠãã ãã ãã¡ã³ã«ã«ã¯ çŸåšãFITS ãã€ã㪠ããŒãã«ãå«ãåŒã«åãçµãã§ããŸãã
æªå å·¥ã®ã€ãã³ã ãã¡ã€ã«ã ç»åè¡šçŸãžã®å¯Ÿå¿ã¯ä»åŸæ€èšããŠãããŸãã®ã§ã
ã³ãã¥ããã£ãããã®ãããªãµããŒããæ±ããããŠããå Žåã
onworks.net ãµãŒãã¹ã䜿çšããŠãªã³ã©ã€ã³ã§ funcalc ã䜿çšãã