DEF DUALOP TYPE,O[],IN1[],IN2[] VAR r1=IN1[0],r2=IN2[0] '実部 VAR e1=IN1[1],e2=IN2[1] '非実部 IF 0==TYPE THEN '加算 IF EXTFEATURE THEN ARYOP TYPE,O,IN1,IN2 ELSE O[0]=r1+r2 O[1]=e1+e2 ENDIF ELSE IF 1==TYPE THEN '減算 IF EXTFEATURE THEN ARYOP TYPE,O,IN1,IN2 ELSE O[0]=r1-r2 O[1]=e1-e2 ENDIF ELSE IF 2==TYPE THEN '乗算 O[0]=r1*r2 O[1]=e1*r2+r1*e2 ELSE IF 3==TYPE THEN '除算 O[0]=r1/r2 O[1]=(e1*r2-r1*e2)/r2/r2 ENDIF END
DEF DUALCOS(IN[]) '余弦 DIM O[2] var r=IN[0],e=IN[1] O[0]=COS(r) O[1]=-e*SIN(r) RETURN O END
DEF DUALSIN(IN[]) '正弦 DIM O[2] var r=IN[0],e=IN[1] O[0]=SIN(r) O[1]=e*COS(r) RETURN O END
DEF DUALEXP(IN[]) '指数関数 DIM O[2] var r=IN[0],e=IN[1] O[0]=EXP(r) O[1]=e*EXP(r) RETURN O END
DEF DUALCONS(a) '定数 DIM ans[2] ans[0]=a return ans END
DEF DUALVAR(a) '変数 DIM ans[2] ans[0]=a ans[1]=1 return ans END