8998 REM HP CONTRIBUTED LIBRARY, 2/75 8999 DIM A[16],B[16],C[16],Y$[72],Z$[72],D$[10] 9000 MAT A=CON 9001 D$="0123456789" 9002 GOSUB 9071 9003 MAT B=A 9004 Y$=Z$ 9005 GOSUB 9071 9006 MAT C=A 9007 B=ABS(B[1]) 9008 C=ABS(C[1]) 9009 A1=0 9010 IF B[1]*C[1]<0 THEN 9020 9011 FOR A=2 TO B MAX C 9012 A2=A1+B[A]*(A <= B)+C[A]*(A <= C) 9013 A1=(A2>999) 9014 A[A]=A2-1000*A1 9015 NEXT A 9016 IF NOT A1 THEN 9018 9017 A[A]=1 9018 A[1]=(A-( NOT A1))*SGN(B[1]) 9019 GOTO 9037 9020 A3=1 9021 GOTO SGN(B-C)+2 OF 9027,9022,9028 9022 FOR A=B TO 2 STEP -1 9023 GOTO SGN(B[A]-C[A])+2 OF 9027,9024,9028 9024 NEXT A 9025 A[1]=1 9026 GOTO 9037 9027 A3=-1 9028 FOR A=2 TO B MAX C 9029 A2=A1+(B[A]*(B >= A)-C[A]*(C >= A))*A3 9030 A1=-(A2<0) 9031 A[A]=A2-1000*A1 9032 NEXT A 9033 FOR A=A-1 TO 2 STEP -1 9034 IF A[A]>0 THEN 9036 9035 NEXT A 9036 A[1]=A*A3*SGN(B[1]) 9037 Z$="" 9038 A=ABS(A[1]) 9039 A1=(A[1]<0)+4*(A-3 MAX 0)+1+(D>0)+D-(A >= 4)*(2+(A[A]<100)+(A[A]<10)) 9040 IF A[1] >= 0 THEN 9042 9041 Z$[1,1]="-" 9042 A2=3 9043 IF A >= 4 THEN 9046 9044 Z$[LEN(Z$)+1,LEN(Z$)+1]="0" 9045 GOTO 9047 9046 GOSUB 9060 9047 A1=0 9048 FOR A=A-1 TO 4 STEP -1 9049 GOSUB 9060 9050 NEXT A 9051 IF D=0 THEN 9059 9052 Z$[LEN(Z$)+1,LEN(Z$)+1]="." 9053 A2=D MIN 3 9054 A=3 9055 GOSUB 9060 9056 A2=(D-3) MIN 3 9057 A=2 9058 GOSUB 9060 9059 RETURN 9060 A3=A[A]*(A <= ABS(A[1])) 9061 A4=INT(A3/100) 9062 A5=INT((A3-100*A4)/10) 9063 A6=A3-100*A4-10*A5 9064 IF A4=0 AND A1 OR A2<1 THEN 9066 9065 Z$[LEN(Z$)+1,LEN(Z$)+1]=D$[A4+1,A4+1] 9066 IF A3<10 AND A1 OR A2<2 THEN 9068 9067 Z$[LEN(Z$)+1,LEN(Z$)+1]=D$[A5+1,A5+1] 9068 IF A2<3 THEN 9070 9069 Z$[LEN(Z$)+1,LEN(Z$)+1]=D$[A6+1,A6+1] 9070 RETURN 9071 A9=1 9072 A3=A[2]=A[3]=0 9073 A[1]=3 9074 FOR A1=1 TO LEN(Y$) 9075 IF Y$[A1,A1] <> " " THEN 9079 9076 NEXT A1 9077 Y$="0" 9078 GOTO 9074 9079 IF Y$[A1,A1] <> "-" THEN 9083 9080 A9=-1 9081 A1=A1+1 9082 GOTO 9079 9083 IF Y$[A1,A1] <> " " THEN 9086 9084 Y$=Y$[A1] 9085 GOTO 9120 9086 IF A3=.1 THEN 9081 9087 IF Y$[A1,A1]>"5" THEN 9093 9088 IF Y$[A1,A1]>"2" THEN 9091 9089 A2=1 9090 GOTO 9095 9091 A2=4 9092 GOTO 9095 9093 IF Y$[A1,A1]>"8" THEN 9099 9094 A2=7 9095 FOR A2=A2 TO A2+2 9096 IF Y$[A1,A1]=D$[A2,A2] THEN 9104 9097 NEXT A2 9098 GOTO 9100 9099 A2=10 9100 IF Y$[A1,A1]="9" THEN 9104 9101 IF Y$[A1,A1] <> "." THEN 9081 9102 A3=100000. 9103 GOTO 9081 9104 A2=A2-1 9105 IF A3=0 THEN 9111 9106 A4=INT(A3/1000) 9107 A[3]=A[3]+A2*A4 9108 A[2]=A[2]+A2*(A3-1000*A4) 9109 A3=A3/10 9110 GOTO 9081 9111 FOR A4=4 TO A[1] 9112 A5=10*A[A4]+A2 9113 A2=INT(A5/1000) 9114 A[A4]=A5-1000*A2 9115 NEXT A4 9116 IF A2=0 THEN 9081 9117 A[1]=A[1]+1 9118 A[A[1]]=A2 9119 GOTO 9081 9120 IF A[A[1]] THEN 9123 9121 A[1]=A[1]-1 9122 GOTO 9120 9123 A[1]=A[1]*A9 9124 RETURN 9999 END